Simplified configuration of RPL non-storing mode
This commit is contained in:
parent
f26ea34c61
commit
1a7133bbf2
7 changed files with 85 additions and 49 deletions
|
@ -44,6 +44,8 @@
|
|||
#include "sys/clock.h"
|
||||
#include "sys/ctimer.h"
|
||||
#include "net/ipv6/uip-ds6.h"
|
||||
#include "net/ipv6/uip-ds6-route.h"
|
||||
#include "net/rpl/rpl-ns.h"
|
||||
#include "net/ipv6/multicast/uip-mcast6.h"
|
||||
|
||||
/*---------------------------------------------------------------------------*/
|
||||
|
@ -197,6 +199,7 @@
|
|||
#define RPL_MOP_STORING_NO_MULTICAST 2
|
||||
#define RPL_MOP_STORING_MULTICAST 3
|
||||
|
||||
/* RPL Mode of operation */
|
||||
#ifdef RPL_CONF_MOP
|
||||
#define RPL_MOP_DEFAULT RPL_CONF_MOP
|
||||
#else /* RPL_CONF_MOP */
|
||||
|
@ -207,6 +210,43 @@
|
|||
#endif /* UIP_IPV6_MULTICAST_RPL */
|
||||
#endif /* RPL_CONF_MOP */
|
||||
|
||||
/*
|
||||
* Embed support for storing mode
|
||||
*/
|
||||
#ifdef RPL_CONF_WITH_STORING
|
||||
#define RPL_WITH_STORING RPL_CONF_WITH_STORING
|
||||
#else /* RPL_CONF_WITH_STORING */
|
||||
/* By default: embed support for non-storing if and only if the configured MOP is not non-storing */
|
||||
#define RPL_WITH_STORING (RPL_MOP_DEFAULT != RPL_MOP_NON_STORING)
|
||||
#endif /* RPL_CONF_WITH_STORING */
|
||||
|
||||
/*
|
||||
* Embed support for non-storing mode
|
||||
*/
|
||||
#ifdef RPL_CONF_WITH_NON_STORING
|
||||
#define RPL_WITH_NON_STORING RPL_CONF_WITH_NON_STORING
|
||||
#else /* RPL_CONF_WITH_NON_STORING */
|
||||
/* By default: embed support for non-storing if and only if the configured MOP is non-storing */
|
||||
#define RPL_WITH_NON_STORING (RPL_MOP_DEFAULT == RPL_MOP_NON_STORING)
|
||||
#endif /* RPL_CONF_WITH_NON_STORING */
|
||||
|
||||
#if RPL_WITH_STORING && (UIP_DS6_ROUTE_NB == 0)
|
||||
#error "RPL with storing mode included but #routes == 0. Set UIP_CONF_MAX_ROUTES accordingly."
|
||||
#if !RPL_WITH_NON_STORING && (RPL_NS_LINK_NUM > 0)
|
||||
#error "You might also want to set RPL_NS_CONF_LINK_NUM to 0."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if RPL_WITH_NON_STORING && (RPL_NS_LINK_NUM == 0)
|
||||
#error "RPL with non-storing mode included but #links == 0. Set RPL_NS_CONF_LINK_NUM accordingly."
|
||||
#if !RPL_WITH_STORING && (UIP_DS6_ROUTE_NB > 0)
|
||||
#error "You might also want to set UIP_CONF_MAX_ROUTES to 0."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define RPL_IS_STORING(instance) (RPL_WITH_STORING && ((instance) != NULL) && ((instance)->mop > RPL_MOP_NON_STORING))
|
||||
#define RPL_IS_NON_STORING(instance) (RPL_WITH_NON_STORING && ((instance) != NULL) && ((instance)->mop == RPL_MOP_NON_STORING))
|
||||
|
||||
/* Emit a pre-processor error if the user configured multicast with bad MOP */
|
||||
#if RPL_CONF_MULTICAST && (RPL_MOP_DEFAULT != RPL_MOP_STORING_MULTICAST)
|
||||
#error "RPL Multicast requires RPL_MOP_DEFAULT==3. Check contiki-conf.h"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue