Commit graph

2473 commits

Author SHA1 Message Date
kshpylon db444e14c3 Update rpl-icmp6.c 2015-02-11 17:26:51 +09:00
Nicolas Tsiftes e67cd7369e Merge pull request #903 from joakimeriksson/rtable-fix
avoid updating routes that already are correct
2015-02-09 21:41:52 +01: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 3aa8a62e41 avoid updating routes that already are correct 2015-02-06 21:14:20 +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
Nicolas Tsiftes 2604260653 Merge pull request #896 from simonduq/32bit-align-packetbuf
Align packetbuf on an even 32-bit boundary
2015-01-21 23:33:51 +01:00
Adam Dunkels 952e1e4da3 Minor style updates 2015-01-09 09:44:07 +01:00
Adam Dunkels e4c387615e If the nameserver pool size is 1, we don't need to maintain a list of servers, but only a single server variable. This saves space. 2015-01-09 09:44:06 +01:00
Víctor Ariño ccc0d27da0 Integrates uip-nameserver API
On the same commit the src have been uncrustified and some typo
fixes as well as includes missing.
2015-01-09 09:44:06 +01:00
Víctor Ariño 27afb5a2ae Implements RDNSS standard
Sends DNS information within RA messages (if enabled)
2015-01-09 09:44:06 +01:00
Víctor Ariño c97dc2c7da Add standardized nameserver pool
Adds a common in contiki nameserver pool for handling name resolution
servers. This will allow in following commit to use RDNSS messages
within RA.
2015-01-09 09:44:06 +01:00
Roger S 605551f62c Update rpl.c
Removed change to "a RPL"
2015-01-04 23:54:02 -05:00
skaterdude c0a451c498 Minor typo fixes in comments only
Noticed a few minor typos, so skimmed through the file and found a few
more.
2015-01-04 23:42:56 -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 ebdcf0d6ed Merge pull request #919 from cetic/pr-ra-user-config
Make RA configuration parameters user configurable
2014-12-20 19:18:28 +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 f28e9587ed Make RA configuration parameters user configurable 2014-12-19 11:24:42 +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 542738192f Bugfix: uip_mss() isn't set until the connection is connected, so we can't set it during socket registration 2014-12-10 09:48:19 +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
Adam Dunkels 72679a819b Merge pull request #898 from g-oikonomou/tcp-rst-fix
Fill IPv6->Next-Hdr field for outgoing RSTs
2014-12-09 10:48:29 +01:00
Adam Dunkels ffc27061fe Correctly set the proto field for the case when tcp_send_noconn is called without tcp_send being called 2014-12-09 09:09:26 +00:00
George Oikonomou 99513f1889 Fill IPv6->Next-Hdr field for outgoing RSTs 2014-12-08 22:00:36 +00:00
George Oikonomou 0dbed5b919 Allow specifying a max outgoing segment size per TCP socket 2014-12-08 21:58:12 +00:00
Nicolas Tsiftes ce914b3173 Merge pull request #890 from simonduq/cleanup-packetbuf
Cleanup packetbuf: use rime attributes and addresses only when rime is e...
2014-12-08 18:20:41 +01:00
Simon Duquennoy c0d6b116d6 Align packetbuf on an even 32-bit boundary 2014-12-03 19:06:00 +01:00
Nicolas Tsiftes b6b5c6efbb Merge pull request #894 from simonduq/ds6-fix
Fix conditional compilation directive in uip-ds6.c
2014-12-03 18:26:51 +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 984c8e007b Fix conditional compilation directive in uip-ds6.c 2014-12-03 17:32:42 +01:00
Nicolas Tsiftes ee7c847048 Merge pull request #888 from adamdunkels/pr/resolv-fixes
Resolv fixes, including CERT VU #210620
2014-12-03 13:18:14 +01:00
Nicolas Tsiftes f82393b983 Merge pull request #889 from adamdunkels/pr/ip64-fix
IP64: randomize source ports for all outgoing connections
2014-12-02 18:27:19 +01:00
Adam Dunkels d21835a61f Don't do the debug printout if ipaddr is NULL 2014-12-02 17:11:15 +01:00
Adam Dunkels 990682229c Automatically initialize the resolv process 2014-12-02 17:11:15 +01:00
Adam Dunkels 19c7ae0dcd Avoid compiler warning about unused variable 2014-12-02 17:11:15 +01:00
Adam Dunkels 769a2f832e Fix for CERT VU#210620: randomize DNS request IDs for every request 2014-12-02 17:10:50 +01:00
Simon Duquennoy bd4233a953 Cleanup packetbuf: use rime attributes and addresses only when rime is enabled. Saves 32 byte per queuebuf in the non-rime case. 2014-12-02 16:54:58 +01:00
Nicolas Tsiftes 397b15f6db Merge pull request #864 from simonduq/cleanup-network-config
Cleanup network config
2014-12-02 16:40:14 +01:00
Adam Dunkels ad744c6218 Randomize source ports for all outgoing connections. Fix for CERT VU#210620. 2014-12-02 16:08:56 +01:00
Nicolas Tsiftes 3c7268c979 Merge pull request #859 from simonduq/move-packetqueue
Moved packetqueue to core/net/rime, as it is only used by the Rime colle...
2014-12-02 13:17:58 +01:00
Simon Duquennoy 415506c3f6 Doxygen fixes 2014-12-02 12:39:16 +01:00
Simon Duquennoy c2ca3e9fdb Cleanup UIP_CONF_IPV6_RPL configuration 2014-12-02 12:38:55 +01:00
Simon Duquennoy a9cc909794 Network layer configuration: replace UIP_CONF_* with NETSTACK_CONF_WITH_* 2014-12-01 21:02:57 +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
Simon Duquennoy 722b3258d1 Cleanup of the Contiki network layer configuration. Now using CONTIKI_WITH_IPV6, CONTIKI_WITH_IPV4, and CONTIKI_WITH_RIME in makefiles, and UIP_CONF_IPV6, UIP_CONF_IPV4, UIP_CONF_RIME in c code. Now only the stacks that are used are compiled (via makefile MODULES). Make IPv6 the default network stack. 2014-12-01 20:13:09 +01:00
Nicolas Tsiftes d3d33c5699 Merge pull request #836 from lebrush/nbr-ll-nup
uip-ds6-nbr: consider reachable node if LL-NUD
2014-12-01 18:12:33 +01:00
Simon Duquennoy 1b73695c75 Moved packetqueue to core/net/rime, as it is only used by the Rime collect protocol 2014-12-01 17:47:00 +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
Víctor Ariño 0f394b220b uip-ds6-nbr: consider reachable node if LL-NUD
The reachable state might also be considered to keep the reachable
state since we are already not standard complaint. This reduces the
nbr discovery messages if nodes talk to each other periodically.
2014-12-01 17:06:14 +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
Nicolas Tsiftes 61ec5bf896 Merge pull request #514 from BastianPoe/contiki-mmem1
mmem: Prevent duplicate init of mmem
2014-11-28 19:57:17 +01:00
Nicolas Tsiftes 9b90c378e8 Merge pull request #812 from kkrentz/packetbuf-holds-broadcast
packetbuf_holds_broadcast()
2014-11-28 19:15:19 +01:00
Nicolas Tsiftes 47096a1bae Merge pull request #816 from kkrentz/contikimac-framer-fix
ContikiMAC framer fix
2014-11-28 19:12:55 +01:00
Nicolas Tsiftes 713d60435a Merge pull request #875 from joakimeriksson/rtablefix
Changed sorting order of routing list (optimization).
2014-11-28 19:09:38 +01:00
kkrentz 6ecbf8af34 ContikiMAC: Retain original copyright 2014-11-25 04:56:09 -08:00
kkrentz 18ee5ce294 ContikiMAC: Added missing length function to contikimac-framer.c 2014-11-25 04:56:09 -08:00
Joakim Eriksson 8e1c52b0ba Changed sorting order of routing list (optimization). 2014-11-24 09:36:54 +01:00
marcas756 b787b27d5b Moved thread states from module to header 2014-11-22 15:49:45 +01:00
Nicolas Tsiftes a8556a7518 Merge pull request #865 from kkrentz/mic-length-fix
llsec: Fixed MIC length
2014-11-20 15:11:13 +01:00
Nicolas Tsiftes e691dec9a4 Merge pull request #828 from oskarnp/pr-ipolite-fix
ipolite: stop ctimer and reset queuebuf pointer when canceling old send
2014-11-20 15:10:42 +01:00
Nicolas Tsiftes eb0676212c Merge pull request #858 from simonduq/cleanup-ctimer
Remove unnecessary list_remove in ctimer.c (list_add automatically remov...
2014-11-18 08:59:41 +01:00
Nicolas Tsiftes 866bb99944 Merge pull request #860 from simonduq/frame802154-align
frame802154_t: make sure dest_addr and src_addr are aligned
2014-11-18 08:59:30 +01:00
Nicolas Tsiftes cba5937bd3 Merge pull request #861 from simonduq/queuebuf-field-order
Alignment of field `data` in queuebuf
2014-11-18 08:38:23 +01:00
Laurent Deru 35e876e8c6 Force NUD on default routers 2014-11-17 09:55:22 +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
kkrentz a3b4e8101d llsec: Fixed MIC length; reject unsupported security levels 2014-11-13 12:34:37 -08:00
kkrentz fb00a217f5 packetbuf: Use packetbuf_holds_broadcast() all-over 2014-11-13 09:58:08 -08:00
kkrentz 3e44e8b258 packetbuf: Added function "packetbuf_holds_broadcast()" for checking whether the current packet is a
broadcast
2014-11-13 09:46:07 -08:00
Nicolas Tsiftes fb05d22623 Merge pull request #857 from simonduq/fix-queuebuf
Added missing memb_free in queuebuf.c
2014-11-13 17:22:44 +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
Enrico Joerns 5a38788944 [doc] llsec moved in net group 2014-11-10 23:53:34 +01:00
Enrico Joerns 81382d0dcf [core/net/rime] Avoid equal group titles in same group 2014-11-10 23:53:32 +01:00
Enrico Joerns e9b5899eed [core/net/mac] Doxygen: Added frame802154 to net group 2014-11-10 23:53:32 +01:00
Enrico Joerns 863b4b54cc [core/net/rime] Doxygen fixes 2014-11-10 23:53:32 +01:00
Enrico Joerns 0b8769e576 [doc] Various fixes for doxygen grouping etc. 2014-11-10 23:53:32 +01:00
Enrico Joerns e4db33f560 [doc] updated settings manager documentation 2014-11-10 23:53:32 +01:00
Enrico Joerns 548321e66d [doc] moved doxygen parts from core/net/simple-udp.c to corresponding
header file
2014-11-10 23:53:32 +01:00
Enrico Joerns cbca2d6604 [doc] fixed some minor typos 2014-11-10 23:53:31 +01:00
Simon Duquennoy 6b7017452b frame802154: move inclusion of linkaddr.h from .h to .c file 2014-11-10 15:43:32 +01:00
Simon Duquennoy df6a435d42 struct frame802154_t: make sure dest_addr and src_addr are aligned 2014-11-10 15:40:24 +01:00
Simon Duquennoy 494c397aba struct queuebuf_data: swap len with data to make sure data is 32-bit aligned 2014-11-10 14:27:17 +01:00
Simon Duquennoy 239207c8c6 Remove unnecessary list_remove in ctimer.c (list_add automatically removes first) 2014-11-10 13:41:33 +01:00
Simon Duquennoy c5ec342b8b Fix deallocation in queuebuf.c, case where QUEUEBUF_STATS is set 2014-11-10 13:24:03 +01:00
Simon Duquennoy 928bb49855 Added missing memb_free in queuebuf.c 2014-11-10 12:00:41 +01:00
Nicolas Tsiftes 6ca95ebc0c Merge pull request #811 from kkrentz/llsec-renaming
llsec renaming
2014-11-07 22:20:15 +01:00
Nicolas Tsiftes b37489b0de Merge pull request #766 from cetic/pr-6lowpan-frag-timeout
Fix too short 6LoWPAN reassembly timeout
2014-11-07 22:16:00 +01:00
Oskar Nordquist 5e640411f5 core/net/rime/ipolite: stop ctimer and reset queuebuf pointer when canceling old send
Ipolite is used by netflood and route-discovery modules among others. If a route request is yet to be re-broadcasted and a local route discovery is started (interval == 0), the previous queuebuf used is freed but ctimer and queuebuf pointer is left unchanged. This causes corrupt route requests to be sent, invalid routing tables to be formed, memcmp() on NULL pointer on receive, and other undefined behavior.

Signed-off-by: Oskar Nordquist <oskar.nordquist@crlsweden.com>
2014-10-21 15:25:52 +02:00
Nicolas Tsiftes 6fb7dd238e Merge pull request #648 from cetic/pr-csma-fixes
High throughput fixes for csma and sixlowpan
2014-10-21 12:17:03 +02:00
kkrentz 0579e304e4 llsec: Renamed ccm to ccm_star & Renamed llsec regression test 2014-10-16 09:21:56 -07:00
Nicolas Tsiftes fd47acba09 Merge pull request #808 from adamdunkels/pr/ip64
Conversion functions for IPv4/IPv6 addresses (missing from the NAT64 pr)
2014-10-10 00:42:37 +02:00
Adam Dunkels 5a24a781d5 The ip64-addr module converts between IPv4 and IPv6 addresses. 2014-10-09 08:07:34 +02:00
Mariano Alvira e803a654b4 Merge pull request #684 from SmallLars/2nd-button
Enabled 2nd button on platform econotag
2014-10-08 14:05:24 -05:00
Nicolas Tsiftes 0a88764185 Merge pull request #804 from adamdunkels/pr/ip64
NAT64 for Contiki (RFC6164, RFC6147)
2014-10-08 19:41:09 +02:00
Adam Dunkels d891d11324 Merge pull request #557 from kkrentz/llsec-integration
Integration of Link Layer Security
2014-10-08 15:45:46 +02:00
Joakim Gebart 24d15ad9a5 core/net/ip: Prevent (tiny) buffer overflow in resolv_found()
An off-by-one error in resolv_found() could make an strncat() call
overflow by the terminating null byte.

When building with Clang the following warning was shown:

../../../core/net/ip/resolv.c:1458:17: warning: the value of the
      size argument in 'strncat' is too large, might lead to a
      buffer overflow [-Wstrncat-size]
                sizeof(resolv_hostname) - strlen(resolv_hostname));
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../core/net/ip/resolv.c:1458:17: note: change the argument to
      be the free space in the destination buffer minus the
      terminating null byte
                sizeof(resolv_hostname) - strlen(resolv_hostname));
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                sizeof(resolv_hostname) - strlen(resolv_hostname) - 1

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
2014-10-02 12:52:39 +02:00
Adam Dunkels 49cb87025e README file for the IP64 module 2014-09-14 21:26:33 +02:00
Adam Dunkels c77bc6d3f1 NAT64 / DNS64 code for Contiki that makes connecting an IPv6 Contiki network to IPv4 networks really easy 2014-09-14 21:26:23 +02:00
Laurent Deru 7cbd59df03 Add per neighbor packet throttle 2014-08-13 10:11:02 +02:00
Laurent Deru 91d84a3086 Improve csma debug traces 2014-08-13 10:11:02 +02:00
Laurent Deru 68b9412776 Drop packet if there are not enough free buffers to perform fragmentation 2014-08-13 10:11:02 +02:00
Laurent Deru 704e32015b Fix too short 6LoWPAN reassembly timeout 2014-08-06 16:56:37 +02:00
kkrentz 677c078302 sicslowpan: Fixed too aggresive fragmentation 2014-08-05 05:07:06 -07:00
kkrentz 2cf7d98cad ContikiMAC: Create and parse ContikiMAC header in special framer; Expanded framer interface
to allow for creating and securing frames in advance; Create and secure frames in advance when sending bursts; Do neither recreate nor resecure frames that come from phase
2014-08-05 05:07:06 -07:00
kkrentz 515287ef17 llsec: Removed superseded NETSTACK_ENCRYPT, NETSTACK_DECRYPT, and
NETSTACK_ENCRYPTION_INIT macros
2014-08-05 05:07:05 -07:00
kkrentz c032b67969 llsec: Noncompromise-resilient 802.15.4 security 2014-08-05 05:07:05 -07:00
kkrentz d8851df858 llsec: Replay protection 2014-08-05 05:07:05 -07:00
kkrentz 41c5dbf961 llsec: Disable duplicate detection when the LLSEC driver provides replay protection anyway. 2014-08-05 05:07:05 -07:00
kkrentz d161ffcb64 llsec: Allow for sharing CCM* 2014-08-05 05:07:05 -07:00
kkrentz 13d9510715 llsec: Allow for sharing AES-128 2014-08-05 05:07:04 -07:00
kkrentz 07ef46a6e2 llsec: Allow for sharing endianness functions 2014-08-05 05:04:15 -07:00
kkrentz eaae9f1100 llsec: Calling NETSTACK_LLSEC.on_frame_created() 2014-08-05 05:04:15 -07:00
kkrentz 8659c97fb0 framer-802154: Support for explicit keys 2014-08-05 05:04:15 -07:00
kkrentz 124dde25f3 framer-802154: Conditional compilation of security-related code 2014-08-05 05:04:14 -07:00
kkrentz fb6d2270ab framer-802154: Simplification of frame802154_create 2014-08-05 05:04:14 -07:00
kkrentz 11495a011c framer-802154: Renamed variable for the sake of consistency 2014-08-05 05:04:14 -07:00
kkrentz 1d324e50d2 framer-802154: Sequence number fix 2014-08-05 05:04:14 -07:00
kkrentz 9dc9e4bd9f framer-802154: Support for setting and accessing the frame type
attribute
2014-08-05 05:04:14 -07:00
kkrentz 19c9ef0a95 framer-802154: Support for creating and parsing frames with security headers 2014-08-05 05:04:14 -07:00
kkrentz be22883724 framer-802154: Introduced mnemonic variable 2014-08-05 05:04:14 -07:00
kkrentz c9ad9c04bd framer-802154: Style fixes 2014-08-04 01:09:57 -07:00
kkrentz a5a9b42457 packetbuf: Made packetbuf_hdrlen applicable to inbound packets, too 2014-08-04 01:09:57 -07:00
kkrentz bb74fc320f llsec: Configuration option for defining a constant LoWPAN-wide security level 2014-08-04 01:09:57 -07:00
kkrentz c396a85364 llsec: Added a layer in between NETSTACK_MAC and NETSTACK_NETWORK for implementing link layer security 2014-08-04 01:09:57 -07:00
Adam Dunkels 62b8aafb03 Merge pull request #722 from royscheefhals/contiki-fix
char * data to void * data parameter in process_start
2014-07-28 22:04:36 +02:00
Nicolas Tsiftes 582bfcb8c6 Merge pull request #696 from sieben/doc
Correct several doxygen tags (\file,...)
2014-07-28 11:42:41 +02:00
Rémy Léone 8c3fa17ec0 Correct several doxygen tags (\file) 2014-07-28 11:11:45 +02:00
Enrico Joerns 1654152193 [core] timer: Added note that timer_reset must not be executed before timer expired
Should save some users debugging time while adding no computation overhead
that would be needed for range checks
2014-07-10 11:33:00 +02:00
Nicolas Tsiftes ccc75404f4 Merge pull request #711 from gebart/upstream-fix-implicit-definitions
uip.h missing #include <string.h>
2014-07-02 16:36:03 +02:00
Rémy Léone f111058472 Removing trailing whitespaces 2014-06-30 20:01:05 +02: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 32a7572f25 Fix SDCC Compile Error 2014-06-17 22:20:49 +01:00
Nicolas Tsiftes 24e260910c Merge pull request #718 from g-oikonomou/rpl-dodagid-compliance
Make DODAG ID selection RFC 6550-compliant
2014-06-13 15:33:56 +02:00
Nicolas Tsiftes 4ce3e4dee8 Merge pull request #701 from tim-ist/routing_fix
Re-create a routing table entry if the next hop is changed.
2014-06-13 14:56:56 +02:00
Timofei Istomin 65ef375bdb Re-create a routing table entry if the next hop is changed.
The next-hop address did not get updated in the routing table
in case an entry for the destination already existed.

This patch resolves the issue by removing the entry and
having it re-created from scratch.

The issue causes a routing error triggering reconstruction of
the DODAG through version increase.

In case of somewhat frequent downward traffic in not (yet) stabilized DODAG
a vicious circle is formed: unstable topology means churn, downward
routing under churn causes reconstruction of DODAG. In this situation
the network does not have chance to stabilize.

We encountered a constant churn caused by this bug
in a network of 50 nodes and a periodic traffic (a packet every 5
seconds) generated at the root.

More info and a PCAP demonstrating the issue can be found here:
https://github.com/contiki-os/contiki/issues/496
2014-06-13 13:31:15 +02:00
Roy Scheefhals 1058ea986a Changed the parameter 'char * data' of process_start to the
type process_data_t. This was an artifact when the choice was
made to use the void * type for the data parameter in processes.

Changed parameter 'void * data' of process_post_synch to
process_data_t for consistency.

Checked all the uses of process_start() in contiki and fixed casts
of the data parameter.
2014-06-12 13:40:28 +02:00
George Oikonomou 32bc98b0da Fix code style in rpl_set_root prototype 2014-06-11 23:59:17 +01:00
Adam Dunkels cff30a394b Merge pull request #635 from nfi/linkaddr-size
Use LINKADDR_SIZE instead of sizeof(linkaddr_t) to avoid struct padding problems.
2014-06-11 23:18:27 +02:00