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

2184 Commits

Author SHA1 Message Date
Karl Fessel
0a3dd441ce net/gnrc_sock: do not include xtimer.h without xtimer module 2021-12-14 22:53:01 +01:00
benpicco
cfaa167469
Merge pull request #16598 from benpicco/sys/shell/udp
examples/gnrc_networking: move udp command to shell commands
2021-12-13 15:03:18 +01:00
Gunar Schorcht
8c044c0163 gnrc/ipv6_ext_opt: fix compilation with NDEBUG 2021-12-09 16:44:19 +01:00
Benjamin Valentin
4b9bdc61b2 gnrc_netif/lorawan: add ; after DEBUG() 2021-12-09 10:14:07 +01:00
Benjamin Valentin
cbc8251874 gnrc_tcp: add ; after DEBUG() 2021-12-08 21:09:31 +01:00
José Alamos
ce8cda2fd8
Merge pull request #16932 from benpicco/socket_zep-hal
socket_zep: port to radio HAL
2021-12-07 18:24:33 +01:00
benpicco
f9f95534f6
Merge pull request #17333 from benpicco/gnrc/rpl-auto_init
gnrc/rpl: auto-init RPL if there is only a single interface
2021-12-04 11:07:01 +01:00
Benjamin Valentin
11672ac5e4 gnrc/rpl: auto-init RPL if there is only a single interface 2021-12-03 15:34:17 +01:00
Marian Buschsieweke
b7269c39e8
sys/net/gnrc_pktbuf_static: fix compilation with -Wcast-align
Comparing the pointers as `uintptr_t` won't hurt but makes the compiler
happy.
2021-12-03 10:12:34 +01:00
Marian Buschsieweke
b1114b0674
sys/net/gnrc/netif: use container_of()
Using `container_of()` to translate from `netif_t *` to the containing
`gnrc_netif_t *` adds a bit of plausibility: It will fail when `gnrc_netif_t`
stops to contain `netif_t` as member. Additionally, this silences false
positives of -Wcast-align
2021-12-03 10:12:33 +01:00
Marian Buschsieweke
6907bdf140
sys/net/gnrc: make cppcheck happy 2021-11-30 11:20:20 +01:00
Marian Buschsieweke
50be359a96
sys/net/gnrc: fix compilation with -Wcast-align
Also ensure that the alignment requirement is indeed matched.
2021-11-30 11:20:17 +01:00
Benjamin Valentin
fa2d9bde56 socket_zep: port to radio HAL 2021-11-18 11:51:14 +01:00
Martine Lenders
d4f7f9182b
gnrc_pktbuf_cmd: add od dependency with gnrc_pktbuf_static 2021-11-17 15:52:44 +01:00
benpicco
47029055a6
Merge pull request #8954 from zhuoshuguo/gnrc_gomach/adapt_duty_recode_para_name
gnrc_gomach: adapt duty recording parameters' namings.
2021-11-03 12:56:39 +01:00
Karl Fessel
c9f4d11c52
Merge pull request #16966 from yarrick/net_v6
sys/net: Add ipv4/ipv6 pseudomodules

to ease code unification
2021-10-20 11:58:26 +02:00
Benjamin Valentin
9d5808d756 gnrc/ipv6_auto_subnets: set RIO priority to ZERO
This is required for Linux to accept the RIO

with this patch:

2001:db8:8000::/33 via fe80::d0e7:ffff:fe46:6b52 dev tap0 proto ra metric 1024 expires 86338sec pref medium
2001:db8::/32 dev tap0 proto kernel metric 256 pref medium

before:

2001:db8::/32 dev tap0 proto kernel metric 256 pref medium
2021-10-15 15:57:59 +02:00
Benjamin Valentin
0e7b8d09d5 gnrc_ipv6_nib: fix setting RIO flags
We have to use NDP_OPT_RI_FLAGS_MASK, not NDP_OPT_PI_FLAGS_MASK.
This fixes flags always being 0.
2021-10-15 15:49:13 +02:00
benpicco
f8c8abf75d
Merge branch 'master' into gnrc_gomach/adapt_duty_recode_para_name 2021-10-13 17:36:21 +02:00
Erik Ekman
3df56d576f sys/net: Add ipv6 pseudomodule
Enabled when GNRC, lwIP or OpenWSN uses IPv6
2021-10-08 10:27:22 +02: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
ff42d6749b
sys/net/gnrc/dhcpv6: Set stateful configuration mode 2021-10-04 21:41:50 +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
benpicco
a39c0e1010
Merge pull request #16750 from benpicco/gnrc_ipv6_auto_subnets
gnrc/ipv6_auto_subnets: relax topology requirements
2021-09-28 19:07:21 +02:00
Benjamin Valentin
6742fb8076 gnrc/ipv6_auto_subnets: relax topology requirements 2021-09-28 16:57:10 +02:00
benpicco
ea80df1780
Merge pull request #16824 from benpicco/gnrc_netif_ipv6_wait_for_prefix
gnrc/netif: add gnrc_netif_ipv6_wait_for_global_address()
2021-09-17 14:32:53 +02:00
Martine Lenders
75c9aaceb4
Merge pull request #15946 from jia200x/pr/gnrc_lorawan_redundancy
net/gnrc_lorawan: implement unconfirmed uplink redundancy
2021-09-17 13:38:10 +02:00
Benjamin Valentin
4bd53e70fa gnrc/netif: add gnrc_netif_ipv6_wait_for_global_address()
This adds a function to wait until a global address becomes available.
2021-09-17 13:00:14 +02:00
benpicco
abeb9c871d
Merge pull request #16745 from jia200x/pr/gnrc_netif_pktq/fix_deschedule
gnrc_netif_pktq: schedule immediately if timer us is equal to zero
2021-09-15 00:16:42 +02:00
Jean Pierre Dudey
cd728e08c6
Merge pull request #16764 from brummer-simon/gnrc_tcp-experimental_dynamic_MSL
gnrc_tcp: experimental feature "dynamic msl"
2021-09-13 10:36:54 +02:00
Karl Fessel
be28c537b3 gnrc/sock: recv avoid spinning xtimer 2021-09-09 22:41:39 +02:00
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
benpicco
2b6454a2d7
Merge pull request #16106 from fabian18/ieee802154_security_small_bugfix_and_stricter_names
net/ieee802154_security: small bugfix and stricter names
2021-05-03 11:29:43 +02:00
Benjamin Valentin
d611a264fd drivers/cc2420: register with netdev 2021-04-27 17:37:52 +02:00
Fabian Hüßler
346f92f663 sys/net/link_layer/ieee802154: stricter names for security types
stricter prefixing of security related types and constants with
"ieee802154_sec_"
2021-04-27 08:54:19 +02:00
Marian Buschsieweke
19d92cb455
sys/net/gnrc/Makefile.dep: split out of sys/Makefile.dep 2021-04-23 20:29:38 +02:00
Hauke Petersen
75dbf65256 net/gnrc/sixlowpan/ctx: use ztimer if available 2021-04-16 11:38:54 +02:00
Martine Lenders
e3f398e3d3
Merge pull request #16279 from brummer-simon/gnrc_tcp-fix_data_race_on_status
gnrc_tcp: fix data race on fsm status
2021-04-06 15:53:08 +02:00
Simon Brummer
247f4d52bc gnrc_tcp: fix warnings from static-tests 2021-04-06 14:13:34 +02:00
Simon Brummer
458cfb9994 gnrc_tcp: fix data race on fsm status 2021-04-04 17:47:53 +02:00
efdaf9225f
sys/net/gnrc: disable sx126x auto init with loramac 2021-03-30 19:03:34 +02:00
bede0cd98c
sys/net/auto_init: add sx126x auto_init logic 2021-03-30 16:12:40 +02:00
Marian Buschsieweke
bcc899f2db
Merge pull request #16100 from maribu/netopt_tx_end_irq
sys/net/netopt: make NETOPT_TX_END_IRQ and friends read-only
2021-03-22 21:17:45 +01:00
José Alamos
c5d620add8
Merge pull request #16206 from akshaim/lorawan-netif_dr_fix
gnrc_netif_lorawan: Validate DR
2021-03-22 11:03:30 +01:00
Marian Buschsieweke
80d56488cc
sys/net/gnrc/netif: update use of NETOPT_TX_END_IRQ and friends
With the API change, it is no longer possible to enable these IRQs at
run time. Instead, query if the needed events are supported (with DEVELHELP).
2021-03-22 08:15:52 +01:00
Marian Buschsieweke
ff08139263
sys/net/gnrc/lwmac: update use of NETOPT_TX_END_IRQ and friends
With the API change, it is no longer possible to enable these IRQs at
run time. Instead, query if those are supported (with DEVELHELP).
2021-03-22 08:14:28 +01:00
Marian Buschsieweke
94e0ef47c7
sys/net/gnrc/gomach: update use of NETOPT_TX_END_IRQ and friends
With the API change, it is no longer possible to enable these IRQs at
run time. Instead, query if those are supported (with DEVELHELP).
2021-03-22 08:14:27 +01:00
Leandro Lanzieri
99c7ec57cf
Merge pull request #15943 from jia200x/pr/gnrc_lorawan_channel_mask
net/gnrc_lorawan: implement channel mask support
2021-03-19 16:23:13 +01:00
Akshai M
efdefaa7db gnrc_netif_lorawan: Validate DR
Co-authored-by: José Alamos <jialamos@uc.cl>
2021-03-19 12:17:44 +01:00
Jose Alamos
166ee57a5a
net/gnrc_lorawan: implement funcion to set channel mask 2021-03-19 12:15:03 +01:00
Martine Lenders
214fdf007d
Merge pull request #16193 from miri64/gnrc_netif_pktq/feat/usage
gnrc_netif_pktq: add function to check usage
2021-03-18 23:05:27 +01:00
José Alamos
21390849bf
Merge pull request #16188 from aabadie/semtech-loramac_netdev
pkg/semtech-loramac: refactor to use netdev API only
2021-03-18 13:11:32 +01:00
benpicco
8ca676aa6e
Merge pull request #15907 from benpicco/gnrc_netif-register
sys/net/gnrc/netif: only register netif after init was successful
2021-03-16 16:26:06 +01:00
Martine S. Lenders
db8415b5b6 gnrc_netif_pktq: add function to check usage 2021-03-15 15:13:27 +01:00
05224adc96
sys/net/loramac: move lora time on air compute helper in loramac.h 2021-03-14 11:09:39 +01:00
Marian Buschsieweke
9e55c2d9e9
sys/net/gnrc/lwmac: add missing const qualifier
The name of the thread running the MAC can be stored in ROM.
2021-03-02 17:12:01 +01:00
Marian Buschsieweke
f7f739046d
sys/net/gnrc/gomach: add missing const qualifier
The name of the thread running the MAC can be stored in ROM.
2021-03-02 17:10:58 +01:00
Leandro Lanzieri
7faa84ff56
Merge pull request #16110 from jia200x/pr/fix_gnrc_lorawan_pktbuf
gnrc_netif_lorawan: add missing NULL check
2021-03-01 14:46:44 +01:00
Jose Alamos
275630289d
gnrc_netif_lorawan: add missing NULL check 2021-03-01 10:50:57 +01:00
Benjamin Valentin
a82bc64a34 sys/net/gnrc/netif: only register netif after init was successful
If we call `netif_register()` before we can be sure that the interface
can be configured, a 'zombie' interface remains in the list, causing
all kinds of trouble down the line.

Only call `netif_register()` if `init()` was successful.
2021-02-25 21:48:47 +01:00
Marian Buschsieweke
7cfedbfb8a
sys/net/gnrc: fix logic bug in gnrc_tx_sync implementation
In case of an error, the tx sync packet snip could previously have been
released twice. This moves re-attaching the tx sync snip down after the
last `goto error` to avoid this.
2021-02-24 21:22:25 +01:00
Cenk Gündoğan
72337ebb9b
gnrc_rpl: harden validation routine for options 2021-02-23 18:58:03 +01:00
Martine Lenders
de4ee0f934
Merge pull request #15562 from benpicco/socket_zep_register
socket_zep: register with netdev, provide EUI-64 as command line parameter
2021-02-20 20:32:01 +01:00
Martine Lenders
ecba5fa1d0
gnrc_pktbuf_static: expose _align() function to be used for tests 2021-02-19 12:23:22 +01:00
Cenk Gündoğan
896e44cf93
rpl: strenghen length checks for DAO and DAO-ACK 2021-02-18 15:47:53 +01:00
Sören Tempel
178c9eb745 gnrc_pktbuf: use _free function with gnrc_pktbuf_malloc
Otherwise the local mallocs variable is not decremented correctly (if
TEST_SUITES is defined) and the fuzzing setup (i.e. when MODULE_FUZZING
is defined) does not terminate. This regression was introduced in
3970b667aa.
2021-02-12 18:15:40 +01:00
3b7e852773 net/gnrc/netif: hook up netstats_neighbor 2021-02-09 12:27:58 +01:00
Jose Alamos
1af583a746
net/gnrc_lorawan: refactor gnrc_lorawan_pick_channel 2021-02-05 19:07:20 +01:00
Jose Alamos
9bdb58f37d
net/gnrc_lorawan: add channel_mask 2021-02-03 17:55:50 +01:00
Marian Buschsieweke
89c69c5450
sys/net/gnrc/tx_sync: new module
The new `gnrc_tx_sync` module allows users of the GNRC network stack to
synchronize with the actual transmission of outgoing packets. This is directly
integrated into gnrc_sock. Hence, if `gnrc_tx_sync` is used, calls to e.g.
sock_udp_send() will block until the network stack has processed the message.

Use cases:
1. Prevent packet drop when sending at high rate
    - If the application is sending faster than the stack can handle, the
      message queues will overflow and outgoing packets are lost
2. Passing auxiliary data about the transmission back the stack
    - When e.g. the number of required retransmissions, the transmission time
      stamp, etc. should be made available to a user of an UDP sock, a
      synchronization mechanism is needed
3. Simpler error reporting without footguns
    - The current approach of using `core/msg` for passing up error messages is
      difficult to use if other message come in. Currently, gnrc_sock is
      busy-waiting and fetching messages from the message queue until the number
      of expected status reports is received. It will enqueue all
      non-status-report messages again at the end of the queue. This has
      multiple issues:
        - Busy waiting is especially in lower power scenarios with time slotted
          MAC protocols harmful, as the CPU will remain active and consume
          power even though the it could sleep until the TX slot is reached
        - The status reports from the network stack are send to the user thread
          blocking. If the message queue of the user thread is full, the network
          stack would block until the user stack can fetch the messages. If
          another higher priority thread would start sending a message, it
          would busy wait for its status reports to completely come in. Hence,
          the first thread doesn't get CPU time to fetch messages and unblock
          the network stack. As a result, the system would lock up completely.
    - Just adding the error/status code to the gnrc_tx_sync_t would preallocate
      and reserve memory for the error reporting. That way gnrc_sock does not
      need to search through the message queue for status reports and the
      network stack does not need to block for the user thread fetching it.
2021-02-03 15:16:42 +01:00
Akshai M
9600ebf536 net/lorawan : Expose to Kconfig 2021-01-26 16:56:02 +01:00
Akshai M
ed269a7fd7 net/lorawan : Move 'LORAMAC_DEFAULT_MAX_FCNT_GAP' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
b6e4e74a87 net/lorawan : Move 'LORAMAC_DEFAULT_JOIN_DELAY1' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
ed1b86492f net/lorawan : Move 'LORAMAC_DEFAULT_JOIN_PROCEDURE' to 'CONFIG_'
Added symbols 'CONFIG_LORAMAC_DEFAULT_JOIN_PROCEDURE_XXX'
for Kconfig exposure
2021-01-26 16:52:59 +01:00
Akshai M
81dac00d5c net/lorawan : Move 'LORAMAC_DEFAULT_RX2_FREQ' to 'CONFIG_' 2021-01-26 16:52:59 +01:00
Akshai M
d5086ecf60 net/lorawan : Move 'LORAMAC_DEFAULT_RX2_DR' to 'CONFIG_'
Added symbols 'CONFIG_LORAMAC_DEFAULT_RX2_DR_XX' to define
choice in Kconfig
2021-01-26 16:52:58 +01:00
Akshai M
d48cee7c2a net/lorawan : Move 'LORAMAC_DEFAULT_RX1_DELAY' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
e93c362df2 net/lorawan : Move 'LORAMAC_DEFAULT_RETX' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
d2d90fbce5 net/lorawan : Move 'LORAMAC_DEFAULT_TX_MODE' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_TX_MODE' to 'CONFIG_' and added symbols
for Kconfig exposure
2021-01-26 16:52:58 +01:00
Akshai M
aa3b1da0c4 net/lorawan : Move 'LORAMAC_DEFAULT_TX_PORT' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
55f196095d net/lorawan : Move 'LORAMAC_DEFAULT_DR' to 'CONFIG_'
Move 'LORAMAC_DEFAULT_DR' to 'CONFIG_' and enable options for
Kconfig
2021-01-26 16:52:58 +01:00
Akshai M
1befae9022 net/lorawan : Invert 'LORAMAC_DEFAULT_PUBLIC_NETWORK'
Introduced a bool 'LORAMAC_DEFAULT_PRIVATE_NETWORK' to invert
the semantics of 'LORAMAC_DEFAULT_PUBLIC_NETWORK'. Move
'LORAMAC_DEFAULT_PRIVATE_NETWORK' to 'CONFIG_' namespace.
2021-01-26 16:52:58 +01:00
Akshai M
3c5c429541 net/lorawan : Move 'LORAMAC_DEFAULT_NETID' to 'CONFIG_' 2021-01-26 16:52:58 +01:00
Akshai M
9e626f471a net/lorawan : Move 'LORAMAC_DEV_ADDR_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
50e979c600 net/lorawan : Move 'LORAMAC_NWK_SKEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
43d7f28e63 net/lorawan : Move 'LORAMAC_APP_SKEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
d138fa9aad net/lorawan : Move 'LORAMAC_APP_KEY_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
bcb0ed38ff net/lorawan : Move 'LORAMAC_APP_EUI_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
5b4a873de5 net/lorawan : Move 'LORAMAC_DEV_EUI_DEFAULT' to 'CONFIG_' 2021-01-26 16:52:57 +01:00
Akshai M
3ecd304354 net/gnrc_lorawan : String keywords for keys
Swapped hex input for keys with string keywords.
2021-01-26 16:52:57 +01:00
Martine Lenders
8e47621e7c
Merge pull request #15839 from maribu/gnrc_pktbuf_release_error
sys/net/gnrc_pktbuf: deduplicate code
2021-01-26 15:23:50 +01:00
Marian Buschsieweke
3970b667aa
sys/net/gnrc_pktbuf: deduplicate code
Implement gnrc_pktbuf_release_error() in gnrc_pktbuf once, rather than providing
two implementations in gnrc_pktbuf_static and gnrc_pktbuf_malloc
2021-01-26 10:50:19 +01:00
Benjamin Valentin
d8918c24fa socket_zep: register with netdev 2021-01-25 22:59:01 +01:00
benpicco
83201ddb00
Merge pull request #15760 from maribu/sock-aux-rssi
sys/net/sock: add sock_aux_rssi
2021-01-25 18:51:11 +01:00
Fabian Hüßler
7d618afa17 nrf24l01p_ng: make use of netdev_register() 2021-01-24 20:49:39 +01:00
fabian18
f7a77ebb04 drivers/nrf24l01p_ng: netdev driver for nrf24l01+
The driver uses the netdev interface. Due to the limited
capabilities of the transceiver (32 byte FIFO and no source address in the layer2 frame),
it relies on 6LowPAN compression and adds the source address to the frame for that.
2021-01-24 20:49:39 +01:00
Marian Buschsieweke
c0765d9e07
sys/net/grnc: implement sock_aux_rssi 2021-01-13 13:29:13 +01:00
Marian Buschsieweke
8f24cc840c
sys/net/gnrc/sock: cleanup & fix aux handling
The logic used to check whether the RX timestamp was provided in the GNRC
implementation of `sock_ip_recv_buf_aux()` is incorrect: It still uses in-band
signalling via a timestamp of zero, but a dedicated flag was added to allow for
timestamps of zero.

Additionally, it is not necessary to check if a bit is set only to clear it -
clearing it unconditionally is faster and smaller.
2021-01-12 21:31:24 +01:00
Martine Lenders
640ff4f5d8
Merge pull request #15609 from maribu/ethernet-rx-timestamp
sys/net/gnrc/netif/ethernet: Support RX timestamp
2021-01-07 19:53:52 +01:00