Commit Graph

283 Commits

Author SHA1 Message Date
Benoît Thébaudeau
4deba89f81 rdc: duplicate packets: Keep only the last sequence number for each address
According to IEEE 802.15.4e (§6.4.3.9), in order to detect duplicate received
MAC-layer frames, only the most recently received frame's sequence number needs
to be stored for each unique device address. Doing so limits the possible false
duplicate packet detections to a single sequence number. This also allows to
keep the last sequence number of more device addresses for the same value of
MAX_SEQNOS.

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

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

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
2013-11-25 13:01:11 +01:00
Adam Dunkels
bec721d313 Allow payload len to be larger than 256 bytes 2013-11-16 14:22:48 +01:00
Simon Duquennoy
03dcca15cb Implement a truncated exponential backoff for csma 2013-11-14 15:02:36 +01:00
Enrico Joerns
4ba22102fd [core/net/mac] Removed invalid struct member u8 in PRINTADDR 2013-10-15 01:43:26 +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
5a1d8d8006 Make phase module use neighbor-table. 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
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
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
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
lebrush
82d498f3a1 Removed undef 2013-05-15 16:25:34 +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
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
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
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
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
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
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
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
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
Fredrik Osterlind
076c208b72 avoid gcc optimization bug by extracting struct values 2012-05-30 17:58:45 +02:00
simonduq
63ea562568 base encounter_time on the time before last strobe, remove unused previous_txtime 2012-03-26 22:49:28 +02: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
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
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
David Kopf
745f071c98 Eliminate unused variable warnings. Dummy test of PT_YIELD_FLAG does not change program size. 2012-02-21 11:23:54 -05:00
David Kopf
24d58edf15 Adjust cycle starts when RTIMER_ARCH_SECOND not a power of two. 2012-01-10 12:48:39 -05: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
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
David Kopf
74aa63de43 Add optional correction for phase drift of receiver. 2011-12-01 10:02:37 -05:00
Nicolas Tsiftes
0e32956a63 Merge remote-tracking branch 'sf/master' into rpl-patch 2011-11-21 14:59:31 +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
Niclas Finne
b01cbb996d Fixed to restore packetbuf before mac callback 2011-10-21 17:52:31 +02:00
David Kopf
8ebd7a65a4 Add missing includes, remove unimplemented function declaration. 2011-10-13 11:23:53 -04:00
simonduq
a2073db715 Removed ContikiMAC burst dependency to phase optimization 2011-10-04 10:29:40 +02:00