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
02c0b8a4e4
Parse rodata too
2013-08-06 21:33:03 +02:00
Oliver Schmidt
ff5d6e091d
Recent changes in telnetd make exporting of those two necessary.
2013-07-31 00:04:43 +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
Nicolas Tsiftes
f8edf41411
Merge pull request #291 from simonduq/na-config
...
Added a flag to optionally disable IPv6 NA/NS at compile time
2013-07-23 09:52:13 -07: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
Robert Quattlebaum
0308d3fcf0
settings: Correct a problem where sometimes CC_INLINE is not defined properly.
2013-07-02 08:46:03 -07: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
Peter A. Bigot
8439c1bb81
core/dev/led: Allow platform to provide LED color map
2013-06-21 11:34:48 -05: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
Adam Dunkels
9f0de7d633
Merge pull request #211 from malvira/prefix-squash
...
Support prefix updates with PIO Handling
2013-05-19 15:06:02 -07:00
George Oikonomou
ffeceb9164
Add a Trickle Timer Library (RFC 6206)
2013-05-19 21:51:07 +01: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
Mariano Alvira
7b9d98c5e2
change default UIP_CONF_IPV6 back to 0. This is not a complete fix:
...
see #227 for details. Will merge as it fixes build errors so Travis
can be useful agian.
2013-05-18 18:30:10 -04:00
Robert Quattlebaum
de7b4f325e
Merge pull request #229 from darconeous/pull-requests/resolv-mdns-announce-alignment
...
resolv: Fix for word alignment issues in `mdns_prep_host_announce_packet()`.
2013-05-18 14:49:11 -07:00
Robert Quattlebaum
535e90343c
Merge pull request #144 from darconeous/pull-requests/settings-for-all-targets
...
core/lib/settings: Generalized settings manager to work on any platform
2013-05-18 12:03:09 -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
Robert Quattlebaum
b8c0f2de6c
cpu/native: Add file-backed simulated EEPROM to native cpu.
...
This patch removes a defunct EEPROM implementation from the native
platform and provides a new EEPROM implementation for the native cpu.
The previous implementation appears to be vestigal.
This is useful for testing code which uses the EEPROM without running
the code on the actual hardware.
By default the code will create a new temporary file as the EEPROM
backing, reinitializing each time. If you would like to preserve the
EEPROM contents or specify a specific EEPROM file to use, you can set the
`CONTIKI_EEPROM` environment variable to the name of the EEPROM file you
wish to use instead. If it already exists, its contents will be used.
If it does not already exist, it will be created and initialized by
filling it with `0xFF`---just like a real EEPROM.
A new example is also included, which was used to verify the correctness
of the implementation. It can easily be used to verify the EEPROM
implementations of other targets.
2013-05-18 10:29:41 -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
db078cf7e8
Replace reads of rimestats with RIMESTATS_GET(x)
2013-03-20 21:14:35 +00: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
Robert Quattlebaum
ed2dd29eda
core/lib/settings: Added SETTINGS_CONF_SKIP_CONVENIENCE_FUNCS
.
...
Unfortunately, some platforms don't properly drop unreferenced functions,
so on these broken platforms we can save a significant amount
of space by skipping the definition of the convenience functions.
2013-03-20 11:57:13 -07:00
Robert Quattlebaum
28a1e40ebd
core/lib/settings: Generalized Settings Manager to work on any platform
...
This commit moves the Settings Manager from the AVR codebase
into the Contiki core library. Any platform that implements
the Contiki EEPROM API can now use the Settings Manager's
key-value store for storing their persistent configuration info.
The Settings Manager is a EEPROM-based key-value store. Keys
are 16-bit integers and values may be up to 16,383 bytes long.
It is intended to be used to store configuration-related information,
like network settings, radio channels, etc.
* Robust data format which requires no initialization.
* Supports multiple values with the same key.
* Data can be appended without erasing EEPROM.
* Max size of settings data can be easily increased in the future,
as long as it doesn't overlap with application data.
The format was inspired by the [OLPC manufacturing data format][].
Since the beginning of EEPROM often contains application-specific
information, the best place to store settings is at the end of EEPROM
(the "top"). Because we are starting at the end of EEPROM, it makes
sense to grow the list of key-value pairs downward, toward the start of
EEPROM.
Each key-value pair is stored in memory in the following format:
Order | Size | Name | Description
--------:|---------:|--------------|-------------------------------
0 | 2 | `key` | 16-bit key
-2 | 1 | `size_check` | One's-complement of next byte
-3 | 1 or 2 | `size` | The size of `value`, in bytes
-4 or -5 | variable | `value` | Value associated with `key`
The end of the key-value pairs is denoted by the first invalid entry.
An invalid entry has any of the following attributes:
* The `size_check` byte doesn't match the one's compliment of the
`size` byte (or `size_low` byte).
* The key has a value of 0x0000.
[OLPC manufacturing data format]: http://wiki.laptop.org/go/Manufacturing_data
2013-03-20 11:57:13 -07: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
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