Simon Duquennoy
5eb022fdd8
Merge pull request #1750 from yatch/pr/improve-rpl-ext-hdr
...
Improve RPL extension headers handling
2016-06-29 10:38:17 +02:00
Yasuyuki Tanaka
ffdc53718d
RPL: code cleanup (rpl-ext-header.c)
2016-06-27 20:57:48 +02:00
Yasuyuki Tanaka
13f18fd842
RPL: update uip_ext_len whenever moving to next header (rpl-ext-header.c)
2016-06-27 20:57:48 +02:00
Yasuyuki Tanaka
5a79bad4b1
RPL: prevent unintended memory access (rpl_remove_header)
...
When it goes to the default label in the switch statement of
rpl_remove_header(), UIP_EXT_BUF does not always point to an IPv6 extension
header. "Move to next header" process should be done only in case of
UIP_PROTO_DESTO. Otherwise, it returns with doing nothing.
2016-06-27 20:57:48 +02:00
Yasuyuki Tanaka
e361c49f14
RPL non-storing: fix a bug causing an infinite loop
...
It falls into an infinite loop if it goes to the default label in the switch
statement of rpl_srh_get_next_hop() or rpl_process_srh_header().
2016-06-27 20:57:48 +02:00
Yasuyuki Tanaka
ca3a4726d1
Rename two macros related to multicast, which are not user configuration
...
- UIP_CONF_IPV6_MULTICAST -> UIP_IPV6_MULTICAST
- RPL_CONF_MULTICAST -> RPL_WITH_MULTICAST
2016-06-20 16:35:09 +02:00
Yasuyuki Tanaka
b074e5c3e0
Replece UIP_IPV6_MULTICAST_RPL in a comment with RPL_CONF_MULTICAST
2016-06-20 16:35:09 +02:00
Joakim Eriksson
7853a7434b
fix for compilation with clang - issue reported by Olaf Bergmann
2016-06-13 16:18:16 +02:00
Tommy Sparber
27cceda1e8
rpl-ext-header: Use 8-octet unit for HBHO length
...
According to RFC 2460 the length field of the Hop-by-Hop options header
should use a 8-octet unit (multiple of 8 byte).
In a normal configuration the RPL_HOP_BY_HOP_LEN define is 8, so the
current implementation works, but if RPL_HOP_BY_HOP_LEN is a multiple
of 8 the length is not calculated correctly.
2016-06-08 17:37:59 +02:00
Simon Duquennoy
535ff25da2
RPL non-storing defensive link update: make sure the topology is loop-free at all times
2016-06-08 14:14:03 +02:00
Simon Duquennoy
d5e74b9579
Code style
2016-06-08 14:05:37 +02:00
Simon Duquennoy
0f5e3413fa
Simplify dao_input
2016-06-08 14:04:47 +02:00
Simon Duquennoy
4208973017
Fix DAO-ACK support for non-storing
2016-06-08 14:03:27 +02:00
Simon Duquennoy
6cdec70798
rpl_verify_header: do not select DAG in storing mode after updating neighbor rank, as this may result in a No-Path DAO being sent, which will drop the current packet.
2016-06-08 14:03:26 +02:00
Simon Duquennoy
343c274359
RPL: re-enable RPL_DIO_REFRESH_DAO_ROUTES by default as it is needed with DAO-ACK disabled. Now increments the DTSN only at the root
2016-06-08 14:03:25 +02:00
Simon Duquennoy
ded71a7400
RPL: add neighbor to cache on incoming DIO also at the root
2016-06-08 14:03:23 +02:00
Simon Duquennoy
1a7133bbf2
Simplified configuration of RPL non-storing mode
2016-06-08 14:03:21 +02:00
Simon Duquennoy
f26ea34c61
Run RPL regression tests in non-storing mode
2016-06-08 14:03:19 +02:00
Yasuyuki Tanaka
eef233ceab
Clear the uIP buffer before calling dao_ack_output()
2016-06-08 14:02:52 +02:00
Yasuyuki Tanaka
bb69e35c76
Fix typos causing compilation errors in rpl_srh_get_next_hop()
2016-06-08 14:02:51 +02:00
Yasuyuki Tanaka
f53bae6225
Remove a debug message showing "SRH Next Hop" in insert_srh_header()
2016-06-08 14:02:50 +02:00
Yasuyuki Tanaka
2abf27a6f7
Remove an unnecessary NULL-check in insert_srh_header()
2016-06-08 14:02:49 +02:00
Yasuyuki Tanaka
97a362acdc
Use a stricter check in rpl_srh_get_next_hop()
2016-06-08 14:02:48 +02:00
Yasuyuki Tanaka
0be30628ce
Enable the root to send back a DAO-ACK
2016-06-08 14:02:47 +02:00
Simon Duquennoy
b3e31e1456
Implement RPL non-storing mode
2016-06-08 14:02:45 +02:00
Simon Duquennoy
d14b76d869
RPL: logging fixes
2016-06-08 14:02:44 +02:00
Simon Duquennoy
797bead5e5
RPL: if a neighbor is unreachable, remove routes via this neighbor
2016-06-03 18:43:36 +02:00
Simon Duquennoy
8ae00caea8
RPL: more robust configuration of mrhof in the squared ETX case
2016-06-03 18:43:35 +02:00
Simon Duquennoy
e6cd029090
rpl_remove_routes_by_nexthop: expire routes rather than remove then directly. The routes will be removed later and No-path DAOs sent accordingly in rpl_purge_routes
2016-06-03 18:43:28 +02:00
Simon Duquennoy
d008bf8a76
Fix rpl_select_parent in the non-probing case
2016-06-03 16:44:14 +02:00
Simon Duquennoy
43b01b3236
RPL: if the best parent is not fresh, use the best fresh instead and utilize urgent probing to update link estimates
2016-06-03 16:44:14 +02:00
Simon Duquennoy
b42b12d7c8
Adsjut dao_ack_callback to new OFs
2016-06-03 16:44:13 +02:00
Simon Duquennoy
f18a4fdd7b
Adjust RPL neighbor policy to new OF interface
2016-06-03 16:44:12 +02:00
Simon Duquennoy
75967438e3
RPL ext header: check if sender is closer only after updating its rank
2016-06-03 16:44:11 +02:00
Simon Duquennoy
36dd282eb7
RPL: reset Trickle timer on incoming DIOs with INFINITE_RANK only if the DIO is from the preferred parent
2016-06-03 16:44:10 +02:00
Simon Duquennoy
65b854fcee
RPL: trigger a local repair only the first time no parent is found in a DODAG
2016-06-03 16:44:09 +02:00
Simon Duquennoy
b176991a06
Compile out code related to RPL probing when probing is disabled
2016-06-03 16:44:09 +02:00
Simon Duquennoy
6349019384
Fine tuning of link stats and RPL OFs
2016-06-03 16:44:08 +02:00
Simon Duquennoy
0d7e1e8be4
Fix PRINTF statement in rpl-timers.c
2016-06-03 16:44:07 +02:00
Simon Duquennoy
64679642f2
Saving ROM and RAM
2016-06-03 16:44:06 +02:00
Simon Duquennoy
7855ba20ba
RPL: Check acceptable_rank even after first obtaining a parent. Added comment on a slight departure from RFC6550.
2016-06-03 16:44:05 +02:00
Simon Duquennoy
d53a3a3df2
RPL: logging fixes
2016-06-03 16:43:58 +02:00
Simon Duquennoy
cd76b4b1c2
RPL: support for run-time selection of the OF. RPL_OF_OCP defines the OF to be advertised at the root, while RPL_SUPPORTED_OFS defines the set of supported OFs
2016-06-03 15:46:08 +02:00
Simon Duquennoy
c5cf8608e9
RPL probing: now using link-stats to first prioritize probing of non-fresh parents, and to support urgent probing (fast probing of a potential new preferred parent
2016-06-03 15:46:07 +02:00
Simon Duquennoy
426e10c3ed
Rehauling of RPL OFs, both MRHOF and OF0. Fixed compliance with RFC6551, 6552, 6719. Now using the link-stats module.
2016-06-03 15:46:06 +02:00
Simon Duquennoy
4e9b027141
rpl.h: updated constants and comments to match the standard
2016-06-03 15:46:03 +02:00
Nicolas Tsiftes
70abb211e3
Merge pull request #1635 from simonduq/pr/dao-no-k-flag-in-nopath
...
RPL: do not add K flag to no-path DAO as we discard the ACK anyway
2016-04-28 14:45:01 +02:00
Antonio Lignan
6afd56e0ee
Merge pull request #1634 from simonduq/pr/daoack-fix
...
DAO ACK fix
2016-04-27 23:47:07 +02:00
Simon Duquennoy
ace607a32d
Fix RPL default lifetime
2016-04-27 17:04:29 +02:00
Simon Duquennoy
4392507019
RPL: do not add K flag to no-path DAO as we discard the ACK anyway
2016-04-27 14:20:39 +02:00