1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 06:23:53 +01:00

5012 Commits

Author SHA1 Message Date
Benjamin Valentin
ba23c77a4d gnrc/ipv6/nib: add option to disable router solicitations 2025-04-25 00:23:00 +02:00
Marian Buschsieweke
4ce7ab2133
tree-wide: fix documentation issues
This should fix compilation with -Wdocumentation on LLVM.
2025-04-10 13:37:13 +02:00
Marian Buschsieweke
db0be36345
tree-wide: mixed back of documentation fixes
This fixes a number of documentation issues that LLVM/clang would flag
with `-Wdocumentation`.
2025-04-07 15:59:13 +02:00
Marian Buschsieweke
c1aee234ee
Merge pull request #21357 from maribu/tree-wide/dox-fixes
tree wide: various doc fixes
2025-04-05 17:57:43 +00:00
Teufelchen
3fd5c9afd9
Merge pull request #21363 from benpicco/gnrc_sock-fix-create
gnrc_sock/udp: zero-init sock struct on create
2025-04-04 17:41:42 +00:00
Benjamin Valentin
291c064ab5 gnrc_sock/udp: zero-init sock struct on create 2025-04-04 15:53:37 +02:00
Marian Buschsieweke
1ff982a664
tree wide: various doc fixes
This fixes a batch of incorrect Doxygen comments that building with
LLVM/clang and `-Wdocumentation` uncovered.
2025-04-04 11:44:53 +02:00
Benjamin Valentin
6cb40183a0 nanocoap_sock: implement observe client 2025-04-03 13:23:07 +02:00
fabian18
9e55e5611f
Merge pull request #21270 from fabian18/pr/nanocoap_static_buffers
nanocoap: avoid non `static` buffers of configurable size
2025-03-31 22:46:38 +00:00
Fabian Hüßler
49243a5ef2 nanocoap/sock: move request header buffer to socket 2025-03-31 19:12:19 +02:00
Fabian Hüßler
7e4afa4436 nanocoap: supply response buffer for nanocoap_link_format_get 2025-03-31 19:12:19 +02:00
Marian Buschsieweke
5869c2c271
Merge pull request #21180 from derMihai/mir/sock_udp/cancel_async_mainline
net_sock_async_event: cancel async event on sock_*_close()
2025-03-20 06:10:26 +00:00
Marian Buschsieweke
685acb9a35
Merge pull request #21293 from MrKevinWeiss/pr/fixsplling
Fix spelling found by codespell
2025-03-13 13:07:53 +00:00
MrKevinWeiss
f770f72202
treewide: Fix spelling mistakes 2025-03-13 13:59:07 +01:00
Benjamin Valentin
7a5cd93bf7 sys/net/telnet: align API with stdio API 2025-03-13 09:58:48 +01:00
Marian Buschsieweke
da0218323b
sys/net/nanocoap: improve coap_build_reply
- The responsibility for handling matching CoAP No-Response Options
  has been split:
    - `coap_build_reply()` only needs to report this and return
      `-ECANCLED`
    - `coap_handle_req()` does generate the empty ACK is needed.
  ==> As a result, writing CoAP request handlers correctly becomes a
      lost easier. Correct error handling to be present is now
      sufficient for correct handling of No-Response options.
  ==> This change is backward compatible with existing code.
- The API doc has been cleaned up and straightened

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
2025-03-12 08:56:20 +01:00
Marian Buschsieweke
be27eafc4f
sys/net/nanocoap: fix API inconsistency
For in-band signalling that a content format is not valid / present,
the magic number `COAP_FORMAT_NONE` was introduced and the type
`uint16_t` was used. Some APIs however used different in-band signalling
values and types:

- coap_reply_simple(): No signal available, `unsigned int`
- coap_build_reply_header(): negative values, `int`
    (Using `int` would prevent using larger content format numbers on
    8-bit and 16-bit archs, where `int` and `int16_t` have the same
    range.)

This changes the behavior to consistently use `COAP_FORMAT_NONE` as
"no content format" signal and `uint16_t` as type.
2025-02-24 12:05:35 +01:00
benpicco
f67055c3b2
Merge pull request #19668 from benpicco/ieee802154_symbol_time_on_demand
ieee802154/submac: calculate symbol time on demand
2025-02-20 12:04:10 +00:00
Benjamin Valentin
73e45dd6ca ieee802154/submac: implement MR-FSK timings 2025-02-20 12:00:00 +01:00
Marian Buschsieweke
546b87a2e8
sys/net/nanocoap: fix dereferencing a null pointer
`coap_request_ctx_get_local()` may return `NULL` depending on module
selection. If it does, we cannot pass `NULL` to
`sock_udp_ep_is_multicast()`.

This changes the code assume the request is not received via multicast
when module `sock_aux_local` is not in use.

When the user binds the CoAP server to multiple endpoints (as needed
for using multicast), it is required that `sock_aux_local` is in use
anyway, as otherwise the server may not respond using the endpoint it
received the request on. (That in turn would render the client unable to
correlate the response to the request.)
2025-02-19 11:05:46 +01:00
Mikolai Gütschow
ca5fe72bf8
treewide: fix example references in docs
adapt to folder structure from #21135
2025-02-14 19:14:22 +01:00
Mihai Renea
0f25aecceb sock/async: cancel sock async events when closing the socket 2025-02-12 16:41:59 +01:00
Benjamin Valentin
a886adf611 ieee802154/submac: implement MR-OFDM timings 2025-02-10 14:56:14 +01:00
mguetschow
57993ef263
Merge pull request #21159 from Vjorald/cord-doc
sys/cord/doc.txt: Update additional references to RFC 9176
2025-01-29 14:57:08 +00:00
Vjorald
d2658e21d0 sys/cord/doc: Update additional references to RFC 9176 2025-01-29 15:14:03 +01:00
Marian Buschsieweke
9fa2661621
sys/net/nanocoap: align request handling with spec
- Do not reply with a reset message to a reset or an ACK message
- Reply with a reset message when not able to process a CON/NON message
  (not even a suitable error reply)
2025-01-24 22:42:47 +01:00
Marian Buschsieweke
feeb68470f
sys/net/nanocoap: implement observe
This adds the new `nanocoap_server_observe` module that implements the
server side of the CoAP Observe option. It does require cooperation
from the resource handler to work, though.

Co-Authored-By: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: benpicco <benpicco@googlemail.com>
2025-01-23 14:25:39 +01:00
Marian Buschsieweke
1c7ba9e055
sys/net/nanocoap: improve separate response handling
This allows sending a separate response with CoAP Options and adds a
helper to detect duplicate requests, so that resource handlers can
repeat their empty ACK on duplicates.
2025-01-23 14:25:02 +01:00
Joshua DeWeese
9b2782d020
Merge pull request #21126 from maribu/sys/net/gnrc_sock/drop-timer-workaround
Revert "sock/udp: work around gnrc_sock_recv() returning early timeout"
2025-01-20 11:58:08 +00:00
Kevin "Tristate Tom" Weiss
8302223ba1
Merge pull request #21137 from benpicco/gnrc_netif_ipv6_wait_for_global_address-fix_timeout
gnrc_netif: fix timeout in `gnrc_netif_ipv6_wait_for_global_address()`
2025-01-20 10:03:17 +00:00
benpicco
cefa182d2b
Merge pull request #21080 from benpicco/gnrc_ipv6_auto_subnets_eui
gnrc/ipv6_auto_subnets: add option to derive subnet prefix from EUI
2025-01-16 17:19:54 +00:00
Benjamin Valentin
a95bd508a5 gnrc_netif: fix timeout in gnrc_netif_ipv6_wait_for_global_address() 2025-01-16 16:07:40 +01:00
benpicco
6547f144d9
Merge pull request #21125 from maribu/sys/net/gcoap/fix-api-abuse
sys/net/gcoap: get rid of API abuse
2025-01-13 18:43:16 +00:00
Benjamin Valentin
698d414733 gnrc/ipv6_auto_subnets: add gnrc_ipv6_auto_subnets_eui 2025-01-13 15:52:25 +01:00
Marian Buschsieweke
590ca5d7ff
sys/net/gcoap: get rid of API abuse
Calling `coap_get_token()` and `coap_get_token_length()` on an
(mostly) uninitialized `coap_pkt_t` did work so far due to
implementation details matching the expectations, but this is not
backed up by any API contract.

This fixes the API abuse by introducing and using a new API that does
read a token and token length from a CoAP over UDP packet out of a
buffer. This now provides the behavior expected by the caller and
commits to it via API contract.

Co-authored-by: mguetschow <mikolai.guetschow@tu-dresden.de>
Co-authored-by: benpicco <benpicco@googlemail.com>
2025-01-10 21:31:08 +01:00
Marian Buschsieweke
c562b6cbe9
Revert "sock/udp: work around gnrc_sock_recv() returning early timeout"
This reverts commit e3d00682bcad2e0f26ee15b1c73d5da022b18786, which
added a work around for two bugs:

- ztimer triggering too early (fixed in
  https://github.com/RIOT-OS/RIOT/pull/20924)
- gnrc_sock_recv() returning when an old "timeout" message is still
  in the message queue (fixed in
  https://github.com/RIOT-OS/RIOT/pull/21113)

With those bugs fixed, the work around should not longer be needed.
2025-01-10 21:25:34 +01:00
Benjamin Valentin
64c10f33a1 gnrc/ipv6_auto_subnets: unicast RA if upstream is 6lo 2025-01-10 18:56:42 +01:00
Marian Buschsieweke
ade999ab01
Merge pull request #21113 from maribu/sys/ztimer/ztimer_mbox_get_timeout
sys/ztimer: implement ztimer_mbox_get_timeout() and use it to fix race in gnrc_sock_recv()
2025-01-10 15:37:46 +00:00
Marian Buschsieweke
56ea5cd3d0
sys/net/gnrc_sock: fix race in gnrc_sock_recv()
Implement the timeout using ztimer_mbox_get_timeout() to fix a race
condition.
2025-01-10 16:19:00 +01:00
Benjamin Valentin
5869554d7a sys/net/nanocoap: flush stale responses before sending request 2025-01-06 10:40:30 +01:00
Marian Buschsieweke
ab116ec71c
sys/net/nanocoap: Fix sending bogus separate responses
When module `nanocoap_server_separate` is not used, the functions to
send separate responses are still provided, just in a broken version:
They will send the separate replies from a different endpoint than the
request was received at (even on machines with only one IP address, as
also the source port is randomized).

This changes the behavior to only provide the functions for separate
response when the do work, so that others will detect an invalid
configuration at compile time rather than at run time.

The documentation is duly updated.
2024-12-13 08:40:43 +01:00
Marian Buschsieweke
c7af4b25a6
sys/net/nanocoap: fix invalid RST messages
An RST message has no token, so don't reply with a token when sending
RST.

This also adds unit tests to ensure this this exact bug does not sneak
back in.
2024-12-12 14:28:28 +01:00
Marian Buschsieweke
7a738d0e0b
sys/net/nanocoap: fix buffer overflow in separate response handling
When RFC 8974 support (module `nanocoap_token_ext`) is in use, the
request token may be longer than the buffer in the separate response
context is large. This adds a check to not overflow the buffer.

Sadly, this is an API change: Preparing the separate response context
can actually fail, so we need to report this with a return value.

The example application has been adapted to only proceed if the separate
reply context could have been prepared, and rather directly emit a
reset message if the token exceeds the static buffer.

Co-authored-by: benpicco <benpicco@googlemail.com>
2024-12-12 14:28:28 +01:00
Benjamin Valentin
2a6b8a3fed gnrc_netif: use different error messages for can't queue packet 2024-11-22 19:50:20 +01:00
benpicco
2bce94a7c7
Merge pull request #21012 from benpicco/netdev_new_api-relax
netdev_new_api: allow `.send()` to return > 0 to signal synchronos send
2024-11-20 22:28:26 +00:00
Benjamin Valentin
a86411b81e drivers/netdev: allow .send() to return > 0 to signal synchronos send 2024-11-20 16:40:36 +01:00
Benjamin Valentin
83f5b261a8 sys/net/gnrc_pktbuf: detect use after free if canary is in metadata 2024-11-19 15:23:03 +01:00
Benjamin Valentin
ea1670ab0f sys/net/gnrc_pktbuf: move CANARY to header file 2024-11-19 15:23:03 +01:00
Benjamin Valentin
278e8f53b7 sys/net/gnrc_pktbuf: fail assertion if illegal memory was freed 2024-11-19 15:23:03 +01:00
benpicco
aee4c1ef9c
Merge pull request #20984 from benpicco/gnrc_pktsnip_t-shrink
sys/net/gnrc/pkt: use `uint8_t` for user count
2024-11-17 17:29:16 +00:00