mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
aa1e7797b0
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.
182 lines
6.3 KiB
Diff
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
|
|
|