Commit graph

2148 commits

Author SHA1 Message Date
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 ef25cc6c58 Rimestats bugfix: only compile the rimestats printout if rimestats are enabled 2013-03-18 11:22:00 +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 dd3a88e1bf Merge pull request #126 from rgrr/master
Bug fix: add_timer() does not set owning process
2013-03-09 05:48:14 -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
hardy ae62a0d142 one blank less 2013-02-18 20:34:24 +01:00
Oliver Schmidt 9970a3631a The new POSIX directory access in the CBM C library comes with a d_blocks field too. 2013-02-17 01:03:51 +01:00
rgrr 7cb8148226 add_timer() does not set owning process 2013-02-13 09:15:11 +01: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
nvt 757a54f63c Added some comments about Antelope and Coffee. 2012-11-19 13:21:59 +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
Joakim Eriksson 621790f156 fixed read loop to be slightly less CPU speed dependent 2012-10-01 13:14:47 +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
Antonio Lignan c5e9d688a5 Fixed sht11 driver, now ensures the i2c bus is disabled when initializing 2012-08-16 14:12:27 +02:00
Adam Dunkels dd148e1d12 Bumped version number 2012-07-12 11:30:05 +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 d3fee514b3 Merge branch 'master' of ssh://contiki.git.sourceforge.net/gitroot/contiki/contiki 2012-04-12 21:35:02 +02:00
David Kopf cac4e9a222 Add clock_delay_us and clock_set_seconds to clock.h. Modify clock_wait to use clock_time_t.
Remove the troublesome avr/dev/delay.* files.
Add PLATFORM_NAME and combine the confusing *_REVISION defines into a single PLATFORM_TYPE
2012-04-09 15:49:53 -04: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
David Kopf 6e45dfe5ff PROGMEM changes needed for newer avr-gcc compiler 2012-02-21 11:10:57 -05:00
Nicholas J Humfrey 372de7d08a Converted u8_t to uint8_t and u16_t to uint16_t in the rest of core (specifically ctk/vnc, slip and the loader code) 2012-02-21 08:33:24 -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 8e59df78e2 Autoenable RX after TX + removed exception check 2012-01-09 14:55:34 +01:00
Niclas Finne f4f35973d1 Fixed some configuration problems and support for AUTOACK 2012-01-09 14:55:31 +01:00
Niclas Finne a56793f401 Fixed compiler warnings 2012-01-09 14:54:50 +01:00
Niclas Finne b6fd166155 Removed obsolete CRC checksum handling and debug leds 2012-01-09 14:41:48 +01:00
Niclas Finne 05b10eb9ce Initial WiSMote port based on code from Arago Systems. 2012-01-09 12:25:06 +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
Adam Dunkels 8edd86da5e Bugfix: PROCESS_PAUSE() must explicitly check the event type, otherwise we may cause the process event queue to fill up if we repeatedly call PROCESS_PAUSE() while other (broadcast) events are posted as well, such as timer events. 2011-11-22 09:36:27 +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 5b1d9617c4 moved io and signal and IAR-GCC checks from driver files into contiki include file 2011-09-26 10:38:41 +02:00
Joakim Eriksson ab049ec704 some fixes to cut some extension headers before TCP processing 2011-09-22 17:22:59 +02:00
Niclas Finne 6d3571ed59 Updated to use clock_seconds() on all platforms 2011-09-19 17:42:19 +02:00
Joakim Eriksson 95dde73618 fixed Sky platform for IAR compiler 2011-09-11 17:18:02 +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 2feed121d2 Account for 16 bit rtimer wraparound, else ENERGEST way underreports AVR times. 2011-08-17 16:51:22 -04:00
David Kopf d4eeeeb8c9 Remove inclusion of preprocessor directive in macro expansion. Some gcc's do not like that. 2011-08-17 13:13:55 -04:00
David Kopf b55dddcd38 Free rtimer for contikimac, add print-stats option 2011-08-15 14:55:18 -04:00
David Kopf e2ad2acde4 Add stk500 platform and changes suggested by Daniel Willmann 2011-08-03 11:18:55 -04:00
David Kopf 44f4ee9315 Use PROCESS_NAME_STRING macro to handle NO_PROCESS_NAMES 2011-08-03 11:08:40 -04:00
David Kopf df70b21c70 gcc 4.4.1 - 4.6.0 compiler bug workaround. 2011-07-31 15:36:01 -04:00
nvt 5330dd1565 Avoid reading bytes from the original file when their is a log entry for that part of the file. 2011-07-30 10:05:23 +02: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