Commit graph

11174 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
Nicolas Tsiftes 4c5fa6ff5d Merge pull request #713 from adamdunkels/pr/drop-iris
Remove the unmaintained iris platform
2014-06-13 12:57:52 +02:00
Oliver Schmidt e2d56395ea Merge pull request #725 from oliverschmidt/master
Enhanced Ethernet drivers.
2014-06-12 23:40:25 +02:00
Oliver Schmidt d955b179eb Merge remote-tracking branch 'upstream/master' 2014-06-12 22:57:46 +02:00
Oliver Schmidt a5d7a06027 Enhanced Ethernet drivers.
Made Ethernet drivers easier to consume by assembly programs.
* Replaced function pointers with JMP instructions.
* Provide return values additionally via Carry flag.

Reset Ethernet chips on initialization.
Both for the CS8900A and the W5100 the data sheets just say that
the RESET bit is automatically cleared after the RESET. This may
be interpreted in two ways:
1) There's no need to be afraid of reading the RESET bit as 1 and
unintentionally trigger a RESET by writing it back after ORing in
some other bit.
2) The RESET process isn't complete before the RESET bit hasn't
become 0 again.
It's impossible for me to empirically falsify the latter option
as the drivers are supposed to work on faster machines than the
ones I have access to. And if the RESET process includes things
like oscillators then the time to complete the RESET could differ
even between multiple exemplars of the same chip. Therefore I
opted to presume the latter option.
However that means a non-exsistent chip may cause an infinite
loop while waiting for the RESET bit to be cleared so I finally
added code to detect the presence of the Ethernet chips. There's
a risk of a chip being locked up in a way that makes the detection
fail - and therefore the RESET not being performed. This catch-22
needs to be solved by the user doing a hard RESET.
2014-06-12 22:56:35 +02:00
Adam Dunkels 5bcdbb22cc Merge pull request #724 from adamdunkels/pr/toggle
Quick travis fail fix: leds_toggle()
2014-06-12 21:41:54 +02:00
Adam Dunkels 14aedabffd Updated to match the new leds_toggle() API 2014-06-12 20:02:33 +02:00
Adam Dunkels 60e8b29d53 Merge pull request #721 from g-oikonomou/relocate-gnurl78
Download the RL 78 toolchain from a different URL
2014-06-12 20:02:14 +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 9df2572c5d Download the RL 78 toolchain from a different URL
Fixes #720
2014-06-12 09:10:26 +01:00
George Oikonomou a9e7bea675 Make DODAG ID selection RFC 6550-compliant
Some calls to `rpl_set_root` select a hardcoded DODAG ID
(0x1111, 0x1100, 0, 0, 0, 0, 0, 0x0011)

This is against what RFC 6550 says. We change these calls
to select a DODAG ID corresponding to a routable v6 address
corresponding to the root
2014-06-12 00:09:53 +01:00
George Oikonomou 32bc98b0da Fix code style in rpl_set_root prototype 2014-06-11 23:59:17 +01:00
Ian Martin e5add3d1f8 Make protothread semaphores interrupt-safe. 2014-06-11 18:44:59 -04:00
Adam Dunkels bf7e191ef3 ENC28j60 Ethernet driver code 2014-06-12 00:03:44 +02: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
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
Adam Dunkels 9ceb059c21 Merge pull request #611 from nfi/cc2x20-sfd-config
Corrected CC2x20 sfd config and startup message.
2014-06-11 23:17:05 +02:00
Adam Dunkels f13184383c Merge pull request #613 from nfi/distclean
Fixed distclean to work when CONTIKI_PROJECT is set to multiple files.
2014-06-11 23:16:36 +02: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
Adam Dunkels def57199b9 Merge pull request #511 from ADVANSEE/leds
leds: Fixes and enhancements
2014-06-11 22:37:34 +02:00
Adam Dunkels d7e4443ab2 Remove the unmaintained iris platform 2014-06-11 19:52:19 +02:00
Nicolas Tsiftes 40d33657a3 Merge pull request #710 from nvt/coffee-filename-fix
Coffee: Copy the correct number of bytes in filenames
2014-06-11 18:10:12 +02:00
Joakim Gebart 997aef49d8 core/net/uip.h: Add missing #include <string.h>
Fixes implicit definition of memcmp() warnings/errors.

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
2014-06-11 18:04:34 +02:00
Nicolas Tsiftes fb4fc312f1 Merge pull request #612 from nfi/assert
Undefine the assert macro to avoid compiler warning.
2014-06-11 15:43:17 +02:00
Nicolas Tsiftes 7004355c0f Do not copy more bytes than the filename string contains. 2014-06-11 14:10:00 +02:00
George Oikonomou 3552376324 Merge pull request #702 from g-oikonomou/ieee-addr-fixes
Fix incorrect IEEE address byte re-ordering
2014-06-11 09:54:52 +01:00
George Oikonomou 48196bace3 Merge pull request #694 from g-oikonomou/fix-surplus-travis
Improve travis RL78 tests
2014-06-11 09:39:40 +01:00
Oliver Schmidt fd3078d6bb Merge pull request #706 from oliverschmidt/master
Build static Ethernet drivers directly from source.
2014-06-10 00:08:21 +02:00
Oliver Schmidt a0961fc3c4 Build static Ethernet drivers directly from source. 2014-06-09 23:35:19 +02:00
Oliver Schmidt f124425ee1 Build static Ethernet drivers directly from source. 2014-06-09 23:14:11 +02:00
Nicolas Tsiftes da8e9a3e8d Merge pull request #655 from atiselsts/stm32_patches
Fix inconsistent usage of short/long integer type in mbxxx platform's configuration file.
2014-06-07 23:21:59 +02:00
Nicolas Tsiftes 350c83c947 Merge pull request #656 from atiselsts/native_platform_patches
Minor improvements for the native platform
2014-06-07 23:06:36 +02:00
George Oikonomou 9d7c3b9866 Improve documentation for the CC2538 IEEE address re-ordering 2014-06-06 18:33:28 +01:00
George Oikonomou 5acc20fc47 Improve code style 2014-06-06 18:32:58 +01:00
George Oikonomou 623d6084e7 Make the CC2538 secondary IEEE address location configurable 2014-06-06 18:15:07 +01:00
George Oikonomou e6128a1123 Merge pull request #703 from sieben/gitignore
Adding tunslip to gitignore
2014-06-06 18:08:22 +01:00
LudovicW 66edb5b263 Fix incorrect IEEE address byte re-ordering 2014-06-06 17:22:33 +01:00
Rémy Léone e6c003b312 Adding tunslip to gitignore 2014-06-06 15:05:11 +02:00
George Oikonomou 2e166a83c7 Merge pull request #691 from hexluthor/rts-cts
CC2538: Add hardware flow control (RTS/CTS) support on UART1.
2014-06-04 09:22:58 +01:00
George Oikonomou ba9c2d40eb Merge pull request #682 from g-oikonomou/watchdog-cc2538
Confine CC2538 WDT on/off conf inside the driver
2014-06-03 22:05:08 +01:00
George Oikonomou 25cd0788a6 Merge pull request #683 from g-oikonomou/sensinode-modules
Fix MODULES for the Sensinode platform
2014-06-03 22:03:42 +01:00
Adam Dunkels 64f65b4e45 Merge pull request #617 from nfi/extended-radio-api
Extended radio API with support for setting channel, pan id, addressing modes, etc
2014-06-03 21:32:53 +02:00
Ian Martin 274b3dcd0b CC2538: Add hardware flow control (RTS/CTS) support on UART1. 2014-06-03 12:38:24 -04:00
Nicolas Tsiftes 3650950460 Merge pull request #678 from simonduq/sky-disable-ndp
Disable IPv6 Neighbor Discovery Protocol by default on the sky platform
2014-06-02 10:52:07 +02:00
Nicolas Tsiftes 039dc5fb73 Merge pull request #667 from simonduq/ipv6-ndp-in-default-conf
Add UIP_CONF_ND6_SEND_NA to contiki-default-conf.h
2014-06-02 10:51:52 +02:00
George Oikonomou 7c6b95b5ab Improve travis RL78 tests
* No longer apt-get install a bunch of packages which are not really needed
* Only install gnurl78 if its download succeeded
2014-06-01 20:50:47 +01:00
George Oikonomou 17a935ddf5 Merge pull request #689 from sieben/doc
Closing doxygen groups
2014-06-01 17:36:15 +01:00
Rémy Léone 25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +02:00
Lars Schmertmann 879fd8de81 Added mc1322x functions 2014-05-23 12:12:26 +02:00
Lars Schmertmann 50481722a8 Enabled 2nd button on platform econotag 2014-05-23 11:50:12 +02:00