Laurent Deru
1784338b2e
Add uip_clear_buf() macro and replace all instances of uip_len = 0; with it
2015-06-15 11:10:51 +02:00
Nicolas Tsiftes
5a26d25647
Merge pull request #918 from cetic/pr-multi-dodag-support
...
Multi DODAG support
2015-05-26 16:32:10 +02:00
Nicolas Tsiftes
be891c0554
Merge pull request #915 from cetic/pr-rpl-default-route-infinite
...
Allow rpl default route lifetime to be infinite
2015-05-26 16:26:58 +02:00
Laurent Deru
9782a760b1
rpl_process_dio: Update parent rank
2015-05-22 17:21:53 +02:00
Laurent Deru
ccd3c58280
rpl_select_parent: Update dag rank according to new parent
2015-05-22 17:21:53 +02:00
Laurent Deru
fc8415e1ad
Allow rpl default route lifetime to be infinite
2015-05-22 13:00:06 +02:00
Simon Duquennoy
fc178dab87
rpl_print_neighbor_list(): cast clock_time_t to unsigned for portable printout
2015-05-13 09:03:40 +02:00
Nicolas Tsiftes
05d2d843da
Merge pull request #1053 from simonduq/rpl-probing
...
RPL probing
2015-05-10 17:22:10 +02:00
Nicolas Tsiftes
71427ed4cc
Merge pull request #1016 from cetic/pr-cleanup-dodag-when-root
...
Remove all the DODAG from the instance when the node is set as Root
2015-05-10 17:15:25 +02:00
Nicolas Tsiftes
44af0fa66b
Merge pull request #1003 from adamdunkels/pr/http-socket-dns64-tcp-socket
...
New HTTP socket, DNS64, IP64 Cooja tests
2015-05-10 17:14:31 +02:00
Nicolas Tsiftes
f8e13758e3
Merge pull request #1017 from cetic/pr-dont-delete-instance
...
Do not delete instance when a new DODAG can not be created
2015-05-10 15:09:59 +02:00
Simon Duquennoy
9ced5b7bac
RPL: when no probing target is found, probe least recently updated parent
2015-05-10 13:28:00 +02:00
Simon Duquennoy
832a4d3e01
Make probing expiration time configurable
2015-05-10 13:19:56 +02:00
Adam Dunkels
4bd725130c
Code for starting a RPL DAG root with a delay, to allow any existing RPL networks to be joined first
2015-05-10 10:51:12 +02:00
Adam Dunkels
06daa08ffc
Added a function for getting the default RPL instance
2015-05-10 10:51:11 +02:00
Simon Duquennoy
6a5f238255
RPL probing: make delay function user-configurable
2015-05-10 09:47:04 +02:00
Simon Duquennoy
2dd182f4a8
Modified the default RPL probing selection process. Will now probe the least recently updated parent from time to time
2015-05-08 14:32:52 +02:00
Simon Duquennoy
47ba4c0c4b
Implement RPL probing
2015-05-08 14:32:00 +02:00
Simon Duquennoy
529376be77
Added rpl_print_neighbor_list function for RPL state monitoring
2015-05-08 14:29:26 +02:00
Simon Duquennoy
be47673d40
Fix debug message
2015-05-08 14:28:38 +02:00
Nicolas Tsiftes
7d06494331
Merge pull request #917 from cetic/pr-hbh-user-conf
...
Allow user configuration of RPL hop-by-hop option
2015-04-03 22:19:51 +02:00
Laurent Deru
0efa9f2046
Allow user configuration of RPL hop-by-hop option
2015-04-03 09:52:36 +02:00
Nicolas Tsiftes
2734c97234
Merge pull request #914 from cetic/pr-always-send-no-path-dao
...
Send no-path DAO only when the dag has a preferred parent
2015-03-06 14:33:07 +01:00
Laurent Deru
9d94c4efae
Remove all the DODAG from the instance when the node is set as Root
2015-03-04 09:55:11 +01:00
Laurent Deru
49bfb1308d
Do not delete instance when a new DODAG can not be created
2015-03-04 09:43:28 +01:00
Nicolas Tsiftes
f9e5e24cf4
Merge pull request #895 from simonduq/rpl-single-dag
...
Do not use rpl_add_dag when RPL is used with a single dag per instance
2015-02-26 11:41:24 +01:00
Nicolas Tsiftes
d57634d417
Merge pull request #936 from skaterdude/master
...
Update rpl.c and uip.c (in ipv4)
2015-02-17 09:03:55 +01:00
kshpylon
db444e14c3
Update rpl-icmp6.c
2015-02-11 17:26:51 +09:00
Nicolas Tsiftes
5de85e5335
Merge pull request #906 from joakimeriksson/rpl-conf-copy
...
fixed so that trickle timer and route lifetime rpl config is updated at global repair
2015-02-07 21:23:29 +01:00
Joakim Eriksson
6edccf35a6
fixed so that trickle timer rpl config is updated at global repair
2015-02-06 13:50:26 +01:00
Nicolas Tsiftes
010a338630
Merge pull request #904 from joakimeriksson/move-etx
...
moved ETX storage variable from RPL to ds6-nbr
2015-02-06 12:25:35 +01:00
Joakim Eriksson
e7fc14c7a1
fixed comments
2015-02-06 09:22:16 +01:00
Roger S
605551f62c
Update rpl.c
...
Removed change to "a RPL"
2015-01-04 23:54:02 -05:00
Roger S
d62f51d9e7
Update rpl.c
...
Very minor grammar / spelling edits to comments
2015-01-04 18:09:47 -05:00
Nicolas Tsiftes
7841eface3
Merge pull request #911 from cetic/pr-reset-dao-flag
...
Reset nopath_received flag when new DAO is received
2015-01-03 11:38:35 +01:00
Nicolas Tsiftes
79517eb477
Merge pull request #910 from cetic/pr-dio-suppr-disabling
...
Allow disabling of DIO suppression as required by RFC
2015-01-03 11:35:08 +01:00
Nicolas Tsiftes
f2f49f18f5
Merge pull request #913 from cetic/pr-rpl-stats
...
Fix and add more RPL stats
2014-12-19 22:15:38 +01:00
Laurent Deru
bb1e0c1cbc
Add missing return values in rpl_update_header_empty()
2014-12-19 11:23:19 +01:00
Laurent Deru
81a92bd692
Send no-path DAO only when the dag has a preferred parent
2014-12-19 10:53:01 +01:00
Laurent Deru
ccbfa388f6
Add more RPL stats
2014-12-19 10:51:03 +01:00
Laurent Deru
21253370b8
Reset nopath_received flag when new DAO is received
2014-12-19 10:49:56 +01:00
Laurent Deru
d540d2b5af
Allow disabling of DIO suppression as required in RFC
2014-12-19 09:51:26 +01:00
Adam Dunkels
fc4a83085a
style fixes, cherry-pick this and fixup with ae87790
2014-12-10 09:32:06 +01:00
Joakim Eriksson
5be43c6f8d
moved ETX storage variable from RPL to ds6-nbr
2014-12-10 09:11:53 +01:00
Simon Duquennoy
29d631c6f5
Do not use rpl_add_dag when RPL is used with a single dag per instance
2014-12-03 17:40:40 +01:00
Simon Duquennoy
e6d758e6f5
Remove now unneeded UIP_CONF_IPV6 guards in net/ipv6 and net/rpl code
2014-12-01 20:13:09 +01:00
Nicolas Tsiftes
63563ed8df
Merge pull request #652 from cetic/pr-rpl-rank-and-fw-errors
...
RPL rank and forward errors
2014-12-01 17:41:51 +01:00
Niclas Finne
d160943f16
Bug fix: Stop the DAO lifetime timer in RPL instances when released.
...
Clearing the memory for an active etimer/ctimer might corrupt the
timer list and cause other timers to be lost or infinite loops. The
DAO lifetime timer is only used when RPL route lifetime is not
infinite but then the timer will cause problems if not stopped.
2014-11-29 00:22:34 +01:00
Laurent Deru
29f894c07e
Drop forwarding error packet and send back DAO to originating parent
2014-11-14 09:40:05 +01:00
Laurent Deru
a964380155
Rank error packet should not be forwarded
2014-11-14 09:40:04 +01:00
Laurent Deru
778d40dab7
Do not trigger global repair when forwarding error is detected
2014-11-14 09:40:04 +01:00
Enrico Joerns
85b494c16b
[doc] Give files a common structure by placing license first (partial)
...
Followed by doxyen file and group tags.
This patch is only a first attempt to make provide a clean structure,
many more files require rework, too.
2014-11-10 23:54:49 +01:00
Laurent Deru
02972e6514
Improve RPL hop-by-hop option detection
2014-06-27 09:45:57 +02:00
Laurent Deru
d45782fbcd
Insert properly Hop-by-Hop option at first hop
2014-06-27 09:45:51 +02:00
Laurent Deru
2dfe2c377f
Setting uip_ext_len again breaks hop-by-hop option
2014-06-27 09:43:53 +02:00
Laurent Deru
b6742e5eb5
Sender rank in Hop-by-Hop option has inverted bytes
2014-06-27 09:43:53 +02:00
George Oikonomou
32bc98b0da
Fix code style in rpl_set_root prototype
2014-06-11 23:59:17 +01:00
Adam Dunkels
0516927677
Merge pull request #666 from simonduq/rpl-etx-init
...
Set initial link ETX to 2
2014-06-11 22:42:48 +02:00
Rémy Léone
25c8b0835d
Closing doxygen groups
2014-05-30 11:01:20 +02:00
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
Simon Duquennoy
5aab392a22
Set default link ETX to 2
2014-05-07 16:27:24 +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