Commit graph

2319 commits

Author SHA1 Message Date
Adam Dunkels
d891d11324 Merge pull request #557 from kkrentz/llsec-integration
Integration of Link Layer Security
2014-10-08 15:45:46 +02:00
Joakim Gebart
24d15ad9a5 core/net/ip: Prevent (tiny) buffer overflow in resolv_found()
An off-by-one error in resolv_found() could make an strncat() call
overflow by the terminating null byte.

When building with Clang the following warning was shown:

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

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

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

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

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

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

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

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

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