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
Simon Duquennoy
54957e4e03
mac-seqno: add a lifetime to sequence numbers in history
2016-06-24 11:23:19 +02:00
Simon Duquennoy
27b20b09a3
TSCH: enable adaptive time synchronization by default
2016-06-23 22:39:54 +02:00
Simon Duquennoy
15dc86aeb1
TSCH: reduce keep-alive traffic as we get more accurate drift estimates
2016-06-23 22:39:44 +02:00
Simon Duquennoy
beb532e7e8
TSCH: use sequence number only for unicast data frames
2016-06-23 22:36:00 +02:00
Benoît Thébaudeau
8fd7719c07
noncoresec: Fix build errors with DEBUG set to 1
...
Fix these build errors, which are generated if DEBUG is set to 1:
../../core/net/llsec/noncoresec/noncoresec.c: In function 'parse':
../../core/net/llsec/noncoresec/noncoresec.c:198:54: error: expected ')' before 'PRIu32'
PRINTF("noncoresec: received unauthentic frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
../../core/net/llsec/noncoresec/noncoresec.c:198:12: warning: spurious trailing '%' in format [-Wformat=]
PRINTF("noncoresec: received unauthentic frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
../../core/net/llsec/noncoresec/noncoresec.c:198:12: warning: spurious trailing '%' in format [-Wformat=]
PRINTF("noncoresec: received unauthentic frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
../../core/net/llsec/noncoresec/noncoresec.c:231:54: error: expected ')' before 'PRIu32'
PRINTF("noncoresec: received replayed frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
../../core/net/llsec/noncoresec/noncoresec.c:231:15: warning: spurious trailing '%' in format [-Wformat=]
PRINTF("noncoresec: received replayed frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
../../core/net/llsec/noncoresec/noncoresec.c:231:15: warning: spurious trailing '%' in format [-Wformat=]
PRINTF("noncoresec: received replayed frame %"PRIu32"\n",
^
../../core/net/llsec/noncoresec/noncoresec.c:88:28: note: in definition of macro 'PRINTF'
#define PRINTF(...) printf(__VA_ARGS__)
^
PRIu32 is not defined, so replace it with a standard format directive.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2016-06-23 22:10:43 +02:00
Simon Duquennoy
ab706a6f33
TSCH: map RPL trickle interval to TSCH EB period
2016-06-23 18:48:01 +02:00
Simon Duquennoy
ee60355c9c
TSCH: implement off()
2016-06-23 18:38:12 +02:00
Simon Duquennoy
b1dc8205f0
TSCH: minor logging enhancement
2016-06-23 18:37:42 +02:00
Simon Duquennoy
5a1a8e84d8
TSCH: start scheduling keep-alives only after tsch_is_associated is set
2016-06-23 18:36:04 +02:00
Simon Duquennoy
1acb69e280
TSCH: keep track of Rx channel as packetbuf attribute
2016-06-23 18:35:16 +02:00
Simon Duquennoy
f1922c13b6
TSCH: use standard-compliant mac-squence module rather than custom duplicate detection
2016-06-23 18:21:05 +02:00
Yasuyuki Tanaka
e5ac3df7e1
Include uip-mcast6.h to refer to UIP_IPV6_MULTICAST
2016-06-20 16:35:09 +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
704847db04
Fix a typo, UIP_IPV6_CONF_MULTICAST, in a comment with UIP_CONF_IPV6_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
Nicolas Tsiftes
a8989f9f1c
Merge pull request #1724 from nvt/coffee-simplify
...
Coffee: minor enhancements
2016-06-15 18:56:10 +02:00
Antonio Lignan
fba37e0131
Merge pull request #1624 from cedric-d/prevent-uip-buffer-overread
...
Prevent uIP buffer over-read with big UDP packets
2016-06-15 13:08:45 +02:00
George Oikonomou
5fe95fc425
Merge pull request #1709 from atiselsts/cc26xx_tsch_port
...
TSCH port for CC26xx
2016-06-15 10:28:58 +01:00
cedric-d
67e0575bd3
Prevent uIP buffer over-read with big UDP packets
...
When an UDP packet too big to fit in the uIP packet buffer is to be sent, the part fitting in the uIP buffer is copied to it (so no buffer overflow occurs) but uIP actually sends a packet of the original size therefore a buffer over-read occurs.
This modification makes uIP discard the UDP packets that do not fit in the uIP packet buffer.
2016-06-15 10:51:20 +02:00
Simon Duquennoy
872146def0
Merge pull request #1720 from joakimeriksson/rpl_ns_periodic
...
Fix for compilation with clang - issue reported by Olaf Bergmann
2016-06-15 10:27:58 +02:00
Antonio Lignan
fa88122140
Merge pull request #1589 from ibriano/master
...
Allow creating connections on unspecified local port
2016-06-14 21:30:34 +02:00
Nicolas Tsiftes
a06110e5ed
Renamed the internal dummy_space variable, since it contains useful information.
2016-06-14 21:08:01 +02:00
Nicolas Tsiftes
5010309005
Make the I/O semantics functionality in Coffee unconditional so that the API becomes consistent across platforms.
...
Change certain CPP conditionals into C conditionals, which should be possible for the compiler to optimize at runtime. This makes the source code easier to read.
2016-06-14 21:08:00 +02:00
Atis Elsts
6800f9502e
Update the list of supported platforms in TSCH README file
2016-06-14 19:47:59 +03:00
Simon Duquennoy
30e820ffa5
Merge pull request #1708 from atiselsts/tsch_enhancements
...
TSCH enhancements
2016-06-13 20:58:02 +02:00
Joakim Eriksson
7853a7434b
fix for compilation with clang - issue reported by Olaf Bergmann
2016-06-13 16:18:16 +02:00
Simon Duquennoy
4fd8f67053
Merge pull request #1715 from sumanpanchal/zoul-tsch
...
TSCH port for Zolertia ReMote/Zoul.
2016-06-13 09:03:16 +02:00
Tiago Koji Castro Shibata
c2a0f739f7
Compilation targeting c64
...
Adds some casts required by cc65 compiler and small fixes
2016-06-12 21:16:01 -03:00
Pablo Corbalán
910f828975
Remove unneeded state refresh and set reachable timer upon adding a nbr
2016-06-12 18:40:13 +01:00
Pablo Corbalán
373e5653e6
uIPv6: Make sure dest address is not multicast before refreshing the state of a neighbor
2016-06-12 18:40:12 +01:00
Pablo Corbalán
0fb47d0a2d
Refresh nbr reachable state after received IPv6 unicast message
2016-06-12 18:40:04 +01:00
Sumankumar Panchal
373fda46f7
TSCH port for Zolertia ReMote/Zoul.
2016-06-12 16:37:01 +05:30
jcook
d52cf767e5
Remove useless `else' block as def_route will be removed before if existed.
2016-06-12 06:45:04 +02:00
Simon Duquennoy
63565b109d
Fix TSCH_AUTOSELECT_TIME_SOURCE to work with 2-byte addresses and with the new nbr_table_add_lladdr interface
2016-06-10 20:59:42 +02:00
Simon Duquennoy
ac16fb9e2b
TSCH fixes for the short-address case
2016-06-10 20:58:40 +02:00
Atis Elsts
f0fcff2d1a
TSCH: declare radio_rx_mode
only when HW timestamps are enabled to avoid warnings
2016-06-10 15:04:07 +03:00
Atis Elsts
5b728691ad
TSCH: add missing include
2016-06-10 15:04:07 +03:00
Atis Elsts
fbb66f9cd5
TSCH: allow to configure channel scanning duration during the join phase
2016-06-10 15:04:07 +03:00
Atis Elsts
b57009e564
TSCH: fix signedness in adaptive timesync
2016-06-10 15:04:07 +03:00
Atis Elsts
03d511c2be
tsch-slot-operation.c: use ABS() instead of abs() for consistency with the rest of Contiki
2016-06-10 15:04:06 +03:00
Atis Elsts
f6967c1f58
read RADIO_PARAM_LAST_RSSI and RADIO_PARAM_LAST_PACKET_TIMESTAMP only after the last packet has been read in TSCH: reading the packet might update these values
2016-06-10 15:04:06 +03:00
Atis Elsts
45510f57fa
TSCH: add option to not to turn off radio during active TSCH timeslots
2016-06-10 15:04:06 +03:00
Atis Elsts
723c7e1117
print TSCH clock drift ppm whenever updated
2016-06-10 15:04:06 +03:00
Atis Elsts
b3afd65b1d
fix a few comments in TSCH
2016-06-10 15:04:06 +03:00
Atis Elsts
0cb222e6e1
add 2-channel TSCH hopping sequence
2016-06-10 15:04:06 +03: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
6c4d5312ae
uip-icmp6.c: call rpl_insert_header only when UIP_CONF_IPV6_RPL is set
2016-06-08 14:03:28 +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
Khaled Qorany
37360aae51
Implementation of the ESMRF engine
2016-06-07 23:08:40 +02:00
Billy Kozak
72b4d38ab3
Put some uip6 temporaries on the stack
...
Some "temporary" variables were declared with static storage duration
for no good reason.
Replaced them with local stack variables wherever they were used.
There are still some variables that are unecesarily given static
duration which I have left alone.
2016-06-07 09:59:46 -06:00
Billy Kozak
ac6a1c5255
Fixed wrong first cycle_start
...
The first time that powercycle() runs, cycle_start is incremented
by CHECK_TIME twice which causes the second cycle to be late.
This commit fixes this.
2016-06-07 08:13:18 -06:00
Simon Duquennoy
8cdff8c21b
Merge pull request #1696 from momote-io/fixes
...
fix ipv6 http socket host handling as in RFC2732
2016-06-05 12:46:59 +02:00
Marco Casaroli
47df9c4e6e
code style
2016-06-04 16:47:52 -03:00
Simon Duquennoy
223a69cef5
Merge pull request #1535 from bkozak-scanimetrics/fix_strcasecmp_warning
...
Fix warning about missing strcasecmp definition
2016-06-04 15:05:06 +02:00
Antonio Lignan
9dc1e57c85
Merge pull request #1683 from msolters/patch-1
...
Fix IPv6 HTTP URL parsing
2016-06-04 07:59:50 +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
b73b6082fc
link_stats_input_callback: do not use EWMA when initializing RSSI
2016-06-03 18:43:35 +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
Marco Casaroli
19e08de0e2
use memchr instead of strchr for checking if host is ipv6
2016-06-03 12:12:24 -03:00
Marco Casaroli
e657ca40e9
return error if host does not fit in host string
2016-06-03 12:11:51 -03:00
Marco Casaroli
cade3c7699
Merge branch 'master' of https://github.com/contiki-os/contiki into fixes
2016-06-03 11:49:04 -03: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
bddf8207ed
Link-stats: use new nbr table API
2016-06-03 16:44:12 +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
2fa239ee8d
Added link-stats module to keep strack of link statistics and their freshness
2016-06-03 15:46:04 +02:00
Simon Duquennoy
4e9b027141
rpl.h: updated constants and comments to match the standard
2016-06-03 15:46:03 +02:00