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

480 Commits

Author SHA1 Message Date
Martine Lenders
ab32ad5030
gnrc_ipv6_nib: auto-configure link-local address on UP event 2022-10-11 22:57:00 +02:00
Martine Lenders
47aaa94157
gnrc_ipv6_nib: handle iface_up/iface_down in IPv6 thread 2022-10-07 14:12:00 +02:00
Fabian Hüßler
23fa33774f nib/_nib-6ln: correct ABR timeout in ABRO 2022-09-29 10:48:49 +02:00
Benjamin Valentin
7211aa11af ipv6/nib: add gnrc_ipv6_nib_iface_{up, down}() 2022-09-16 22:57:06 +02:00
Karl Fessel
05f114d0af doc: fix unbalaced grouping
- most were trivial
    - missing group close or open
    - extra space
    - no doxygen comment
- name commad might open an implicit group
    this hould also be implicit cosed but does not happen somtimes
- crazy: internal declared groups have to be closed internal
2022-09-14 15:05:25 +02:00
Benjamin Valentin
f6cef270c2 gnrc_ipv6_nib: use correct DHCPv6 client module name
`MODULE_GNRC_DHCPV6_CLIENT_IA_PD` does not exist, the correct module name
is `MODULE_DHCPV6_CLIENT_IA_PD`.
2022-08-05 12:52:22 +02:00
Martine Lenders
fe3d620a63
gnrc_ipv6_nib: make configurable via Kconfig again 2022-07-22 17:51:57 +02:00
Marian Buschsieweke
973b6f69bf
sys/net/netopt: change NETOPT_STATS semantics
Instead of retrieving a pointer with NETOPT_STATS, retrieve the current
data. This avoids data corruptions when reading from one thread (e.g.
the thread running the shell (ifconfig command)) while another thread
is updating it (e.g. the netif thread).

The issue affects all boards, as users typically expect the count of
TX packets and the number of TX bytes to refer to the same state. For
16 bit and 8 bit platforms even a single netstat entry can read back
corrupted.

This fixes the issue by just copying the whole netstat_t struct over
without requiring explicit locking on the user side. A multi-threaded
network stack still needs to synchronize the thread responding to
netopt_get with the thread writing to the netstat_t structure, but that
is an implementation detail no relevant to the user of the API.
2022-06-28 16:57:43 +02:00
Martine Lenders
a5cc629fb8
Merge pull request #18127 from benpicco/gnrc/nib-no_default_router_from_wpan
gnrc/nib: don't add routers from WPAN as default router on the 6LBR
2022-05-24 00:38:43 +02:00
Benjamin Valentin
f544890056 gnrc/nib: don't add routers from WPAN as default router for 6LBR
This avoids a race condition where the default router slots for the 6LBR
are used up by router advertisements from the 6Lo network that arrived
before router advertisements from the upstream network.

The border router should ignore 'default routers' from the 6Lo network as
it consitutes the uplink for that network.
2022-05-23 16:44:58 +02:00
Martine Lenders
3398898e76
gnrc_ipv6_nib: fix inconsistent ABR valid lifetime representation 2022-05-23 14:21:25 +02:00
fabian18
5643b52879
Merge pull request #17814 from fabian18/bugfix_nib_sllao_in_NS_6LR
ipv6/nib: bugfix handle SLLAO on 6LR if ARO is not present
2022-04-18 17:54:04 +02:00
Fabian Hüßler
560e43ae56 ipv6/nib: bugfix handle SLLAO on 6LR if ARO is not present 2022-04-18 00:09:53 +02:00
benpicco
3e03fe669a
Merge pull request #17600 from benpicco/gnrc/nib-ra_on_ra
gnrc/nib: only enable RTR_ADV on RA if MULTIHOP_P6C is enabled
2022-04-13 18:44:10 +02:00
Fabian Hüßler
2139b51cb5 gnrc/nib: only enable RTR_ADV on RA if MULTIHOP_P6C is enabled
If multihop distribution is not done using RA messages, then the
routers follow [RFC4861], which states that they merely do some
consistency checks; in this case, nothing in Section 8.1 applies.

 - https://datatracker.ietf.org/doc/html/rfc6775#section-8.1
2022-04-13 00:20:52 +02:00
fabian18
c0f26fcaaa
Merge pull request #17803 from benpicco/gnrc/ipv6/nib-adv_address
gnrc/nib: don't advertise single address for auto-configuration
2022-03-29 10:49:54 +02:00
Fabian Hüßler
77cbe15b1d ipv6/nib: bugfix of 6CO length checking 2022-03-24 10:06:56 +01:00
Benjamin Valentin
15f210e4e4 gnrc/nib: don't advertise /128 prefix for auto-configuration
A single IP address will be added as a /128 prefix.
It makes sense to advertise it, as neighbors can then know that
the address/prefix is on-link.

It does however not make sense to advertise the prefix as suitable
for auto-configuration.

Co-authored-by: Fabian Hüßler <fabian.huessler@st.ovgu.de>
2022-03-22 20:52:38 +01:00
Martine Lenders
bec2868223
Merge pull request #17676 from benpicco/revert-gnrc_ipv6_nib-all_ifs
Revert "gnrc_ipv6_nib: consider all local interfaces when looking for…
2022-03-14 10:31:16 +01:00
benpicco
a9456b6935
Merge pull request #17741 from fabian18/bugfix-NIB_handle_rtr_timeout
ipv6/nib: fix memcpy() bug in _handle_rtr_timeout()
2022-03-07 13:39:05 +01:00
Fabian Hüßler
6916f72419 ipv6/nib: fix memcpy() bug in _handle_rtr_timeout 2022-03-03 23:35:06 +01:00
Karl Fessel
d03175c2ae net/gnrc: avoid *timer creeping though header 2022-02-28 14:53:07 +01:00
Benjamin Valentin
32c89e72ef Revert "gnrc_ipv6_nib: consider all local interfaces when looking for address"
This reverts commit 8871b929ab.
2022-02-17 19:27:48 +01:00
Karl Fessel
505ce8481b gnrc/ipv6nib: remove the need for evtimer-minutes
gnrc/nib: add unitmarker to valid_untils that where min and are now ms
2022-01-13 15:17:24 +01:00
Gunar Schorcht
8c044c0163 gnrc/ipv6_ext_opt: fix compilation with NDEBUG 2021-12-09 16:44:19 +01:00
Martine Lenders
e804a738de
Merge pull request #16947 from miri64/gnrc_ipv6_nib/fix/queue-pkts-on-6lbr
gnrc_ipv6_nib: queue packets that trigger probing on border router
2021-10-05 14:01:17 +02:00
Martine Lenders
96eb2c5050
Merge pull request #16731 from JKRhb/dhcp-stateless
sys/net/dhcpv6: Add stateless DHCPv6
2021-10-05 10:13:22 +02:00
Jan Romann
c62d6eb834
sys/net/dhcpv6: Implement stateless DHCPv6 2021-10-04 17:40:56 +02:00
Martine Lenders
b8691842fb
gnrc_ipv6_nib: queue packets that trigger probing on border router 2021-10-04 17:25:36 +02:00
Benjamin Valentin
f4828cc7ae gnrc_ipv6_nib: add hook for Prefix Information Option 2021-09-02 15:35:14 +02:00
Martine Lenders
eace9495b4
Merge pull request #16729 from benpicco/_nib_offl_remove_prefix
gnrc/nib: consolidate prefix removal code in _nib_offl_remove_prefix()
2021-08-26 19:17:21 +02:00
Benjamin Valentin
10887ebb19 gnrc/nib: consolidate prefix removal code in _nib_offl_remove_prefix() 2021-08-25 17:23:21 +02:00
benpicco
3d0e5509dc
Merge pull request #16734 from benpicco/_handle_rio-ltime
gnrc_ipv6_nib: handle route information option with ltime = 0
2021-08-24 10:20:02 +02:00
Benjamin Valentin
0ead10e79a gnrc_ipv6_nib: handle route information option with ltime = 0 2021-08-13 21:35:48 +02:00
Jan Romann
4384795cb9
treewide: Remove excessive newlines 2021-08-13 19:50:38 +02:00
Martine Lenders
f2f6700865
Merge pull request #16228 from JKRhb/dhcp-ia-na
sys/net/dhcpv6: Add IA_NA support to the DHCPv6 client
2021-08-11 20:50:01 +02:00
Jan Romann
234a71870a
sys/net/dhcpv6: Add IA_NA implementation 2021-08-11 19:15:35 +02:00
Martine Lenders
de3e5f964a
Merge pull request #16671 from benpicco/gnrc/nib-_nib_onl_get-fix
gnrc/nib: gnrc_ipv6_nib_get_next_hop_l2addr(): only assume neighbor cache entries to always be on-link
2021-08-11 12:17:38 +02:00
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
71ae768e56 net/gnrc/ipv6/nib: add option to include RIO with final RA
Sending a RA with ltime = 0 does not get us added to the default router
list, but the options (and therefore the RIO) are still parsed.

This even appears to work with Linux as a receiver.
2021-08-02 21:44:55 +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
Benjamin Valentin
5ad58b152a gnrc_ipv6_nib: make use of _nib_onl_nc_get() 2021-07-22 13:37:12 +02:00
Benjamin Valentin
c189ed5d1b gnrc_ipv6_nib: add _nib_onl_nc_get() 2021-07-22 13:37:11 +02:00
Benjamin Valentin
11e9b7c08f gnrc_ipv6_nib: only consider NC in gnrc_ipv6_nib_get_next_hop_l2addr()
Consider the following: A node tries to forward a packet to another
host for which it does not know the route yet. It assumes it to be
on-link and starts a neighbor solicitation, putting the node address
in the destinatio cache.

Later the route is known (via a second hop) but the host is still in
the NIB.

The result is that gnrc_ipv6_nib_get_next_hop_l2addr() ends up in the
"nib: %s is in NC or on-link, start address resolution" case and does
not attempt to resolve the route.

This results in the host remaining unreachable even though now a route
is present.
2021-07-22 13:36:53 +02:00
Benjamin Valentin
ac0b36384f gnrc_ipv6_nib: improve debug output 2021-07-22 13:18:55 +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