Commit graph

137 commits

Author SHA1 Message Date
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
Adam Dunkels
eceaf0c59b Merge pull request #631 from nfi/framer-len
Added function to framer that returns the estimated header length
2014-06-11 23:17:47 +02:00
Rémy Léone
25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +02:00
Jens Dede
446208dc1c Merge branch 'master' of git://github.com/contiki-os/contiki into ds6_period_configurable 2014-04-18 13:33:01 +02:00
Jens Dede
96a70f9ab0 Rename as suggested by g-oikonomou 2014-04-18 13:32:40 +02:00
Niclas Finne
68730566a3 Added method to framer that returns the header length if the framer
would create a header with the current packet information.

This allows sicslowpan to calculate the max payload size without
consuming a sequence number or clearing/restoring the packet buffer.
2014-04-11 17:03:23 +02:00
George Oikonomou
529ab761ac Register generic ICMPv6 handlers for ROLL TM 2014-04-04 00:09:29 +01:00
George Oikonomou
1d3da44991 Register generic ICMPv6 handlers for IPv6 ND 2014-04-04 00:09:26 +01:00
George Oikonomou
af43d2125b Register generic handlers for ICMPv6 Echo Request / Reply 2014-04-04 00:02:53 +01:00
George Oikonomou
1d84962e80 Replace old switch-based ICMPv6 type/code management 2014-04-04 00:02:53 +01:00
George Oikonomou
b6978b30e8 Declare and Implement generic ICMPv6 handler management 2014-04-04 00:02:52 +01:00
George Oikonomou
e044fa5cab Factor out multicast stats 2014-03-05 21:04:50 +00:00
George Oikonomou
54b55e96c4 Check Tactive irrespective of suppression 2014-03-05 20:31:19 +00:00
George Oikonomou
9f4cdab1fb Don't advertise datagrams older than Tactive 2014-03-05 20:31:19 +00:00
George Oikonomou
775928fa3f Improve sliding window inclusion in ICMPv6 messages
Don't include a sliding window in the ICMPv6 datagram
unless the window has at least one active datagram
associated with it
2014-03-05 20:31:19 +00:00
George Oikonomou
7fb99ed7c2 Point to the correct trickle param 2014-03-05 20:31:18 +00:00
George Oikonomou
230881df44 Multicast README 2014-03-05 20:31:17 +00:00
George Oikonomou
226701b098 Implement multicast engine hooks in the uIPv6 core
- init()
  - process incoming multicast datagram
  - Pass ICMPv6 trickle messages to the engine
2014-03-05 20:31:16 +00:00
George Oikonomou
151533b9bc Implementation of the Trickle multicast engine 2014-03-05 20:31:16 +00:00
George Oikonomou
6f3a1eb032 Implementation of the SMRF multicast engine 2014-03-05 20:31:16 +00:00
George Oikonomou
0ad09aa842 We now know how to select our source address for outgoing routable multicast datagrams 2014-03-05 20:31:15 +00:00
George Oikonomou
64c21638cd Multicast routing table manipulation
We store multicast routes in a separate table since we don't need
as much information as we need for normal routes
2014-03-05 20:31:15 +00:00
George Oikonomou
e85d935ccc Multicast common header files 2014-03-05 20:31:15 +00:00
George Oikonomou
be098f39e8 Define a new ICMPv6 message type for Trickle Multicast
Pending IANA allocation, we currently use private experimentation
2014-03-05 20:31:14 +00:00
Jens Dede
5e5b6fc3f4 Make the period for the uip-ds6 periodic task configurable 2014-02-07 12:34:49 +01:00
Oliver Schmidt
e16521e5c1 Merge pull request #550 from oliverschmidt/master
Avoid compiler warnings.
2014-01-31 16:22:53 -08:00
Oliver Schmidt
a94e7e63e2 Avoid compiler warnings. 2014-02-01 00:46:57 +01:00
Adam Dunkels
47e4113845 Changed the variable names that access the packetbuf code so that they are called packetbuf_* instead of rime_* 2014-01-29 23:02:00 +01: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
8eace27f9b Moved net/rime.h to net/rime/rime.h 2014-01-26 23:20:45 +01:00
Adam Dunkels
0fe08205e1 Moved the rimeaddr.[ch] code from the core/net/rime module to the core/net module, as it is used not only by rime code 2014-01-26 23:20:36 +01:00
Adam Dunkels
0a7733c1ab IPv6 module should also include the core/net/rpl module 2014-01-26 23:20:30 +01:00
Adam Dunkels
41050794a4 Include the core/net and core/net/ip modules in the core/net/ipv6 module 2014-01-26 23:20:25 +01:00
Adam Dunkels
cb02e67b29 Replaced the old Makefile.uip with module makefiles 2014-01-26 23:20:24 +01:00
Adam Dunkels
5f3fe7f7c7 Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
Adam Dunkels
afdeed1c64 Moved IPv6 files into the net/ipv6 module 2014-01-26 23:20:22 +01:00