Commit graph

2960 commits

Author SHA1 Message Date
Billy Kozak 467f28286c The CSMA driver no longer throttles queued packets
Fix for #1166

Updated the CSMA driver so it no longer applies a time delay for
sending queued packets which were sent without error.
2015-09-18 09:35:29 -06:00
Billy Kozak 32e668ae2a Fix for #1165
It is possible that packetbuf is modified by the call to
mac_call_sent_callback. If this occurs ContikiMAC will not be able to
recognize that a packet is pending.

This fixes this problem by storing pending status in a local variable before
calling mac_call_sent_callback.
2015-09-18 09:33:10 -06:00
Valentin Sawadski cad1c37fb3 Better prints of ::FFFF: prefixed IPv4-mapped addresses
IPv4-mapped Address [1] are now printed accoriding to the text representation
mixed IPv4 and IPv6 networks as specified in [2]

[1] https://tools.ietf.org/html/rfc6890#page-14
[2] https://tools.ietf.org/html/rfc3513#page-5
2015-09-18 14:57:01 +02:00
Simon Duquennoy 66ec94fd74 Minor improvements to RPL probing 2015-09-17 22:54:38 +02:00
Simon Duquennoy a7ce312ee3 Enhanced RPL loop repair: send unicast DIO to source when detecting a loop from ext header, update rank along the path (when rank error is signaled) 2015-09-17 22:53:12 +02:00
Valentin Sawadski 43770a934d Refactor tcpip.c packet input
The UIP_CONF_FORWARD is now handled in a better way that the general structure
of packet_input can be clearer seen.
2015-09-15 09:31:43 +02:00
Nicolas Tsiftes 70b3585f76 Merge pull request #1249 from simonduq/fix-rpl-icmp-warnings
Fix compiler warnings in rpl-icmp6.c
2015-09-10 14:44:04 +02:00
Simon Duquennoy 5329c42034 Remove unused variables 2015-09-08 23:38:43 +02:00
Simon Duquennoy 63ddba93a9 Merge pull request #1169 from feshie/pr-warnings-fix
Fix multiple warnings (TCPIP, coap-observe, msp430, z1/tmp102, ContikiMAC)
2015-09-08 09:05:44 +02:00
Arthur Fabre e8cbf2e5fb Fix warning in TCPIP
When disabling TCP support, the following warning is triggered:
../..//core/net/ip/tcpip.c:159:1: warning: ‘start_periodic_tcp_timer’
defined but not used [-Wunused-function]
An added ifdef guard now only defines this function when TCP support is
enabled.
2015-09-07 17:52:22 +01:00
Atis Elsts eac1973073 Introduce ENERGEST_SWITCH macro. It allows to switch between energest modes without running into the risk of losing a tick in the process 2015-09-04 11:49:02 +02:00
Adam Dunkels 92c1a68b94 Merge pull request #1215 from joakimeriksson/rpl-child-locking
Move locking of neighbors / children from RPL to uip-ds6-route module
2015-09-02 19:42:45 +02:00
Billy Kozak 7b27ad64ca Replaced function pointer cast in contikimac
Replaced a cast of the funciton pointer to powercycle with a
wrapper calling powercycle which has the correct signature.

The previous implementation was an instance of undefined behaviour
according to the C standard.
2015-09-01 10:16:43 -06:00
Nicolas Tsiftes b8cccb6d3c Merge pull request #1183 from simonduq/galois_mul2
galois_mul2 conditional-free implementation
2015-08-31 14:41:17 +02:00
rajithr 2a2acf62ed Fix for out of bounds access
Fix for out of bounds access by limiting the printing to the size limit of the buffer
2015-08-31 16:10:00 +05:30
Valentin Sawadski 2cd74d043d CTIMER API extension to explictly state the process a ctimer belongs to 2015-08-31 10:31:36 +02:00
Simon Duquennoy ddf970d3db Merge pull request #695 from sdefauw/contiki
IPv6 prefix bug
2015-08-29 20:27:50 +02:00
Joakim Eriksson 9e16d93278 removed pointer to next parent since it is not used anymore 2015-08-28 19:15:23 +02:00
Antonio Lignan 37470bbc1b Merge pull request #1055 from sumanpanchal/msp430x-elfloader
Added MSP430x ELFLOADER support to load image with large memory model.
2015-08-27 21:19:27 +02:00
Joakim Eriksson 4d5c749cf7 removed locking of rpl-parent since it was never unlocked - moved to routing module 2015-08-27 18:45:06 +02:00
Joakim Eriksson 5dee80a253 added locking of nexthop for routes to avoid the risk of nexthop removal 2015-08-27 18:45:06 +02:00
Joakim Eriksson 7c2bff0462 added debug print for nbr-table-module 2015-08-27 18:45:06 +02:00
Fredrik Österlind c3f61e2c79 Merge pull request #563 from cmorty/etimer_reset_set
Add function etimer_reset_set.
2015-08-27 13:08:37 +02:00
Adam Dunkels 2b549f3789 Bugfix: need to explictly drop RPL packets by setting uip_len = 0, otherwise those packets are forwarded, with the wrong link layer address as a sender, causing the mesh to create false routes 2015-08-27 10:28:54 +02:00
Adam Dunkels 9cd84563cb Send a no-path DAO when becoming feather mode, so that the network can drop routes to us, which are no longer needed 2015-08-27 10:27:56 +02:00
Adam Dunkels bfb29d2f11 Merge pull request #1116 from cetic/pr-uip-clear-buffer
Add uip_clear_buf() macro and replace all instances of uip_len = 0
2015-08-27 10:27:08 +02:00
Moritz 'Morty' Strübe 9b77aac542 Add function etimer_reset_set.
This new function is similar to reset, but allows to also set a new
timeout. Thus long-term accuracy with changing timeouts is now possible.
2015-08-25 17:03:44 +02:00
Oliver Schmidt 12fd559244 Fixed DHCP client.
RFC2131 states on page 36 regarding DHCPREQUEST: " 'xid' from server DHCPOFFER message "

As the DHCPOFFER message uses the 'xid' from the DHCPDISCOVER message this means that the DHCP client is supposed to re-use the 'xid' from its DHCPDISCOVER for the DHCPREQUEST.
2015-08-25 16:24:37 +02:00
Simon Duquennoy 04106a0d53 ND6: make sure the second parameter of uip_ds6_nbr_add is word-aligned, which is required as the parameter is directly accessed as uip_lladdr_t* (not as a byte array) 2015-08-20 17:06:03 +02:00
Atis Elsts b75f673801 RDC phase optimization: correct the behavior in case of memory allocation failure
phase_wait did not check whether queuebuf_new_from_packetbuf() returns NULL. This potentially causes send_packet to behave incorrectly; the proper packet would not be sent out (because queuebuf_to_packetbuf(NULL) is a no-op). Instead, whatever has been left in the packet buffer by its previous user will be sent out.
2015-08-14 16:37:00 +02:00
Atis Elsts 765ce0c22f Fix Rime attribute serialization in chameleon-bitopts.c for big endian systems 2015-08-14 16:16:46 +02:00
Billy Kozak 9cd439d8c0 changed tcpip static temporaries to stack vars
A number of local variables in tcpip.c were declared with static
storage for no good reason (they do not ever preserve state between
function calls).

This patch removes static declaration from these variables.
2015-08-12 09:51:26 -06:00
Nicolas Tsiftes a410f0cd23 Merge pull request #1179 from pablocorbalan/rpl-nbr-state
Changed RPL IPv6 NBR Callback Print Statement
2015-08-06 09:54:20 +02:00
Pablo Corbalán aa04f8afbf Changed RPL IPv6 NBR Callback print statement 2015-08-04 19:54:32 +01:00
Simon Duquennoy dc4de9d001 Merge pull request #1161 from g-oikonomou/contrib/contikimac-sw-ack
Implement TX of S/W ACKs with ContikiMAC
2015-08-04 13:15:03 +02:00
Simon Duquennoy bfba83ed16 galois_mul2 conditional-free implementation 2015-08-03 15:13:00 +02:00
George Oikonomou cf4e191593 Merge pull request #1172 from tim-ist/tm_fix
[multicast] Do not forward every incoming TM ICMP
2015-08-03 10:26:39 +01:00
Timofei Istomin b9aa88b504 [multicast] Do not forward every incoming TM ICMP
The Trickle Multicast ICMP packet handler was not resetting uip_len to zero,
so all incoming TM ICMP packets were forwarded overloading the network.
2015-07-17 20:04:15 +02:00
Arthur Fabre 8739113308 Fix warnings in ContikiMAC
../..//core/net/mac/contikimac/contikimac.c:503:11: warning: variable
‘seqno’ set but not used [-Wunused-but-set-variable]
../..//core/net/mac/contikimac/contikimac.c:496:7: warning: variable
‘len’ set but not used [-Wunused-but-set-variable]

Both of these variables are only used if RDC_CONF_HARDWARE_ACK is not
true.
Their definitions and use have been moved into #ifdef guards so they do
not appear if RDC_CONF_HARDWARE_ACK is set.
2015-07-16 13:49:31 +01:00
George Oikonomou 315f6fe535 Implement TX of S/W ACKs with ContikiMAC 2015-07-12 00:07:33 +01:00
George Oikonomou 503a992887 Make ContikiMAC more configurable
Allow the project / platform to provide values for CCA_SLEEP_TIME and LISTEN_TIME_AFTER_PACKET_DETECTED.

This is useful for sub-ghz operation.

This has been shamelessly stolen from the [Mountain Sensing project](https://github.com/feshie/contiki)

@heliosfa @kmartinez
2015-07-11 23:55:44 +01:00
Amit Geron bf3a5de75e Fix stunicast timer restart
Instead of hard coded setting the resend timer to CLOCK_SECOND,
restart it, so that the time between ANY following transmissions will
be as passed to stunicast_send_stubborn.
2015-07-09 12:03:55 +03:00
Amit Geron b1ef3fdf41 Fix indentation 2015-07-09 12:03:55 +03:00
Simon Duquennoy 3315d3069d Merge pull request #1108 from phoenix-frozen/generify-ccm-star
generalised CCM module into lib
2015-07-01 10:44:41 +02:00
Justin King-Lacroix 30704e5afc CCM* module now accepts fixed-size 13-byte nonces
also adjusted variable naming conventions in CCM* module
to use 'nonce' and 'iv' in line with RFC 3610 terminology
2015-06-29 22:51:00 +02:00
Antonio Lignan 8cc0a12a9f Merge pull request #1097 from bthebaudeau/cc2538-examples-fix-warnings
cc2538: examples: Fix build warnings
2015-06-24 11:39:24 +02:00
tpetry b3046f1537 remove rime routes in LRU mode if trying to add a new route to full route table 2015-06-19 16:32:19 +02:00
Laurent Deru c73cd66a92 Change all printf into PRINTA in uip-debug.c; remove compilation warning and move addr check after local variables definition in uip_debug_ipaddr_print 2015-06-18 15:14:46 +02:00
Nicolas Tsiftes d36e8adbdd Merge pull request #1123 from cetic/pr-fix-uip-debug-lladdr-print
Check pointer in uip_debug_lladdr_print
2015-06-18 14:19:37 +02:00
Laurent Deru 60784b40bd Check pointer in uip_debug_lladdr_print 2015-06-18 10:56:45 +02:00
Laurent Deru 49700c6a79 Merge pull request #1118 from phoenix-frozen/aes128-const-key
made AES-128.set_key's argument const
2015-06-16 10:30:35 +02:00
Justin King-Lacroix db15647c2b made AES-128.set_key's argument const 2015-06-15 20:20:07 +01:00
Sumankumar Panchal db4df30366 Added MSP430X ELFLOADER support to load image with large memory model. 2015-06-15 17:53:18 +05:30
Laurent Deru 1784338b2e Add uip_clear_buf() macro and replace all instances of uip_len = 0; with it 2015-06-15 11:10:51 +02:00
Oliver Schmidt 35becbbcb5 Merge remote-tracking branch 'upstream/master'
Conflicts:
	core/net/ip/uip-nameserver.c
2015-06-14 16:33:23 +02:00
Oliver Schmidt a0d9f028d6 Made first uip_nameserver_update() parameter const.
Both apps/dhcp/dhcp.c:dhcpc_configured() and cpu/6502/ipconfig/ipconfig.c:dhcpc_configured() presume the first parameter of uip_nameserver_update() to be const. As there's no reason for it to be not const just make it const.
2015-06-14 16:27:39 +02:00
Oliver Schmidt adc744ef30 Avoid compiler warning because of unused variable. (reverted from commit a9c6d59da3) 2015-06-14 15:24:38 +02:00
Justin King-Lacroix 3ce8f26eea generalised CCM module into lib
introduced convenience functions for LLSEC modules
2015-06-10 18:07:41 +01:00
Benoît Thébaudeau 66acf74612 cc2538: examples: Fix build warnings
Toolchain used:
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150303
(release) [ARM/embedded-4_9-branch revision 221220]

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-06-02 01:38:11 +02:00
rajithr 08503a20be Protection against possible buffer overflow 2015-05-27 19:06:19 +05:30
Nicolas Tsiftes 5a26d25647 Merge pull request #918 from cetic/pr-multi-dodag-support
Multi DODAG support
2015-05-26 16:32:10 +02:00
Nicolas Tsiftes be891c0554 Merge pull request #915 from cetic/pr-rpl-default-route-infinite
Allow rpl default route lifetime to be infinite
2015-05-26 16:26:58 +02:00
Laurent Deru 9782a760b1 rpl_process_dio: Update parent rank 2015-05-22 17:21:53 +02:00
Laurent Deru ccd3c58280 rpl_select_parent: Update dag rank according to new parent 2015-05-22 17:21:53 +02:00
Laurent Deru fc8415e1ad Allow rpl default route lifetime to be infinite 2015-05-22 13:00:06 +02:00
rajithr 0d8de9022c Remove redundant assignment 2015-05-20 15:37:32 +05:30
Adam Dunkels 730bda2001 Merge pull request #883 from cmorty/pull/global-macros
Move MAX, MIN and ABS to contiki-macros
2015-05-18 21:33:00 +02:00
Ulf Knoblich a388a1bcd7 CC2538: added support for SSI1 2015-05-18 10:02:55 +02:00
Moritz 'Morty' Strübe 0dab6926b3 Move MAX, MIN and ABS to sys/cc.h 2015-05-18 08:53:17 +02:00
Simon Duquennoy fc178dab87 rpl_print_neighbor_list(): cast clock_time_t to unsigned for portable printout 2015-05-13 09:03:40 +02:00
George Oikonomou 11a5e0a49a Merge pull request #1051 from simonduq/fix-warning
Fixed a number of compiler warnings
2015-05-13 00:52:40 +01:00
Simon Duquennoy 5294cafd14 petsciiconv.c: move variables from global to local 2015-05-12 09:25:22 +02:00
Simon Duquennoy 259c473372 Disable RA and NA by default when RPL is used 2015-05-10 19:56:37 +02:00
Nicolas Tsiftes 05d2d843da Merge pull request #1053 from simonduq/rpl-probing
RPL probing
2015-05-10 17:22:10 +02:00
Nicolas Tsiftes 71427ed4cc Merge pull request #1016 from cetic/pr-cleanup-dodag-when-root
Remove all the DODAG from the instance when the node is set as Root
2015-05-10 17:15:25 +02:00
Nicolas Tsiftes 44af0fa66b Merge pull request #1003 from adamdunkels/pr/http-socket-dns64-tcp-socket
New HTTP socket, DNS64, IP64 Cooja tests
2015-05-10 17:14:31 +02:00
Nicolas Tsiftes f8e13758e3 Merge pull request #1017 from cetic/pr-dont-delete-instance
Do not delete instance when a new DODAG can not be created
2015-05-10 15:09:59 +02:00
Simon Duquennoy 9ced5b7bac RPL: when no probing target is found, probe least recently updated parent 2015-05-10 13:28:00 +02:00
Simon Duquennoy 832a4d3e01 Make probing expiration time configurable 2015-05-10 13:19:56 +02:00
Adam Dunkels e9f180e756 Made the first argument to uip_connect() const, to ensure it isn't altered 2015-05-10 10:51:13 +02:00
Adam Dunkels daef1ea252 Cast the addresses when copying IPv4 and IPv6 addresses using the IPv4 and IPv6 copy macros. 2015-05-10 10:51:13 +02:00
Adam Dunkels c06e6ae74d Explicitly use the IPv6 address copy macro when copying IPv6 addresses 2015-05-10 10:51:12 +02:00
Adam Dunkels b85fdfd2ae Move the ip64-addr code into the core/net/ip directory, to make it available on all platforms without having to explicitly include the core/net/ip64-addr module 2015-05-10 10:51:12 +02:00
Adam Dunkels 4bd725130c Code for starting a RPL DAG root with a delay, to allow any existing RPL networks to be joined first 2015-05-10 10:51:12 +02:00
Adam Dunkels 06daa08ffc Added a function for getting the default RPL instance 2015-05-10 10:51:11 +02:00
Adam Dunkels 33372945a3 HTTP socket code with support for GET and POST 2015-05-10 10:51:11 +02:00
Adam Dunkels ba409cce57 Treat multicast transmissions as recyclable 2015-05-10 10:36:50 +02:00
Adam Dunkels 269188846c Added support for DNS64 translation of DNS queries for IPv6 addresses to IPv4 addresses, and the translation of responses from IPv4 to IPv6 2015-05-10 10:36:50 +02:00
Adam Dunkels 251813a6dd Maintain stats about how many packets have been translated from IPv4 to IPv6 and vice versa 2015-05-10 10:36:50 +02:00
Adam Dunkels 191a57d06c Minor copyright header fix 2015-05-10 10:36:50 +02:00
Adam Dunkels 0f1f12fdc7 Bugfix in tcp-socket: there were a few corner cases when the tcp-socket state would be messed up, which is fixed with this patch 2015-05-10 10:36:50 +02:00
Simon Duquennoy 6a5f238255 RPL probing: make delay function user-configurable 2015-05-10 09:47:04 +02:00
George Oikonomou bd5e35c968 Merge pull request #1052 from simonduq/packetbuf-cleanup
Packetbuf cleanup
2015-05-09 22:30:21 +01:00
Simon Duquennoy 2dd182f4a8 Modified the default RPL probing selection process. Will now probe the least recently updated parent from time to time 2015-05-08 14:32:52 +02:00
Simon Duquennoy 47ba4c0c4b Implement RPL probing 2015-05-08 14:32:00 +02:00
Simon Duquennoy 529376be77 Added rpl_print_neighbor_list function for RPL state monitoring 2015-05-08 14:29:26 +02:00
Simon Duquennoy be47673d40 Fix debug message 2015-05-08 14:28:38 +02:00
Simon Duquennoy 4a93f5148d Fixed a number of compiler warnings 2015-05-08 09:07:20 +02:00
Simon Duquennoy 8344290e08 Added missing sanity check in uip-ds6-route.c 2015-05-07 16:58:23 +02:00
Simon Duquennoy 333e076b24 Disable PACKETBUF_ATTR_PACKET_TYPE in the non-Rime case by default 2015-05-06 16:36:15 +02:00
Simon Duquennoy 290fc829ea Consistently use PACKETBUF_ATTR_MAC_SEQNO for MAC sequence number, both input and output. Disable PACKETBUF_ATTR_PACKET_ID in the non-Rime case. 2015-05-06 16:34:44 +02:00
Simon Duquennoy bb76bb8beb Remove unused flag SICSLOWPAN_CONF_ACK_ALL. Include packetbuf attribute PACKETBUF_ATTR_RELIABLE only when RIME is compiled. 2015-05-06 16:34:26 +02:00
Nicolas Tsiftes f7ca4b41a9 Merge pull request #1001 from adamdunkels/pr/queuebuf-no-ref
Cleanup: remove the obsolete reference packetbuf
2015-05-03 16:35:17 +02:00
Oliver Schmidt a9c6d59da3 Avoid compiler warning because of unused variable. 2015-05-02 00:37:46 +02:00
Nicolas Tsiftes 7d06494331 Merge pull request #917 from cetic/pr-hbh-user-conf
Allow user configuration of RPL hop-by-hop option
2015-04-03 22:19:51 +02:00
Laurent Deru 0efa9f2046 Allow user configuration of RPL hop-by-hop option 2015-04-03 09:52:36 +02:00
Adam Dunkels 7acf747c1a Removed packetbuf references. This was a feature that is not used anymore and only made the code more complex. 2015-04-01 21:33:02 +02:00
Adam Dunkels c9c6688524 Remove the unused reference queuebufs, as they only make the code more complex than it needs to be 2015-04-01 10:01:57 +02:00
Nicolas Tsiftes 8f50d9709d Merge pull request #999 from adamdunkels/lebrush-rdnss-support-rebased
RDNSS support, again
2015-03-30 17:21:23 +02:00
Nicolas Tsiftes 793ed65cba Merge pull request #1013 from g-oikonomou/contrib/remove-uip-guard
Remove unnecessary #if guards
2015-03-30 16:59:23 +02:00
George Oikonomou aedffb6c87 Merge pull request #767 from ejoerns/pull-req/timer-note
Note that timer_reset() must not be executed before timer expired
2015-03-29 00:46:30 +00:00
George Oikonomou ff118be070 Remove unnecessary #if guards
ipv4/uip.c will not even be include in the list of sources in the first place if we are building with NETSTACK_CONF_WITH_IPV6 (CONTIKI_WITH_IPV6). Thus, there is no longer a need to wrap the entire source code in an #if guard.

Closes #935
2015-03-28 23:50:19 +00:00
Ioannis Glaropoulos 8552fb1ead Send the first NS attempt inside tcpip_ipv6_output() 2015-03-09 19:41:25 +01:00
Nicolas Tsiftes 2734c97234 Merge pull request #914 from cetic/pr-always-send-no-path-dao
Send no-path DAO only when the dag has a preferred parent
2015-03-06 14:33:07 +01:00
Laurent Deru 9d94c4efae Remove all the DODAG from the instance when the node is set as Root 2015-03-04 09:55:11 +01:00
Laurent Deru 49bfb1308d Do not delete instance when a new DODAG can not be created 2015-03-04 09:43:28 +01:00
Nicolas Tsiftes f9e5e24cf4 Merge pull request #895 from simonduq/rpl-single-dag
Do not use rpl_add_dag when RPL is used with a single dag per instance
2015-02-26 11:41:24 +01:00
Nicolas Tsiftes da04ec74ed Corrected some code style issues in Coffee. 2015-02-17 11:02:06 +01:00
Nicolas Tsiftes 6e3119234b Merge pull request #961 from g-oikonomou/mcast-documentation
Tidy-up multicast documentation
2015-02-17 09:05:11 +01:00
Nicolas Tsiftes d57634d417 Merge pull request #936 from skaterdude/master
Update rpl.c and uip.c (in ipv4)
2015-02-17 09:03:55 +01:00
Nicolas Tsiftes cafffb446d Merge pull request #958 from kshpylon/master
change value of RPL_DIO_MOP_MASK
2015-02-17 08:59:32 +01:00
George Oikonomou 5efb3f0769 Tidy-up multicast documentation
* Create a doxygen group and add files to it, so that documents appear as modules rather than simply under files
* Document plenty of functions, macros, constants, data types which were previously undocumented
* Re-structure some doxygen comments to improve structure and readability
2015-02-15 23:29:59 +01:00
George Oikonomou 43aeddbd89 Nudge comments left so they won't appear as a code block 2015-02-15 20:20:40 +01:00
George Oikonomou c8b802dc16 Fix doxygen warnings in the uip6 group 2015-02-15 20:15:03 +01:00
George Oikonomou b0390e3e70 Tidy up \file & \author blocks under core/net/ipv6
* Make these blocks appear in the respective module pages
* Re-word \file blocks to bring them up to speed with what each file actually does nowadays
2015-02-15 20:15:03 +01:00
George Oikonomou 06cfea692b Document a macro 2015-02-15 20:11:11 +01:00
George Oikonomou e596d5104d Fix minor typos 2015-02-15 20:11:11 +01:00
George Oikonomou 587dd8d9e4 Remove documentation of a macro which was commented out
The result of this was that the doxygen block was being applied to the wrong macro
2015-02-15 20:11:10 +01:00
George Oikonomou 35be05071c Fix some unresolved references
* Either by removing them
* Or by resolving them
2015-02-15 20:11:10 +01:00
George Oikonomou dd4f181cde Fix warnings caused by incorrect \defgroup, \addtogroup, \file 2015-02-15 20:11:09 +01:00
George Oikonomou 0b382a933a Fix warnings caused by unescaped special doxygen chars 2015-02-15 20:11:09 +01:00
George Oikonomou fb22e15844 Fix warnings caused by incorrect param names / undocumented params 2015-02-15 20:11:08 +01:00
George Oikonomou 988759a99e Fix "multiple use of section label 'channels'" warning in various rime headers 2015-02-15 20:11:07 +01:00
kshpylon db444e14c3 Update rpl-icmp6.c 2015-02-11 17:26:51 +09:00
Nicolas Tsiftes e67cd7369e Merge pull request #903 from joakimeriksson/rtable-fix
avoid updating routes that already are correct
2015-02-09 21:41:52 +01:00
Nicolas Tsiftes 5de85e5335 Merge pull request #906 from joakimeriksson/rpl-conf-copy
fixed so that trickle timer and route lifetime rpl config is updated at global repair
2015-02-07 21:23:29 +01:00
Joakim Eriksson 3aa8a62e41 avoid updating routes that already are correct 2015-02-06 21:14:20 +01:00
Joakim Eriksson 6edccf35a6 fixed so that trickle timer rpl config is updated at global repair 2015-02-06 13:50:26 +01:00
Nicolas Tsiftes 010a338630 Merge pull request #904 from joakimeriksson/move-etx
moved ETX storage variable from RPL to ds6-nbr
2015-02-06 12:25:35 +01:00
Joakim Eriksson e7fc14c7a1 fixed comments 2015-02-06 09:22:16 +01:00
Nicolas Tsiftes 2604260653 Merge pull request #896 from simonduq/32bit-align-packetbuf
Align packetbuf on an even 32-bit boundary
2015-01-21 23:33:51 +01:00
Adam Dunkels 952e1e4da3 Minor style updates 2015-01-09 09:44:07 +01:00
Adam Dunkels e4c387615e If the nameserver pool size is 1, we don't need to maintain a list of servers, but only a single server variable. This saves space. 2015-01-09 09:44:06 +01:00
Víctor Ariño ccc0d27da0 Integrates uip-nameserver API
On the same commit the src have been uncrustified and some typo
fixes as well as includes missing.
2015-01-09 09:44:06 +01:00
Víctor Ariño 27afb5a2ae Implements RDNSS standard
Sends DNS information within RA messages (if enabled)
2015-01-09 09:44:06 +01:00
Víctor Ariño c97dc2c7da Add standardized nameserver pool
Adds a common in contiki nameserver pool for handling name resolution
servers. This will allow in following commit to use RDNSS messages
within RA.
2015-01-09 09:44:06 +01:00
Roger S 605551f62c Update rpl.c
Removed change to "a RPL"
2015-01-04 23:54:02 -05:00
skaterdude c0a451c498 Minor typo fixes in comments only
Noticed a few minor typos, so skimmed through the file and found a few
more.
2015-01-04 23:42:56 -05:00
Roger S d62f51d9e7 Update rpl.c
Very minor grammar / spelling edits to comments
2015-01-04 18:09:47 -05:00
Nicolas Tsiftes 7841eface3 Merge pull request #911 from cetic/pr-reset-dao-flag
Reset nopath_received flag when new DAO is received
2015-01-03 11:38:35 +01:00
Nicolas Tsiftes 79517eb477 Merge pull request #910 from cetic/pr-dio-suppr-disabling
Allow disabling of DIO suppression as required by RFC
2015-01-03 11:35:08 +01:00
Nicolas Tsiftes ebdcf0d6ed Merge pull request #919 from cetic/pr-ra-user-config
Make RA configuration parameters user configurable
2014-12-20 19:18:28 +01:00
Nicolas Tsiftes f2f49f18f5 Merge pull request #913 from cetic/pr-rpl-stats
Fix and add more RPL stats
2014-12-19 22:15:38 +01:00
Laurent Deru b6139aabe3 Support more than one pending slip message 2014-12-19 11:25:19 +01:00
Laurent Deru f28e9587ed Make RA configuration parameters user configurable 2014-12-19 11:24:42 +01:00
Laurent Deru bb1e0c1cbc Add missing return values in rpl_update_header_empty() 2014-12-19 11:23:19 +01:00
Laurent Deru 81a92bd692 Send no-path DAO only when the dag has a preferred parent 2014-12-19 10:53:01 +01:00
Laurent Deru ccbfa388f6 Add more RPL stats 2014-12-19 10:51:03 +01:00
Laurent Deru 21253370b8 Reset nopath_received flag when new DAO is received 2014-12-19 10:49:56 +01:00
Laurent Deru d540d2b5af Allow disabling of DIO suppression as required in RFC 2014-12-19 09:51:26 +01:00
Adam Dunkels 542738192f Bugfix: uip_mss() isn't set until the connection is connected, so we can't set it during socket registration 2014-12-10 09:48:19 +01:00
Adam Dunkels fc4a83085a style fixes, cherry-pick this and fixup with ae87790 2014-12-10 09:32:06 +01:00
Joakim Eriksson 5be43c6f8d moved ETX storage variable from RPL to ds6-nbr 2014-12-10 09:11:53 +01:00
Adam Dunkels 72679a819b Merge pull request #898 from g-oikonomou/tcp-rst-fix
Fill IPv6->Next-Hdr field for outgoing RSTs
2014-12-09 10:48:29 +01:00
Adam Dunkels ffc27061fe Correctly set the proto field for the case when tcp_send_noconn is called without tcp_send being called 2014-12-09 09:09:26 +00:00
George Oikonomou 99513f1889 Fill IPv6->Next-Hdr field for outgoing RSTs 2014-12-08 22:00:36 +00:00
George Oikonomou 0dbed5b919 Allow specifying a max outgoing segment size per TCP socket 2014-12-08 21:58:12 +00:00
Nicolas Tsiftes ce914b3173 Merge pull request #890 from simonduq/cleanup-packetbuf
Cleanup packetbuf: use rime attributes and addresses only when rime is e...
2014-12-08 18:20:41 +01:00
Simon Duquennoy c0d6b116d6 Align packetbuf on an even 32-bit boundary 2014-12-03 19:06:00 +01:00
Nicolas Tsiftes b6b5c6efbb Merge pull request #894 from simonduq/ds6-fix
Fix conditional compilation directive in uip-ds6.c
2014-12-03 18:26:51 +01:00
Simon Duquennoy 29d631c6f5 Do not use rpl_add_dag when RPL is used with a single dag per instance 2014-12-03 17:40:40 +01:00
Simon Duquennoy 984c8e007b Fix conditional compilation directive in uip-ds6.c 2014-12-03 17:32:42 +01:00
Nicolas Tsiftes ee7c847048 Merge pull request #888 from adamdunkels/pr/resolv-fixes
Resolv fixes, including CERT VU #210620
2014-12-03 13:18:14 +01:00
Nicolas Tsiftes f82393b983 Merge pull request #889 from adamdunkels/pr/ip64-fix
IP64: randomize source ports for all outgoing connections
2014-12-02 18:27:19 +01:00
Adam Dunkels d21835a61f Don't do the debug printout if ipaddr is NULL 2014-12-02 17:11:15 +01:00
Adam Dunkels 990682229c Automatically initialize the resolv process 2014-12-02 17:11:15 +01:00
Adam Dunkels 19c7ae0dcd Avoid compiler warning about unused variable 2014-12-02 17:11:15 +01:00
Adam Dunkels 769a2f832e Fix for CERT VU#210620: randomize DNS request IDs for every request 2014-12-02 17:10:50 +01:00
Simon Duquennoy bd4233a953 Cleanup packetbuf: use rime attributes and addresses only when rime is enabled. Saves 32 byte per queuebuf in the non-rime case. 2014-12-02 16:54:58 +01:00
Nicolas Tsiftes 397b15f6db Merge pull request #864 from simonduq/cleanup-network-config
Cleanup network config
2014-12-02 16:40:14 +01:00
Adam Dunkels ad744c6218 Randomize source ports for all outgoing connections. Fix for CERT VU#210620. 2014-12-02 16:08:56 +01:00
Nicolas Tsiftes 3c7268c979 Merge pull request #859 from simonduq/move-packetqueue
Moved packetqueue to core/net/rime, as it is only used by the Rime colle...
2014-12-02 13:17:58 +01:00
Simon Duquennoy 415506c3f6 Doxygen fixes 2014-12-02 12:39:16 +01:00
Simon Duquennoy c2ca3e9fdb Cleanup UIP_CONF_IPV6_RPL configuration 2014-12-02 12:38:55 +01:00
Simon Duquennoy a9cc909794 Network layer configuration: replace UIP_CONF_* with NETSTACK_CONF_WITH_* 2014-12-01 21:02:57 +01:00
Simon Duquennoy e6d758e6f5 Remove now unneeded UIP_CONF_IPV6 guards in net/ipv6 and net/rpl code 2014-12-01 20:13:09 +01:00
Simon Duquennoy 722b3258d1 Cleanup of the Contiki network layer configuration. Now using CONTIKI_WITH_IPV6, CONTIKI_WITH_IPV4, and CONTIKI_WITH_RIME in makefiles, and UIP_CONF_IPV6, UIP_CONF_IPV4, UIP_CONF_RIME in c code. Now only the stacks that are used are compiled (via makefile MODULES). Make IPv6 the default network stack. 2014-12-01 20:13:09 +01:00
Nicolas Tsiftes d3d33c5699 Merge pull request #836 from lebrush/nbr-ll-nup
uip-ds6-nbr: consider reachable node if LL-NUD
2014-12-01 18:12:33 +01:00
Simon Duquennoy 1b73695c75 Moved packetqueue to core/net/rime, as it is only used by the Rime collect protocol 2014-12-01 17:47:00 +01:00
Nicolas Tsiftes 63563ed8df Merge pull request #652 from cetic/pr-rpl-rank-and-fw-errors
RPL rank and forward errors
2014-12-01 17:41:51 +01:00
Víctor Ariño 0f394b220b uip-ds6-nbr: consider reachable node if LL-NUD
The reachable state might also be considered to keep the reachable
state since we are already not standard complaint. This reduces the
nbr discovery messages if nodes talk to each other periodically.
2014-12-01 17:06:14 +01:00
Niclas Finne d160943f16 Bug fix: Stop the DAO lifetime timer in RPL instances when released.
Clearing the memory for an active etimer/ctimer might corrupt the
timer list and cause other timers to be lost or infinite loops. The
DAO lifetime timer is only used when RPL route lifetime is not
infinite but then the timer will cause problems if not stopped.
2014-11-29 00:22:34 +01:00
Nicolas Tsiftes 61ec5bf896 Merge pull request #514 from BastianPoe/contiki-mmem1
mmem: Prevent duplicate init of mmem
2014-11-28 19:57:17 +01:00
Nicolas Tsiftes 9b90c378e8 Merge pull request #812 from kkrentz/packetbuf-holds-broadcast
packetbuf_holds_broadcast()
2014-11-28 19:15:19 +01:00
Nicolas Tsiftes 47096a1bae Merge pull request #816 from kkrentz/contikimac-framer-fix
ContikiMAC framer fix
2014-11-28 19:12:55 +01:00
Nicolas Tsiftes 713d60435a Merge pull request #875 from joakimeriksson/rtablefix
Changed sorting order of routing list (optimization).
2014-11-28 19:09:38 +01:00
kkrentz 6ecbf8af34 ContikiMAC: Retain original copyright 2014-11-25 04:56:09 -08:00
kkrentz 18ee5ce294 ContikiMAC: Added missing length function to contikimac-framer.c 2014-11-25 04:56:09 -08:00
Joakim Eriksson 8e1c52b0ba Changed sorting order of routing list (optimization). 2014-11-24 09:36:54 +01:00
marcas756 b787b27d5b Moved thread states from module to header 2014-11-22 15:49:45 +01:00
Nicolas Tsiftes a8556a7518 Merge pull request #865 from kkrentz/mic-length-fix
llsec: Fixed MIC length
2014-11-20 15:11:13 +01:00
Nicolas Tsiftes e691dec9a4 Merge pull request #828 from oskarnp/pr-ipolite-fix
ipolite: stop ctimer and reset queuebuf pointer when canceling old send
2014-11-20 15:10:42 +01:00
Nicolas Tsiftes eb0676212c Merge pull request #858 from simonduq/cleanup-ctimer
Remove unnecessary list_remove in ctimer.c (list_add automatically remov...
2014-11-18 08:59:41 +01:00
Nicolas Tsiftes 866bb99944 Merge pull request #860 from simonduq/frame802154-align
frame802154_t: make sure dest_addr and src_addr are aligned
2014-11-18 08:59:30 +01:00
Nicolas Tsiftes cba5937bd3 Merge pull request #861 from simonduq/queuebuf-field-order
Alignment of field `data` in queuebuf
2014-11-18 08:38:23 +01:00
Laurent Deru 35e876e8c6 Force NUD on default routers 2014-11-17 09:55:22 +01:00
Laurent Deru 29f894c07e Drop forwarding error packet and send back DAO to originating parent 2014-11-14 09:40:05 +01:00
Laurent Deru a964380155 Rank error packet should not be forwarded 2014-11-14 09:40:04 +01:00
Laurent Deru 778d40dab7 Do not trigger global repair when forwarding error is detected 2014-11-14 09:40:04 +01:00
kkrentz a3b4e8101d llsec: Fixed MIC length; reject unsupported security levels 2014-11-13 12:34:37 -08:00
kkrentz fb00a217f5 packetbuf: Use packetbuf_holds_broadcast() all-over 2014-11-13 09:58:08 -08:00
kkrentz 3e44e8b258 packetbuf: Added function "packetbuf_holds_broadcast()" for checking whether the current packet is a
broadcast
2014-11-13 09:46:07 -08:00
Nicolas Tsiftes fb05d22623 Merge pull request #857 from simonduq/fix-queuebuf
Added missing memb_free in queuebuf.c
2014-11-13 17:22:44 +01:00
Enrico Joerns 85b494c16b [doc] Give files a common structure by placing license first (partial)
Followed by doxyen file and group tags.
This patch is only a first attempt to make provide a clean structure,
many more files require rework, too.
2014-11-10 23:54:49 +01:00
Enrico Joerns 5a38788944 [doc] llsec moved in net group 2014-11-10 23:53:34 +01:00
Enrico Joerns 81382d0dcf [core/net/rime] Avoid equal group titles in same group 2014-11-10 23:53:32 +01:00
Enrico Joerns e9b5899eed [core/net/mac] Doxygen: Added frame802154 to net group 2014-11-10 23:53:32 +01:00
Enrico Joerns 863b4b54cc [core/net/rime] Doxygen fixes 2014-11-10 23:53:32 +01:00
Enrico Joerns 0b8769e576 [doc] Various fixes for doxygen grouping etc. 2014-11-10 23:53:32 +01:00
Enrico Joerns e4db33f560 [doc] updated settings manager documentation 2014-11-10 23:53:32 +01:00
Enrico Joerns 548321e66d [doc] moved doxygen parts from core/net/simple-udp.c to corresponding
header file
2014-11-10 23:53:32 +01:00
Enrico Joerns cbca2d6604 [doc] fixed some minor typos 2014-11-10 23:53:31 +01:00
Simon Duquennoy 6b7017452b frame802154: move inclusion of linkaddr.h from .h to .c file 2014-11-10 15:43:32 +01:00
Simon Duquennoy df6a435d42 struct frame802154_t: make sure dest_addr and src_addr are aligned 2014-11-10 15:40:24 +01:00
Simon Duquennoy 494c397aba struct queuebuf_data: swap len with data to make sure data is 32-bit aligned 2014-11-10 14:27:17 +01:00
Simon Duquennoy 239207c8c6 Remove unnecessary list_remove in ctimer.c (list_add automatically removes first) 2014-11-10 13:41:33 +01:00
Simon Duquennoy c5ec342b8b Fix deallocation in queuebuf.c, case where QUEUEBUF_STATS is set 2014-11-10 13:24:03 +01:00
Simon Duquennoy 928bb49855 Added missing memb_free in queuebuf.c 2014-11-10 12:00:41 +01:00
Nicolas Tsiftes 6ca95ebc0c Merge pull request #811 from kkrentz/llsec-renaming
llsec renaming
2014-11-07 22:20:15 +01:00
Nicolas Tsiftes b37489b0de Merge pull request #766 from cetic/pr-6lowpan-frag-timeout
Fix too short 6LoWPAN reassembly timeout
2014-11-07 22:16:00 +01:00
Oskar Nordquist 5e640411f5 core/net/rime/ipolite: stop ctimer and reset queuebuf pointer when canceling old send
Ipolite is used by netflood and route-discovery modules among others. If a route request is yet to be re-broadcasted and a local route discovery is started (interval == 0), the previous queuebuf used is freed but ctimer and queuebuf pointer is left unchanged. This causes corrupt route requests to be sent, invalid routing tables to be formed, memcmp() on NULL pointer on receive, and other undefined behavior.

Signed-off-by: Oskar Nordquist <oskar.nordquist@crlsweden.com>
2014-10-21 15:25:52 +02:00
Nicolas Tsiftes 6fb7dd238e Merge pull request #648 from cetic/pr-csma-fixes
High throughput fixes for csma and sixlowpan
2014-10-21 12:17:03 +02:00
kkrentz 0579e304e4 llsec: Renamed ccm to ccm_star & Renamed llsec regression test 2014-10-16 09:21:56 -07:00
Nicolas Tsiftes fd47acba09 Merge pull request #808 from adamdunkels/pr/ip64
Conversion functions for IPv4/IPv6 addresses (missing from the NAT64 pr)
2014-10-10 00:42:37 +02:00
Adam Dunkels 5a24a781d5 The ip64-addr module converts between IPv4 and IPv6 addresses. 2014-10-09 08:07:34 +02:00
Mariano Alvira e803a654b4 Merge pull request #684 from SmallLars/2nd-button
Enabled 2nd button on platform econotag
2014-10-08 14:05:24 -05:00
Nicolas Tsiftes 0a88764185 Merge pull request #804 from adamdunkels/pr/ip64
NAT64 for Contiki (RFC6164, RFC6147)
2014-10-08 19:41:09 +02:00
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
Enrico Joerns 1654152193 [core] timer: Added note that timer_reset must not be executed before timer expired
Should save some users debugging time while adding no computation overhead
that would be needed for range checks
2014-07-10 11:33:00 +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
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
Ian Martin e5add3d1f8 Make protothread semaphores interrupt-safe. 2014-06-11 18:44:59 -04:00
Adam Dunkels cff30a394b Merge pull request #635 from nfi/linkaddr-size
Use LINKADDR_SIZE instead of sizeof(linkaddr_t) to avoid struct padding problems.
2014-06-11 23:18:27 +02:00
Adam Dunkels eceaf0c59b Merge pull request #631 from nfi/framer-len
Added function to framer that returns the estimated header length
2014-06-11 23:17:47 +02:00
Adam Dunkels 0516927677 Merge pull request #666 from simonduq/rpl-etx-init
Set initial link ETX to 2
2014-06-11 22:42:48 +02:00
Adam Dunkels def57199b9 Merge pull request #511 from ADVANSEE/leds
leds: Fixes and enhancements
2014-06-11 22:37:34 +02:00
Nicolas Tsiftes 40d33657a3 Merge pull request #710 from nvt/coffee-filename-fix
Coffee: Copy the correct number of bytes in filenames
2014-06-11 18:10:12 +02:00
Joakim Gebart 997aef49d8 core/net/uip.h: Add missing #include <string.h>
Fixes implicit definition of memcmp() warnings/errors.

Signed-off-by: Joakim Gebart <joakim.gebart@eistec.se>
2014-06-11 18:04:34 +02:00
Nicolas Tsiftes fb4fc312f1 Merge pull request #612 from nfi/assert
Undefine the assert macro to avoid compiler warning.
2014-06-11 15:43:17 +02:00
Nicolas Tsiftes 7004355c0f Do not copy more bytes than the filename string contains. 2014-06-11 14:10:00 +02:00
Adam Dunkels 64f65b4e45 Merge pull request #617 from nfi/extended-radio-api
Extended radio API with support for setting channel, pan id, addressing modes, etc
2014-06-03 21:32:53 +02:00
Nicolas Tsiftes 039dc5fb73 Merge pull request #667 from simonduq/ipv6-ndp-in-default-conf
Add UIP_CONF_ND6_SEND_NA to contiki-default-conf.h
2014-06-02 10:51:52 +02:00
Rémy Léone 25c8b0835d Closing doxygen groups 2014-05-30 11:01:20 +02:00
Lars Schmertmann 50481722a8 Enabled 2nd button on platform econotag 2014-05-23 11:50:12 +02:00
Nicolas Tsiftes 443bbd3948 Merge pull request #664 from simonduq/rpl-link-metric-init-fix
RPL MRHOF: bypass EWMA when setting a parent's link metric for the first time
2014-05-14 16:42:29 +02:00
Jens Dede 8820597cca Merge branch 'master' of git://github.com/contiki-os/contiki into ds6_period_configurable 2014-05-08 09:27:43 +02:00
Simon Duquennoy 5aab392a22 Set default link ETX to 2 2014-05-07 16:27:24 +02:00
Nicolas Tsiftes f34165bda4 Merge pull request #647 from cetic/pr-select-dag-fix
rpl_select_parent: Only check parents belonging to the given dag
2014-05-07 16:13:47 +02:00
Nicolas Tsiftes 812a0299a8 Merge pull request #649 from cetic/pr-dio-preference-fix
Add user configuration of DIO preference field
2014-05-07 16:12:56 +02:00
Simon Duquennoy 7367eb1829 Add UIP_CONF_ND6_SEND_NA to contiki-default-conf.h 2014-05-05 19:52:52 +02:00
Simon Duquennoy 33cfd92475 RPL MRHOF with ETX: bypass weighted moving average when setting a parent's link metric for the first time 2014-04-29 16:25:16 +02:00
Laurent Deru 3b503da680 Add user configuration of DIO preference field 2014-04-18 16:26:23 +02:00
Laurent Deru 3fb0d69be6 Remove duplicated configuration parameters definition 2014-04-18 15:37:31 +02:00
Jens Dede 446208dc1c Merge branch 'master' of git://github.com/contiki-os/contiki into ds6_period_configurable 2014-04-18 13:33:01 +02:00
Jens Dede 96a70f9ab0 Rename as suggested by g-oikonomou 2014-04-18 13:32:40 +02:00
Laurent Deru 79537a6dd7 rpl_select_parent: Only check parents belonging to the given dag 2014-04-18 11:39:33 +02:00
Brad Campbell a96dc90250 [SPI] Make SPI_FLUSH() more versatile
Currently the SPI driver in core/ sets `SPI_FLUSH()` to be a single read
of the spi RX buffer. This is fine for many microcontrollers, but newer
platforms like the CC2538 have a multi-byte FIFO for the RX buffer. In
that case, a single read is not guaranteed to flush the RX. This commit
allows `SPI_FLUSH()` to be platform dependent if needed, but doesn't
change for platforms where it works.
2014-04-15 14:04:42 -04:00
Nicolas Tsiftes ce2ed95b93 Merge pull request #585 from g-oikonomou/generic-icmp6-in-hooks
Generic ICMPv6 input hooks
2014-04-14 16:12:10 +02:00
Niclas Finne b1335b08a8 Changed to use LINKADDR_SIZE instead of sizeof() to select between
short address and long address as some platforms might use padding in
the struct. This fixes #555.
2014-04-11 17:24:16 +02:00
Niclas Finne 68730566a3 Added method to framer that returns the header length if the framer
would create a header with the current packet information.

This allows sicslowpan to calculate the max payload size without
consuming a sequence number or clearing/restoring the packet buffer.
2014-04-11 17:03:23 +02:00
Nicolas Tsiftes 3829860c3c Merge pull request #620 from adamdunkels/push/socket-api
New TCP and UDP socket APIs
2014-04-09 22:12:59 +02:00
Adam Dunkels 1075effa22 Include udp-socket.h and tcp-socket.h by default in all applications that include contiki-net.h 2014-04-09 22:01:18 +02:00
Niclas Finne 8ea9cb7693 Split the radio parameter ADDRESS_HANDLER into RX_MODE and TX_MODE. 2014-04-09 21:25:40 +02:00
Nicolas Tsiftes 2284ef5ef2 Enhanced the documentation. 2014-04-08 16:42:16 +02:00
Nicolas Tsiftes a7dbf46b8e Merge pull request #608 from nvt/rpl-fixes
Minor RPL improvements
2014-04-07 11:13:38 +02:00
George Oikonomou 529ab761ac Register generic ICMPv6 handlers for ROLL TM 2014-04-04 00:09:29 +01:00
George Oikonomou 017697f91d Register generic ICMPv6 handlers for RPL 2014-04-04 00:09:27 +01:00
George Oikonomou 1d3da44991 Register generic ICMPv6 handlers for IPv6 ND 2014-04-04 00:09:26 +01:00
George Oikonomou af43d2125b Register generic handlers for ICMPv6 Echo Request / Reply 2014-04-04 00:02:53 +01:00
George Oikonomou 1d84962e80 Replace old switch-based ICMPv6 type/code management 2014-04-04 00:02:53 +01:00
George Oikonomou b6978b30e8 Declare and Implement generic ICMPv6 handler management 2014-04-04 00:02:52 +01:00
Niclas Finne 5f265ced2f Added stub for extended radio API for nullradio 2014-04-03 13:38:18 +02:00
Niclas Finne 5112082a48 Extended radio API definitions with support for setting channel, pan id, etc. 2014-04-03 13:38:06 +02:00
Nicolas Tsiftes 429024f0a1 Merge pull request #609 from adamdunkels/push/csma-fix
CSMA bugfix: count transmissions correctly
2014-03-28 17:27:30 +01:00
Nicolas Tsiftes 0a202d3952 Cleaned up some of the comments and output strings. 2014-03-28 13:38:52 +01:00
Nicolas Tsiftes afbb82030e Ensure that the objective function's reset function is called at least once. This will enable the objective function to initialize itself during run-time. 2014-03-28 13:38:52 +01:00
Niclas Finne db3a42fc43 Redefine assert if already defined since some platforms already have an assert definition 2014-03-28 11:38:38 +01:00
Nicolas Tsiftes 7f4d3e3d7b Avoid calling rpl_lock_parent for uninitialized memory. Renamed p to parent to make reading easier. 2014-03-27 15:55:38 +01:00
Nicolas Tsiftes 1c560fb9db The check should be whether RPL_DIS_SEND is non-zero, not whether it is defined. 2014-03-27 15:44:18 +01:00
Nicolas Tsiftes 5aca90e73d Use the same scale for ETX calculation as for rank calculations to avoid conversion errors between the two. 2014-03-27 15:44:15 +01:00
Adam Dunkels d53ba5aa3c The TCP socket API code 2014-03-24 08:42:28 +01:00
Adam Dunkels d1d82eb179 The UDP socket API code 2014-03-24 08:42:13 +01:00
Adam Dunkels 5b1a9f5bc2 Bugfix: when a packet is sent by the RDC layer, we should count the number of transmissions made because a single callback can pertain to multiple transmissions at the RDC layer. 2014-03-24 08:36:18 +01:00
Adam Dunkels ce4bb5360b Merge pull request #364 from g-oikonomou/multicast-push
Add Support for IPv6 Multicast
2014-03-18 10:11:11 +01:00
George Oikonomou e044fa5cab Factor out multicast stats 2014-03-05 21:04:50 +00:00
George Oikonomou 54b55e96c4 Check Tactive irrespective of suppression 2014-03-05 20:31:19 +00:00
George Oikonomou 9f4cdab1fb Don't advertise datagrams older than Tactive 2014-03-05 20:31:19 +00:00
George Oikonomou 775928fa3f Improve sliding window inclusion in ICMPv6 messages
Don't include a sliding window in the ICMPv6 datagram
unless the window has at least one active datagram
associated with it
2014-03-05 20:31:19 +00:00
George Oikonomou 7fb99ed7c2 Point to the correct trickle param 2014-03-05 20:31:18 +00:00
George Oikonomou 230881df44 Multicast README 2014-03-05 20:31:17 +00:00
George Oikonomou 226701b098 Implement multicast engine hooks in the uIPv6 core
- init()
  - process incoming multicast datagram
  - Pass ICMPv6 trickle messages to the engine
2014-03-05 20:31:16 +00:00
George Oikonomou 151533b9bc Implementation of the Trickle multicast engine 2014-03-05 20:31:16 +00:00
George Oikonomou 6f3a1eb032 Implementation of the SMRF multicast engine 2014-03-05 20:31:16 +00:00
George Oikonomou da4ce5b54d RPL Multicast group management with MOP 3 2014-03-05 20:31:15 +00:00
George Oikonomou 0ad09aa842 We now know how to select our source address for outgoing routable multicast datagrams 2014-03-05 20:31:15 +00:00
George Oikonomou 64c21638cd Multicast routing table manipulation
We store multicast routes in a separate table since we don't need
as much information as we need for normal routes
2014-03-05 20:31:15 +00:00
George Oikonomou e85d935ccc Multicast common header files 2014-03-05 20:31:15 +00:00
George Oikonomou 68c5584488 New uip_is_addr macros for multicast addresses 2014-03-05 20:31:14 +00:00
George Oikonomou be098f39e8 Define a new ICMPv6 message type for Trickle Multicast
Pending IANA allocation, we currently use private experimentation
2014-03-05 20:31:14 +00:00
George Oikonomou 067bbc9ee0 Check for DAO fwd loop early, before processing DAO options 2014-03-05 20:18:14 +00:00
Nicolas Tsiftes aef0e9eae6 Ensure that the file end is updated in the original file extent if it has been overwritten through a micro log operation. 2014-03-03 21:27:26 +01:00
Daniel Willmann 60adaaad34 mmem: Prevent duplicate init of mmem
This could seriously corrupt data if mmem_init was called again after
someone called mmem_alloc.
2014-02-07 14:42:11 +01:00
Jens Dede 5e5b6fc3f4 Make the period for the uip-ds6 periodic task configurable 2014-02-07 12:34:49 +01:00
Oliver Schmidt e16521e5c1 Merge pull request #550 from oliverschmidt/master
Avoid compiler warnings.
2014-01-31 16:22:53 -08:00
Oliver Schmidt a94e7e63e2 Avoid compiler warnings. 2014-02-01 00:46:57 +01:00
Adam Dunkels 47e4113845 Changed the variable names that access the packetbuf code so that they are called packetbuf_* instead of rime_* 2014-01-29 23:02:00 +01:00
Adam Dunkels 45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
Adam Dunkels 765e9acded Merge pull request #499 from adamdunkels/bold/modularize-everything
A bold move: modularize everything
2014-01-29 08:17:10 -08:00
Adam Dunkels b6c4f50bea Merge pull request #538 from cskiraly/collect-fixes
collect: making some protocol parameters configurable by COLLECT_CONF_
2014-01-26 14:23:08 -08:00
Adam Dunkels 24155ee0ae Moved the custom strncasecmp code into a separate module, since it cannot be compiled on all platforms 2014-01-26 23:20:46 +01:00
Adam Dunkels b244f30480 Moved the ctk files from core/lib into core/lib/ and core/lib/libconio 2014-01-26 23:20:46 +01:00
Adam Dunkels bddd96d5c8 Removed all module makefiles. Instead, all .c files in a module directory are compiled. 2014-01-26 23:20:46 +01:00
Adam Dunkels fce84c178c Removed unused rime-udp code 2014-01-26 23:20:45 +01:00
Adam Dunkels 8eace27f9b Moved net/rime.h to net/rime/rime.h 2014-01-26 23:20:45 +01:00
Adam Dunkels a40a73db9a Made a module out of the core/ctk code 2014-01-26 23:20:44 +01:00
Adam Dunkels 112e0d6855 Removed reliance on the core/net/ipv4 module 2014-01-26 23:20:37 +01:00
Adam Dunkels 0fe08205e1 Moved the rimeaddr.[ch] code from the core/net/rime module to the core/net module, as it is used not only by rime code 2014-01-26 23:20:36 +01:00
Adam Dunkels 13f8837422 Made core/lib into a module 2014-01-26 23:20:32 +01:00
Adam Dunkels 25367fb08c Moved the ds2411 driver into a dev/ds2411 module 2014-01-26 23:20:31 +01:00
Adam Dunkels c9efe3c3c4 Moved the cc2520 driver into its own dev/cc2520 module 2014-01-26 23:20:31 +01:00
Adam Dunkels 4cfe6c4a5e Moved the sht11 driver to its own module 2014-01-26 23:20:30 +01:00
Adam Dunkels 0a7733c1ab IPv6 module should also include the core/net/rpl module 2014-01-26 23:20:30 +01:00
Adam Dunkels 7e29601639 Turn core/net/rpl into a module 2014-01-26 23:20:29 +01:00
Adam Dunkels cc9c83448c Makefile for the core/dev module 2014-01-26 23:20:29 +01:00
Adam Dunkels 2be50a044a Makefile for the core/sys module 2014-01-26 23:20:28 +01:00
Adam Dunkels 0f255606b0 Turned sicslowmac into a module 2014-01-26 23:20:28 +01:00
Adam Dunkels bc336007c4 Include the core/net module by default in the core/net/ip module 2014-01-26 23:20:27 +01:00
Adam Dunkels 0b805e4763 Moved the cc2420 driver into a separate dev/cc2420 module 2014-01-26 23:20:27 +01:00
Adam Dunkels b78ab6753c Added makefiles to make core/net/mac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels d777ae14e4 Moved cxmac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels 083fe0b594 Moved the contikimac code into a core/net/mac/contikimac module 2014-01-26 23:20:25 +01:00
Adam Dunkels 41050794a4 Include the core/net and core/net/ip modules in the core/net/ipv6 module 2014-01-26 23:20:25 +01:00
Adam Dunkels c80615913f Include the core/net and core/net/ip modules in the core/net/ipv4 module 2014-01-26 23:20:25 +01:00
Adam Dunkels d10a0f8830 Made the rime code into a separate module 2014-01-26 23:20:24 +01:00
Adam Dunkels cb02e67b29 Replaced the old Makefile.uip with module makefiles 2014-01-26 23:20:24 +01:00
Adam Dunkels 5f3fe7f7c7 Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
Adam Dunkels afdeed1c64 Moved IPv6 files into the net/ipv6 module 2014-01-26 23:20:22 +01:00
Adam Dunkels 06c83ffb91 Moved IPv4 files into the net/ipv4 module 2014-01-26 23:20:21 +01:00
Adam Dunkels 65eba46be2 Moved all generic IP files into the net/ip module 2014-01-26 23:20:21 +01:00
Adam Dunkels 17d48c6d7a Merge pull request #504 from adamdunkels/push/ping-reply-api
A ping reply API
2014-01-26 14:03:21 -08:00
Martin Heusse 662eb4db14 Fix compilation error when DEBUG enabled in core/net/mac/framer-nullmac.c 2014-01-24 20:23:26 +01:00
Csaba Kiraly d1822b5880 collect: making some protocol parameters configurable by COLLECT_CONF_ style defines
TTL (which has a rather low default of 15), MAC level retransmissions,
overall number of retransmissions, and the header bits dedicated to these
were all fixed in the collect.h and collect.c, without a simple way to
override them.
Extracted these as COLLECT_CONF_ parameters, keeping defaults as they were
before.

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

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

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

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

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

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

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

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

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

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