Commit graph

1621 commits

Author SHA1 Message Date
Ari Suutari
8ffd29616a Fix UDP statistics also in ipv6 code. 2013-11-15 08:00:41 +02:00
Nicolas Tsiftes
5688650f6d Merge pull request #391 from cetic/fix-duplicate
Removed duplicate code in rpl-icmp6
2013-11-14 12:35:24 -08:00
Simon Duquennoy
03dcca15cb Implement a truncated exponential backoff for csma 2013-11-14 15:02:36 +01:00
Sébastien Dawans
a60d3bf6cf Removed duplicate code in rpl-icmp6 2013-10-23 15:43:16 +02:00
Enrico Joerns
4ba22102fd [core/net/mac] Removed invalid struct member u8 in PRINTADDR 2013-10-15 01:43:26 +02:00
Simon Duquennoy
677b5ede16 Fixed printout that used deprectated rpl_parent_t structure 2013-10-08 14:46:55 +02:00
Adam Dunkels
4e1beb3ed3 Merge pull request #361 from nvt/rpl-mrhof-fix
MRHOF fixes
2013-10-07 11:45:31 -07:00
Adam Dunkels
bf7edf6c4c Merge pull request #354 from lab11/core-net-fixes
Small fixes to networking files
2013-09-26 23:43:07 -07:00
Nicolas Tsiftes
43b5425493 Cleaned up various fragments and fixed a compilation error that occured when switching metric container.
Fixed a wrapping problem in the ETX EWMA calculation.

Corrected the multiplier of the link metric, and simplified the configuration
so that the user does not need to specify the multiplier.
2013-09-23 15:58:42 +02:00
Adam Dunkels
50395666fc Merge pull request #341 from ismb-pert/fix-lladdr
Fixed fail to build from source due to a bad &nbr->lladdr
2013-09-14 03:24:12 -07:00
Zhen-Huan Hwang
b5815e8509 Fixed a typo in net/uipopt.h 2013-09-11 18:30:31 +03:00
Brad Campbell
bc762b6dd6 Small fixes to networking files
1. Added #include header
2. Fixed #defines that weren't updated
3. Small change to comment that now points to correct RFC section
2013-09-09 20:48:11 -04:00
Oliver Schmidt
c4bba3e89a Removed unnecessary code from resolver. 2013-09-09 21:35:51 +02:00
Gianfranco Costamagna
2afea590f7 Fixed fail to build from source due to a bad "&nbr->lladdr" reference 2013-09-06 22:11:19 +02:00
Ari Suutari
35c7314093 Fix UDP statistics. 2013-09-05 20:37:01 +03:00
Oliver Schmidt
e0ddea2a17 Removed unnecessary code from resolver. 2013-09-01 20:23:11 +02:00
Sébastien Dawans
78e807403c Inserts missing IPv6 Hop-By-Hop RPL Option at first hop 2013-08-19 21:40:24 +02:00
Adam Dunkels
86e247025a Removed debugging printout that came before a local variable declaration, which seems to have broken sdcc 2013-08-19 17:48:33 +02:00
Adam Dunkels
bfd7e5f25b Fixed a few bugs in the route handling code. While bughunting, rewrote parts of the code to make its intention clearer. Also added a bunch of comments to make the logic of the code more evident. 2013-08-19 17:48:32 +02:00
Adam Dunkels
8dc4e46968 Check if the nexthop neighbor for a given route has disappeared. If so, we drop the route too. If we happen to be the RPL root, we also initiate a global repair as the neighbor may moved. 2013-08-19 17:48:32 +02:00
Adam Dunkels
d0a939afb0 Bugfix: must multiply with ETX divisor to turn into fixed-point format. 2013-08-19 17:48:32 +02:00
Adam Dunkels
4d0ecaae02 Make sure our parent's IP address isn't NULL. 2013-08-19 17:48:32 +02:00
Adam Dunkels
e5a6565137 Loop detection via DAO: if we get a DAO from a parent, that parent thinks we are its parent. We poison it and recalulate our parents. 2013-08-19 17:48:32 +02:00
Adam Dunkels
34119b7ef2 Poor man's loop reparation: reset the DIO timer and hope the neighbor learns a better route. 2013-08-19 17:48:32 +02:00
Adam Dunkels
d830e9df3f Implement forwarding error handling: if a packet changes direction, we set the FWD_ERR flag. If we see the FWD_ERR flag, we drop the route that we sent it to. If we are the root node, we also initiate a global repair. 2013-08-19 17:48:31 +02:00
Adam Dunkels
abb3ef9b3b Bugfix: don't set the parent if the dag is NULL 2013-08-19 17:48:31 +02:00
Adam Dunkels
08761dfd8a Added a function uip_ds6_nbr_num() for getting the number of neighbors 2013-08-19 17:48:31 +02:00
Adam Dunkels
a027832f94 Fixed a bunch of compiler warnings 2013-08-19 17:48:31 +02:00
Adam Dunkels
9a74ada90c Added a function rpl_get_parent_link_metric() for obtaining the link metric of a given parent 2013-08-19 17:48:31 +02:00
Adam Dunkels
c52fc2fd19 Defensive programming: check for the argument being NULL. 2013-08-19 17:48:31 +02:00
Adam Dunkels
b42ccaed1b Added function prototypes to a number of functions with void arguments 2013-08-19 17:48:31 +02:00
Adam Dunkels
82e8eb420d Added and updated debugging printouts and reformatted code to make it a little easier to read. 2013-08-19 17:48:31 +02:00
Simon Duquennoy
248301a041 Fix naming issues and includes in uip-ds6-nbr.h 2013-08-19 17:48:30 +02:00
Simon Duquennoy
ff093a2b50 Removed now unused per-module neighbor table size configs. Use NEIGHBOR_CONF_MAX_NEIGHBORS instead. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
c3f62b24c8 Moved ETX management from neighbor-info to rpl-of-etx. Avoids conversions between different fixed point representations, and simplifies neighbor management. Makes more clear how default-ETX and noack-ETX actually affect the rank. Removed neighbor-info and neighbor-attr. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
c50d10aa53 Make RPL use neighbor tables. RPL locks the neighbor used as preferred parent. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
09d26f8060 Make uip-ds6-route use neighbor table. Instead of storing a global list of routing entries that contain both the next hop and the destination, we have a separate list of reachable destination for each neighbor in the global table. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
ec609b49eb Make DS6 neighbors use neighbor-table, and move all DS6 neighbor management from uip-ds6 to a new uip-ds6-neighbor module. 2013-08-19 17:48:30 +02:00
Simon Duquennoy
5a1d8d8006 Make phase module use neighbor-table. 2013-08-19 17:48:29 +02:00
Simon Duquennoy
cfb3bbdad9 Added new neighbor-table module, a centralized place where to store all data about neighbors, indexed by link-layer address. Meant for use in other Contiki modules such as rpl, ds6, ds6-route, phase, neighbor-info. 2013-08-19 17:48:29 +02:00
Fredrik Osterlind
8041f66d8c link-layer acks support for cooja motes 2013-08-15 14:32:35 +02:00
Adam Dunkels
f5307fc01e Bugfix: must set the SICSLOWPAM_MAX_MAC_TRANSMISSIONS attribute after clearing the buffer, otherwise it will not be used for outoing packets. 2013-08-11 14:27:21 +02:00
Adam Dunkels
0aa448f190 6lowpan fragmentation bugfix: the 6lowpan code had an unfortunate
interaction with the behavior of the rdc layer. If the first packet of a
fragment transmission was lost, the remaining packets would get dropped
on reception. Moreover, the reception code contained a bug that
sometimes would cause fragments to be misidentified as fragments. Taken
together, these problems would result in a pathelogical network
breakdown if too many fragmented packets would occur simultaneously.
2013-08-11 14:27:20 +02:00
Adam Dunkels
54f2109134 Merge pull request #290 from simonduq/rpl-mrhof-etx-nomc
Update of RPL MRHOF (use no metric container with ETX [RFC6719])
2013-07-29 00:56:25 -07:00
Adam Dunkels
945f217a11 Merge pull request #220 from lebrush/uip-ds6-least-lifetime
Add method to get the first neighbour which is about to expire
2013-07-28 16:43:41 -07:00
Nicolas Tsiftes
d228cb57a5 Merge pull request #301 from adamdunkels/hotfix-rpl-max-dio
RPL bugfix: don't ignore infinite rank DIOs
2013-07-26 06:48:26 -07:00
Adam Dunkels
500d9cc3e4 Merge pull request #300 from cetic/rpl-nopath-dao
RPL No-Path DAOs
2013-07-26 03:53:56 -07:00
Adam Dunkels
9ba5d9694c Merge pull request #299 from jdede/rpl-rm-neighbor
Default route not removed
2013-07-26 03:52:55 -07:00
Adam Dunkels
4913792d41 Minor code style fix 2013-07-26 12:38:43 +02:00
Adam Dunkels
512a339c50 Bugfix: DIOs with infinite ranks should not be ignored as they are used by RPL as a signal by nodes that have lost their routes. Instead of ignoring them, we should send out our latest information to let the node with infinite rank find their way into the network again. 2013-07-26 12:38:25 +02:00
Sébastien Dawans
a05d635512 Improve readability of DAO output variables 2013-07-25 11:22:38 +02:00
Sébastien Dawans
0bd26d83c8 Ignore No-Path DAO if target is already reachable through a different route than the DAO sender 2013-07-25 11:21:04 +02:00
Sébastien Dawans
c4a121bf18 No-Path DAO Propagation 2013-07-25 11:19:56 +02:00
Jens Dede
2f1bf730af Adapted comment 2013-07-23 20:01:10 +02:00
Simon Duquennoy
defcc639ce Use no metric container when having MRHOF with ETX, as specified in RFC6719. Renamed rpl-of-etx to rpl-mrhof. 2013-07-23 19:36:38 +02:00
Jens Dede
9dd5af78c8 fix: default routes are removed correctly if no DAG with preferred parent is available 2013-07-23 15:35:47 +02:00
Simon Duquennoy
0e81b91fa6 Simplify periodic ds6 neighbor processing in case NA/NS is disabled. Strips out uip_nd6_ns_output from the binary. 2013-07-02 15:20:21 +02:00
Simon Duquennoy
1f38348cf9 Added a flag to optionally disable IPv6 NA/NS at compile time 2013-07-02 14:43:53 +02:00
Jelmer Tiete
cf894b8b95 changed inter packet interval to 0.4ms 2013-06-21 13:15:45 +02:00
Nicolas Tsiftes
7cc8f326f4 Merge pull request #257 from adamdunkels/hotfix-csma
CSMA bugfix
2013-06-20 01:49:48 -07:00
Adam Dunkels
09f30e875d Bugfix: when a CSMA callback is received, we should remove the packet
that was transmitted and not just the first packet that happens to be on
the output queue.
2013-05-25 12:13:07 +02:00
Adam Dunkels
ee64780cb6 Allow proactive probing interval to be configured 2013-05-25 12:10:27 +02:00
Adam Dunkels
c9de0e49be Added a number of default options for ContikiMAC, and allow them to be overridden with contiki-conf.h configuration options 2013-05-25 12:10:27 +02:00
Adam Dunkels
0a135eeba1 Merge pull request #214 from lebrush/tcp-uip-size
Limit partially size of uip/tcpip stack when not using TCP at all
2013-05-23 09:48:17 -07:00
Adam Dunkels
0f135afb34 Merge pull request #218 from lebrush/rpl-mixed-network-bug
Fixes bug a node not using RPL joins a network which does
2013-05-22 00:26:06 -07:00
Nicolas Tsiftes
ffd18aad82 Merge pull request #221 from lebrush/uip-ds6-notifications
Make DS6 route notifications optional
2013-05-21 07:10:31 -07:00
lebrush
6eafa08313 Make DS6 route notifications optional. 2013-05-21 10:05:02 +02:00
lebrush
96a1a97736 Limit size of uip/tcpip stack when not using TCP at all. 2013-05-21 10:02:17 +02:00
lebrush
5bae5e6ffd Fixes imposibility of receiving data when a node not using RPL joins a network
which does.

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

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

This is useful for implementing 6LoWPAN-ethernet bridges.

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

Here is a quick summary of the changes:

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

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

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

In other words, instead of typing in this:

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

You can type this instead:

 * `http://contiki.local/`

Huge improvement, no?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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