1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-01-18 12:52:44 +01:00
Commit Graph

2051 Commits

Author SHA1 Message Date
Benjamin Valentin
459f3987d0 gnrc: select gnrc_netif if netdev_default is selected
A generic application might select netdev_default instead of
gnrc_netdev_default to pull in the default network interface.

So pull in gnrc_netif if netdev_default is selected with GNRC.
2021-09-06 15:43:40 +02:00
Simon Brummer
1870e8a3ce gnrc_tcp: experimental feature "dynamic msl" 2021-09-04 07:37:53 +02:00
Benjamin Valentin
b208db0f27 gnrc_ipv6_auto_subnets: auto-configuration for nested subnets
If we get a large (e.g. /62) prefix from e.g. DHCPv6, we can split it
into subnets automatically to configure downstream interfaces.

This allows for automatic configuration of daisy-chained nodes or
nodes connected in a tree topology.

To enable the feature, a new pseudo-module `gnrc_ipv6_auto_subnets` is
provided.
2021-09-02 15:35:14 +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
Hauke Petersen
f5f28347c2 net/gnrc/rpl: add hooks for nimble_rpble 2021-08-24 11:33:13 +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
Jose Alamos
ddc9c7c686
ieee802154/radio_hal: detach hal descriptor from driver 2021-08-18 15:24:10 +02:00
Jose Alamos
e9a2f186ba
gnrc_netif_pktq: send schedule msg directly if dequeue timer is zero 2021-08-16 14:42:56 +02:00
Simon Brummer
6fba0d970c gnrc_sock_tcp: integrate gnrc_tcp 2021-08-14 21:27:34 +02:00
benpicco
a76bc58d9b
Merge pull request #16738 from brummer-simon/gnrc_tcp-handle_zero_size_buffers
gnrc_tcp: handle zero size buffers
2021-08-14 18:44:29 +02:00
benpicco
6d7fdfccd6
Merge pull request #16736 from brummer-simon/gnrc_tcp-document_internal_defines
gnrc_tcp: Document internal defines
2021-08-14 17:42:58 +02:00
Simon Brummer
11d73fbf30 gnrc_tcp: handle zero size buffers 2021-08-14 17:04:57 +02:00
benpicco
84413a3e6e
Merge pull request #16735 from brummer-simon/gnrc_tcp-add_GNRC_TCP_NO_TIMEOUT
gnrc_tcp: Add GNRC_TCP_NO_TIMEOUT
2021-08-14 17:00:11 +02:00
benpicco
6eacb41e23
Merge pull request #16664 from jia200x/pr/gnrc/lorawan/random
net/gnrc_lorawan: fix pick channel
2021-08-14 16:35:14 +02:00
Simon Brummer
41bafdd928 gnrc_tcp: Document internal defines 2021-08-14 15:49:42 +02:00
Simon Brummer
6b24601ee9 gnrc_tcp: Add GNRC_TCP_NO_TIMEOUT 2021-08-14 15:28:14 +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
Jan Romann
e7a24fe136
gnrc_netif/lorawan: fix ENABLE_DEBUG definition 2021-08-12 17:30:46 +02:00
Jan Romann
441afca9fe
drivers/nrf24l01p_ng: fix ENABLE_DEBUG definitions 2021-08-12 17:30:45 +02:00
Jan Romann
ad0096cde6
sys/net/dhcpv6: Refactor IA_NA implementation 2021-08-11 22:19:59 +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
Benjamin Valentin
f4fa197951 gnrc_netif: properly initialize address in gnrc_netif_ipv6_add_prefix()
Initialize addr with 0 first.
Otherwise if prefix is < 64 there will be random bits of stack memory
in the bits of the address that are neither touched by ipv6_addr_set_aiid()
nor ipv6_addr_init_prefix().
2021-08-09 16:50:21 +02:00
José Alamos
91fe57a4d1
Merge pull request #16654 from jia200x/pr/gnrc_lorawan_tests
tests/gnrc_lorawan: add initial tests
2021-08-04 10:33:33 +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
Jose Alamos
179a2c2780
net/gnrc_lorawan: fix random_uint32_range upper bound 2021-08-02 10:28:17 +02:00
Martine Lenders
6b5a1818f1
Merge pull request #16672 from benpicco/gnrc_util_conf_prefix
gnrc_netif: add gnrc_netif_ipv6_add_prefix() & helper functions
2021-07-29 18:01:26 +02:00
Benjamin Valentin
6e3c09eb78 sys/net/uhcp: make use of gnrc_netif_ipv6_add_prefix() 2021-07-29 16:04:28 +02:00
Benjamin Valentin
a18f123ff1 gnrc_dhcpv6_client: make use of gnrc_netif_ipv6_add_prefix() 2021-07-29 16:04:28 +02:00
Benjamin Valentin
d99972791a gnrc/rpl: add gnrc_rpl_configure_root() convenience function 2021-07-29 16:04:28 +02:00
Benjamin Valentin
3dad587307 gnrc/rpl: allow const dodag ID 2021-07-29 16:04:28 +02:00
Benjamin Valentin
b90c6ed373 gnrc_netif: add gnrc_netif_ipv6_add_prefix() 2021-07-29 16:04:28 +02:00
Martine Lenders
485eb741e2
Merge pull request #16644 from benpicco/gnrc_ipv6_nib-evtimer_del-fix
gnrc_ipv6_nib: don't stop sending router solicitations when receiving last router advertisement from router
2021-07-29 12:23:14 +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
Karl Fessel
fe9a6d7d84 gnrc_dhcpv6_client: dhcp-helper-function return valid seconds left
dhcpv6_client_prefix_valid_until returned the valid timestamp
this fixes it according to the documentation given in
/sys/include/net/dhcpv6/client.h
to return seconds left
2021-07-23 17:53:59 +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
38d14b6335
dhcpv6_client: make IA_PD an optional module
Prefix delegation used to be the only supported feature of our DHCPv6
client, but by now it also supports MUD, DNS recursive name servers and
IA_NA is on the horizon. So it makes sense to make IA_PD an optional
module like all those other features are as well.
2021-07-21 11:37:29 +02:00
Benjamin Valentin
da7d3779bf examples/gnrc_networking: move udp command to shell commands
The `udp` command is a valuable debugging tool that is also useful
outside of the gnrc_networking example.

To enable easy sending of udp messages in other applications during
development, move the `udp` command to the shell module and introduce
the `gnrc_udp_cmd` pseudo-module to enable it.
2021-07-21 11:19:47 +02:00
Jose Alamos
df97f348e2
net/gnrc_lorawan: implement uplink redundancy
This commit implements uplink redundancy in GNRC LoRaWAN. Uplink
redundancy is used to retransmit unconfirmed uplink frames. The
retransmission stops when either a downlink message is received or the
number of uplink retransmissions is reached.

This functionality doesn't affect confirmed uplinks.
2021-07-21 03:51:47 +02:00
Jose Alamos
4692e9e376
net/gnrc_lorawan: fix dependency resolution 2021-07-21 03:41:33 +02:00
Martine Lenders
a0b9eb064c
gnrc_dhcpv6_client_simple_pd: fix old doc and names 2021-07-20 14:42:07 +02:00
Leandro Lanzieri
9ca9efd15b
Merge pull request #16640 from jia200x/pr/revert/rx_symbol
net/lorawan: Revert #16604 and fix NETOPT_RX_SYMBOL_TIMEOUT documentation
2021-07-14 16:42:38 +02:00
Martine Lenders
5c3c1b6a5f
gnrc_sock: imply end-point netif only if unset 2021-07-14 10:29:09 +02:00
Jose Alamos
f7dd532dd3
Revert "net/gnrc_lorawan: use uint8_t for NETOPT_RX_SYMBOL_TIMEOUT"
This reverts commit e791a86971.
2021-07-13 21:14:03 +02:00
Simon Brummer
873d1fe378 gnrc_tcp: align with sock_tcp 2021-07-13 20:32:14 +02:00
Jose Alamos
5e3f7e35f1
gnrc_netif/auto_init_*: avoid explicit cast to netdev 2021-07-09 11:35:21 +02:00
Jose Alamos
d33008483e
gnrc_netif_ieee802154: avoid explicit cast to netdev 2021-07-09 11:35:19 +02:00
Jose Alamos
fef46029be
link_layer/lwmac: avoid explicit cast to netdev 2021-07-09 11:35:18 +02:00
Jose Alamos
5de141227b
link_layer/gomach: avoid explicit cast to netdev 2021-07-09 11:35:18 +02:00
Francisco
79ee4fd489
Merge pull request #16459 from brummer-simon/gnrc_tcp-rewrite_passive_open
gnrc_tcp: rewrite passive open
2021-07-08 12:08:52 +02:00
Simon Brummer
88a0273434 gnrc_tcp: add listen/accept 2021-07-08 09:40:02 +02:00
José Alamos
ed1692033f
Merge pull request #16617 from jia200x/pr/gnrc_lorawan_fix_release
gnrc_lorawan: fix gnrc_pktbuf_release_error (introduced by #16080)
2021-07-07 10:15:33 +02:00
Jose Alamos
13274da74a
gnrc_lorawan: fix gnrc_pktbuf_release_error 2021-07-06 14:14:27 +02:00
Francisco
daeac91aea
Merge pull request #16604 from jia200x/pr/lora/fix_rx_timeout_size
netdev/lora: fix size of NETOPT_RX_SYMBOL_TIMEOUT
2021-07-06 12:15:00 +02:00
Jose Alamos
e791a86971
net/gnrc_lorawan: use uint8_t for NETOPT_RX_SYMBOL_TIMEOUT 2021-07-01 11:59:39 +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
Kevin "Tristate Tom" Weiss
d9973d4bf8
Merge pull request #16586 from jia200x/pr/fix_gnrc_lorawan_psdu_null
gnrc_lorawan: fix undefined state when PSDU is NULL
2021-06-25 13:42:39 +02:00
Kevin "Tristate Tom" Weiss
05b61e84ae
Merge pull request #16584 from jia200x/pr/fix_gnrc_lorawan_memory_leak
gnrc_netif/lorawan: drop netif header on send
2021-06-25 10:25:01 +02:00
Jose Alamos
a90e5e6fc4
gnrc_lorawan: update gnrc_lorawan_radio_rx_done function 2021-06-24 15:56:23 +02:00
Jose Alamos
71ddd3bd61
gnrc_lorawan: fix undefined state when PSDU is NULL 2021-06-24 15:51:04 +02:00
Jose Alamos
5808a16f23
gnrc_netif/lorawan: drop netif header on send 2021-06-24 15:21:05 +02:00
Martine Lenders
270ea83c0f
Merge pull request #16531 from benpicco/drivers/slipdev-l2
drivers/slipdev: report NETOPT_ADDRESS to simulate l2 address
2021-06-22 20:15:31 +02:00
Martine Lenders
23fef51cae
Merge pull request #16569 from benpicco/gnrc_ipv6_nib-all_ifs
gnrc_ipv6_nib: consider all local interfaces when looking for address
2021-06-22 16:01:52 +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
benpicco
cf688774e5
Merge pull request #16527 from benpicco/gnrc_netif_create-race
sys/net/gnrc/netif: make gnrc_netif_create() blocking to avoid race condition
2021-06-21 15:48:18 +02:00
Benjamin Valentin
d7c377f400 sys/net/gnrc/netif: make gnrc_netif_create() blocking
Make gnrc_netif_create() block until the interface is created and
registered.
This avoids a race condition where after calling gnrc_netif_init_devs()
not all interfaces are available yet when iterating through the list
of interfaces with gnrc_netif_iter().
2021-06-21 14:04:06 +02:00
Benjamin Valentin
c1eead925d drivers/slipdev: register with netdev 2021-06-21 12:42:03 +02:00
Benjamin Valentin
9fbab8f0f8 drivers/slipdev: report NETOPT_ADDRESS to simulate l2 address
A lot of things break if `GNRC_NETIF_FLAGS_HAS_L2ADDR` is not set.
In order to handle router advertisements and auto-configureation,
generate a faux l2 address based on the netdev ID.
2021-06-21 12:42:03 +02:00
Benjamin Valentin
68afd9d900 gnrc_ndp: add route information option 2021-06-18 00:13:08 +02:00
Benjamin Valentin
f5d5ff3794 gnrc/nib: honor CONFIG_GNRC_IPV6_NIB_ADV_ROUTER option
This option was unused before, honor it to make it possible to start
with router advertisements disabled and enable them at run time.

The defaults remain unchanged by that.
2021-06-17 18:45:38 +02:00
Benjamin Valentin
e74ba8f92d gnrc/nib: don't define _set_rtr_adv() twice
It's already defined in `_nib-router.h`, defining it to no-op
in `_nib-6lr.h` makes it impossible to run-time enable advertisements
on non 6lo nodes.
2021-06-17 18:45:38 +02:00
Leandro Lanzieri
ae81b808a1
Merge pull request #16080 from jia200x/pr/gnrc_lorawan_netif
gnrc_lorawan: encode LoRaWAN port in netif header
2021-06-17 11:30:09 +02:00
Francisco
a20790b0ef
Merge pull request #16530 from benpicco/gnrc_dhcpv6_client_6lbr-generic
gnrc_dhcpv6_client_6lbr: choose downstream if as !upstream
2021-06-17 08:37:30 +02:00
Francisco
629cecb625
Merge pull request #14558 from jia200x/pr/gnrc_lorawan_rtt_support
gnrc_lorawan: add support for RTT (ztimer)
2021-06-17 08:34:59 +02:00
Hauke Petersen
7c6b72d3b4 net/gnrc/rpl: use ztimer_msec if available 2021-06-16 20:39:32 +02:00
Jose Alamos
dca0b366ac
gnrc_lorawan: drop frame if port exceeds max app port 2021-06-16 14:50:48 +02:00
Jose Alamos
7343c1c503
gnrc_netif_lorawan: add netif hdr support 2021-06-16 13:18:04 +02:00
Jose Alamos
dfacff9568
gnrc_lorawan: add support for RTT 2021-06-16 13:13:37 +02:00
Jose Alamos
2f680eaf01
gnrc_lorawan: remove xtimer and msg dependency
This commit removes the dependency to xtimer and RIOT messages.
This step is required to use other sources of events (e.g event_queue)
and timers (RTT)
2021-06-16 13:03:28 +02:00
Benjamin Valentin
056dcd8ae1 gnrc_dhcpv6_client_6lbr: choose downstream if as !upstream 2021-06-15 15:35:10 +02:00
Martine Lenders
35e40ce245
Merge pull request #16548 from benpicco/gnrc_ipv6_nib-nce_switch
gnrc_ipv6_nib: get node from proper interface
2021-06-15 12:00:42 +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
2467c84634 drivers/ethos: enable multiple instances 2021-06-11 12:31:37 +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
Jnae
b287d120ff at86rf215: timestamp counter for rx frames 2021-05-12 15:27:36 +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
Leandro Lanzieri
d36628d37e
Merge pull request #16183 from Ollrogge/aes_pr
sys/crypto: Enable support for AES-192, AES-256
2021-05-05 09:19:12 +02:00
Ollrogge
427d2bd06e sys/crypto: Enable support for AES-192, AES-256 2021-05-03 17:34:49 +02:00