Commit graph

2381 commits

Author SHA1 Message Date
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
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 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
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
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
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
Rémy Léone 25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +02:00
Lars Schmertmann 50481722a8 Enabled 2nd button on platform econotag 2014-05-23 11:50:12 +02:00
Nicolas Tsiftes 443bbd3948 Merge pull request #664 from simonduq/rpl-link-metric-init-fix
RPL MRHOF: bypass EWMA when setting a parent's link metric for the first time
2014-05-14 16:42:29 +02:00
Jens Dede 8820597cca Merge branch 'master' of git://github.com/contiki-os/contiki into ds6_period_configurable 2014-05-08 09:27:43 +02:00
Simon Duquennoy 5aab392a22 Set default link ETX to 2 2014-05-07 16:27:24 +02:00
Nicolas Tsiftes f34165bda4 Merge pull request #647 from cetic/pr-select-dag-fix
rpl_select_parent: Only check parents belonging to the given dag
2014-05-07 16:13:47 +02:00
Nicolas Tsiftes 812a0299a8 Merge pull request #649 from cetic/pr-dio-preference-fix
Add user configuration of DIO preference field
2014-05-07 16:12:56 +02:00
Simon Duquennoy 7367eb1829 Add UIP_CONF_ND6_SEND_NA to contiki-default-conf.h 2014-05-05 19:52:52 +02:00
Simon Duquennoy 33cfd92475 RPL MRHOF with ETX: bypass weighted moving average when setting a parent's link metric for the first time 2014-04-29 16:25:16 +02:00
Laurent Deru 3b503da680 Add user configuration of DIO preference field 2014-04-18 16:26:23 +02:00
Laurent Deru 3fb0d69be6 Remove duplicated configuration parameters definition 2014-04-18 15:37:31 +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
Laurent Deru 79537a6dd7 rpl_select_parent: Only check parents belonging to the given dag 2014-04-18 11:39:33 +02:00
Brad Campbell a96dc90250 [SPI] Make SPI_FLUSH() more versatile
Currently the SPI driver in core/ sets `SPI_FLUSH()` to be a single read
of the spi RX buffer. This is fine for many microcontrollers, but newer
platforms like the CC2538 have a multi-byte FIFO for the RX buffer. In
that case, a single read is not guaranteed to flush the RX. This commit
allows `SPI_FLUSH()` to be platform dependent if needed, but doesn't
change for platforms where it works.
2014-04-15 14:04:42 -04:00
Nicolas Tsiftes ce2ed95b93 Merge pull request #585 from g-oikonomou/generic-icmp6-in-hooks
Generic ICMPv6 input hooks
2014-04-14 16:12:10 +02:00
Niclas Finne b1335b08a8 Changed to use LINKADDR_SIZE instead of sizeof() to select between
short address and long address as some platforms might use padding in
the struct. This fixes #555.
2014-04-11 17:24:16 +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
Nicolas Tsiftes 3829860c3c Merge pull request #620 from adamdunkels/push/socket-api
New TCP and UDP socket APIs
2014-04-09 22:12:59 +02:00
Adam Dunkels 1075effa22 Include udp-socket.h and tcp-socket.h by default in all applications that include contiki-net.h 2014-04-09 22:01:18 +02:00
Niclas Finne 8ea9cb7693 Split the radio parameter ADDRESS_HANDLER into RX_MODE and TX_MODE. 2014-04-09 21:25:40 +02:00
Nicolas Tsiftes 2284ef5ef2 Enhanced the documentation. 2014-04-08 16:42:16 +02:00
Nicolas Tsiftes a7dbf46b8e Merge pull request #608 from nvt/rpl-fixes
Minor RPL improvements
2014-04-07 11:13:38 +02:00
George Oikonomou 529ab761ac Register generic ICMPv6 handlers for ROLL TM 2014-04-04 00:09:29 +01:00
George Oikonomou 017697f91d Register generic ICMPv6 handlers for RPL 2014-04-04 00:09:27 +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
Niclas Finne 5f265ced2f Added stub for extended radio API for nullradio 2014-04-03 13:38:18 +02:00
Niclas Finne 5112082a48 Extended radio API definitions with support for setting channel, pan id, etc. 2014-04-03 13:38:06 +02:00
Nicolas Tsiftes 429024f0a1 Merge pull request #609 from adamdunkels/push/csma-fix
CSMA bugfix: count transmissions correctly
2014-03-28 17:27:30 +01:00
Nicolas Tsiftes 0a202d3952 Cleaned up some of the comments and output strings. 2014-03-28 13:38:52 +01:00
Nicolas Tsiftes afbb82030e Ensure that the objective function's reset function is called at least once. This will enable the objective function to initialize itself during run-time. 2014-03-28 13:38:52 +01:00
Niclas Finne db3a42fc43 Redefine assert if already defined since some platforms already have an assert definition 2014-03-28 11:38:38 +01:00
Nicolas Tsiftes 7f4d3e3d7b Avoid calling rpl_lock_parent for uninitialized memory. Renamed p to parent to make reading easier. 2014-03-27 15:55:38 +01:00
Nicolas Tsiftes 1c560fb9db The check should be whether RPL_DIS_SEND is non-zero, not whether it is defined. 2014-03-27 15:44:18 +01:00
Nicolas Tsiftes 5aca90e73d Use the same scale for ETX calculation as for rank calculations to avoid conversion errors between the two. 2014-03-27 15:44:15 +01:00
Adam Dunkels d53ba5aa3c The TCP socket API code 2014-03-24 08:42:28 +01:00
Adam Dunkels d1d82eb179 The UDP socket API code 2014-03-24 08:42:13 +01:00
Adam Dunkels 5b1a9f5bc2 Bugfix: when a packet is sent by the RDC layer, we should count the number of transmissions made because a single callback can pertain to multiple transmissions at the RDC layer. 2014-03-24 08:36:18 +01:00
Adam Dunkels ce4bb5360b Merge pull request #364 from g-oikonomou/multicast-push
Add Support for IPv6 Multicast
2014-03-18 10:11:11 +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 da4ce5b54d RPL Multicast group management with MOP 3 2014-03-05 20:31:15 +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 68c5584488 New uip_is_addr macros for multicast addresses 2014-03-05 20:31:14 +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
George Oikonomou 067bbc9ee0 Check for DAO fwd loop early, before processing DAO options 2014-03-05 20:18:14 +00:00
Nicolas Tsiftes aef0e9eae6 Ensure that the file end is updated in the original file extent if it has been overwritten through a micro log operation. 2014-03-03 21:27:26 +01:00
Daniel Willmann 60adaaad34 mmem: Prevent duplicate init of mmem
This could seriously corrupt data if mmem_init was called again after
someone called mmem_alloc.
2014-02-07 14:42:11 +01: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 765e9acded Merge pull request #499 from adamdunkels/bold/modularize-everything
A bold move: modularize everything
2014-01-29 08:17:10 -08:00
Adam Dunkels b6c4f50bea Merge pull request #538 from cskiraly/collect-fixes
collect: making some protocol parameters configurable by COLLECT_CONF_
2014-01-26 14:23:08 -08:00
Adam Dunkels 24155ee0ae Moved the custom strncasecmp code into a separate module, since it cannot be compiled on all platforms 2014-01-26 23:20:46 +01:00
Adam Dunkels b244f30480 Moved the ctk files from core/lib into core/lib/ and core/lib/libconio 2014-01-26 23:20:46 +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 fce84c178c Removed unused rime-udp code 2014-01-26 23:20:45 +01:00
Adam Dunkels 8eace27f9b Moved net/rime.h to net/rime/rime.h 2014-01-26 23:20:45 +01:00
Adam Dunkels a40a73db9a Made a module out of the core/ctk code 2014-01-26 23:20:44 +01:00
Adam Dunkels 112e0d6855 Removed reliance on the core/net/ipv4 module 2014-01-26 23:20:37 +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 13f8837422 Made core/lib into a module 2014-01-26 23:20:32 +01:00
Adam Dunkels 25367fb08c Moved the ds2411 driver into a dev/ds2411 module 2014-01-26 23:20:31 +01:00
Adam Dunkels c9efe3c3c4 Moved the cc2520 driver into its own dev/cc2520 module 2014-01-26 23:20:31 +01:00
Adam Dunkels 4cfe6c4a5e Moved the sht11 driver to its own module 2014-01-26 23:20:30 +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 7e29601639 Turn core/net/rpl into a module 2014-01-26 23:20:29 +01:00
Adam Dunkels cc9c83448c Makefile for the core/dev module 2014-01-26 23:20:29 +01:00
Adam Dunkels 2be50a044a Makefile for the core/sys module 2014-01-26 23:20:28 +01:00
Adam Dunkels 0f255606b0 Turned sicslowmac into a module 2014-01-26 23:20:28 +01:00
Adam Dunkels bc336007c4 Include the core/net module by default in the core/net/ip module 2014-01-26 23:20:27 +01:00
Adam Dunkels 0b805e4763 Moved the cc2420 driver into a separate dev/cc2420 module 2014-01-26 23:20:27 +01:00
Adam Dunkels b78ab6753c Added makefiles to make core/net/mac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels d777ae14e4 Moved cxmac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels 083fe0b594 Moved the contikimac code into a core/net/mac/contikimac module 2014-01-26 23:20:25 +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 c80615913f Include the core/net and core/net/ip modules in the core/net/ipv4 module 2014-01-26 23:20:25 +01:00
Adam Dunkels d10a0f8830 Made the rime code into a separate module 2014-01-26 23:20:24 +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
Adam Dunkels 06c83ffb91 Moved IPv4 files into the net/ipv4 module 2014-01-26 23:20:21 +01:00
Adam Dunkels 65eba46be2 Moved all generic IP files into the net/ip module 2014-01-26 23:20:21 +01:00
Adam Dunkels 17d48c6d7a Merge pull request #504 from adamdunkels/push/ping-reply-api
A ping reply API
2014-01-26 14:03:21 -08:00
Martin Heusse 662eb4db14 Fix compilation error when DEBUG enabled in core/net/mac/framer-nullmac.c 2014-01-24 20:23:26 +01:00
Csaba Kiraly d1822b5880 collect: making some protocol parameters configurable by COLLECT_CONF_ style defines
TTL (which has a rather low default of 15), MAC level retransmissions,
overall number of retransmissions, and the header bits dedicated to these
were all fixed in the collect.h and collect.c, without a simple way to
override them.
Extracted these as COLLECT_CONF_ parameters, keeping defaults as they were
before.

Signed-off-by: Csaba Kiraly <kiraly@disi.unitn.it>
2014-01-24 12:53:16 +01:00
Adam Dunkels c8c7c4ae3a Add comments to the #else and #endifs to make it clearer to what #ifdef they belong. 2014-01-21 20:58:31 +01:00
Benoît Thébaudeau 9846216358 leds: Add the leds_set() function
The leds_set() function is added on top of leds_arch_set() in order to have a
means of displaying a pattern on a set of LEDs, while keeping the ENERGEST
information up to date, which would be missing with a direct call to
leds_arch_set().

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2014-01-07 13:03:14 +01:00
Benoît Thébaudeau 7f48057b9e leds: Fix the API
The leds API did not work in some cases. E.g. with the following sequence:
  leds_off(LEDS_ALL);
  leds_toggle(LEDS_GREEN);
  leds_off(LEDS_ALL);
the green LED was remaining on after the last call.

This was caused by the toggle feature made synonymous with the invert feature,
although it is unrelated. leds_toggle() is indeed supposed to toggle an LED,
while leds_invert() is supposed to change the active level of an LED. However,
all users of leds_invert() actually meant leds_toggle(), and the invert feature
does not make sense in this module because it is not handy due to successive
calls to leds_invert() changing the intended behavior, and hardware active
levels should be managed in leds_arch_set() (e.g. by XORing the passed value
with a hardware-specific constant before setting the output levels of the pins).

Consequently, this change:
 - removes the leds_invert() function,
 - makes leds_toggle() behave as expected relatively to leds_off() / leds_on(),
 - sanitizes the code in the leds module.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2014-01-07 13:02:41 +01:00
Adam Dunkels 9e8733e57a Correct the operator in the comment so that it matches the actual #if 2013-12-18 08:35:06 +01:00
Adam Dunkels 9275322b51 Merge pull request #502 from adamdunkels/push/fix-the-ipv6-bugfix
Fix the IPv6 bugfix
2013-12-16 13:52:14 -08:00
Adam Dunkels 9114cd3215 Added an API for getting a callback when a ping reply is received. 2013-12-13 08:36:51 +01:00
Adam Dunkels a6a081e67d Fixed a severe error in the bugfix: the conditional was reversed. The check must be if the TCP MSS is larger than the BUFSIZE and not the other way around. 2013-12-12 22:43:28 +01:00
Adam Dunkels ef83850e63 Removed redundant #ifdef 2013-12-12 22:20:20 +01:00
Adam Dunkels c0b3c87ba7 Make 0 the default link-layer header length, as far as uIP is concerned. Most currently used linke layers (specifically, 802.15.4) has adaptation layers that use separate buffers, so there is no need to reserve space in the uIP buffer. 2013-12-12 22:20:09 +01:00
Adam Dunkels c7e0fa7152 Moved #defines so that UIP_TCPIP_HLEN and UIP_LLH_LEN are defined before they are used 2013-12-12 20:57:35 +01:00
Adam Dunkels ae5a3f9f67 Bumped the version number from 2.6 to 3.x, which is to be used in the development branch 2013-12-12 17:33:18 +01:00
Nicolas Tsiftes a8a9b66eff Merge pull request #457 from adamdunkels/push/uip6-bugfixes
IPv6 bugfixes
2013-12-12 05:02:39 -08:00
Nicolas Tsiftes 75cbf4f48a Merge pull request #479 from adamdunkels/push/cleanup-xmac-and-lpp
Remove xmac.c and lpp.c
2013-12-04 04:57:27 -08:00
Nicolas Tsiftes 7b1e3d1c94 Merge pull request #460 from adamdunkels/push/routelist
IPv6 routes LRU
2013-11-29 05:23:05 -08:00
Nicolas Tsiftes 65392ce59e Merge pull request #474 from adamdunkels/push/cleanup-vnc
Remove the VNC client and server
2013-11-29 05:07:53 -08:00
Adam Dunkels 0908924f91 Removed the lpp.c code 2013-11-28 15:24:40 +01:00
Adam Dunkels f86aaf7c14 Removed the xmac.c code 2013-11-28 15:24:22 +01:00
Adam Dunkels 611c659e51 Removed the VNC/CTK server and the VNC viewer app 2013-11-28 14:10:47 +01:00
Adam Dunkels 0fd503af42 Removed the experimental checkpointing code 2013-11-28 14:09:17 +01:00
Nicolas Tsiftes db4cada4e7 Merge pull request #462 from adamdunkels/push/no-reserved-double-inclusion-defines
Remove all leading double underscore inclusion #defines
2013-11-26 14:26:37 -08:00
Benoît Thébaudeau 4deba89f81 rdc: duplicate packets: Keep only the last sequence number for each address
According to IEEE 802.15.4e (§6.4.3.9), in order to detect duplicate received
MAC-layer frames, only the most recently received frame's sequence number needs
to be stored for each unique device address. Doing so limits the possible false
duplicate packet detections to a single sequence number. This also allows to
keep the last sequence number of more device addresses for the same value of
MAX_SEQNOS.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Benoît Thébaudeau 477a4a7178 rdc: duplicate packets: Factor out detection code
The code detecting duplicate packets in the RDC layer had been copied into most
RDC implementations. Factor it out into a new mac-sequence module in order to
have a single instance of this code.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Benoît Thébaudeau 14db3382af csma: Initialize sequence number with random value
According to IEEE 802.15.4 (§5.1.6.1, §6.4.2), the MAC sequence numbers should
be initialized to random values. This was already the case in
framer-802154.c:create(), but not in csma.c:send_packet(), sometimes causing
false detections of duplicate MAC-layer packets in other devices when a device
was restarted too quickly. This patch decreases the probability of such an
event.

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Nicolas Tsiftes acee82abbb Merge pull request #456 from adamdunkels/push/6lowpan-changes
6lowpan changes
2013-11-24 15:37:12 -08:00
Adam Dunkels bb2dcaa057 A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
Nicolas Tsiftes 7283e48f09 Merge pull request #454 from adamdunkels/push/dao-updates-rebased
RPL feather mode
2013-11-24 07:49:49 -08:00
Adam Dunkels b0460317b8 Moved variable declaration to the start of the function block 2013-11-24 15:17:52 +01:00
Adam Dunkels faff1c2a7e Preliminary support for RPL node types. This change allows a node to be in any of three given types:
* Mesh: this is the normal case. Nodes route data on behalf of others and the node can be reached via a DAO route.
* Leaf: the node does not route data on behalf of others, but others can route data to the node (it has a RPL DAO route).
* Feather: this is a new type of node. A feather node routes data on behalf of others, but does not install DAO routes in the network. Feather nodes allow having a larger number of nodes than the RPL network can sustain in terms of routing tables.

This commit introduces the RPL node types and the feather mode, but does not add support for the leaf node type.
2013-11-24 15:17:52 +01:00
Adam Dunkels af24d07848 Forward no-path DAOs up the tree to allow the root to repair the network if needed 2013-11-24 15:17:52 +01:00
Adam Dunkels 9039b0ecd8 Remove references to the now unused dag->parents list 2013-11-24 15:17:52 +01:00
Adam Dunkels 4e6fe7dda6 Add a neighbor table entry if a DAO is received from a node where we don't yet have a neighbor table entry. 2013-11-24 15:17:52 +01:00
Adam Dunkels 490791eaa4 Add a check for the case when the parent neighbor may have gone away to avoid using a NULL pointer 2013-11-24 15:17:52 +01:00
Adam Dunkels 0ed7db0f9b Slight improvements in debug messages 2013-11-24 15:17:52 +01:00
Adam Dunkels fc1adec1b8 Made it a bit more clear what function that gets called when a neighbor is removed 2013-11-24 15:17:51 +01:00
Adam Dunkels 61ea7fbb1c RPL DAO timers and management:
* Added a DAO lifetime timer that sends out a new DAO after half the lifetime of the DAO. This allows implementing DAO route soft state that avoids routing tables in the network keeping stale routes for ever.
* Added ways to schedule a new DAO transmission as well as cancelling an active DAO transmit timer, which makes it possible to do nodes that don't send DAOs.
2013-11-24 15:17:51 +01:00
Adam Dunkels 454088c117 Removed old, unused rawpacket code 2013-11-24 11:02:35 +01:00
Adam Dunkels 19b32c54c0 Removed the old unused hc.[ch] code 2013-11-24 11:02:35 +01:00
Adam Dunkels 9819c5b5b8 Rewrote the IPv6 route management so that all routes are maintained on a list that is ordered by the time at which the route was accessed. If a new route is added to the system, the oldest route is dropped. 2013-11-22 18:00:47 +01:00
Adam Dunkels ea4bc3816f Produce an error if the UIP_TCP_MSS is too large for UIP_BUFSIZE 2013-11-22 15:46:48 +01:00
Adam Dunkels 61a8fa9977 Allow the default TTL to be configured with UIP_CONF_TTL 2013-11-22 15:44:48 +01:00
Adam Dunkels d577d03e21 Bugfix: correctly handle the case if uip_sappdata is NULL. 2013-11-22 15:38:20 +01:00
Adam Dunkels f31d6f271f Bugfix: if a SYN is received in the SYN_RCVD state we should not send a blank SYN, but a SYNACK in response. 2013-11-22 15:37:21 +01:00
Adam Dunkels b31e84649a If the 6lowpan layer is currently reassembling a packet, and a non-fragmented packet comes along, this is a sign that one of the fragments were lost (as they normally would arrive back-to-back, in sequence). So we'll grab the non-fragmented packet instead of dropping it. 2013-11-22 15:12:02 +01:00
Adam Dunkels 3788b08780 Added a way to get the RSSI of the last received packet 2013-11-22 15:10:44 +01:00
Ari Suutari c1c64dd1cc Received UDP packet was counted twice in statistics, first in udp_input and then again in udp_found.
Fix this to use same logic as in uip.c: valid packet is counted only in udp_found.
2013-11-22 08:16:05 +02:00
Oliver Schmidt 1fdeb4c788 Changed handling of predefined macros in cc65 allows for simplification. 2013-11-20 20:55:56 +01:00
Nicolas Tsiftes 0e24fb0bc0 Merge pull request #432 from adamdunkels/push/154-len
Allow the 802.15.4/6lowpan code to operate on packets larger than 256 bytes
2013-11-20 05:23:26 -08:00
Nicolas Tsiftes 263e212427 Merge pull request #431 from adamdunkels/push/ipv6-const
Make IP addresses const
2013-11-20 04:26:05 -08:00
Nicolas Tsiftes d183b87f4b Merge pull request #434 from adamdunkels/push/cleanup-sys
Remove old unused code from the core/sys/ directory
2013-11-19 09:53:57 -08:00
Adam Dunkels 30c0c5eaf6 Removed old unused timetable code 2013-11-19 08:29:23 +01:00
Adam Dunkels 84fd0f9ae1 Removed out-commented timetable code 2013-11-19 08:21:53 +01:00
Adam Dunkels 5e9a76d38e Removed old unused tcpdump.c code 2013-11-19 00:24:18 +01:00
Adam Dunkels 563c9d1577 Removed old unused sys/ files 2013-11-19 00:23:13 +01:00
Adam Dunkels f9cb6ec2fa Added the const keyword to IP address arguments that are not (and should not be) changed by the callee 2013-11-18 00:55:57 +01:00
Adam Dunkels f26e35cffa Allow the 6lowpan code to handle packets larger than 256 bytes 2013-11-16 14:44:14 +01:00
Adam Dunkels bec721d313 Allow payload len to be larger than 256 bytes 2013-11-16 14:22:48 +01:00
Laurent Deru fd97136fee As RPL Root, drop an incoming DIO from the same instance but different DAG 2013-11-15 08:48:29 +01:00
Adam Dunkels a6227e1e3e Merge pull request #350 from AriZuu/udp-stats-fix
Fix UDP statistics.
2013-11-14 23:39:16 -08:00
Ari Suutari 8ffd29616a Fix UDP statistics also in ipv6 code. 2013-11-15 08:00:41 +02:00
Nicolas Tsiftes 5688650f6d Merge pull request #391 from cetic/fix-duplicate
Removed duplicate code in rpl-icmp6
2013-11-14 12:35:24 -08:00
Simon Duquennoy 03dcca15cb Implement a truncated exponential backoff for csma 2013-11-14 15:02:36 +01:00
Moritz 'Morty' Strübe c67c048cac Clean up setting channel and CCA-threshold for CC2420 based motes.
The CCA-threshold now defaults to -46 which give better simulation
results and typically also better experimental results.
This adjustment is also needed due to commit 0a13f99 in mspsim. As
promised in https://github.com/mspsim/mspsim/pull/18 it broke the
regression tests.
2013-11-07 17:28:33 +01:00
Sébastien Dawans a60d3bf6cf Removed duplicate code in rpl-icmp6 2013-10-23 15:43:16 +02:00
Enrico Joerns 4ba22102fd [core/net/mac] Removed invalid struct member u8 in PRINTADDR 2013-10-15 01:43:26 +02:00
Simon Duquennoy 677b5ede16 Fixed printout that used deprectated rpl_parent_t structure 2013-10-08 14:46:55 +02:00
Adam Dunkels 4e1beb3ed3 Merge pull request #361 from nvt/rpl-mrhof-fix
MRHOF fixes
2013-10-07 11:45:31 -07:00
Nicolas Tsiftes 1698c439c5 Merge pull request #359 from g-oikonomou/trickle-timer-stop
Add a method to stop running trickle timers
2013-09-30 05:47:23 -07:00
George Oikonomou 060b00c4b5 Use TRICKLE_TIMER_IS_STOPPED in trickle_timer_stop() 2013-09-30 12:37:03 +01:00
Adam Dunkels bf7edf6c4c Merge pull request #354 from lab11/core-net-fixes
Small fixes to networking files
2013-09-26 23:43:07 -07:00
Nicolas Tsiftes 43b5425493 Cleaned up various fragments and fixed a compilation error that occured when switching metric container.
Fixed a wrapping problem in the ETX EWMA calculation.

Corrected the multiplier of the link metric, and simplified the configuration
so that the user does not need to specify the multiplier.
2013-09-23 15:58:42 +02:00
George Oikonomou 995a9c92d9 Only schedule a trickle interval doubling for running timers 2013-09-16 11:53:39 +01:00
George Oikonomou fa7219d0b8 Add a way to determine whether a trickle timer is running 2013-09-16 11:53:39 +01:00
Adam Dunkels 50395666fc Merge pull request #341 from ismb-pert/fix-lladdr
Fixed fail to build from source due to a bad &nbr->lladdr
2013-09-14 03:24:12 -07:00
Zhen-Huan Hwang e75dacb5fa 1. Added a missing '&' in lib/trickle-timer.h
2. Removed executable permissions of lib/trickle-timer.c & .h
2013-09-11 18:31:06 +03:00
Zhen-Huan Hwang b5815e8509 Fixed a typo in net/uipopt.h 2013-09-11 18:30:31 +03:00
Brad Campbell bc762b6dd6 Small fixes to networking files
1. Added #include header
2. Fixed #defines that weren't updated
3. Small change to comment that now points to correct RFC section
2013-09-09 20:48:11 -04:00
Oliver Schmidt c4bba3e89a Removed unnecessary code from resolver. 2013-09-09 21:35:51 +02:00
Gianfranco Costamagna 2afea590f7 Fixed fail to build from source due to a bad "&nbr->lladdr" reference 2013-09-06 22:11:19 +02:00
Ari Suutari 35c7314093 Fix UDP statistics. 2013-09-05 20:37:01 +03:00
Oliver Schmidt e0ddea2a17 Removed unnecessary code from resolver. 2013-09-01 20:23:11 +02:00
Sébastien Dawans 78e807403c Inserts missing IPv6 Hop-By-Hop RPL Option at first hop 2013-08-19 21:40:24 +02:00
Adam Dunkels 86e247025a Removed debugging printout that came before a local variable declaration, which seems to have broken sdcc 2013-08-19 17:48:33 +02:00
Adam Dunkels bfd7e5f25b Fixed a few bugs in the route handling code. While bughunting, rewrote parts of the code to make its intention clearer. Also added a bunch of comments to make the logic of the code more evident. 2013-08-19 17:48:32 +02:00