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
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
Simon Duquennoy
09d26f8060
Make uip-ds6-route use neighbor table. Instead of storing a global list of routing entries that contain both the next hop and the destination, we have a separate list of reachable destination for each neighbor in the global table.
2013-08-19 17:48:30 +02:00
Simon Duquennoy
ec609b49eb
Make DS6 neighbors use neighbor-table, and move all DS6 neighbor management from uip-ds6 to a new uip-ds6-neighbor module.
2013-08-19 17:48:30 +02:00
Adam Dunkels
54f2109134
Merge pull request #290 from simonduq/rpl-mrhof-etx-nomc
...
Update of RPL MRHOF (use no metric container with ETX [RFC6719])
2013-07-29 00:56:25 -07:00
Nicolas Tsiftes
d228cb57a5
Merge pull request #301 from adamdunkels/hotfix-rpl-max-dio
...
RPL bugfix: don't ignore infinite rank DIOs
2013-07-26 06:48:26 -07:00
Adam Dunkels
500d9cc3e4
Merge pull request #300 from cetic/rpl-nopath-dao
...
RPL No-Path DAOs
2013-07-26 03:53:56 -07:00
Adam Dunkels
4913792d41
Minor code style fix
2013-07-26 12:38:43 +02:00
Adam Dunkels
512a339c50
Bugfix: DIOs with infinite ranks should not be ignored as they are used by RPL as a signal by nodes that have lost their routes. Instead of ignoring them, we should send out our latest information to let the node with infinite rank find their way into the network again.
2013-07-26 12:38:25 +02:00
Sébastien Dawans
a05d635512
Improve readability of DAO output variables
2013-07-25 11:22:38 +02:00
Sébastien Dawans
0bd26d83c8
Ignore No-Path DAO if target is already reachable through a different route than the DAO sender
2013-07-25 11:21:04 +02:00
Sébastien Dawans
c4a121bf18
No-Path DAO Propagation
2013-07-25 11:19:56 +02:00
Jens Dede
2f1bf730af
Adapted comment
2013-07-23 20:01:10 +02:00
Simon Duquennoy
defcc639ce
Use no metric container when having MRHOF with ETX, as specified in RFC6719. Renamed rpl-of-etx to rpl-mrhof.
2013-07-23 19:36:38 +02:00
Jens Dede
9dd5af78c8
fix: default routes are removed correctly if no DAG with preferred parent is available
2013-07-23 15:35:47 +02:00
Sébastien Dawans
1be01a9c90
Support prefix udpates with PIO Handling
2013-05-19 10:51:57 -04:00
Adam Dunkels
927cc8d895
Added #if UIP_CONF_IPV6 around the IPv6 code in the uIP source tree to allow the C files to be compiled even if IPv6 is not configured.
2013-03-18 09:45:30 +01:00
Sébastien Dawans
e02d480ff5
Moved RPL Lifetime configuration to rpl-conf.h
2013-03-09 16:28:43 +01:00
Sébastien Dawans
b6c54faf9d
Adds default route lifetime update in RPL DIO processing
2013-03-09 16:27:37 +01:00
Sébastien Dawans
aaf5deabe2
Allow user configuration of RPL Lifetime and Lifetime Unit
2013-03-09 16:27:37 +01:00
Adam Dunkels
373b6c0195
Merge pull request #90 from simonduq/rpl-conf
...
Added missing include of contiki-conf.h in rpl-conf.h
2013-03-09 05:55:56 -08:00
Adam Dunkels
ea92365cd4
Merge pull request #102 from cetic/rpl-conf-init-link-metric
...
Makes RPL Initial Link Metric configurable
2013-03-09 05:52:07 -08:00
Adam Dunkels
80982f97b8
Merge pull request #125 from nfi/lollipop
...
Bug fix: corrected the macro RPL_LOLLIPOP_INCREMENT
2013-03-09 05:49:06 -08:00
Mariano Alvira
03fdb53af1
Add some debug PRINTFs for RPL_LEAF_ONLY mode.
2013-02-20 18:25:32 -05:00
Niclas Finne
26fc2fab87
Bug fix: changed the macro RPL_LOLLIPOP_INCREMENT to update the counter instead of returning the new value since this is how the macro is used today.
2013-02-12 16:06:04 +01:00
Sébastien Dawans
95ab192e88
Makes RPL Initial Link Metric configurable
2013-02-01 09:02:31 +01:00
Simon Duquennoy
7c64a114aa
Added missing include of contiki-conf.h
2013-01-23 16:11:02 +01:00
George Oikonomou
68f59113d6
Fix a route lifetime bug
...
There is a bug in the current route purge routine which would
result in a route's lifetime getting decremented more than once
during the same pass. This commit fixes it
The bug is documented here:
http://thread.gmane.org/gmane.os.contiki.devel/16209
2012-12-20 00:17:33 +00:00
Adam Dunkels
edf141046b
Clean up of a few missing printf() that were converted into PRINTF()s
2012-11-27 23:04:34 +01:00
Adam Dunkels
afe13b22bc
Rewrote the uIP IPv6 route handling code. Instead of being nested deeply inside the uip-ds6.c file, the route management code is now in a separate file, uip-ds6-route.c. This file presents a lib/list.h API for the routes, which makes the route list much easier to use. Additionally, the uip-ds6-route.c file adds a callback API that invokes a callback when routes are added and removed.
2012-11-27 23:04:33 +01:00
Adam Dunkels
2a2175a214
Make RPL DIS transmission interval random in the interval [0, INTERVAL/2]. This is needed to avoid synchronization in large RPL networks.
2012-11-27 23:04:31 +01:00
Adam Dunkels
2396f9b8ea
Made DIO interval processing a little easier to follow. Explicitly state that the delay is handled as clock timer ticks.
2012-11-27 23:04:31 +01:00
Adam Dunkels
8538aaf655
Made RPL DAO latency configurable
2012-11-27 23:04:31 +01:00
Adam Dunkels
357b13b3d3
Correctly handle upward and downward routes according to Section 1.2 of RFC6550
2012-11-27 23:04:31 +01:00
Adam Dunkels
15deb37e64
Updated DAG version processing to occur even for infinite rank DIOs. This makes it possible for the RPL root to infer the DAG version number from a network that hasn't had a root for a while, and where the rank has increased to infinity.
2012-11-27 23:04:30 +01:00
Adam Dunkels
db7cb567f5
Updated the RPL code to better match the Contiki code style
2012-11-27 23:04:30 +01:00
Rémy Léone
e378f171d6
chmod correction
2012-10-29 14:15:38 +01:00
Niclas Finne
d3b4efa06f
removed obsolete function declaration
2012-04-24 14:08:40 +02:00
nvt
534c734465
Removed redundant code and improve code style and documentation.
2012-04-22 00:18:07 +02:00
nvt
e94718f95c
Separated configuration into a new file called rpl-conf.h. Improved the documentation.
2012-04-22 00:17:10 +02:00
nvt
eda6b7c318
Use LIST_STRUCT macros. Made get_dag a static function.
2012-04-17 23:35:19 +02:00
nvt
3d0d2c284f
Changed function names.
2012-04-17 23:34:47 +02:00
nvt
80097f2c65
Removed some redundant code and fixed coding style.
2012-04-17 23:12:47 +02:00
nvt
6071b5aee7
Remove obsolete support for broadcast DAOs.
2012-04-17 23:04:20 +02:00
nvt
ed37e983f6
Refuse to allocate more parents for a specific DAG when the per-DAG limit has been reached.
2012-04-17 22:59:42 +02:00
nvt
9fb93cd7b7
Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
2012-03-12 19:23:37 +01:00
Matthias Kovatsch
87cd18539b
Eliminated RPL_CONF_ADJUST_LLH_LEN correction by using uip_l3_icmp_hdr_len instead of uip_l2_l3_icmp_hdr_len.
2012-03-08 00:48:04 +01:00
nvt
3860e798ac
Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
2012-03-05 01:49:55 +01:00
nvt
217a4e54ca
Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
2012-02-22 19:28:49 +01:00
Joakim Eriksson
5a65e3cc8b
tuned RPL parameters and improved calculation of path etx
2012-02-21 19:06:58 +01:00
Joakim Eriksson
2752337e69
fixed lollipop counter
2012-02-21 13:20:20 +01:00
Joakim Eriksson
729a434d0f
always send DAO to refresh routes
2012-02-29 15:01:59 -08:00
Nicolas Tsiftes
d0e2d9b47e
Cleaned up code style, comments, and print outs. Set default DAG parameters when the DIO configuration option is missing.
2012-02-29 21:59:50 +01:00
nvt
82a7c93b47
Check return value.
2012-01-30 23:51:07 +01:00
Nicolas Tsiftes
16c437da7e
Adjust for the multi-instance structures.
2012-02-27 23:03:52 +01:00
Joakim Eriksson
6ee05f4a2d
fixed loop detection bug in RPL
2012-01-13 05:37:30 -08:00
Joakim Eriksson
237100f6fa
changed so that ext hdr len code checks against buffer size instead of link mtu
2012-01-10 15:51:06 +01:00
nvt
d89a4ef4fd
Simplified best_dag function and fixed the previous incomplete commit.
2012-01-04 14:13:54 +01:00
Nicolas Tsiftes
f112fa99d5
Removed the force flag from rpl_reset_dio_timer. Removed an unnecessary DIO timer reset when changing rank but keeping the same preferred parent.
2012-01-04 11:22:11 +01:00
Mariano Alvira
c9ac19b919
Allocate the default_instance pointer in rpl-dag.c instead of the
...
header file to fix "multiple definition of `default_instance'" errors.
2011-12-09 08:36:23 -05:00
Mariano Alvira
1086299f25
fix typo
2011-12-09 08:23:43 -05:00
Nicolas Tsiftes
23a280e5eb
Refactored loop detection.
2011-12-02 16:16:42 +01:00
Nicolas Tsiftes
ac869185c0
Refactored header management.
2011-12-02 15:55:07 +01:00
Nicolas Tsiftes
7c808081d6
Coding style
2011-11-23 14:36:50 +01:00
nvt
e11b7d4fb6
Removed redundant code
2011-11-22 14:18:32 +01:00
Nicolas Tsiftes
cef95ebf9b
Inverted DAG ID check
2011-11-21 15:50:19 +01:00
Nicolas Tsiftes
2b1549bfe8
Continued merge with sf master
2011-11-21 15:25:13 +01:00
Nicolas Tsiftes
0e32956a63
Merge remote-tracking branch 'sf/master' into rpl-patch
2011-11-21 14:59:31 +01:00
Nicolas Tsiftes
ea73f1d767
Do not force DIO reset on certain events where it is not needed.
2011-11-16 09:49:22 +01:00
Nicolas Tsiftes
b405571e32
Update next-hop address for existing routes.
2011-11-16 09:05:34 +01:00
Nicolas Tsiftes
ef0ce944e5
Split management of extension headers into a separate file and fixed coding style.
2011-11-16 09:00:19 +01:00
Joakim Eriksson
2a94b3ce82
added debug callbacks
2011-10-27 12:32:16 +02:00
Joakim Eriksson
17bbb1f1c1
fixed so that rpl avoids sending no-path DAOs when changing parent when in NO_DOWNWARD mode of operation
2011-10-17 14:16:19 +02:00
Joakim Eriksson
ab049ec704
some fixes to cut some extension headers before TCP processing
2011-09-22 17:22:59 +02:00
nvt
ab0c04b041
Move 16-bit integer conversion operations into functions, as is done already with 32-bit ops.
2011-09-06 17:28:39 +02:00
nvt
644f1c627d
Initialize the DIO object in case options are missing. Updated the terminology regarding options.
2011-09-05 20:28:50 +02:00
Joakim Eriksson
62705a17ea
Send DAOs if dtsn differs instead of only when larger than last dtsn in DIO
2011-09-05 11:36:53 +02:00
Vincent Brillault
d7c114dbd8
RPL prefix handling fix : Change IP on DODAG change, delete IP when leaving DODAG.
2011-07-13 10:42:59 +02:00
Vincent Brillault
4f76130a77
Changed Instance structure in order to decrease memory waste.
2011-07-13 10:28:56 +02:00
Vincent Brillault
dc9cbe647d
Changes in RPL implementation :
...
- Structural modification of RPL data storage.
- Support multiple gateways (multiple DODAG-ID with a unique InstanceID)
- Use Lollipop counters
- Add leaf-only configuration option for RPL
Bugfix :
- Correctly send "Grounded" flag in DIO
2011-07-11 16:52:45 +02:00
Nicolas Tsiftes
77a44c560a
The flags field got widened to 9 bits.
2011-06-28 17:49:32 +02:00
Nicolas Tsiftes
b1fea35e47
Fixed issues with propagation of the route lifetime configuration. Removed deprecated configuration parameters.
2011-06-28 17:08:44 +02:00
David Kopf
c48b7ab78d
Add RPL nodes and border router to minimal-net platform (cygwin only)
2011-06-28 08:19:48 -04:00
nvt
15ee0a6414
Send No-Path DAOs correctly.
2011-05-03 17:50:24 +02:00
nvt
4b5d380c74
Announce MAX_PATH_COST if we don't have a preferred parent.
2011-04-25 22:37:25 +02:00
Joakim Eriksson
02fcf5835a
fixed RPL to handle inifinite rank better
2011-04-07 17:44:07 +02:00
Joakim Eriksson
d8e54ca585
fixed for compilation with IAR compiler
2011-04-06 20:14:30 +02:00
Joakim Eriksson
26f0a6e88e
changed ext to link_metric
2011-03-28 16:17:53 +02:00
nvt
cdaf58f892
Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
2011-03-17 20:23:53 +01:00
nvt
8078ef7705
ROOT_RANK is now a macro function.
2011-03-17 20:21:56 +01:00
Nicolas Tsiftes
65366d10c1
Update the metric container correctly. Use only one ETX initializer.
2011-03-16 13:29:01 +01:00
Joakim Eriksson
6554e87c00
Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki
2011-03-15 14:15:55 +01:00
Joakim Eriksson
5f4d4550fc
fixed RPL statistics bug and added parent switch stats
2011-03-15 14:14:41 +01:00
nvt
4739143126
Generalized MRHOF and added partial support for energy objects in DAG metric containers.
2011-03-15 01:16:20 +01:00
nvt
a7addf990f
Avoid hysteresis check if neither p1 nor p2 is the preferred parent.
2011-03-04 16:40:40 +01:00
Joakim Eriksson
fa0fbf5dab
fixed format of transit subopt
2011-03-01 12:33:34 +01:00
Joakim Eriksson
3cd7835f5c
made DIO parameters configurable
2011-02-22 18:24:05 +01:00