Commit graph

247 commits

Author SHA1 Message Date
Nicolas Tsiftes
443bbd3948 Merge pull request #664 from simonduq/rpl-link-metric-init-fix
RPL MRHOF: bypass EWMA when setting a parent's link metric for the first time
2014-05-14 16:42:29 +02:00
Nicolas Tsiftes
f34165bda4 Merge pull request #647 from cetic/pr-select-dag-fix
rpl_select_parent: Only check parents belonging to the given dag
2014-05-07 16:13:47 +02:00
Nicolas Tsiftes
812a0299a8 Merge pull request #649 from cetic/pr-dio-preference-fix
Add user configuration of DIO preference field
2014-05-07 16:12:56 +02:00
Simon Duquennoy
33cfd92475 RPL MRHOF with ETX: bypass weighted moving average when setting a parent's link metric for the first time 2014-04-29 16:25:16 +02:00
Laurent Deru
3b503da680 Add user configuration of DIO preference field 2014-04-18 16:26:23 +02:00
Laurent Deru
3fb0d69be6 Remove duplicated configuration parameters definition 2014-04-18 15:37:31 +02:00
Laurent Deru
79537a6dd7 rpl_select_parent: Only check parents belonging to the given dag 2014-04-18 11:39:33 +02:00
Nicolas Tsiftes
ce2ed95b93 Merge pull request #585 from g-oikonomou/generic-icmp6-in-hooks
Generic ICMPv6 input hooks
2014-04-14 16:12:10 +02:00
George Oikonomou
017697f91d Register generic ICMPv6 handlers for RPL 2014-04-04 00:09:27 +01:00
Nicolas Tsiftes
0a202d3952 Cleaned up some of the comments and output strings. 2014-03-28 13:38:52 +01:00
Nicolas Tsiftes
afbb82030e Ensure that the objective function's reset function is called at least once. This will enable the objective function to initialize itself during run-time. 2014-03-28 13:38:52 +01:00
Nicolas Tsiftes
7f4d3e3d7b Avoid calling rpl_lock_parent for uninitialized memory. Renamed p to parent to make reading easier. 2014-03-27 15:55:38 +01:00
Nicolas Tsiftes
1c560fb9db The check should be whether RPL_DIS_SEND is non-zero, not whether it is defined. 2014-03-27 15:44:18 +01:00
Nicolas Tsiftes
5aca90e73d Use the same scale for ETX calculation as for rank calculations to avoid conversion errors between the two. 2014-03-27 15:44:15 +01:00
George Oikonomou
da4ce5b54d RPL Multicast group management with MOP 3 2014-03-05 20:31:15 +00:00
George Oikonomou
067bbc9ee0 Check for DAO fwd loop early, before processing DAO options 2014-03-05 20:18:14 +00:00
Adam Dunkels
45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
Adam Dunkels
bddd96d5c8 Removed all module makefiles. Instead, all .c files in a module directory are compiled. 2014-01-26 23:20:46 +01:00
Adam Dunkels
7e29601639 Turn core/net/rpl into a module 2014-01-26 23:20:29 +01:00
Adam Dunkels
5f3fe7f7c7 Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
Adam Dunkels
b0460317b8 Moved variable declaration to the start of the function block 2013-11-24 15:17:52 +01:00
Adam Dunkels
faff1c2a7e Preliminary support for RPL node types. This change allows a node to be in any of three given types:
* Mesh: this is the normal case. Nodes route data on behalf of others and the node can be reached via a DAO route.
* Leaf: the node does not route data on behalf of others, but others can route data to the node (it has a RPL DAO route).
* Feather: this is a new type of node. A feather node routes data on behalf of others, but does not install DAO routes in the network. Feather nodes allow having a larger number of nodes than the RPL network can sustain in terms of routing tables.

This commit introduces the RPL node types and the feather mode, but does not add support for the leaf node type.
2013-11-24 15:17:52 +01:00
Adam Dunkels
af24d07848 Forward no-path DAOs up the tree to allow the root to repair the network if needed 2013-11-24 15:17:52 +01:00
Adam Dunkels
9039b0ecd8 Remove references to the now unused dag->parents list 2013-11-24 15:17:52 +01:00
Adam Dunkels
4e6fe7dda6 Add a neighbor table entry if a DAO is received from a node where we don't yet have a neighbor table entry. 2013-11-24 15:17:52 +01:00
Adam Dunkels
490791eaa4 Add a check for the case when the parent neighbor may have gone away to avoid using a NULL pointer 2013-11-24 15:17:52 +01:00
Adam Dunkels
0ed7db0f9b Slight improvements in debug messages 2013-11-24 15:17:52 +01:00
Adam Dunkels
fc1adec1b8 Made it a bit more clear what function that gets called when a neighbor is removed 2013-11-24 15:17:51 +01:00
Adam Dunkels
61ea7fbb1c RPL DAO timers and management:
* Added a DAO lifetime timer that sends out a new DAO after half the lifetime of the DAO. This allows implementing DAO route soft state that avoids routing tables in the network keeping stale routes for ever.
* Added ways to schedule a new DAO transmission as well as cancelling an active DAO transmit timer, which makes it possible to do nodes that don't send DAOs.
2013-11-24 15:17:51 +01:00
Adam Dunkels
f9cb6ec2fa Added the const keyword to IP address arguments that are not (and should not be) changed by the callee 2013-11-18 00:55:57 +01:00
Laurent Deru
fd97136fee As RPL Root, drop an incoming DIO from the same instance but different DAG 2013-11-15 08:48:29 +01:00
Sébastien Dawans
a60d3bf6cf Removed duplicate code in rpl-icmp6 2013-10-23 15:43:16 +02:00
Simon Duquennoy
677b5ede16 Fixed printout that used deprectated rpl_parent_t structure 2013-10-08 14:46:55 +02:00
Nicolas Tsiftes
43b5425493 Cleaned up various fragments and fixed a compilation error that occured when switching metric container.
Fixed a wrapping problem in the ETX EWMA calculation.

Corrected the multiplier of the link metric, and simplified the configuration
so that the user does not need to specify the multiplier.
2013-09-23 15:58:42 +02:00
Sébastien Dawans
78e807403c Inserts missing IPv6 Hop-By-Hop RPL Option at first hop 2013-08-19 21:40:24 +02:00
Adam Dunkels
86e247025a Removed debugging printout that came before a local variable declaration, which seems to have broken sdcc 2013-08-19 17:48:33 +02:00
Adam Dunkels
d0a939afb0 Bugfix: must multiply with ETX divisor to turn into fixed-point format. 2013-08-19 17:48:32 +02:00
Adam Dunkels
4d0ecaae02 Make sure our parent's IP address isn't NULL. 2013-08-19 17:48:32 +02:00
Adam Dunkels
e5a6565137 Loop detection via DAO: if we get a DAO from a parent, that parent thinks we are its parent. We poison it and recalulate our parents. 2013-08-19 17:48:32 +02:00
Adam Dunkels
34119b7ef2 Poor man's loop reparation: reset the DIO timer and hope the neighbor learns a better route. 2013-08-19 17:48:32 +02:00
Adam Dunkels
d830e9df3f Implement forwarding error handling: if a packet changes direction, we set the FWD_ERR flag. If we see the FWD_ERR flag, we drop the route that we sent it to. If we are the root node, we also initiate a global repair. 2013-08-19 17:48:31 +02:00
Adam Dunkels
abb3ef9b3b Bugfix: don't set the parent if the dag is NULL 2013-08-19 17:48:31 +02:00
Adam Dunkels
a027832f94 Fixed a bunch of compiler warnings 2013-08-19 17:48:31 +02:00
Adam Dunkels
9a74ada90c Added a function rpl_get_parent_link_metric() for obtaining the link metric of a given parent 2013-08-19 17:48:31 +02:00
Adam Dunkels
c52fc2fd19 Defensive programming: check for the argument being NULL. 2013-08-19 17:48:31 +02:00
Adam Dunkels
b42ccaed1b Added function prototypes to a number of functions with void arguments 2013-08-19 17:48:31 +02:00
Adam Dunkels
82e8eb420d Added and updated debugging printouts and reformatted code to make it a little easier to read. 2013-08-19 17:48:31 +02:00
Simon Duquennoy
248301a041 Fix naming issues and includes in uip-ds6-nbr.h 2013-08-19 17:48:30 +02:00
Simon Duquennoy
c3f62b24c8 Moved ETX management from neighbor-info to rpl-of-etx. Avoids conversions between different fixed point representations, and simplifies neighbor management. Makes more clear how default-ETX and noack-ETX actually affect the rank. Removed neighbor-info and neighbor-attr. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
c50d10aa53 Make RPL use neighbor tables. RPL locks the neighbor used as preferred parent. 2013-08-19 17:48:30 +02:00