Martine Lenders
c86bd7454c
Merge pull request #16557 from benpicco/gnrc_ipv6_nib-fib_on-link
...
gnrc_ipv6_nib: consider largest prefix match when deciding if host on-link
2021-08-09 18:53:40 +02:00
Benjamin Valentin
452500b3eb
gnrc_ipv6_nib: consider largest prefix match when deciding if host on-link
...
If the fib contains a route to a subnet via another host, it can not
be on-link.
Consider fib entries when deciding whether an address is on-link.
If a route via another host is a stronger match than an on-link
prefix, the address must be off-link.
2021-08-09 16:57:14 +02:00
Martine Lenders
8492bd7b12
Merge pull request #16568 from benpicco/gnrc_ipv6_nib-rio
...
gnrc_ipv6_nib: handle route information option and add config to add to final RAs
2021-08-03 15:44:01 +02:00
Benjamin Valentin
62308d200c
gnrc_ipv6_nib: don't stop sending router solicitations on last RA
...
When the default router was removed or could not be added, `dr` will
be NULL.
In this case, don't cease sending router solicitations - we still don't
have a default router.
2021-07-26 23:56:53 +02:00
Benjamin Valentin
12a0d481dc
gnrc_ipv6_nib: handle route information option
2021-07-22 15:54:46 +02:00
Martine Lenders
c5a1012695
Merge pull request #16596 from JKRhb/aac-flags
...
sys/net/gnrc/netif: Make aac_mode a flag field
2021-06-30 13:29:44 +02:00
Jan Romann
672a86d58e
sys/net/gnrc/netif: Make aac_mode a flag field
2021-06-29 19:06:22 +02:00
Benjamin Valentin
8871b929ab
gnrc_ipv6_nib: consider all local interfaces when looking for address
...
If a node has two interfaces A with 2001:16b8:45b5:9af8:5884:3bff:fe4f:a903
and B with 2001:16b8:45b5:9afa:5884:3bff:fe4f:a902 and receives a neighbor
solicitation on A for an address configured on interface B, answer the neighbor
solicitation instead of bailing out with
> Target address 2001:16b8:45b5:9afa:5884:3bff:fe4f:a902 is not assigned
> to the local interface
2021-06-22 15:05:09 +02:00
Benjamin Valentin
ae4165b374
gnrc_ipv6_nib: get node from proper interface
...
If we switch the interface in gnrc_ipv6_nib_get_next_hop_l2addr()
we must also re-get the nib entry from the 'proper' interface.
Otherwise we will always find the host unreachable on the 'wrong'
interface.
2021-06-14 16:56:15 +02:00
Benjamin Valentin
d2b6f79143
gnrc_ipv6_nib: consider all prefixes when deciding on-link next hop
...
Consider the following configuration:
nib prefix
2001:16b8:4569:88fc::/62 dev #7 expires 7081 sec deprecates 3481 sec
2001:16b8:4569:88fe::/63 dev #6
If `_on_link()` stops at the first match, a packet received from #7 with a
destination in the downstream subnet in #6 would always be sent back via #7
if this happens to be the first entry in the list.
Instead, consider all prefixes and return the one that is the closest match.
2021-06-07 12:58:42 +02:00
Martine Lenders
4b4eaf3b76
gnrc_ipv6_nib: fix acquire race on gnrc_ipv6_nib_get_next_hop_l2addr()
...
When two threads use `gnrc_ipv6_nib_get_next_hop_l2addr()` to determine
a next hop (e.g. when there is both an IPv6 sender and a 6LoWPAN
fragment forwarder), a race condition may happen, where one thread
acquires the NIB and the other acquires the network interface resulting
in a deadlock. By releasing the NIB (if acquired) before trying to
acquire the network interface and re-acquiring the NIB after the network
interface is acquired, this is fixed.
2021-05-05 17:48:24 +02:00
Bas Stottelaar
922e2ac1c9
sys/*: replace #if ENABLE_DEBUG with IS_ACTIVE
2020-11-02 21:49:39 +01:00
Bas Stottelaar
1b35d06a51
sys/*: realign ENABLE_DEBUG
2020-10-23 11:27:48 +02:00
Bas Stottelaar
80d9da90df
sys/*: add missing include of assert.h
2020-10-22 11:13:09 +02:00
Martine Lenders
45144fb4a4
treewide: use new gnrc_pkt API functions instead of utlist.h macros
2020-10-13 13:32:53 +02:00
Martine S. Lenders
f9c3e5f5a4
gnrc_ipv6_nib: check return value of gnrc_netif_ipv6_addr_idx()
...
And acquire exclusive network interface access when necessary.
Fixes #14752 .
2020-09-07 08:42:50 +02:00
Martine S. Lenders
14efa3185b
gnrc_ipv6_nib: don't add dst from PL to NC without ARSM
2020-09-01 11:12:55 +02:00
Leandro Lanzieri
acd789bd87
gnrc/nib: Move GNRC_IPV6_NIB_CONF_REACH_TIME_RESET to 'CONFIG_'
2020-03-31 18:07:11 +02:00
Leandro Lanzieri
07771de08f
gnrc/nib: Move GNRC_IPV6_NIB_NUMOF to 'CONFIG_' namespace
2020-03-31 18:07:11 +02:00
Leandro Lanzieri
1f20ffc150
gnrc/nib: Move GNRC_IPV6_NIB_CONF_NO_RTR_SOL to 'CONFIG_' namespace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:10 +02:00
Leandro Lanzieri
53a522d642
gnrc/nib: Move GNRC_IPV6_NIB_CONF_MULTIHOP_P6C to 'CONFIG_' namespace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:10 +02:00
Leandro Lanzieri
22b4df9537
gnrc/nib: Move GNRC_IPV6_NIB_CONF_MULTIHOP_DAD to 'CONFIG_' namespace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:09 +02:00
Leandro Lanzieri
3ec296400d
gnrc/nib: Move GNRC_IPV6_NIB_CONF_DC to 'CONFIG_' namespace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:09 +02:00
Leandro Lanzieri
219d5a1de2
gnrc/nib: Move GNRC_IPV6_NIB_CONF_REDIRECT to 'CONFIG_' namspace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:08 +02:00
Leandro Lanzieri
bad9abd349
gnrc/nib: Move GNRC_IPV6_NIB_CONF_DNS to 'CONFIG_' namespace
...
Also evaluate using IS_ACTIVE macro.
2020-03-31 18:07:07 +02:00
Leandro Lanzieri
e52b93cef0
gnrc/nib: Move GNRC_IPV6_NIB_CONF_ARSM to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:07 +02:00
Leandro Lanzieri
f23267b67b
gnrc/nib: Move GNRC_IPV6_NIB_CONF_QUEUE_PKT to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:06 +02:00
Leandro Lanzieri
ce931f179c
gnrc/nib: Move GNRC_IPV6_NIB_CONF_SLAAC to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:05 +02:00
Leandro Lanzieri
49ec28867c
gnrc/nib: Move GNRC_IPV6_NIB_CONF_ROUTER to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:05 +02:00
Leandro Lanzieri
1acfe7ae19
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LN to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:04 +02:00
Leandro Lanzieri
398bb6d025
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LR to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE
2020-03-31 18:07:03 +02:00
Leandro Lanzieri
40c78f1c75
gnrc/nib: Move GNRC_IPV6_NIB_CONF_6LBR to 'CONFIG_' namespace
...
Also evaluate it using IS_ACTIVE macro.
2020-03-31 18:07:03 +02:00
Juergen Fitschen
877e0a9b32
net/gnrc/ipv6/nib: fix typos
2020-03-24 13:07:20 +01:00
Juergen Fitschen
47f5cd8618
net/gnrc/ipv6/nib: make use of the evtimer system time getter
...
This commit removes the implication that evtimer uses xtimer as timer backend.
2020-03-24 13:07:20 +01:00
Martine S. Lenders
3082710f65
gnrc_ipv6_nib: allow for configuration of static link-local addresses
...
This feature was removed without replacment in 71a7dbf918
, but it can
still be useful.
Co-Authored-By: smlng <s@mlng.net>
2020-01-14 15:46:18 +01:00
PeterKietzmann
9e83d12bc0
net/gnrc/netif: Move GNRC_NETIF_IPV6_ADDRS_NUMOF to 'CONFIG_' namespace
2020-01-13 12:28:37 +01:00
d4f3747705
sys/net: fix typos
2019-11-23 22:39:38 +01:00
Martine Lenders
1bdfbeaaa0
Merge pull request #12425 from miri64/gnrc_ipv6_nib/enh/mutex
...
gnrc_ipv6_nib: use recursive mutex instead of mutex for locking
2019-10-21 16:08:07 +02:00
Martine Lenders
363afa62ee
gnrc_netif: introduce 6LN flag
...
This makes it dynamically configurable if an interface actually want's
to use 6Lo ND (according to RFC 6775) or not.
2019-10-20 15:38:13 +02:00
Martine S. Lenders
a14e834ad8
gnrc_ipv6_nib: use mutex wrapper function instead of mutex functions
2019-10-11 12:17:05 +02:00
Martine Lenders
062bc732ea
Merge pull request #11299 from llueder/ndp_cpp_compliant
...
net/ndp: make addr array ptr c++ compliant
2019-09-26 22:34:45 +02:00
Lasse Lueder
8a86ea4a4b
use ndp_opt_rdnss_impl_t to access addresses
2019-09-26 22:08:49 +02:00
Martine S. Lenders
66fa240e9a
gnrc_ipv6: fix scan-build errors
2019-09-20 08:59:55 +02:00
Martine S. Lenders
7b43a8f9d5
gnrc_ipv6: use gnrc_netif_hdr_set_netif()
2019-07-25 15:45:44 +02:00
Martine Sophie Lenders
f5f8261b1c
gnrc_ipv6_nib: add debug messages for DAD + 6Lo
2019-06-18 11:48:04 +02:00
Martine Lenders
aa8e760e46
Merge pull request #11182 from miri64/gnrc_ipv6_nib/fix/pkt-null-on-error
...
gnrc_ipv6_nib: check if pkt is NULL on error
2019-03-27 18:38:32 +01:00
Martine Lenders
06e244c963
ndp: provide define for common hop-limit
2019-03-26 12:00:52 +01:00
Martine Lenders
b970d00064
gnrc_ipv6_nib: check if pkt is NULL on error
...
According to the documentation of `gnrc_ipv6_nib_get_next_hop_l2addr()`
`pkt` may be `NULL`. However, whenever that function sends an error
message (the methods for that require `orig_pkt` not to be NULL) `pkt`
is not checked, which may lead to failed assertions.
2019-03-14 14:29:13 +01:00
Martine Lenders
aa953a40ea
gnrc_ipv6_nib: fix preparation of delayed NA
...
Currently the constructed NA for a delayed NA case is neither used nor
released nor does it get an IPv6 header to be used properly. This fixes
that case.
2019-02-12 14:12:59 +01:00
Martine Lenders
fd3f806e32
gnrc_ipv6_nib: release packet when NC entry can't be added
...
When the neighbor cache is full, the packet trying to resolve a
neighbor is not released.
This change fixes that.
2019-02-08 21:53:46 +01:00