1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2024-12-29 04:50:03 +01:00
Commit Graph

297 Commits

Author SHA1 Message Date
Martine Lenders
0e32745b8a gnrc: replace static initializers with constants where sensible 2016-03-01 18:29:15 +01:00
Joakim Nohlgård
647c87c9a5 6lo: Fix typo in UDP NHC checksum elision bit define 2016-03-01 12:35:14 +01:00
ded39b461e sys: random: rename genrand_* to random_* 2016-02-29 21:33:17 +01:00
Yonezawa-T2
984e02a7ff rbuf: made RBUF_INT_SIZE configurable 2016-02-29 13:02:32 +09:00
Cenk Gündoğan
0ac4ee705c ipv6: rpl: add source routing header for RPL 2016-02-27 20:39:12 +01:00
Cenk Gündoğan
847c4868a3 Merge pull request #4851 from cgundogan/pr/icmpv6/debug_fix
gnrc_icmpv6: fix debug outputs
2016-02-19 08:13:58 +01:00
Cenk Gündoğan
ee4553e176 gnrc_icmpv6: fix debug outputs 2016-02-19 07:51:10 +01:00
Oleg Hahm
fc398d857d ndp: fix NCE creation on RA reception
RFC4861 says: "If a Neighbor Cache entry is created for the router
[while processing route advertisements], its reachability state MUST be
set to STALE as specified in Section 7.3.3."
2016-02-18 19:53:39 +01:00
Oleg Hahm
0a65d8c558 Merge pull request #4770 from Yonezawa-T2/rbuf_usec
rbuf: change arrival time unit from seconds to microseconds
2016-02-16 11:38:06 +01:00
Yonezawa-T2
d5a02b6de1 rbuf: change arrival time unit from seconds to microseconds 2016-02-16 17:22:25 +09:00
Martine Lenders
a66ce9c3eb Merge pull request #4784 from authmillenon/gnrc_pkt/api/search-type-function
gnrc_pkt: provide type search function
2016-02-15 13:33:45 +01:00
Cenk Gündoğan
27a4770601 gnrc_ipv6: make the DEBUG output useful 2016-02-11 16:46:16 +01:00
Martine Lenders
379703ae3a gnrc: use gnrc_pkt_search_type instead of LL_SEARCH_SCALAR 2016-02-11 01:05:02 +01:00
Yonezawa-T2
f638d68ebb rbuf: drop overlapped fragment only if offset or size differs from previous one.
https://tools.ietf.org/html/rfc4944#section-5.3 says:

> If a link fragment that overlaps another fragment is received, as
> identified above, and differs in either the size or datagram_offset
> of the overlapped fragment, the fragment(s) already accumulated in
> the reassembly buffer SHALL be discarded.  A fresh reassembly may be
> commenced with the most recently received link fragment.
2016-02-09 11:15:22 +09:00
Oleg Hahm
ae086aeed1 IPv6: cosmetic improvement
New condition -> new line
2016-01-29 18:56:03 +01:00
Oleg Hahm
250c288929 6lowpan nd: prefer NCEs over FIB entries
If an address can be found in the neighbor cache, it should be used - whatever the FIB may return.
2016-01-29 18:56:03 +01:00
BytesGalore
10ea1226bc gnrc/ipv6: add blacklisting of IPv6 addresses 2016-01-28 21:50:43 +01:00
Oleg Hahm
ae8e0957cb Merge pull request #4705 from cgundogan/pr/ndp/pio_fix
ndp/internal: fix pio flags for rtr adv
2016-01-28 16:27:44 +01:00
Cenk Gündoğan
d58e1385b2 ndp/internal: fix pio flags for rtr adv 2016-01-28 14:03:19 +01:00
BytesGalore
2d1671473b gnrc_ipv6/whitelist: switch assignment operation to memcpy() 2016-01-28 06:23:31 +01:00
Martine Lenders
5ddcf09627 gnrc_ipv6_netif: don't advertise routers without GUAs 2016-01-26 23:25:07 +01:00
Cenk Gündoğan
617796241e Merge pull request #4295 from authmillenon/gnrc_ipv6_nc/enh/l2addr-lookup
gnrc_ipv6_nc: introduce L2 address lookup function
2016-01-26 19:30:01 +01:00
Oleg Hahm
3d494c8bf9 Merge pull request #3184 from authmillenon/ng_icmpv6_error/feat/init
gnrc_icmpv6_error: initial import
2016-01-26 18:23:54 +01:00
test
8d1f91f128 ndp: check for A flag in received PIO 2016-01-26 14:34:48 +01:00
Martine Lenders
da5abe1bcd gnrc_sixlowpan_nd: use gnrc_ipv6_nc_get_l2_addr() 2016-01-26 10:19:16 +01:00
Martine Lenders
0b787b9e02 gnrc_ndp_node: use gnrc_ipv6_nc_get_l2_addr() 2016-01-26 10:19:16 +01:00
Martine Lenders
0e0eef1273 gnrc_ipv6: use gnrc_ipv6_nc_get_l2_addr() 2016-01-26 10:19:15 +01:00
Martine Lenders
7b21f95df5 gnrc_ipv6_nc: introduce L2 address lookup function 2016-01-26 10:19:15 +01:00
Martine Lenders
70c3d29036 gnrc_icmpv6_error: initial import 2016-01-23 16:04:05 +01:00
Martine Lenders
94e4a08f45 Merge pull request #4447 from Yonezawa-T2/fix_gnrc_bugs
fixes several bugs on GNRC network stack
2016-01-07 03:38:11 +01:00
Yonezawa-T2
c9c83c7dc7 nc: cancel timer set by gnrc_ndp_rtr_sol_handle in gnrc_ipv6_nc_remove. 2016-01-07 10:12:46 +09:00
Yonezawa-T2
542e045bba gnrc_ipv6_netif: fixed crash when ENABLE_DEBUG is 1.
When ENABLE_DEBUG is 1, `out` is dereferenced unconditionally, but
`_parse_options` in `gnrc_rpl_control_messages.c` calls it with NULL.

Clarified `out` must not NULL and fixed `_parse_options`.
2016-01-07 10:08:37 +09:00
Yonezawa-T2
5cb904b57e gnrc_sixlowpan_nd: fixed crash on gnrc_sixlowpan_nd_next_hop_l2addr.
When `gnrc_ndp_node_next_hop_l2addr` cannot resolve L2 address, it creates a
temporary neighbor cache entry with interface `KERNEL_PID_UNDEF` (unless the
interface is already known) to send a neighbor solicitation. When another packet
directed to the same address is going to sent before receiving a neighbor
advertisement, `gnrc_sixlowpan_nd_next_hop_l2addr` gets the temporary neighbor
cache entry and calls `gnrc_ipv6_netif_get` with `KERNEL_PID_UNDEF`, resulting
get a `NULL`. We must check `NULL` before dereference it.

FYI, both `gnrc_ndp_node_next_hop_l2addr` and
`gnrc_sixlowpan_nd_next_hop_l2addr` are enabled when
`gnrc_sixlowpan_border_router_default` module is enabled with `GNRC_NETIF_NUMOF`
is greater than 1:

gnrc_sixlowpan_border_router_default
→ gnrc_ipv6_router_default
→ gnrc_ndp_router (if GNRC_NETIF_NUMOF > 1)
→ gnrc_ndp_node
→ gnrc_ndp_node_next_hop_l2addr is called from _next_hop_l2addr

gnrc_sixlowpan_border_router_default
→ gnrc_sixlowpan_nd_border_router
→ gnrc_sixlowpan_nd_router
→ gnrc_sixlowpan_nd
→ gnrc_sixlowpan_nd_next_hop_l2addr is called from _next_hop_l2addr
2016-01-07 10:02:49 +09:00
Martine Lenders
a4a8e83ac7 Merge pull request #4446 from Yonezawa-T2/neighbor_discovery_option_for_6lowpan
gnrc_ndp: fixed ND Option handling for 6LoWPAN
2016-01-06 14:03:43 +01:00
Yonezawa-T2
639f7dc020 gnrc_ndp: fixed ND Option handling for 6LoWPAN
The forms of the Source/Target Link-layer Address option for 6LoWPAN are defined
in RFC 4944 Section 8:
https://tools.ietf.org/html/rfc4944#section-8
The address is 16 bit if length is 1, 64 bit if length is 2.
2016-01-06 09:38:47 +09:00
Cenk Gündoğan
e79a471931 Merge pull request #4533 from Yonezawa-T2/gnrc_add_missing_unlock
gnrc_ndp_internal: add missing unlock when the pktbuf is full
2016-01-04 16:05:17 +01:00
Yonezawa-T2
38d3dc725b gnrc_ndp_internal: add missing unlock when the pktbuf is full
Squashed a commit by Cenk Gündoğan <cnkgndgn@gmail.com>.
2015-12-25 11:08:28 +09:00
Cenk Gündoğan
7d628514ab sixlowpan: iphc: fix dependencies for udp and nhc 2015-12-23 13:57:55 +01:00
Cenk Gündoğan
237706dd9e sixlowpan: iphc: remove dispatch and assign result to pkt 2015-12-22 20:54:39 +01:00
Martine Lenders
d342d35dd8 gnrc_sixlowpan: Fix IPHC/NHC packet order problem 2015-12-22 17:14:33 +01:00
Oleg Hahm
b7a7578e21 Merge pull request #4507 from authmillenon/gnrc_ipv6/fix/no-order-assumptions
gnrc_ipv6: make no pre-assumption about any marked headers
2015-12-22 11:18:47 +01:00
Oleg Hahm
83649ddb59 Merge pull request #4531 from Yonezawa-T2/gnrc_avoid_infinite_loop
sixlowpan: fixed infinite loop
2015-12-22 11:11:55 +01:00
Martine Lenders
34974abac2 Merge pull request #4534 from Yonezawa-T2/gnrc_off_by_1_overrun
gnrc_ipv6_netif: fixed buffer overrun
2015-12-22 10:29:57 +01:00
Martine Lenders
5b4ef433a8 Merge pull request #4532 from Yonezawa-T2/gnrc_safe_no_routers
gnrc_sixlowpan_nd: fixed crash when there are no routers
2015-12-22 09:15:49 +01:00
Yonezawa-T2
08ba1f8640 gnrc_ipv6_netif: fixed buffer overrun 2015-12-22 11:30:05 +09:00
Yonezawa-T2
fe0e58dce1 gnrc_sixlowpan_nd: fixed crash when there are no routers 2015-12-22 11:29:57 +09:00
Yonezawa-T2
9108d2779d sixlowpan: fixed infinite loop
When prefix entry is resued, it may form a looped list, results in infinite loop
in gnrc_ndp_internal_send_rtr_adv.
This patch avoids looped lists.
2015-12-22 11:29:04 +09:00
Johann F
adfcef4f7b gnrc_ndp.c: parsing of SLLAO in gnrc_ndp_rtr_sol_handle
Do not set the link-layer address if no SLLAO was included
 into the router solicitation.
2015-12-19 01:16:24 +01:00
Martine Lenders
68309045ed gnrc_ipv6: make no pre-assumption about any marked headers 2015-12-18 18:31:24 +01:00
Yonezawa-T2
c36766a31f OSX: fix warnings/errors thrown by clang on OS X
gnrc_ipv6_nc, gnrc_sixlowpan, gnrc_netdev2_eth, gnrc_ipv6, xbee, sixlowpan,
sc_gnrc_6ctx
2015-12-10 11:23:56 +09:00
Johann Fischer
a85d50b9d1 gnrc_sixlowpan_iphc.c: add nhc udp decoding and encoding
This patch adds UDP Header Compression and Decompression as
specified in https://tools.ietf.org/html/rfc6282#section-4.3
UDP NHC module will be included only if UDP is used.
2015-12-08 14:50:25 +01:00
Johann Fischer
199789ffbc gnrc_sixlowpan.c: fix warning if GNRC_SIXLOWPAN_FRAG module not used 2015-12-08 13:59:15 +01:00
Martine Lenders
15220b26ad Merge pull request #4381 from PeterKietzmann/sixlo_frag_unblocking
gnrc_sixlowpan_frag: Make fragmentation non-blocking
2015-12-08 13:13:48 +01:00
Hauke Petersen
41979b64cd sys: adapted to renamed THREAD FLAGS 2015-12-07 22:09:47 +01:00
PeterKietzmann
331fa34502 gnrc_sixlowpan_frag: msg based fragmentation 2015-12-07 17:49:02 +01:00
Martine Lenders
281b0ba46e Merge pull request #4343 from kb2ma/misc/fix-checksum
Fix UDP/ICMPv6 checksum for a sliced/accumulated payload.
2015-12-03 13:16:12 +01:00
Ken Bannister
1abffc84e1 Update layer 4 files to fix checksum with inet_csum_slice(). 2015-12-02 05:53:58 -05:00
test
432f6c34ab ndp: use on-link flag instead of auto flag 2015-11-26 23:37:39 +01:00
test
db7e8a7b37 sixlowpan: iphc: minor optimizations 2015-11-23 13:17:23 +01:00
Martine Lenders
5f04675403 Merge pull request #4284 from authmillenon/gnrc_ipv6/enh/addr-res-without-nd
gnrc_ipv6: get l2addr from NC if no ND present
2015-11-17 17:59:58 +01:00
Martine Lenders
c7ebcbbda2 gnrc_ipv6: get l2addr from NC if no ND present 2015-11-17 16:20:58 +01:00
Martine Lenders
6595e8c57f Merge pull request #4174 from authmillenon/gnrc_ndp_internal/fix/send-ras-without-pio
gnrc_ndp_internal: send RAs even when there are no PIOs
2015-11-17 14:01:55 +01:00
Oleg Hahm
46dc908fcb gnrc 6lowpan: exclude CTX if not part of the app
This removes dependencies to 6LoWPAN context module if an application is built without support for it.

Also, includes a missing header.
2015-11-17 12:04:11 +01:00
Cenk Gündoğan
bf3a504691 nc: ndp: sixlowpan: remove timex.h include 2015-11-09 14:55:04 +01:00
Cenk Gündoğan
401e1b3814 sixlowpan: timex_t -> uint32_t 2015-11-09 14:55:04 +01:00
Cenk Gündoğan
34c3267bfe ndp: timex_t -> uint32_t 2015-11-09 14:55:04 +01:00
Cenk Gündoğan
5aaea3879f netif: ndp: gnrc_ipv6_netif_t::retrans_timer -> uint32_t 2015-11-09 14:55:04 +01:00
Cenk Gündoğan
b59fc825a3 netif: nc: ndp: gnrc_ipv6_netif_t::reach_time -> uint32_t 2015-11-09 14:55:01 +01:00
Cenk Gündoğan
47fe901187 ndp: timex -> uint32_t for probe delay time 2015-11-09 14:54:42 +01:00
Cenk Gündoğan
42c5666357 Merge pull request #4186 from cgundogan/pr/ipv6/last_vtimers
network_layer: remove last occurences of vtimer
2015-11-02 15:42:50 +01:00
Cenk Gündoğan
47a02d9d07 ipv6: ndp: sixlowpan: remove vtimer includes 2015-11-02 15:02:08 +01:00
Cenk Gündoğan
206e027725 Merge pull request #3647 from BytesGalore/fib_source_routing
fib: initial source route support
2015-10-29 12:08:47 +01:00
Cenk Gündoğan
83e0c45259 Merge pull request #4176 from authmillenon/gnrc_ndp/fix/stop-rs-retransmissions-on-ra
gnrc_ndp: stop multicast RS retransmissions on RA reception
2015-10-28 21:40:28 +01:00
Cenk Gündoğan
3b825c2523 sixlowpan: use xtimer_now() instead of vtimer_now() 2015-10-28 21:15:11 +01:00
Cenk Gündoğan
023c0984b3 sixlowpan: switch ltimer to be an xtimer 2015-10-28 21:03:09 +01:00
Martine Lenders
23f8fecc04 Merge pull request #4157 from cgundogan/pr/nc/xtimer_nbr_sol_timer
nc: use xtimer for gnrc_ipv6_nc_t::nbr_sol_timer
2015-10-28 17:51:48 +01:00
Cenk Gündoğan
4297972054 nc: use xtimer for gnrc_ipv6_nc_t::nbr_sol_timer 2015-10-28 15:24:45 +01:00
Martine Lenders
a4533920a7 Merge pull request #4177 from authmillenon/gnrc_ipv6_netif/fix/no-l2-addr
gnrc_ipv6_netif: don't skip rest of config for address less l2
2015-10-28 15:16:34 +01:00
Martine Lenders
083c9442ab gnrc_ipv6_netif: don't skip rest of config for address less l2 2015-10-28 13:40:21 +01:00
Cenk Gündoğan
c78fd9f4ed Merge pull request #4159 from cgundogan/pr/netif/xtimer_rtr_adv_timer
netif: use xtimer for gnrc_ipv6_netif_t::rtr_adv_timer
2015-10-28 11:09:13 +01:00
Peter Kietzmann
eaf1e29b31 Merge pull request #4179 from OlegHahm/ndp_l2_length_calculation
gnrc: ndp: fix calculation of L2 address length
2015-10-28 10:25:32 +01:00
Cenk Gündoğan
a979d0c72c netif: use xtimer for gnrc_ipv6_netif_t::rtr_adv_timer 2015-10-27 20:51:34 +01:00
Cenk Gündoğan
7490dc21a0 Merge pull request #4172 from cgundogan/pr/ndp/use_correct_timer
nc: ndp: add/use gnrc_ipv6_nc_t::rtr_adv_timer in gnrc_ndp_rtr_sol_handle
2015-10-27 20:43:30 +01:00
BytesGalore
6c57582107 fib: initial source route support 2015-10-27 20:20:18 +01:00
Oleg Hahm
64a653496a gnrc: ndp: fix calculation of L2 address length
If no source address was provided by layer 2 or someone removed it, the calculation of its length is done using the length field from the Source/Target Link-layer Address option (https://tools.ietf.org/html/rfc4861#section-4.6.1). The length is specified as units of 8 octets. Hence, it should be multiplied by 8, not divided.
2015-10-27 20:13:50 +01:00
Martine Lenders
493597ec1d Merge pull request #3845 from cgundogan/pr/gnrc_sixlowpan_iphc/assert
gnrc_sixlowpan_iphc: move assert to a valid position
2015-10-27 20:11:47 +01:00
Martine Lenders
8722699fb2 gnrc_ndp: stop multicast RS retransmissions on RA reception
6LoWPAN interfaces already do that, other interface happily continue
multicasting RSs even if a router was found.
2015-10-27 19:37:12 +01:00
Martine Lenders
ae567efc9a gnrc_ndp_internal: send RAs even when there are no PIOs 2015-10-27 19:33:52 +01:00
Cenk Gündoğan
b993914534 nc: ndp: add and use gnrc_ipv6_nc_t::rtr_adv_timer in gnrc_ndp_rtr_sol_handle 2015-10-27 17:15:52 +01:00
Cenk Gündoğan
d587cf9cd4 netif: use xtimer for gnrc_ipv6_netif_t::rtr_sol_timer 2015-10-26 21:03:38 +01:00
Cenk Gündoğan
59a8b929f6 nc: use xtimer for gnrc_ipv6_nc_t::nbr_adv_timer 2015-10-26 16:59:16 +01:00
Cenk Gündoğan
56534e28f8 Merge pull request #4150 from cgundogan/pr/ndp/assert_nc_entry
ndp/internal: add assert and use dst instead of tgt to determine nc_entry
2015-10-26 16:56:42 +01:00
Cenk Gündoğan
2065537368 Merge pull request #4123 from cgundogan/pr/nc/xtimer_rtr_timeout
nc: user xtimer for gnrc_ipv6_nc_t::rtr_timeout
2015-10-26 15:46:01 +01:00
Cenk Gündoğan
609cf7fb12 ndp/internal: use dst instead of tgt to determine the nc_entry 2015-10-26 15:35:47 +01:00
Cenk Gündoğan
e72bde5805 ndp/internal: add assert to test for nc_entry if target is non-unicast 2015-10-26 15:18:58 +01:00
Martine Lenders
5b37e1ad0c Merge pull request #4124 from cgundogan/pr/netif/xtimer_valid_timeout
netif: use xtimer for gnrc_ipv6_netif_addr_t::valid_timeout
2015-10-26 12:23:05 +01:00
Cenk Gündoğan
0258f29a5e nc: user xtimer for gnrc_ipv6_nc_t::rtr_timeout 2015-10-26 11:27:07 +01:00
Cenk Gündoğan
40e504de65 nc: use xtimer for gnrc_ipv6_nc_t::type_timeout 2015-10-22 15:55:46 +02:00
Cenk Gündoğan
0146c1b1b9 netif: use xtimer for gnrc_ipv6_netif_addr_t::valid_timeout 2015-10-20 22:55:12 +02:00
Cenk Gündoğan
beb3321132 nc: remove unused rtr_sol_timer 2015-10-20 19:05:42 +02:00