Commit Graph

1556 Commits

Author SHA1 Message Date
George Oikonomou
0ad09aa842 We now know how to select our source address for outgoing routable multicast datagrams 2014-03-05 20:31:15 +00:00
George Oikonomou
64c21638cd Multicast routing table manipulation
We store multicast routes in a separate table since we don't need
as much information as we need for normal routes
2014-03-05 20:31:15 +00:00
George Oikonomou
e85d935ccc Multicast common header files 2014-03-05 20:31:15 +00:00
George Oikonomou
68c5584488 New uip_is_addr macros for multicast addresses 2014-03-05 20:31:14 +00:00
George Oikonomou
be098f39e8 Define a new ICMPv6 message type for Trickle Multicast
Pending IANA allocation, we currently use private experimentation
2014-03-05 20:31:14 +00:00
George Oikonomou
067bbc9ee0 Check for DAO fwd loop early, before processing DAO options 2014-03-05 20:18:14 +00:00
Jens Dede
5e5b6fc3f4 Make the period for the uip-ds6 periodic task configurable 2014-02-07 12:34:49 +01:00
Oliver Schmidt
e16521e5c1 Merge pull request #550 from oliverschmidt/master
Avoid compiler warnings.
2014-01-31 16:22:53 -08:00
Oliver Schmidt
a94e7e63e2 Avoid compiler warnings. 2014-02-01 00:46:57 +01:00
Adam Dunkels
47e4113845 Changed the variable names that access the packetbuf code so that they are called packetbuf_* instead of rime_* 2014-01-29 23:02:00 +01:00
Adam Dunkels
45265249fc Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
Adam Dunkels
765e9acded Merge pull request #499 from adamdunkels/bold/modularize-everything
A bold move: modularize everything
2014-01-29 08:17:10 -08:00
Adam Dunkels
b6c4f50bea Merge pull request #538 from cskiraly/collect-fixes
collect: making some protocol parameters configurable by COLLECT_CONF_
2014-01-26 14:23:08 -08:00
Adam Dunkels
bddd96d5c8 Removed all module makefiles. Instead, all .c files in a module directory are compiled. 2014-01-26 23:20:46 +01:00
Adam Dunkels
fce84c178c Removed unused rime-udp code 2014-01-26 23:20:45 +01:00
Adam Dunkels
8eace27f9b Moved net/rime.h to net/rime/rime.h 2014-01-26 23:20:45 +01:00
Adam Dunkels
112e0d6855 Removed reliance on the core/net/ipv4 module 2014-01-26 23:20:37 +01:00
Adam Dunkels
0fe08205e1 Moved the rimeaddr.[ch] code from the core/net/rime module to the core/net module, as it is used not only by rime code 2014-01-26 23:20:36 +01:00
Adam Dunkels
0a7733c1ab IPv6 module should also include the core/net/rpl module 2014-01-26 23:20:30 +01:00
Adam Dunkels
7e29601639 Turn core/net/rpl into a module 2014-01-26 23:20:29 +01:00
Adam Dunkels
0f255606b0 Turned sicslowmac into a module 2014-01-26 23:20:28 +01:00
Adam Dunkels
bc336007c4 Include the core/net module by default in the core/net/ip module 2014-01-26 23:20:27 +01:00
Adam Dunkels
0b805e4763 Moved the cc2420 driver into a separate dev/cc2420 module 2014-01-26 23:20:27 +01:00
Adam Dunkels
b78ab6753c Added makefiles to make core/net/mac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels
d777ae14e4 Moved cxmac into a separate module 2014-01-26 23:20:26 +01:00
Adam Dunkels
083fe0b594 Moved the contikimac code into a core/net/mac/contikimac module 2014-01-26 23:20:25 +01:00
Adam Dunkels
41050794a4 Include the core/net and core/net/ip modules in the core/net/ipv6 module 2014-01-26 23:20:25 +01:00
Adam Dunkels
c80615913f Include the core/net and core/net/ip modules in the core/net/ipv4 module 2014-01-26 23:20:25 +01:00
Adam Dunkels
d10a0f8830 Made the rime code into a separate module 2014-01-26 23:20:24 +01:00
Adam Dunkels
cb02e67b29 Replaced the old Makefile.uip with module makefiles 2014-01-26 23:20:24 +01:00
Adam Dunkels
5f3fe7f7c7 Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
Adam Dunkels
afdeed1c64 Moved IPv6 files into the net/ipv6 module 2014-01-26 23:20:22 +01:00
Adam Dunkels
06c83ffb91 Moved IPv4 files into the net/ipv4 module 2014-01-26 23:20:21 +01:00
Adam Dunkels
65eba46be2 Moved all generic IP files into the net/ip module 2014-01-26 23:20:21 +01:00
Adam Dunkels
17d48c6d7a Merge pull request #504 from adamdunkels/push/ping-reply-api
A ping reply API
2014-01-26 14:03:21 -08:00
Martin Heusse
662eb4db14 Fix compilation error when DEBUG enabled in core/net/mac/framer-nullmac.c 2014-01-24 20:23:26 +01:00
Csaba Kiraly
d1822b5880 collect: making some protocol parameters configurable by COLLECT_CONF_ style defines
TTL (which has a rather low default of 15), MAC level retransmissions,
overall number of retransmissions, and the header bits dedicated to these
were all fixed in the collect.h and collect.c, without a simple way to
override them.
Extracted these as COLLECT_CONF_ parameters, keeping defaults as they were
before.

Signed-off-by: Csaba Kiraly <kiraly@disi.unitn.it>
2014-01-24 12:53:16 +01:00
Adam Dunkels
c8c7c4ae3a Add comments to the #else and #endifs to make it clearer to what #ifdef they belong. 2014-01-21 20:58:31 +01:00
Adam Dunkels
9e8733e57a Correct the operator in the comment so that it matches the actual #if 2013-12-18 08:35:06 +01:00
Adam Dunkels
9114cd3215 Added an API for getting a callback when a ping reply is received. 2013-12-13 08:36:51 +01:00
Adam Dunkels
a6a081e67d Fixed a severe error in the bugfix: the conditional was reversed. The check must be if the TCP MSS is larger than the BUFSIZE and not the other way around. 2013-12-12 22:43:28 +01:00
Adam Dunkels
ef83850e63 Removed redundant #ifdef 2013-12-12 22:20:20 +01:00
Adam Dunkels
c0b3c87ba7 Make 0 the default link-layer header length, as far as uIP is concerned. Most currently used linke layers (specifically, 802.15.4) has adaptation layers that use separate buffers, so there is no need to reserve space in the uIP buffer. 2013-12-12 22:20:09 +01:00
Adam Dunkels
c7e0fa7152 Moved #defines so that UIP_TCPIP_HLEN and UIP_LLH_LEN are defined before they are used 2013-12-12 20:57:35 +01:00
Nicolas Tsiftes
a8a9b66eff Merge pull request #457 from adamdunkels/push/uip6-bugfixes
IPv6 bugfixes
2013-12-12 05:02:39 -08:00
Nicolas Tsiftes
75cbf4f48a Merge pull request #479 from adamdunkels/push/cleanup-xmac-and-lpp
Remove xmac.c and lpp.c
2013-12-04 04:57:27 -08:00
Nicolas Tsiftes
7b1e3d1c94 Merge pull request #460 from adamdunkels/push/routelist
IPv6 routes LRU
2013-11-29 05:23:05 -08:00
Adam Dunkels
0908924f91 Removed the lpp.c code 2013-11-28 15:24:40 +01:00
Adam Dunkels
f86aaf7c14 Removed the xmac.c code 2013-11-28 15:24:22 +01:00
Nicolas Tsiftes
db4cada4e7 Merge pull request #462 from adamdunkels/push/no-reserved-double-inclusion-defines
Remove all leading double underscore inclusion #defines
2013-11-26 14:26:37 -08:00
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
Nicolas Tsiftes
acee82abbb Merge pull request #456 from adamdunkels/push/6lowpan-changes
6lowpan changes
2013-11-24 15:37:12 -08:00
Adam Dunkels
bb2dcaa057 A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
Nicolas Tsiftes
7283e48f09 Merge pull request #454 from adamdunkels/push/dao-updates-rebased
RPL feather mode
2013-11-24 07:49:49 -08:00
Adam Dunkels
b0460317b8 Moved variable declaration to the start of the function block 2013-11-24 15:17:52 +01:00
Adam Dunkels
faff1c2a7e Preliminary support for RPL node types. This change allows a node to be in any of three given types:
* Mesh: this is the normal case. Nodes route data on behalf of others and the node can be reached via a DAO route.
* Leaf: the node does not route data on behalf of others, but others can route data to the node (it has a RPL DAO route).
* Feather: this is a new type of node. A feather node routes data on behalf of others, but does not install DAO routes in the network. Feather nodes allow having a larger number of nodes than the RPL network can sustain in terms of routing tables.

This commit introduces the RPL node types and the feather mode, but does not add support for the leaf node type.
2013-11-24 15:17:52 +01:00
Adam Dunkels
af24d07848 Forward no-path DAOs up the tree to allow the root to repair the network if needed 2013-11-24 15:17:52 +01:00
Adam Dunkels
9039b0ecd8 Remove references to the now unused dag->parents list 2013-11-24 15:17:52 +01:00
Adam Dunkels
4e6fe7dda6 Add a neighbor table entry if a DAO is received from a node where we don't yet have a neighbor table entry. 2013-11-24 15:17:52 +01:00
Adam Dunkels
490791eaa4 Add a check for the case when the parent neighbor may have gone away to avoid using a NULL pointer 2013-11-24 15:17:52 +01:00
Adam Dunkels
0ed7db0f9b Slight improvements in debug messages 2013-11-24 15:17:52 +01:00
Adam Dunkels
fc1adec1b8 Made it a bit more clear what function that gets called when a neighbor is removed 2013-11-24 15:17:51 +01:00
Adam Dunkels
61ea7fbb1c RPL DAO timers and management:
* Added a DAO lifetime timer that sends out a new DAO after half the lifetime of the DAO. This allows implementing DAO route soft state that avoids routing tables in the network keeping stale routes for ever.
* Added ways to schedule a new DAO transmission as well as cancelling an active DAO transmit timer, which makes it possible to do nodes that don't send DAOs.
2013-11-24 15:17:51 +01:00
Adam Dunkels
454088c117 Removed old, unused rawpacket code 2013-11-24 11:02:35 +01:00
Adam Dunkels
19b32c54c0 Removed the old unused hc.[ch] code 2013-11-24 11:02:35 +01:00
Adam Dunkels
9819c5b5b8 Rewrote the IPv6 route management so that all routes are maintained on a list that is ordered by the time at which the route was accessed. If a new route is added to the system, the oldest route is dropped. 2013-11-22 18:00:47 +01:00
Adam Dunkels
ea4bc3816f Produce an error if the UIP_TCP_MSS is too large for UIP_BUFSIZE 2013-11-22 15:46:48 +01:00
Adam Dunkels
61a8fa9977 Allow the default TTL to be configured with UIP_CONF_TTL 2013-11-22 15:44:48 +01:00
Adam Dunkels
d577d03e21 Bugfix: correctly handle the case if uip_sappdata is NULL. 2013-11-22 15:38:20 +01:00
Adam Dunkels
f31d6f271f Bugfix: if a SYN is received in the SYN_RCVD state we should not send a blank SYN, but a SYNACK in response. 2013-11-22 15:37:21 +01:00
Adam Dunkels
b31e84649a If the 6lowpan layer is currently reassembling a packet, and a non-fragmented packet comes along, this is a sign that one of the fragments were lost (as they normally would arrive back-to-back, in sequence). So we'll grab the non-fragmented packet instead of dropping it. 2013-11-22 15:12:02 +01:00
Adam Dunkels
3788b08780 Added a way to get the RSSI of the last received packet 2013-11-22 15:10:44 +01:00
Ari Suutari
c1c64dd1cc Received UDP packet was counted twice in statistics, first in udp_input and then again in udp_found.
Fix this to use same logic as in uip.c: valid packet is counted only in udp_found.
2013-11-22 08:16:05 +02:00
Nicolas Tsiftes
0e24fb0bc0 Merge pull request #432 from adamdunkels/push/154-len
Allow the 802.15.4/6lowpan code to operate on packets larger than 256 bytes
2013-11-20 05:23:26 -08:00
Nicolas Tsiftes
263e212427 Merge pull request #431 from adamdunkels/push/ipv6-const
Make IP addresses const
2013-11-20 04:26:05 -08:00
Nicolas Tsiftes
d183b87f4b Merge pull request #434 from adamdunkels/push/cleanup-sys
Remove old unused code from the core/sys/ directory
2013-11-19 09:53:57 -08:00
Adam Dunkels
84fd0f9ae1 Removed out-commented timetable code 2013-11-19 08:21:53 +01:00
Adam Dunkels
5e9a76d38e Removed old unused tcpdump.c code 2013-11-19 00:24:18 +01:00
Adam Dunkels
f9cb6ec2fa Added the const keyword to IP address arguments that are not (and should not be) changed by the callee 2013-11-18 00:55:57 +01:00
Adam Dunkels
f26e35cffa Allow the 6lowpan code to handle packets larger than 256 bytes 2013-11-16 14:44:14 +01:00
Adam Dunkels
bec721d313 Allow payload len to be larger than 256 bytes 2013-11-16 14:22:48 +01:00
Laurent Deru
fd97136fee As RPL Root, drop an incoming DIO from the same instance but different DAG 2013-11-15 08:48:29 +01:00
Adam Dunkels
a6227e1e3e Merge pull request #350 from AriZuu/udp-stats-fix
Fix UDP statistics.
2013-11-14 23:39:16 -08:00
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