Commit graph

2087 commits

Author SHA1 Message Date
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 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
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
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
Sébastien De Fauw 22caf4b2e1 Prefix Information Option never send in RA messages
The problem came from the fact that there two opposite macro (UIP_CONF_ROUTER) that could not activate the code responsible to send the PIO option in NDP.
2014-06-17 11:41:43 +02:00
Sébastien De Fauw b441901321 IPv6 host adds prefixes successfully but return always NULL
In Neighbor Discovery Protocol, when IPv6 host adds a prefix (coming from PIO) but it is always failing whatever if is successfully add in prefix table. The reason comes from the fact that the function uip_ds6_prefix_add in host version always return NULL. This is opposite of the specification of the router version.
2014-06-17 11:38:07 +02: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
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
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
Rémy Léone 25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +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 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
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
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
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
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
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
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 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 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 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 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
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 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
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
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
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
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 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 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
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
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
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 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
Adam Dunkels 8dc4e46968 Check if the nexthop neighbor for a given route has disappeared. If so, we drop the route too. If we happen to be the RPL root, we also initiate a global repair as the neighbor may moved. 2013-08-19 17:48:32 +02:00
Adam Dunkels d0a939afb0 Bugfix: must multiply with ETX divisor to turn into fixed-point format. 2013-08-19 17:48:32 +02:00
Adam Dunkels 4d0ecaae02 Make sure our parent's IP address isn't NULL. 2013-08-19 17:48:32 +02:00
Adam Dunkels e5a6565137 Loop detection via DAO: if we get a DAO from a parent, that parent thinks we are its parent. We poison it and recalulate our parents. 2013-08-19 17:48:32 +02:00
Adam Dunkels 34119b7ef2 Poor man's loop reparation: reset the DIO timer and hope the neighbor learns a better route. 2013-08-19 17:48:32 +02:00
Adam Dunkels d830e9df3f Implement forwarding error handling: if a packet changes direction, we set the FWD_ERR flag. If we see the FWD_ERR flag, we drop the route that we sent it to. If we are the root node, we also initiate a global repair. 2013-08-19 17:48:31 +02:00
Adam Dunkels abb3ef9b3b Bugfix: don't set the parent if the dag is NULL 2013-08-19 17:48:31 +02:00
Adam Dunkels 08761dfd8a Added a function uip_ds6_nbr_num() for getting the number of neighbors 2013-08-19 17:48:31 +02:00
Adam Dunkels a027832f94 Fixed a bunch of compiler warnings 2013-08-19 17:48:31 +02:00
Adam Dunkels 9a74ada90c Added a function rpl_get_parent_link_metric() for obtaining the link metric of a given parent 2013-08-19 17:48:31 +02:00
Adam Dunkels c52fc2fd19 Defensive programming: check for the argument being NULL. 2013-08-19 17:48:31 +02:00
Adam Dunkels b42ccaed1b Added function prototypes to a number of functions with void arguments 2013-08-19 17:48:31 +02:00
Adam Dunkels 82e8eb420d Added and updated debugging printouts and reformatted code to make it a little easier to read. 2013-08-19 17:48:31 +02:00
Simon Duquennoy 248301a041 Fix naming issues and includes in uip-ds6-nbr.h 2013-08-19 17:48:30 +02:00
Simon Duquennoy ff093a2b50 Removed now unused per-module neighbor table size configs. Use NEIGHBOR_CONF_MAX_NEIGHBORS instead. 2013-08-19 17:48:30 +02:00
Simon Duquennoy c3f62b24c8 Moved ETX management from neighbor-info to rpl-of-etx. Avoids conversions between different fixed point representations, and simplifies neighbor management. Makes more clear how default-ETX and noack-ETX actually affect the rank. Removed neighbor-info and neighbor-attr. 2013-08-19 17:48:30 +02:00
Simon Duquennoy c50d10aa53 Make RPL use neighbor tables. RPL locks the neighbor used as preferred parent. 2013-08-19 17:48:30 +02:00
Simon Duquennoy 09d26f8060 Make uip-ds6-route use neighbor table. Instead of storing a global list of routing entries that contain both the next hop and the destination, we have a separate list of reachable destination for each neighbor in the global table. 2013-08-19 17:48:30 +02:00
Simon Duquennoy ec609b49eb Make DS6 neighbors use neighbor-table, and move all DS6 neighbor management from uip-ds6 to a new uip-ds6-neighbor module. 2013-08-19 17:48:30 +02:00
Simon Duquennoy 5a1d8d8006 Make phase module use neighbor-table. 2013-08-19 17:48:29 +02:00
Simon Duquennoy cfb3bbdad9 Added new neighbor-table module, a centralized place where to store all data about neighbors, indexed by link-layer address. Meant for use in other Contiki modules such as rpl, ds6, ds6-route, phase, neighbor-info. 2013-08-19 17:48:29 +02:00
Fredrik Osterlind 8041f66d8c link-layer acks support for cooja motes 2013-08-15 14:32:35 +02:00
Adam Dunkels f5307fc01e Bugfix: must set the SICSLOWPAM_MAX_MAC_TRANSMISSIONS attribute after clearing the buffer, otherwise it will not be used for outoing packets. 2013-08-11 14:27:21 +02:00
Adam Dunkels 0aa448f190 6lowpan fragmentation bugfix: the 6lowpan code had an unfortunate
interaction with the behavior of the rdc layer. If the first packet of a
fragment transmission was lost, the remaining packets would get dropped
on reception. Moreover, the reception code contained a bug that
sometimes would cause fragments to be misidentified as fragments. Taken
together, these problems would result in a pathelogical network
breakdown if too many fragmented packets would occur simultaneously.
2013-08-11 14:27:20 +02:00
Adam Dunkels 54f2109134 Merge pull request #290 from simonduq/rpl-mrhof-etx-nomc
Update of RPL MRHOF (use no metric container with ETX [RFC6719])
2013-07-29 00:56:25 -07:00
Adam Dunkels 945f217a11 Merge pull request #220 from lebrush/uip-ds6-least-lifetime
Add method to get the first neighbour which is about to expire
2013-07-28 16:43:41 -07:00
Nicolas Tsiftes d228cb57a5 Merge pull request #301 from adamdunkels/hotfix-rpl-max-dio
RPL bugfix: don't ignore infinite rank DIOs
2013-07-26 06:48:26 -07:00
Adam Dunkels 500d9cc3e4 Merge pull request #300 from cetic/rpl-nopath-dao
RPL No-Path DAOs
2013-07-26 03:53:56 -07:00
Adam Dunkels 9ba5d9694c Merge pull request #299 from jdede/rpl-rm-neighbor
Default route not removed
2013-07-26 03:52:55 -07:00
Adam Dunkels 4913792d41 Minor code style fix 2013-07-26 12:38:43 +02:00
Adam Dunkels 512a339c50 Bugfix: DIOs with infinite ranks should not be ignored as they are used by RPL as a signal by nodes that have lost their routes. Instead of ignoring them, we should send out our latest information to let the node with infinite rank find their way into the network again. 2013-07-26 12:38:25 +02:00
Sébastien Dawans a05d635512 Improve readability of DAO output variables 2013-07-25 11:22:38 +02:00
Sébastien Dawans 0bd26d83c8 Ignore No-Path DAO if target is already reachable through a different route than the DAO sender 2013-07-25 11:21:04 +02:00
Sébastien Dawans c4a121bf18 No-Path DAO Propagation 2013-07-25 11:19:56 +02:00
Jens Dede 2f1bf730af Adapted comment 2013-07-23 20:01:10 +02:00
Simon Duquennoy defcc639ce Use no metric container when having MRHOF with ETX, as specified in RFC6719. Renamed rpl-of-etx to rpl-mrhof. 2013-07-23 19:36:38 +02:00
Jens Dede 9dd5af78c8 fix: default routes are removed correctly if no DAG with preferred parent is available 2013-07-23 15:35:47 +02:00
Simon Duquennoy 0e81b91fa6 Simplify periodic ds6 neighbor processing in case NA/NS is disabled. Strips out uip_nd6_ns_output from the binary. 2013-07-02 15:20:21 +02:00
Simon Duquennoy 1f38348cf9 Added a flag to optionally disable IPv6 NA/NS at compile time 2013-07-02 14:43:53 +02:00
Jelmer Tiete cf894b8b95 changed inter packet interval to 0.4ms 2013-06-21 13:15:45 +02:00
Nicolas Tsiftes 7cc8f326f4 Merge pull request #257 from adamdunkels/hotfix-csma
CSMA bugfix
2013-06-20 01:49:48 -07:00
Adam Dunkels 09f30e875d Bugfix: when a CSMA callback is received, we should remove the packet
that was transmitted and not just the first packet that happens to be on
the output queue.
2013-05-25 12:13:07 +02:00
Adam Dunkels ee64780cb6 Allow proactive probing interval to be configured 2013-05-25 12:10:27 +02:00
Adam Dunkels c9de0e49be Added a number of default options for ContikiMAC, and allow them to be overridden with contiki-conf.h configuration options 2013-05-25 12:10:27 +02:00
Adam Dunkels 0a135eeba1 Merge pull request #214 from lebrush/tcp-uip-size
Limit partially size of uip/tcpip stack when not using TCP at all
2013-05-23 09:48:17 -07:00
Adam Dunkels 0f135afb34 Merge pull request #218 from lebrush/rpl-mixed-network-bug
Fixes bug a node not using RPL joins a network which does
2013-05-22 00:26:06 -07:00
Nicolas Tsiftes ffd18aad82 Merge pull request #221 from lebrush/uip-ds6-notifications
Make DS6 route notifications optional
2013-05-21 07:10:31 -07:00
lebrush 6eafa08313 Make DS6 route notifications optional. 2013-05-21 10:05:02 +02:00
lebrush 96a1a97736 Limit size of uip/tcpip stack when not using TCP at all. 2013-05-21 10:02:17 +02:00
lebrush 5bae5e6ffd Fixes imposibility of receiving data when a node not using RPL joins a network
which does.

The RPL header is processed, declared invalid and the packet discarded. This
is fixed by this commit.
2013-05-21 10:00:46 +02:00
lebrush c2a7a25a9e Code style fixes 2013-05-21 09:50:30 +02:00
lebrush 26177387fc Use memcpy, memcmp functions for the rime compare and copy functions as they
are already used all over contiki.
2013-05-21 09:50:29 +02:00
lebrush 2fb007b1e0 Code style fixes 2013-05-21 09:05:30 +02:00
Nicolas Tsiftes 83c08bdf99 Merge pull request #219 from lebrush/sicslowpan-uip-debug
Force sicslowpan to use uip-debug rather than an own system
2013-05-20 04:59:20 -07:00
Robert Quattlebaum 382308e6bf Merge pull request #242 from darconeous/pull-request/resolv-bad-nsec-fix
resolv: Fix for bad NSEC record on announce
2013-05-19 16:34:03 -07:00
Robert Quattlebaum d0b99cc3cc resolv: Fix for bad NSEC record on announce 2013-05-19 16:09:50 -07:00
Sébastien Dawans 1be01a9c90 Support prefix udpates with PIO Handling 2013-05-19 10:51:57 -04:00
Mariano Alvira 5df586e09d Merge pull request #184 from g-oikonomou/bug-fixes/rimestats
Rimestats Fix (#183)
2013-05-19 07:45:22 -07:00
Robert Quattlebaum 0bed4b17a2 resolv: Fix for word alignment issues in mdns_prep_host_announce_packet(). 2013-05-18 10:43:09 -07:00
lebrush eef6d7a37e Removed undef 2013-05-15 16:49:36 +02:00
lebrush 82d498f3a1 Removed undef 2013-05-15 16:25:34 +02:00
lebrush 9158ff4bf1 Add method to get the first neighbour which is about to expire 2013-05-15 13:44:25 +02:00
lebrush 966e9fc484 Force sicslowpan to use uip-debug rather than an own system 2013-05-15 12:23:21 +02:00
lebrush 071cfaf1cb Corrects some leftover uncapitalized printfs which may cause some platforms
to crash.
2013-05-15 12:21:15 +02:00
Nicolas Tsiftes f8edbbb8d2 Merge pull request #178 from adamdunkels/feature-contiki-default-conf
A first stab at a default configuration system
2013-03-25 20:13:15 -07:00
George Oikonomou 62366813b0 Provide a macro to read rimestats when enabled 2013-03-20 21:14:34 +00:00
George Oikonomou 12860ce5d4 Fix #183 (short term fix)
This is a temporary fix for #183, so that things can
build cleanly until the issue is fixed properly.

If RIMESTATS_CONF_ENABLED is 0, rimestats.foo will always
read as 0, since RIMESTATS_ADD(foo) doesn't do anything
2013-03-20 19:59:20 +00:00
Nicolas Tsiftes 199a89bac4 Merge pull request #173 from adamdunkels/feature-ipv6-not-in-makefile
Allow IPv6 to be compiled via #define
2013-03-19 08:17:52 -07:00
Nicolas Tsiftes 7f2a842b71 Merge pull request #174 from adamdunkels/feature-net-improvements
Improvements to the core/net/ code
2013-03-18 17:12:12 -07:00
Nicolas Tsiftes 6a07172662 Merge pull request #176 from adamdunkels/feature-net-bugfixes
Network system bugfixes
2013-03-18 13:38:44 -07:00
Adam Dunkels 7742b05d8c Major bugfix: when nullrdc is asked to send a list of packets, send the list of packets and not just the first packet - this is essential for retransmissions of fragmented IP packets to work 2013-03-18 13:35:29 +01:00
Adam Dunkels f81e4071f1 Merge pull request #135 from darconeous/pull-requests/core-net-bridge-mode
core/net: Added support for "bridge mode".
2013-03-18 04:43:15 -07:00
Adam Dunkels ad28f1b396 Merge pull request #75 from cmorty/mesh_ready
Add mesh_ready() to mesh
2013-03-18 04:42:43 -07:00
Adam Dunkels 2ba293a538 Bugfix: check the size of the outgoing packet to avoid overflowing the output buffer 2013-03-18 11:22:08 +01:00
Adam Dunkels 843d2361dc Include the rimestats variable only if rimestats are enabled by the configuration 2013-03-18 11:22:06 +01:00
Adam Dunkels 4efd570cf9 Minor bugfix: explicitly cast pointer argument in debug printf 2013-03-18 11:22:05 +01:00
Adam Dunkels f2fbb4b49d Defensive programming: make sure that we don't fail completely if we get a callback for a NULL pointer 2013-03-18 11:22:04 +01:00
Adam Dunkels 82b755c017 Bugfix: keep track of receiver being awake as a local variable rather than a global, as it may have changed between invokations 2013-03-18 11:22:02 +01:00
Adam Dunkels 0670a8e1e2 Minor code style fixes to the contikimac and nullrdc code 2013-03-18 11:22:01 +01:00
Adam Dunkels 3efa84ecc8 New mechanism for computing the 6lowpan header length dynamically, depending on how large header the framer creates. Also check the incoming packet for buffer overflow. 2013-03-18 11:19:22 +01:00
Adam Dunkels cb2336a322 Send announcements only if the node is configured to be a router 2013-03-18 11:19:21 +01:00
Adam Dunkels 5993595a8f A number of updates to nullrdc
* add a few rimestats to keep track of sent and received acks
* made a number of configuration options possible to override (ack timing)
* added the logic for sending 802.15.4 link layer ack packets, despite not being able to guarentee the 802.15.4 MAC timing
* increased the number of sequence numbers to keep track of for duplicate filtering
2013-03-18 11:19:20 +01:00
Adam Dunkels 4541d3e85b Let the framer functions use ints instead of uint8_t to make them more generic 2013-03-18 11:19:18 +01:00
Adam Dunkels 2d50a40643 A default configuraion file for Contiki
The contiki-default-conf.h file is intended as a safe fallback for
a number of configuration options in Contiki, to avoid putting too
much in the individual contiki-conf.h files.
2013-03-18 11:12:43 +01:00
Adam Dunkels 927cc8d895 Added #if UIP_CONF_IPV6 around the IPv6 code in the uIP source tree to allow the C files to be compiled even if IPv6 is not configured. 2013-03-18 09:45:30 +01:00
Adam Dunkels db1e8cdbac Separated the uIP makefile from the top-level Makefile.include into a separate core/net/Makefile.uip makefile 2013-03-18 09:45:29 +01:00
Robert Quattlebaum da81360731 core/net/resolv: Misc. updates and cleanups. 2013-03-14 19:14:32 -07:00
Robert Quattlebaum 7e9f472faa core/net/resolv: Fix for resolving CNAME records. 2013-03-14 19:13:51 -07:00
Robert Quattlebaum 639a9ca399 core/net/resolv: Fix for SDCC. 2013-03-14 19:13:04 -07:00
Oliver Schmidt 46cb6013ae Reduced code size.
Combined recent changes from darconeous...
- Refactor to decrease minimum code footprint.
- Added `RESOLV_CONF_SUPPORTS_RECORD_EXPIRATION`.
...with a few additional changes to reduce code size.
2013-03-14 22:53:52 +01:00
Oliver Schmidt d8862bd243 Some more changes improving code style conformance and code size. 2013-03-13 17:52:57 +01:00
Oliver Schmidt 7a1fa4de6c Some coding style nomalization. 2013-03-13 16:14:29 +01:00
Oliver Schmidt 8fa9767d47 Restored Contiki compatibility with non-C99 compilers.
(and compilers without non-standard extensions like void pointer arithmetic)
2013-03-13 14:40:24 +01:00
Moritz 'Morty' Strübe b1dbc2047e Add mesh_ready() to mesh
mesh_ready checkes whether a packet is queued. This allows to avoid
packet loss at application level.
2013-03-13 09:44:38 +01:00
Robert Quattlebaum c0a693672c core/net: Added support for "bridge mode".
"Bridge mode" allows devices to more easily send 802.15.4 packets as if
they were a different device. It also turns off any packet filtering
that may be implemented at layer 2. It works by allowing
`PACKETBUF_ADDR_SENDER` to be set earlier in the stack.

This is useful for implementing 6LoWPAN-ethernet bridges.

Enabled via setting `NETSTACK_CONF_BRIDGE_MODE` to 1. Disabled by
default.
2013-03-10 14:45:15 -07:00
Adam Dunkels 4e40cb8a8d Merge pull request #116 from cetic/rpl-lifetimes
RPL Lifetimes
2013-03-10 13:04:07 -07:00
Adam Dunkels 39e5a8c6dc Merge pull request #80 from darconeous/mdns-resolv
Adds IPv6 and MDNS domain name resolution.
2013-03-10 12:58:39 -07:00
Adam Dunkels 0841bce833 Merge pull request #82 from darconeous/master
Makefiles: Allow setting UIP_CONF_IPV6=0 to work as expected.
2013-03-10 12:51:03 -07:00
Robert Quattlebaum f145c17039 core/net/resolv: IPv6 and mDNS ("Bonjour") support. Major refactor.
This patch updates the DNS resolver to support IPv6 and introduces an
improved API for looking up DNS entries. This patch also adds optional
support for mDNS lookups and responses to the DNS resolver.

Here is a quick summary of the changes:

 * Added support for IPv6 lookups.
 * DNS queries now honor record expiration.
 * Added support for mDNS, compatible with "Bonjour".
 * Implemented a new lookup api, `resolv_lookup2()`, which provides
   more information about the state of the record(error, expired,
   looking-up, etc.).

About mDNS/Bonjour Support
--------------------------

This patch adds basic support for mDNS/Bonjour, which allows you to
refer to the name of a device instead of its IP address. This is
incredibly convenient for IPv6 addresses because they tend to be very
long and difficult to remember. It is especially important for
link-local IPv6 addresses, since not all programs support the '%'
notation for indicating a network interface (required on systems with
more than one network interface to disambiguate).

In other words, instead of typing in this:

 * `http://[fe80::58dc:d7ed:a644:628f%en1]/`

You can type this instead:

 * `http://contiki.local/`

Huge improvement, no?

The convenience extends beyond that: this mechanism can be used for
nodes to talk to each other based on their human-readable names instead
of their IPv6 addresses. So instead of a switch on
`aaaa::58dc:d7ed:a644:628f` triggering an actuator on
`aaaa::ed26:19c1:4bd2:f95b`, `light-switch.local` can trigger the
actuator on `living-room-lights.local`.

What you need to do to be able to look up `.local` names on your
workstation depends on a few factors:

 * Your machine needs to be able to send and receive multicast packets
   to and from the LoWPAN. You can do this easily with the Jackdaw
   firmware on an RZUSBStick. If you have a border router, you will need
   it to bridge the mDNS multicast packets across the border.

 * If you are using a Mac, you win. All Apple devices support mDNS
   lookups.

 * If you are using Windows, you can install Apple's Bonjour for Windows
   package. (This may be already installed on your machine if you have
   installed iTunes) After you install this you can easily do `.local`
   lookups.

 * If you are using a Unix machine, you can install Avahi.

The default hostname is set to `contiki.local.`. You can change the
hostname programmatically by calling `resolv_set_hostname()`. You can
change the default hostname by changing `CONTIKI_CONF_DEFAULT_HOSTNAME`.

You may disable mDNS support by setting `RESOLV_CONF_SUPPORTS_MDNS` to
`0`.

---------------------------------

core/net/resolv: `resolv_lookup2()` -> `resolv_lookup()`

Note that this patch should fix several `resolv_lookup()` bugs
that already existed. There were many cases where `resolv_lookup()`
was being called and the IP address ignored, but later code
assumed that the IP address had been fetched... ANYWAY, those
should be fixed now.

---------------------------------

examples/udp-ipv6: Updated client to use MDNS to lookup the server.

Also updated the Cooja regression test simulation.
2013-03-10 11:40:08 -07:00
Robert Quattlebaum 97e16760c3 core/net/uip-ds6: Make uip_ds6_maddr_add() and uip_ds6_maddr_lookup() const-correct. 2013-03-10 11:39:12 -07:00
Robert Quattlebaum 1d113f52ad core/net/uip: Rename uip_ethaddr to uip_lladdr.
There isn't really a good reason I can think of for these
to be different between IPv4 and IPv6.
2013-03-10 11:39:11 -07:00
Sébastien Dawans e02d480ff5 Moved RPL Lifetime configuration to rpl-conf.h 2013-03-09 16:28:43 +01:00
Sébastien Dawans b6c54faf9d Adds default route lifetime update in RPL DIO processing 2013-03-09 16:27:37 +01:00
Sébastien Dawans aaf5deabe2 Allow user configuration of RPL Lifetime and Lifetime Unit 2013-03-09 16:27:37 +01:00
Adam Dunkels 373b6c0195 Merge pull request #90 from simonduq/rpl-conf
Added missing include of contiki-conf.h in rpl-conf.h
2013-03-09 05:55:56 -08:00
Adam Dunkels ea92365cd4 Merge pull request #102 from cetic/rpl-conf-init-link-metric
Makes RPL Initial Link Metric configurable
2013-03-09 05:52:07 -08:00
Adam Dunkels 80982f97b8 Merge pull request #125 from nfi/lollipop
Bug fix: corrected the macro RPL_LOLLIPOP_INCREMENT
2013-03-09 05:49:06 -08:00
Adam Dunkels e91a2ac78a Merge pull request #142 from malvira/rpl-leaf-debug
Add some debug PRINTFs for RPL_LEAF_ONLY mode.
2013-03-09 05:35:48 -08:00
Oliver Schmidt 4d4b796abb Removed useless register keywords.
Modern compilers (especially GCC) ignore the register keyword anyway and the latest cc65 snapshot generates actually larger code with the register keyword at the locations in question.
2013-03-06 14:32:36 +01:00
Mariano Alvira 03fdb53af1 Add some debug PRINTFs for RPL_LEAF_ONLY mode. 2013-02-20 18:25:32 -05:00
Niclas Finne 26fc2fab87 Bug fix: changed the macro RPL_LOLLIPOP_INCREMENT to update the counter instead of returning the new value since this is how the macro is used today. 2013-02-12 16:06:04 +01:00
Oliver Schmidt 1eda821a75 Fixed severe bug in PSOCK_READTO (?)
Either I found and fixed a severe bug in PSOCK_READTO() or I misunderstood something completely. To me PSOCK_READTO() is supposed to return if either the supplied character was read or if the user supplied buffer is exhausted - sor far so good.

However if the latter occurs up to now PSOCK_READTO() was continuing to process characters already read from the network (aka present in the uIP buffer) in order to check if the supplied character was found there and adjust the return value accordingly. But this means that the character processed this way were lost forever for the caller as the next call to PSOCK_READTO() would continue to read past the characters processed this way.

Therefore I removed that character processing altogether. So now if the user supplied buffer is exhausted before the supplied character is found the next call to PSOCK_READTO() starts exactly where previous call left off.
2013-02-10 15:41:34 +01:00
Oliver Schmidt 29391ef9ae Removed uiplib_ip6addrconv() from IPv4 builds.
While it may very well be beneficial to have explict uiplib_ip4addrconv() and uiplib_ip6addrconv() available for IPv6 builds I'm having a hard time to see the point in uiplib_ip6addrconv() for IPv4 builds.

Unrelated to the above the dispatching of uiplib_ipaddrconv() to either uiplib_ip4addrconv() or uiplib_ip6addrconv() can be accomplished by the C preprocessor only thus avoiding the size/speed overhead of an additional callframe.
2013-02-03 23:04:41 +01:00
Sébastien Dawans 95ab192e88 Makes RPL Initial Link Metric configurable 2013-02-01 09:02:31 +01:00
Simon Duquennoy 7c64a114aa Added missing include of contiki-conf.h 2013-01-23 16:11:02 +01:00
Robert Quattlebaum 5afcbf6fff Makefiles: Allow setting UIP_CONF_IPV6=0 to work as expected.
Setting UIP_CONF_IPV6 to zero from the make build command line is
something that seems like it should ensure that IPv6 is disabled, but in
fact it actually *enables* IPv6. This seems counter intuitive, so this
patch changes the behavior of the makefiles to handle this case
properly.
2013-01-14 22:03:42 -08:00
George Oikonomou 68f59113d6 Fix a route lifetime bug
There is a bug in the current route purge routine which would
result in a route's lifetime getting decremented more than once
during the same pass. This commit fixes it

The bug is documented here:
http://thread.gmane.org/gmane.os.contiki.devel/16209
2012-12-20 00:17:33 +00:00
Adam Dunkels 4324d74f12 Check callback pointers to avoid calling a NULL pointer 2012-12-10 01:50:37 +01:00
Adam Dunkels 83eb9a4ec3 Cleanup: removed the old routing table management functions that had previously been removed from compilation with #if 0 2012-11-27 23:04:34 +01:00
Adam Dunkels edf141046b Clean up of a few missing printf() that were converted into PRINTF()s 2012-11-27 23:04:34 +01:00
Adam Dunkels 43ecad5a99 Call the route callback API functions. 2012-11-27 23:04:33 +01:00
Adam Dunkels a9cab81d4e Added macros that allow handling IPv4 addresses even when uIP is configured to be an IPv6 stack 2012-11-27 23:04:33 +01:00
Adam Dunkels afe13b22bc Rewrote the uIP IPv6 route handling code. Instead of being nested deeply inside the uip-ds6.c file, the route management code is now in a separate file, uip-ds6-route.c. This file presents a lib/list.h API for the routes, which makes the route list much easier to use. Additionally, the uip-ds6-route.c file adds a callback API that invokes a callback when routes are added and removed. 2012-11-27 23:04:33 +01:00
Adam Dunkels b2063953ba Added a configuration option, UIP_SPLIT_CONF_SIZE, for setting the threshold at which point TCP packets get split into two. 2012-11-27 23:04:33 +01:00
Adam Dunkels f561bfc205 Added a function simple_udp_sendto_port() for sending a UDP packet to a specified port. 2012-11-27 23:04:32 +01:00
Adam Dunkels 5c5545ba7d Code style and debugging updates 2012-11-27 23:04:32 +01:00
Adam Dunkels 289a01b389 Added explicit functions uiplib_ip6addrconv and uiplib_ip4addrconv for converting IPv6 and IPv4 addresses, regardless of whether uIP was configured to run as an IPv4 or an IPv6 stack. 2012-11-27 23:04:32 +01:00
Adam Dunkels 0bad2b1748 Added a configuration option to annotate IP transmissions with red arrows in Cooja. 2012-11-27 23:04:32 +01:00
Adam Dunkels b24157631f Made nd6 maximum unicast solicitation messages configurable 2012-11-27 23:04:32 +01:00
Adam Dunkels 2a2175a214 Make RPL DIS transmission interval random in the interval [0, INTERVAL/2]. This is needed to avoid synchronization in large RPL networks. 2012-11-27 23:04:31 +01:00
Adam Dunkels 2396f9b8ea Made DIO interval processing a little easier to follow. Explicitly state that the delay is handled as clock timer ticks. 2012-11-27 23:04:31 +01:00
Adam Dunkels 8538aaf655 Made RPL DAO latency configurable 2012-11-27 23:04:31 +01:00
Adam Dunkels 357b13b3d3 Correctly handle upward and downward routes according to Section 1.2 of RFC6550 2012-11-27 23:04:31 +01:00
Adam Dunkels 15deb37e64 Updated DAG version processing to occur even for infinite rank DIOs. This makes it possible for the RPL root to infer the DAG version number from a network that hasn't had a root for a while, and where the rank has increased to infinity. 2012-11-27 23:04:30 +01:00
Adam Dunkels db7cb567f5 Updated the RPL code to better match the Contiki code style 2012-11-27 23:04:30 +01:00
Adam Dunkels cb7842bd16 Added support for encryption and decryption of the packetbuf if macros
NETSTACK_ENCRYPT and NETSTACK_DECRYPT are defined. Those are intended
to be called as functions NETSTACK_ENCRYPT() and NETSTACK_DECRYPT() to
encrypt and decrypt the packetbuf, respectively. If needed, an
initialization function by the name NETSTACK_ENCRYPTION_INIT() can
also be defined.
2012-11-25 12:05:00 +01:00
Adam Dunkels 0cd2f48d6e Added NULL pointer guards 2012-11-22 11:55:01 +01:00
Adam Dunkels d51d3f6b3e Remove conditionals around RPL extension header #defines and typedefs. With the conditional, it wasn't possible to compile the rpl-ext-header.c file. Since #defines and typedefs and 'free' at runtime, we gain nothing by having them conditional. 2012-11-21 20:11:22 +01:00
Adam Dunkels 6ee1f72486 Removed old unused TDMA-based MAC and RDC code 2012-11-20 20:48:34 +01:00
Adam Dunkels ec8c7e9be0 Cleanup of the node-id.h files. The node-id.h file contains
declarations of functions for setting and getting a node ID number, a
functionality that exists on many platforms. Since this functionality
was not considered part of the Contiki core, each platform defined its
own node-id.h file. This commit attempts to clean this up by
collecting the node-id.h into a core/sys/node-id.h file that replaces
the old node-id.h files from the platform directories.
2012-11-20 19:59:46 +01:00
Alexandre Boeglin 3b492cf82f Add missing Doxygen marker 2012-11-07 16:57:27 +01:00
George Oikonomou 713c2e5974 DOS EOL and indentation fixes (core/ apps/ cpu/)
- Removed some DOS EOLs
- Changed some tabs to spaces
- Removed some trailing whitespaces

Part of Pull Request #6
2012-10-30 13:43:51 +00:00
Rémy Léone e378f171d6 chmod correction 2012-10-29 14:15:38 +01:00
Adam Dunkels 944537fccf Removed all old RCS tags in the Contiki source tree. Those RCS tags are not used any more, as we are now using git to manage the Contiki source tree 2012-10-26 15:54:49 +02:00
simonduq 74baca91b1 Added sanity check to avoid deleting DS6 neighbor table entry for a default route 2012-10-05 17:55:45 +02:00
simonduq dbd4f1c579 Force call of subscriber_callback when the ETX of a link is estimated for the first time. Otherwise, it was not called in case of NO_ACK. 2012-10-05 17:24:23 +02:00
Niclas Finne 8053e2c353 Workaround for an odd type inference problem associated with the IAR compiler. Patch by Vilhelm Jutvik. 2012-09-12 14:46:19 +02:00
Fredrik Osterlind b9f1b9b205 simplified and bugfixed Cooja's IP address interface, added two
variables in uip-ds6.c to allow Cooja to extract addresses from memory
2012-06-01 15:47:22 +02:00
Fredrik Osterlind 076c208b72 avoid gcc optimization bug by extracting struct values 2012-05-30 17:58:45 +02:00
Fredrik Osterlind f8e0da428a bugfix: transfer did not terminate correctly when last packet was full 2012-05-29 13:46:22 +02:00
David Kopf e62f2c3977 Ensure MAXDADNS is defined in uip-ds6.h
Set no RPL as webserver6.minimal-net default and update README
2012-05-28 10:01:34 -04:00
Mariano Alvira 65719adc93 Set the R flag in NAs if UIP_CONF_ROUTER 2012-05-10 16:32:55 -04:00
Niclas Finne d3b4efa06f removed obsolete function declaration 2012-04-24 14:08:40 +02:00
nvt e4a305d353 Update the last lookup time for a neighbor when actually doing a lookup. Also fixed some coding style issues. 2012-04-22 00:31:56 +02:00
nvt 534c734465 Removed redundant code and improve code style and documentation. 2012-04-22 00:18:07 +02:00
nvt e94718f95c Separated configuration into a new file called rpl-conf.h. Improved the documentation. 2012-04-22 00:17:10 +02:00
nvt eda6b7c318 Use LIST_STRUCT macros. Made get_dag a static function. 2012-04-17 23:35:19 +02:00
nvt 3d0d2c284f Changed function names. 2012-04-17 23:34:47 +02:00
nvt 80097f2c65 Removed some redundant code and fixed coding style. 2012-04-17 23:12:47 +02:00
nvt 6071b5aee7 Remove obsolete support for broadcast DAOs. 2012-04-17 23:04:20 +02:00
nvt ed37e983f6 Refuse to allocate more parents for a specific DAG when the per-DAG limit has been reached. 2012-04-17 22:59:42 +02:00
nvt 26ee7cb5db Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-04-02 20:10:55 +02:00
Niclas Finne 2507ba4e8d Avoid using memcpy on unaligned uint16_t variables, because certain compilers will optimize this code to a direct copy instruction that will result in unaligned memory access. Thanks to Angelo Compagnucci for reporting this problem. 2012-03-31 01:25:27 +02:00
nvt bef9b2bd36 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-28 22:40:38 +02:00
Niclas Finne 7bf4fa4bff Removed obsolete mac pointer 2012-03-28 21:51:19 +02:00
Ivan Delamer 5c232e7263 Remove compiler warning for remove_ext_header(). 2012-03-27 19:48:26 -06:00
Ivan Delamer 51e3999054 Simplified reachability detections by sending probes only in PROBE
state.
2012-03-27 18:06:48 -06:00
Ivan Delamer 419ffddd0a remove unnecessary stimer call in tcpip_ipv6_output() 2012-03-27 18:04:51 -06:00
Ivan Delamer f9d5d71fde 6LowPAN: check tx result, if fail then do not send subsequent
fragments. Serves to save energy and also as collision avoidance.
2012-03-26 15:46:49 -06:00
Ivan Delamer 436cbec844 Separated processed_ip_len into processed_ip_in_len and
processed_ip_out_len to avoid corruption, in case we send a packet in
the middle of receiving a fragmented packet.
2012-03-26 15:46:47 -06:00
Ivan Delamer c6b3a9957d Ignore 6LowPAN fragments which won't fit in UIP_BUFSIZE (in case
UIP_BUFSIZE < 1280). Otherwise we'll have a buffer overrun.
2012-03-26 15:46:45 -06:00
simonduq 63ea562568 base encounter_time on the time before last strobe, remove unused previous_txtime 2012-03-26 22:49:28 +02:00
nvt 3cace20809 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-20 21:23:13 +01:00
simonduq 7784cf7827 stm32w platforms: use 2 cca and default contikimac guard time 2012-03-20 17:30:05 +01:00
simonduq 5da4463236 adding ducy cycling support to the stm32w-based platforms (patch by Chi-Anh La) 2012-03-20 17:29:58 +01:00
nvt 82ed40651a Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-15 21:47:12 +01:00
George Oikonomou 598dcc110c sicslowpan doesn't need to remember the mac driver 2012-03-14 17:52:50 +00:00
George Oikonomou e6819effef Fix compile errors with SDCC
Intermingled declarations and code are not yet implemented in sdcc.
2012-03-14 17:52:50 +00:00
nvt 9fb93cd7b7 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-12 19:23:37 +01:00
Matthias Kovatsch 87cd18539b Eliminated RPL_CONF_ADJUST_LLH_LEN correction by using uip_l3_icmp_hdr_len instead of uip_l2_l3_icmp_hdr_len. 2012-03-08 00:48:04 +01:00
Matthias Kovatsch 7eac4393c2 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-07 22:24:02 +01:00
Matthias Kovatsch dd967e62f5 Applied patch provided by Franck Rousseau restoring UIP_LLH_LEN. 2012-03-07 22:22:58 +01:00
Ivan Delamer f38962a3c4 Do not remove infinite default routers when PROBE fails. 2012-03-07 13:52:06 -07:00
nvt c4eeb578a7 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-06 23:23:34 +01:00
nvt 3860e798ac Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-03-05 01:49:55 +01:00
David Kopf 07f6e10c1c Add display options to border router web page, default now uses stack instead of static buffer.
Turn radio off until prefix is acquired.
2012-03-02 16:01:12 -05:00
nvt 217a4e54ca Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-02-22 19:28:49 +01:00
Joakim Eriksson 321ecc9fab Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-02-21 19:07:40 +01:00
Joakim Eriksson 5a65e3cc8b tuned RPL parameters and improved calculation of path etx 2012-02-21 19:06:58 +01:00
David Kopf 745f071c98 Eliminate unused variable warnings. Dummy test of PT_YIELD_FLAG does not change program size. 2012-02-21 11:23:54 -05:00
Joakim Eriksson 2752337e69 fixed lollipop counter 2012-02-21 13:20:20 +01:00
Nicholas J Humfrey 3fe55673d3 Converted deprecated uIP types in the network stack to standard C99 names (in stdint.h) 2012-02-17 22:45:13 +00:00
nvt 9d8be775d4 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-02-11 02:14:20 +01:00
Niclas Finne 99f3d5ada2 Added missing include 2012-03-06 12:33:47 +01:00
Ivan Delamer 27daa94030 Compress UDP header when UIP_CONF_UDP is disabled but we are routing
others' UDP packets.
2012-02-01 13:06:38 -07:00
Ivan Delamer e7cd04b558 Bug fix: do not overwrite NS or RA messages otherwise generated in the
same uip_ds6_periodic() call.
2012-02-01 09:55:41 -07:00
Joakim Eriksson 729a434d0f always send DAO to refresh routes 2012-02-29 15:01:59 -08:00
Nicolas Tsiftes d0e2d9b47e Cleaned up code style, comments, and print outs. Set default DAG parameters when the DIO configuration option is missing. 2012-02-29 21:59:50 +01:00
Ivan Delamer 02d3fd4758 Fixes small bug in uip-nd6.c: when a packet is sent before DAD is
completed, DAD-like message is sent that can create a DAD fail in
another node (if it matches the destination of our packet).
2012-01-31 15:44:29 -07:00
nvt 82a7c93b47 Check return value. 2012-01-30 23:51:07 +01:00
Nicolas Tsiftes 16c437da7e Adjust for the multi-instance structures. 2012-02-27 23:03:52 +01:00
Niclas Finne 1e85183754 fixed debug output and changed to use uip-debug.h for debug output 2012-01-27 15:51:46 +01:00
Joakim Eriksson c3655728b8 fixed extension header handling 2012-01-27 15:40:39 +01:00
Niclas Finne b65972d32d Corrected debug output 2012-01-22 22:27:20 +01:00
Joakim Eriksson 6ee05f4a2d fixed loop detection bug in RPL 2012-01-13 05:37:30 -08:00
Matthias Kovatsch 8ee68b4345 Added ext. header handling for UDP (RPL multihop still not functional). 2012-01-12 20:22:31 +01:00
David Kopf 24d58edf15 Adjust cycle starts when RTIMER_ARCH_SECOND not a power of two. 2012-01-10 12:48:39 -05:00
Joakim Eriksson d24ecf8d59 added timestamp to neighbor info 2012-01-10 16:04:56 +01:00
Joakim Eriksson 237100f6fa changed so that ext hdr len code checks against buffer size instead of link mtu 2012-01-10 15:51:06 +01:00
Niclas Finne 9d261eec56 Use NETSTACK_RDC_* instead of NETSTACK_CONF_RDC_* 2012-01-09 18:06:30 +01:00
Niclas Finne 8b83ffec67 Added native-border-router and slip-radio 2012-01-01 09:29:33 +01:00
Joakim Eriksson 65edc32de2 Fixed uiplib to stop parsing IPv6 address when at length part 2012-01-01 09:29:27 +01:00
Joakim Eriksson 65163a9b57 Changed FRAMER to return negative values for error to allow 0 size headers. 2012-01-01 09:10:56 +01:00
nvt d89a4ef4fd Simplified best_dag function and fixed the previous incomplete commit. 2012-01-04 14:13:54 +01:00
Nicolas Tsiftes f112fa99d5 Removed the force flag from rpl_reset_dio_timer. Removed an unnecessary DIO timer reset when changing rank but keeping the same preferred parent. 2012-01-04 11:22:11 +01:00
Mariano Alvira c9ac19b919 Allocate the default_instance pointer in rpl-dag.c instead of the
header file to fix "multiple definition of `default_instance'" errors.
2011-12-09 08:36:23 -05:00
Mariano Alvira 1086299f25 fix typo 2011-12-09 08:23:43 -05:00
Adam Dunkels f88a1e394b Made collect retransmissions and broadcast announcements timers depend on the rdc wakeup rate 2011-12-09 08:18:22 +01:00
Nicolas Tsiftes a4a7fd7dc0 Fix coding style. 2011-12-08 15:42:19 +01:00
Nicolas Tsiftes 1e61fca653 Fix coding style. 2011-12-08 15:38:35 +01:00
Nicolas Tsiftes d0ebeb409e Merge remote-tracking branch 'sf/master' into rpl-patch
Conflicts:
	core/net/tcpip.c
2011-12-08 15:26:11 +01:00
Adam Dunkels 1e57ddb6c7 Disable phase shift correction by default 2011-12-08 14:04:01 +01:00
Adam Dunkels 0a428c9489 style fix; added fas check for cycle_time being a power of two or not. 2011-12-05 16:28:04 +01:00
Niclas Finne 405b295306 Clear uip_len when trying to send to a neighbor with an incomplete state, as suggested by Ivan Delamer. 2011-12-02 17:13:29 +01:00
Niclas Finne 077eba80e1 code style 2011-12-02 17:07:27 +01:00
Nicolas Tsiftes 23a280e5eb Refactored loop detection. 2011-12-02 16:16:42 +01:00
Nicolas Tsiftes ac869185c0 Refactored header management. 2011-12-02 15:55:07 +01:00
Nicolas Tsiftes 5c0100c979 Use rpl headers. 2011-12-02 15:54:49 +01:00
David Kopf 74aa63de43 Add optional correction for phase drift of receiver. 2011-12-01 10:02:37 -05:00
Nicolas Tsiftes 220e6f7b88 Minor documentation improvements. 2011-12-01 14:40:54 +01:00
Nicolas Tsiftes 7c808081d6 Coding style 2011-11-23 14:36:50 +01:00
nvt e11b7d4fb6 Removed redundant code 2011-11-22 14:18:32 +01:00
Nicolas Tsiftes cef95ebf9b Inverted DAG ID check 2011-11-21 15:50:19 +01:00
Nicolas Tsiftes 2b1549bfe8 Continued merge with sf master 2011-11-21 15:25:13 +01:00
Nicolas Tsiftes 0e32956a63 Merge remote-tracking branch 'sf/master' into rpl-patch 2011-11-21 14:59:31 +01:00
Nicolas Tsiftes ea73f1d767 Do not force DIO reset on certain events where it is not needed. 2011-11-16 09:49:22 +01:00
Nicolas Tsiftes b405571e32 Update next-hop address for existing routes. 2011-11-16 09:05:34 +01:00
Nicolas Tsiftes ef0ce944e5 Split management of extension headers into a separate file and fixed coding style. 2011-11-16 09:00:19 +01:00
Nicolas Tsiftes 63afff5436 Removed debug output and fixed coding style. 2011-11-16 08:56:56 +01:00
Nicolas Tsiftes e716ce25a1 DEBUG off. 2011-11-16 08:50:01 +01:00
Niclas Finne 63e40d195e Restore packetbuf before mac callback (earlier commit was accidental reverted) 2011-11-15 16:59:12 +01:00
David Kopf 8e47694597 Add RDC_CONF_HARDWARE_CSMA, RDC_CONF_HARDWARE_ACK, RDC_CONF_MCU_SLEEP, CONTIKIMAC_CONF_SHORTEST_PACKET_SIZE for use with hardware having those modes.
Default behaviour should be unchanged.
2011-11-14 12:02:47 -05:00
Joakim Eriksson 5281e7c59c made linkable with IAR linker - avoiding multiple defs of rime_sniffer, etc 2011-11-08 11:57:17 +01:00
David Kopf a547b2259e Avoid infinite loop when printing garbled packets 2011-10-27 11:13:26 -04:00
David Kopf 659d30c6c2 Fix sd6 typo 2011-10-27 09:24:05 -04:00
Joakim Eriksson 2a94b3ce82 added debug callbacks 2011-10-27 12:32:16 +02:00
Niclas Finne b01cbb996d Fixed to restore packetbuf before mac callback 2011-10-21 17:52:31 +02:00
Joakim Eriksson 1b0af2a21d fixed powertrace attribution for 6lowpan traffic 2011-10-20 12:37:56 +02:00
Joakim Eriksson 2399689bbd Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-10-17 14:16:57 +02:00
Joakim Eriksson 17bbb1f1c1 fixed so that rpl avoids sending no-path DAOs when changing parent when in NO_DOWNWARD mode of operation 2011-10-17 14:16:19 +02:00
David Kopf 8ebd7a65a4 Add missing includes, remove unimplemented function declaration. 2011-10-13 11:23:53 -04:00
Joakim Eriksson cf61e522a8 added powertrace to IPv6 including an example 2011-10-13 15:09:40 +02:00
nvt d711887a1b Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-10-10 22:11:52 +02:00
nvt 6611291dd0 Ensure that packet metric is always set. 2011-10-10 22:10:21 +02:00
simonduq a2073db715 Removed ContikiMAC burst dependency to phase optimization 2011-10-04 10:29:40 +02:00
Joakim Eriksson e0ae036a69 added static on the list send functions to get less compiler errors with IAR compiler 2011-10-03 15:17:30 +02:00
simonduq 222f9bd3af Include string.h 2011-09-29 15:07:00 +02:00
simonduq dd8576830e Added bursts support in CSMA/ContikiMAC, and CFS-swapping in
queuebuf. Exemplified in examples/udp-stream.
2011-09-27 16:47:03 +02:00
Joakim Eriksson ab049ec704 some fixes to cut some extension headers before TCP processing 2011-09-22 17:22:59 +02:00
nvt ab0c04b041 Move 16-bit integer conversion operations into functions, as is done already with 32-bit ops. 2011-09-06 17:28:39 +02:00
nvt 942ba1f7bd Removed const qualifier to conform with the rest of the Rime interface. 2011-09-05 22:05:41 +02:00
Niko Pollner 84105f4e47 Improved multihop/mesh route discovery.
Packetbuffer is now saved before route discovery and resent when a
route is found.

This solves the following problems:
- First packet sent to a certain node is corrupted.
- Packet to be forwarded that triggers route discovery is lost.
2011-09-05 21:27:38 +02:00
Adam Dunkels 3fa14d3cd5 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-09-05 20:45:24 +02:00
Adam Dunkels 13853b2cfd Set default RDC wakeup rate to 8 hz 2011-09-05 20:42:38 +02:00
nvt 644f1c627d Initialize the DIO object in case options are missing. Updated the terminology regarding options. 2011-09-05 20:28:50 +02:00
Adam Dunkels f7a3a8476f Added a safeguard to fragmentation reassembly: if there are additional bytes in the final fragment, we shave them off in the spirit of being 'liberal in what we accept' 2011-09-05 14:26:48 +02:00
Joakim Eriksson 7b50b87e12 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-09-05 11:40:22 +02:00
Joakim Eriksson 62705a17ea Send DAOs if dtsn differs instead of only when larger than last dtsn in DIO 2011-09-05 11:36:53 +02:00
Adam Dunkels bd951031ef Cleanup of the ContikiMAC code; removed the old an unused announcement code 2011-09-02 14:06:29 +02:00
Adam Dunkels 61ef9b6fc3 Cleanup of the ContikiMAC code; removed the old an unused announcement code 2011-09-02 14:06:27 +02:00
Adam Dunkels 9b53b3aa8e Small spelling bugfix 2011-09-02 13:51:28 +02:00
Adam Dunkels 2da65385a0 Added a SICSLOWPAN_CONF_COMPRESSION_THRESHOLD that can be used to set a threshold under which header compression should not be used. Below this threshold, headers are not compressed but sent as full IPv6 packets. This is useful for RDC layers, such as ContikiMAC, which set a lower bound for packet size. 2011-09-02 13:51:09 +02:00
Adam Dunkels 3cb42ceb10 Made the ContikiMAC header configurable from contiki-conf.h 2011-09-02 13:37:46 +02:00
Adam Dunkels 9e30f0f7c6 Minor code style fixes 2011-09-02 08:16:50 +02:00
Adam Dunkels 6220e231a2 Fixed previously erroneously fixed include 2011-09-01 09:11:46 +02:00
Adam Dunkels 4cf82b2764 Fixed includes 2011-09-01 08:45:18 +02:00
Adam Dunkels d6508cf3c0 Made the number of phase neighbors configurable 2011-08-31 20:54:21 +02:00
Adam Dunkels 81e098d2da Added some defensive programming 2011-08-31 20:53:48 +02:00
Adam Dunkels 7ce313eef6 A significantly simpler API for sending UDP packets 2011-08-29 21:30:21 +02:00
David Kopf 11efc33d2c Make comparison endian-safe, thanks Ivan. 2011-08-18 14:01:20 -04:00
David Kopf df70b21c70 gcc 4.4.1 - 4.6.0 compiler bug workaround. 2011-07-31 15:36:01 -04:00
Vincent Brillault d7c114dbd8 RPL prefix handling fix : Change IP on DODAG change, delete IP when leaving DODAG. 2011-07-13 10:42:59 +02:00
Vincent Brillault d8d9494168 uip : When creating a route with a "state" field, clear it (It's possible that the process responsible for this creation doesn't handle the state field) 2011-07-13 10:31:22 +02:00
Vincent Brillault 4f76130a77 Changed Instance structure in order to decrease memory waste. 2011-07-13 10:28:56 +02:00
Vincent Brillault 286cf002bc Clean nd6 debug output (use uip-debug instead of local code) 2011-07-11 16:53:36 +02:00
Vincent Brillault f4b804ed9f Add support of RPL Option (http://tools.ietf.org/html/draft-ietf-6man-rpl-option-03):
- Auto-insersion when forwarding messages
- Delete messages with 2 rank errors
Not supported yet :
- Routing depending on InstanceID
- DAO inconsistency loop recovery
- Full UDP or TCP support (Bugs in µIPv6)
- Real Option Type (TBD by IANA)
2011-07-11 16:53:02 +02:00
Vincent Brillault dc9cbe647d Changes in RPL implementation :
- Structural modification of RPL data storage.
- Support multiple gateways (multiple DODAG-ID with a unique InstanceID)
- Use Lollipop counters
- Add leaf-only configuration option for RPL
Bugfix :
- Correctly send "Grounded" flag in DIO
2011-07-11 16:52:45 +02:00
Vincent Brillault 2ac91d53b5 Add (dangerous) feature : use layer 2 acks instead of NUD in the IPv6 layer.
(Decrease packet numbers but dangerous if neighbors change their ips (not a problem in standard RPL with EUI-64 based addresses))
2011-07-11 14:19:14 +02:00
Vincent Brillault 6ddd0bb190 Allow to completely desactivate DAD (useless in route-over LLN as implemented, see http://tools.ietf.org/html/draft-ietf-6lowpan-nd-15#section-8.2) 2011-07-11 13:51:38 +02:00
Vincent Brillault b0907f0344 Cleaning old .h :
- Delete unimplemented function and unused structures
- Remove misleading configuration options
- Transfer some comments from 6lowmac to framer-802154
(doc/uip6-doc.txt should be cleaned as well)
2011-07-11 13:20:30 +02:00
Nicolas Tsiftes 77a44c560a The flags field got widened to 9 bits. 2011-06-28 17:49:32 +02:00
Nicolas Tsiftes b1fea35e47 Fixed issues with propagation of the route lifetime configuration. Removed deprecated configuration parameters. 2011-06-28 17:08:44 +02:00
David Kopf c48b7ab78d Add RPL nodes and border router to minimal-net platform (cygwin only) 2011-06-28 08:19:48 -04:00
Nicolas Tsiftes 6749281a87 Rediscover lost routes when forwarding packets. Also refresh route entries when sending packets through them. Patch from Jaroslav Meduna. 2011-06-23 14:45:11 +02:00
Niclas Finne 28b0479c06 Added optional address filtering 2011-06-15 17:51:57 +02:00
Niclas Finne e8a96dc202 Bug fix: update packet attributes in queued packets in CSMA instead of doing a full packetbuf copy after transmissions. The lower layers often add their own headers to packetbuf. 2011-06-15 16:10:07 +02:00
Niclas Finne 154f971b2b collect_send() should return 0 if the packet could not be enqueued to be sent 2011-06-07 19:45:41 +02:00
dak664 580efaa412 Fix compiler warning for unused variable 2011-05-18 11:22:25 -04:00
Joakim Eriksson 2432a8ee7d set expected reception sequence no to zero - to get initial connection to avoid having ack-number other than zero 2011-03-11 14:27:23 -05:00
Salvatore Pitrulli 4fb433ac1f 'if' statement replaced by a preprocessor directive. 2011-05-12 21:50:47 +02:00
Joakim Eriksson 695c7d74b8 fixed bug in 6lowpan compression when compressing 2011-05-09 09:57:37 +02:00
nvt e00508472c Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-05-03 18:18:50 +02:00
nvt 15ee0a6414 Send No-Path DAOs correctly. 2011-05-03 17:50:24 +02:00
Adam Dunkels dfaf4afc8e Rime sniffers must be called for all transmissions, even if they failed, to get energy attribution right. This means that rime output sniffers now also must take the MAC transmission status as an argument. 2011-05-02 15:06:34 +02:00
Zhitao He cae8ef206a fixed excessive retransmissions of junk packets after runicast timeout
fixed stuck packet ID for next packet after runicast timeout
2011-04-27 19:12:46 +02:00
nvt 4b5d380c74 Announce MAX_PATH_COST if we don't have a preferred parent. 2011-04-25 22:37:25 +02:00
Adam Dunkels 74f1754d88 Bugfix: energy consumption for retransmissions was miscounted 2011-04-13 14:10:39 +02:00
Adam Dunkels af4ce9ba9e Bugfix: idle power consumption was sometimes misestimated for transmissions, when a duty cycle rtimer fired in the middle of a transmission 2011-04-13 14:10:02 +02:00
Oliver Schmidt 07f3df45be Converted scope-local variables into function-local variables.
The 6502-specific LC implementation doesn't allow for scope-local vaiables between PT_BEGIN/PROCESS_BEGIN/PSOCK_BEGIN and PT_BEGIN/PROCESS_END/PSOCK_END.
2011-04-12 14:12:09 +02:00
Joakim Eriksson 5a054c82d2 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-04-07 17:46:01 +02:00
Joakim Eriksson 02fcf5835a fixed RPL to handle inifinite rank better 2011-04-07 17:44:07 +02:00
Niclas Finne 5a4a39afb3 changed etx to metric 2011-04-07 09:46:37 +02:00
Joakim Eriksson d8e54ca585 fixed for compilation with IAR compiler 2011-04-06 20:14:30 +02:00
Joakim Eriksson 26f0a6e88e changed ext to link_metric 2011-03-28 16:17:53 +02:00
Joakim Eriksson c9af578eab added psock function for reading specified number of bytes 2011-03-09 02:40:53 -05:00
Joakim Eriksson 2baa6cf1b5 fixed so that ] is accepted as end of IPv6 address 2011-03-08 23:11:06 -05:00
Joakim Eriksson 590b0a1696 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-03-22 10:46:46 +01:00
Joakim Eriksson 90ae09c7e5 fixed parsing of address to handle [<addr>] 2011-03-22 10:42:38 +01:00
nvt 55c4df8ee7 Slight generalization to make it easier to switch metric. 2011-03-17 20:29:38 +01:00
nvt cdaf58f892 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-03-17 20:23:53 +01:00
nvt 8078ef7705 ROOT_RANK is now a macro function. 2011-03-17 20:21:56 +01:00
Nicolas Tsiftes c461266524 Made the code more conforming to the Contiki style. 2011-03-16 13:35:44 +01:00
Nicolas Tsiftes 65366d10c1 Update the metric container correctly. Use only one ETX initializer. 2011-03-16 13:29:01 +01:00
Nicolas Tsiftes eee9a68b12 Simplified. Removed the need for an initial guess. 2011-03-16 13:26:52 +01:00
Joakim Eriksson 6554e87c00 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-03-15 14:15:55 +01:00
Joakim Eriksson 5f4d4550fc fixed RPL statistics bug and added parent switch stats 2011-03-15 14:14:41 +01:00
nvt 4739143126 Generalized MRHOF and added partial support for energy objects in DAG metric containers. 2011-03-15 01:16:20 +01:00
dak664 a883c9bcbc Add PRINTA so direct calls to debug routines will always print 2011-03-13 11:57:39 -04:00
Joakim Eriksson 340c86e401 reverted to byte-based iid check 2011-03-07 22:02:43 +01:00
Joakim Eriksson 4599284110 minor cleanup of 16-bit compressable macro and comment 2011-03-07 14:50:29 +01:00
Joakim Eriksson 972c1992d2 16-bit addr compression fix 2011-03-06 22:34:16 +01:00
nvt a7addf990f Avoid hysteresis check if neither p1 nor p2 is the preferred parent. 2011-03-04 16:40:40 +01:00
Fredrik Osterlind 499c13a357 removed execute flag of source files (avoids diff problems with egit) 2011-03-01 18:16:42 +01:00
Joakim Eriksson fa0fbf5dab fixed format of transit subopt 2011-03-01 12:33:34 +01:00
dak664 7f3c198a78 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2011-02-28 16:32:48 -05:00
dak664 105f581d86 Use AVR program flash for uip-debug.h printfs. 2011-02-28 16:23:05 -05:00
Mariano Alvira e826ccd3b9 add NULLRDC_CONF_802154_AUTOACK_HW for radios that only pass-up NOACK
status but not the actual ack packet.
2011-02-23 15:19:44 -08:00
Mariano Alvira a8f9119ace pass up a RADIO_NOACK to the MAC layer. 2011-02-23 15:19:43 -08:00
Joakim Eriksson 3cd7835f5c made DIO parameters configurable 2011-02-22 18:24:05 +01:00
Joakim Eriksson 68e9fb2a5c added annotate when setting root and joining dag 2011-02-22 16:19:42 +01:00
nvt e9234a8404 Error: the value was printed before setting it 2011-02-22 02:01:15 +01:00
Adam Dunkels 733aaa546f Made the number of MAC sequence numbers to remember configurable; fixed bug with power attribution to the idle state. 2011-02-21 14:11:32 +01:00
Adam Dunkels 24af4888bc Made the number of MAC sequence numbers to remember configurable 2011-02-21 14:11:17 +01:00
Lionel Debroux 5cb49e8b07 Several compiler warning fixes:
* msp430: fix "implicit declaration of function" warnings in clock.c, by including watchdog.h;
     * sky: fix a couple pointer target signedness warnings;
     * core: fix several signed/unsigned comparison warnings;
     * framer-802154: "const static" -> "static const" to fix compiler warnings;
     * core: comment or remove unused variables and function definitions.

Signed-off-by: Lionel Debroux <lionel_debroux@yahoo.fr>
Signed-off-by: Mariano Alvira <mar@devl.org>
2011-02-20 19:28:14 -05:00
nvt 01b7a4f7f2 Replaced ROOT_RANK with a macro that allows for other min_hoprankinc parameters than the default. Also made some minor style improvements. 2011-02-20 20:15:40 +01:00
Mariano Alvira bb1baffc79 change FIX2ETX -> NEIGHBOR_INFO_FIX2ETX in some debug prints. 2011-02-17 20:54:57 -05:00
Nicolas Tsiftes 93a7280a1a Replaced old description 2011-02-15 18:10:15 +01:00
nvt 99d0387a8e Merge branch 'master' of github.com:adamdunkels/contiki-2.x 2011-02-15 01:13:41 +01:00
nvt a093c262ee Improved objective function API so DAG metric containers can be generated cleanly. The packet generation now asks the OF to provide a fresh logical presentation of the metric container, which is then translated to raw packet format. 2011-02-15 01:13:30 +01:00
Adam Dunkels db37e38156 Make sure we don't remove the preferred parent 2011-02-14 23:01:11 +01:00
nvt cbe4513bf4 basic support for parsing metric containers in DIOs 2011-02-13 23:17:56 +01:00
nvt 539ff33104 Turn off debugging 2011-02-13 21:36:07 +01:00
nvt 0df450f0dc Add the NEIGHBOR_ATTR prefix to a macro name 2011-02-13 21:34:59 +01:00
nvt 5ec2f19dc9 Remove only the worst parent if the table is full when processing a DIO. 2011-02-13 21:33:47 +01:00
Adam Dunkels 432928d000 Changed the name of macros defined in neighbor-info.h to have the NEIGHBOR_INFO prefix. 2011-02-13 21:29:59 +01:00
Adam Dunkels acb5480aa9 Changed the name of macros defined in neighbor-info.h to have the NEIGHBOR_INFO prefix. 2011-02-13 21:21:14 +01:00
Adam Dunkels ed3995960d Changed the name of macros defined in neighbor-info.h to have the NEIGHBOR_INFO prefix. 2011-02-13 21:21:13 +01:00
Adam Dunkels 15bf73ba08 Use DAG_RANK() macro to compute rank 2011-02-13 19:01:15 +01:00
Adam Dunkels e980072817 Don't add neighbor as a potential parent if its rank is too high. 2011-02-13 18:05:28 +01:00
Adam Dunkels 2a96835c05 Don't remove all parents that have a worse rank than an incoming DIO: we may inadvertently remove our preferred parent. Instead, remove parents with a rank that is worse than our preferred parent. If we are lucky, this will give us enough space for the new parent. 2011-02-13 14:16:15 +01:00
Adam Dunkels f1ac94e415 Slight code complexity reduction 2011-02-13 14:14:49 +01:00
Adam Dunkels 3a824d0ed6 Added a hysteresis when choosing a new parent: don't switch parent unless the ETX is significantly better (1.5 ETX better). 2011-02-13 14:14:16 +01:00
Joakim Eriksson 48fb9dda9e fixed of0 to respect min hop rank increase 2011-02-13 11:25:53 +01:00
nvt 20171985c6 Split the RPL header into a private and a public header. 2011-02-11 16:21:17 +01:00
Adam Dunkels 706045120f Changed the variable name local_confidence to etx to better reflect what it was used for 2011-02-11 14:18:57 +01:00