Commit graph

1515 commits

Author SHA1 Message Date
Robert Quattlebaum 7e9f472faa core/net/resolv: Fix for resolving CNAME records. 2013-03-14 19:13:51 -07:00
Robert Quattlebaum 639a9ca399 core/net/resolv: Fix for SDCC. 2013-03-14 19:13:04 -07:00
Oliver Schmidt 46cb6013ae Reduced code size.
Combined recent changes from darconeous...
- Refactor to decrease minimum code footprint.
- Added `RESOLV_CONF_SUPPORTS_RECORD_EXPIRATION`.
...with a few additional changes to reduce code size.
2013-03-14 22:53:52 +01:00
Oliver Schmidt d8862bd243 Some more changes improving code style conformance and code size. 2013-03-13 17:52:57 +01:00
Oliver Schmidt 7a1fa4de6c Some coding style nomalization. 2013-03-13 16:14:29 +01:00
Oliver Schmidt 8fa9767d47 Restored Contiki compatibility with non-C99 compilers.
(and compilers without non-standard extensions like void pointer arithmetic)
2013-03-13 14:40:24 +01:00
Moritz 'Morty' Strübe b1dbc2047e Add mesh_ready() to mesh
mesh_ready checkes whether a packet is queued. This allows to avoid
packet loss at application level.
2013-03-13 09:44:38 +01:00
Robert Quattlebaum c0a693672c core/net: Added support for "bridge mode".
"Bridge mode" allows devices to more easily send 802.15.4 packets as if
they were a different device. It also turns off any packet filtering
that may be implemented at layer 2. It works by allowing
`PACKETBUF_ADDR_SENDER` to be set earlier in the stack.

This is useful for implementing 6LoWPAN-ethernet bridges.

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

Here is a quick summary of the changes:

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

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

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

In other words, instead of typing in this:

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

You can type this instead:

 * `http://contiki.local/`

Huge improvement, no?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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