1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
RIOT/pkg/openwsn/patches/0010-openwsn-fw-add-ifndef-guards-for-configurable-parame.patch
Francisco Molina aa1e7797b0
pkg/openwsn: bump version
With the new version some OpenWSN modules are optional:
- openwsn_cjoin (and therefore opewnsn_coap)
- openwsn_6lo_fragmentation
- openwsn_icmpv6echo
- openwsn_crypto
- openwsn_udp (optional but kept as default)

New optional modules have been added:
- openwsn_iee802154e_security (link layer security)
- openwsn_adaptive_msf (MSF dynamic slot allocation)

Openvisualizer needs to be updated to be compatible with the new
version.
2020-08-11 15:24:33 +02:00

182 lines
6.3 KiB
Diff

From 0e2e1e1b3898a77bc0a3474a4edc79c3c54a85d3 Mon Sep 17 00:00:00 2001
From: Francisco Molina <femolina@uc.cl>
Date: Fri, 24 Jul 2020 16:48:22 +0200
Subject: [PATCH 10/10] openwsn-fw: add ifndef guards for configurable
parameters
---
inc/config.h | 18 ++++++++++++++----
openstack/02a-MAClow/IEEE802154E.h | 8 +++++++-
openstack/02b-MAChigh/neighbors.h | 8 ++++++++
openstack/02b-MAChigh/schedule.h | 12 +++++++++++-
openstack/02b-MAChigh/sixtop.h | 2 ++
5 files changed, 42 insertions(+), 6 deletions(-)
diff --git a/inc/config.h b/inc/config.h
index 974ceb76..4f27b98a 100644
--- a/inc/config.h
+++ b/inc/config.h
@@ -16,8 +16,9 @@
* - level 6: critical, error, success, warning, info, and verbose
*
*/
-
+#ifndef OPENWSN_DEBUG_LEVEL
#define OPENWSN_DEBUG_LEVEL 6
+#endif
// ========================== Applications ==========================
@@ -221,11 +222,16 @@
* - OPENWSN_MAX_NUM_BIGPKTS: defines how many static buffer space will be allocated for processing large packets.
*
*/
-
// #define OPENWSN_6LO_FRAGMENTATION_C
-// #define OPENWSN_MAX_PKTSIZE_SUPPORTED 1320
-// #define OPENWSN_MAX_NUM_BIGPKTS 2
+#ifdef OPENWSN_6LO_FRAGMENTATION_C
+#ifndef OPENWSN_MAX_PKTSIZE_SUPPORTED
+#define OPENWSN_MAX_PKTSIZE_SUPPORTED 1320
+#endif
+#ifndef OPENWSN_MAX_NUM_BIGPKTS
+#define OPENWSN_MAX_NUM_BIGPKTS 2
+#endif
+#endif
/**
* \def OPENWSN_ADAPTIVE_MSF
@@ -279,7 +285,9 @@
* When the channel is set to 0, frequency hopping is enabled, otherwise a single channel is used.
*
*/
+#ifndef IEEE802154E_SINGLE_CHANNEL
#define IEEE802154E_SINGLE_CHANNEL 11
+#endif
/**
* \def PACKETQUEUE_LENGTH
@@ -288,7 +296,9 @@
* increase RAM usage.
*
*/
+#ifndef PACKETQUEUE_LENGTH
#define PACKETQUEUE_LENGTH 20
+#endif
// ======================== Board configuration ========================
diff --git a/openstack/02a-MAClow/IEEE802154E.h b/openstack/02a-MAClow/IEEE802154E.h
index f3274979..472e4b85 100644
--- a/openstack/02a-MAClow/IEEE802154E.h
+++ b/openstack/02a-MAClow/IEEE802154E.h
@@ -42,9 +42,15 @@ static const uint8_t ebIEsBytestream[] = {
#define TXRETRIES 15 // number of MAC retries before declaring failed
#define TX_POWER 31 // 1=-25dBm, 31=0dBm (max value)
#define RESYNCHRONIZATIONGUARD 5 // in 32kHz ticks. min distance to the end of the slot to successfully synchronize
-#define EB_PORTION 10 // set EB on minimal cell for 1/EB_PORTION portion
+#ifndef EB_PORTION
+#define EB_PORTION 10 // set EB on minimal cell for 1/EB_PORTION portion
+#endif
+#ifndef MAXKAPERIOD
#define MAXKAPERIOD 1000 // in slots: 1500@20ms per slot -> ~30 seconds. Max value used by adaptive synchronization.
+#endif
+#ifndef DESYNCTIMEOUT
#define DESYNCTIMEOUT 1750 // in slots: 1750@20ms per slot -> ~35 seconds. A larger DESYNCTIMEOUT is needed if using a larger KATIMEOUT.
+#endif
#define LIMITLARGETIMECORRECTION 5 // threshold number of ticks to declare a timeCorrection "large"
#define LENGTH_IEEE154_MAX 128 // max length of a valid radio packet
#define DUTY_CYCLE_WINDOW_LIMIT (0xFFFFFFFF>>1) // limit of the dutycycle window
diff --git a/openstack/02b-MAChigh/neighbors.h b/openstack/02b-MAChigh/neighbors.h
index 894001e6..3ca55cdc 100644
--- a/openstack/02b-MAChigh/neighbors.h
+++ b/openstack/02b-MAChigh/neighbors.h
@@ -13,10 +13,18 @@
//=========================== define ==========================================
#define MAXPREFERENCE 2
+#ifndef BADNEIGHBORMAXRSSI
#define BADNEIGHBORMAXRSSI -70 //dBm
+#endif
+#ifndef GOODNEIGHBORMINRSSI
#define GOODNEIGHBORMINRSSI -80 //dBm
+#endif
+#ifndef SWITCHSTABILITYTHRESHOLD
#define SWITCHSTABILITYTHRESHOLD 3
+#endif
+#ifndef DEFAULTLINKCOST
#define DEFAULTLINKCOST 4
+#endif
#define MINIMAL_NUM_TX 16
#define MAXDAGRANK 0xffff
diff --git a/openstack/02b-MAChigh/schedule.h b/openstack/02b-MAChigh/schedule.h
index 6ba2657a..ae53a9ce 100644
--- a/openstack/02b-MAChigh/schedule.h
+++ b/openstack/02b-MAChigh/schedule.h
@@ -17,10 +17,15 @@
The superframe reappears over time and can be arbitrarily long.
*/
+
+#ifndef SLOTFRAME_LENGTH
#define SLOTFRAME_LENGTH 101 //should be 101
+#endif
//draft-ietf-6tisch-minimal-06
+#ifndef SCHEDULE_MINIMAL_6TISCH_ACTIVE_CELLS
#define SCHEDULE_MINIMAL_6TISCH_ACTIVE_CELLS 1
+#endif
#define SCHEDULE_MINIMAL_6TISCH_SLOTOFFSET 0
#define SCHEDULE_MINIMAL_6TISCH_CHANNELOFFSET 0
#define SCHEDULE_MINIMAL_6TISCH_DEFAULT_SLOTFRAME_HANDLE 0 //id of slotframe
@@ -37,7 +42,9 @@ The superframe reappears over time and can be arbitrarily long.
for serial port to transmit data to dagroot.
*/
+#ifndef NUMSLOTSOFF
#define NUMSLOTSOFF 20
+#endif
/**
\brief Maximum number of active slots in a superframe.
@@ -49,7 +56,9 @@ in that table; a slot is "active" when it is not of type CELLTYPE_OFF.
Set this number to the exact number of active slots you are planning on having
in your schedule, so not to waste RAM.
*/
+#ifndef MAXACTIVESLOTS
#define MAXACTIVESLOTS SCHEDULE_MINIMAL_6TISCH_ACTIVE_CELLS+NUMSLOTSOFF
+#endif
/**
\brief Maximum number of alternative slots (more than one cells with same slotOffset)
@@ -59,8 +68,9 @@ Note that for each slot entry, it has a table of alternative slots. All
those slots's next pointer is pointing to the same entries.
*/
-
+#ifndef MAXBACKUPSLOTS
#define MAXBACKUPSLOTS 2
+#endif
/**
\brief Minimum backoff exponent.
diff --git a/openstack/02b-MAChigh/sixtop.h b/openstack/02b-MAChigh/sixtop.h
index 6cd98959..7028ca50 100644
--- a/openstack/02b-MAChigh/sixtop.h
+++ b/openstack/02b-MAChigh/sixtop.h
@@ -81,7 +81,9 @@ typedef enum {
// >2^4*3*(101/9)*15=8080 (2^MAXEB * maxretries * (slotframe / numberOfsharedCellsFor6p)*slotlength) (ms))
// on the receiver side of sixtop, it may has mutiple sixtop request in the queue to response (most of them will return with RC BUSY)
// increase the timeout longer than calculated value
+#ifndef SIX2SIX_TIMEOUT_MS
#define SIX2SIX_TIMEOUT_MS 65535
+#endif
typedef uint8_t (*sixtop_sf_getsfid_cbt)(void);
--
2.27.0