8942 Commits

Author SHA1 Message Date
Jan Romann
234a71870a
sys/net/dhcpv6: Add IA_NA implementation 2021-08-11 19:15:35 +02:00
Martine Lenders
057aba8f61
Merge pull request #16606 from miri64/dhcpv6_relay/feat/init
dhcpv6_relay: initial import of a lightweight DHCPv6 relay agent
2021-08-11 17:16:06 +02:00
Martine Lenders
67b4acdc95
Merge pull request #15622 from benpicco/gnrc_icmpv6_echo-corruption
sys/shell/commands/gnrc_icmpv6_echo: test for ICMPv6 reply corruption
2021-08-11 15:23:22 +02:00
Martine Lenders
2d7c613948
tests/gnrc_dhcpv6_relay: initial import 2021-08-11 14:30:37 +02:00
Martine Lenders
4afc65688f
dhcpv6_relay: initial import of a lightweight DHCPv6 relay agent 2021-08-11 13:19:06 +02:00
Martine Lenders
6da2f0fab3
Merge pull request #16669 from miri64/sock_dns/enh/factor-out-msg-parsing
sock_dns: factor out message parsing and composition
2021-08-11 12:43:26 +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
Benjamin Valentin
3b40ca2b26 shell/gnrc_icmpv6_echo: test for ICMPv6 echo reply corruption
The Linux ping utility has the nice feature that fills the ICMPv6 echo
request payload with a pattern `payload_index & 0xFF`.
Then the ICMPv6 echo response payload is checked to verify that the pattern
is still intact.

This way corrupted messages can be detected.
In the past that revealed some 6lo-fragmentation bugs in Linux when
corrupted replies arrived.

This feature is also useful for RIOT, so implement it in RIOTs `ping`
command.
2021-08-11 12:04:22 +02:00
Martine Lenders
7920ab2b95
dns_msg: make parsing input buffer const 2021-08-11 11:55:29 +02:00
Martine Lenders
e8cbc6da85
dns: move message parsing and composition to own module 2021-08-11 11:55:29 +02:00
benpicco
7991e71384
Merge pull request #16721 from benpicco/sock/tcp-fix_doc
sock: tcp: fix Echo Server example
2021-08-10 14:41:42 +02:00
Benjamin Valentin
091e013ff0 sock: tcp: fix Echo Server example
The example has two errors:

 - `sock_tcp_accept()` expects a timeout parameter
 - `sock_tcp_stop_listen()` expects a pointer

with these fixed, the example actually compiles.
2021-08-10 13:45:56 +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
Martine Lenders
6e0c8db99f
Merge pull request #16706 from miri64/gnrc_ipv6_nib/enh/offset-time-functions
gnrc_ipv6_nib: provide functions to get offset of public timestamps
2021-08-08 02:28:12 +02:00
Martine Lenders
c33e40cce1
gnrc_ipv6_nib: provide functions to get offset of public timestamps 2021-08-07 14:04:44 +02:00
Francisco Molina
9195f772ad sys/net/nanocoap: block_finish returns if more are expected 2021-08-06 09:29:03 +02:00
benpicco
81df6d6fcb
Merge pull request #16712 from miri64/gcoap+nanocoap/enh/buffer-path
nanocoap & gcoap: allow path to be non-`\0`-terminated.
2021-08-05 17:25:41 +02:00
Martine Lenders
17b9c5adbb
Merge pull request #16707 from benpicco/sys/uri_parser-constify
uri_parser: constify result
2021-08-05 15:55:45 +02:00
Martine Lenders
5d59065b09
gcoap: provide buffer version of gcoap_req_init()
This simplifies the usage of `gcoap` with modules such as `uri_parser`
greatly.
2021-08-05 13:31:07 +02:00
Martine Lenders
adce90343c
nanocoap: provide buffer version of coap_opt_add_uri_path()
This simplifies the usage of `nanocoap` with modules such as
`uri_parser` greatly.
2021-08-05 11:25:13 +02:00
Martine Lenders
1b0152bd73
Merge pull request #16709 from leandrolanzieri/pr/net/netif_get_by_name_buf
net/netif: add function to get interface by name from a buffer
2021-08-04 19:37:55 +02:00
Leandro Lanzieri
d8cf157b26
sys/net/netif: add netif_get_by_name_buffer function 2021-08-04 18:12:56 +02:00
José Alamos
39d27c2f7c
Merge pull request #16533 from jia200x/pr/submac_fixes
ieee802154/submac: fix initialization code
2021-08-04 16:53:58 +02:00
Peter Kietzmann
e1a8280e2b
Merge pull request #16689 from Ollrogge/usb_hid_pr2
usbus/hid_io: add missing header file, add RX callback function
2021-08-04 15:56:33 +02:00
Ollrogge
2c2eb88c0e usbus/hid: uncrustify files 2021-08-04 14:54:33 +02:00
Ollrogge
834ac3f5a5 usbus/hid_io: add missing header file, add RX callback function 2021-08-04 14:54:33 +02:00
Benjamin Valentin
b068d9245d uri_parser: constify result
`uri_parser_process()` takes a `const char *` as input parameter but
the result is a struct of `char *` to the original string.

This may lead a user to modifying the strings in `uri_parser_result_t`
which will cause a crash if the original string resides in read-only
memory (and violates the no-modifications promise of the const parameter
in `uri_parser_process()`).

To fix this, make the resulting strings `const` as well, so nobody dares
to touch them in a writing way.
2021-08-04 14:01:28 +02:00
Martine Lenders
af03ba4aa8
uri_parser: provide function to split query 2021-08-04 12:47:28 +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
Martine Lenders
4b7ef70e66
gcoap: fix socket type naming
The `coap_socket_t` and `coap_socket_type_t` types are used by gCoAP
only and the `coap_` prefix is usually used to namespace the `nanocoap`
module's API. This makes it confusing to locate the types in question.

Signed-off-by: Martine Lenders <m.lenders@fu-berlin.de>
2021-07-27 22:37:04 +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
Martine Lenders
e3b52ff08d
Merge pull request #16679 from kfessel/p-dhcp-mrd
dhcpv6_client: mrd calculation fixed
2021-07-23 19:02:38 +02:00
Martine Lenders
0f1e0b6798
Merge pull request #16676 from miri64/nanocoap/enh/opt_accept
nanocoap: provide Accept option convenience function
2021-07-23 18:21:22 +02:00
Karl Fessel
238c759899 dhcpv6_client: mrd calculation fixed for renew and rebind
mrd calculation for dhcp-renew was wrong this fixes it
and the logic for dhcp rebind mrd handling
    (try rebind if ther is mrd)
see issue  #16677
2021-07-23 17:54:55 +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
Martine Lenders
fc1bd005de
Merge pull request #16673 from miri64/netutils/fix/netif_get_by_name
netutils: get interface by name rather than ID
2021-07-23 15:51:15 +02:00
Martine Lenders
3cff67ce13
nanocoap: provide Accept option convenience function 2021-07-23 15:25:41 +02:00
Martine Lenders
81c927f80a
netutils: get interface by name rather than ID
The zone ID part in a host part is the name of the network interface
(which by chance is the string representation of the ID with GNRC), not
the ID.
2021-07-22 17:26:47 +02:00