1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-14 17:13:50 +01:00

21 Commits

Author SHA1 Message Date
Marian Buschsieweke
5387c20dde
sys/net/nanocoap: Make APIs (more) transport agnostic
This changes the API of nanocoap with the goal to reduce the expose of
UDP specifics in the API. The plan is to eventually support transports
such as CoAP over TCP and CoAP over WebSocket directly in nanocoap
while sharing most of the code, as e.g. the CoAP Option processing
remains identical. Specifically, the plan is to unlock a transport with
modules and introduce overhead for dispatching to specific transport
only when multiple transports are actually in use.

Support for OSCORE directly in nanocoap is probably not sensible, as
the serialization is very much unlike the other transports. A unified
CoAP API for multiple transports including OSCORE is probably best
implemented on top. But when limited to the boring set of CoAP
transports, we probably can support them well with nanocoap with less
overhead.

Breaking API Changes:
=====================

- `coap_parse()` now returns `ssize_t` instead of `int`
    - This function is not really user facing, so the impact should
      be limited
    - This is useful for stream transports where the buffer may
      contain data of more than one packet. The return value contains
      the number of bytes actually consumed, which will match the
      buffer size for non-stream transports.

API Changes:
============

- `coap_pkt_t` now contains a `uint8_t *buf` pointer instead of a
  `coap_hdr_t *hdr` pointer to the beginning of the buffer
    - This will also work when the buffer is used by non-UDP
      transports
    - A deprecated `coap_udp_hdr_t *hdr` has been crammed into
      an unnamed `union` with `uint8_t *buf`. For architectures
      where pointers have the same memory layout regardless of type
      (e.g. all of the supported ones), this will make `hdr` an
      alias for `buf`.
    - The alias will only be provided if no transport besides UDP is
      used in nanocoap. So existing apps will continue to work, new
      apps that want to support other transports need to move to
      adapt.
- `coap_hdr_t` has been renamed to `coap_udp_hdr_t`
    - A deprecated alias was created for deprecation
- `coap_hdr*()` functions have been deprecated
    - Equivalent `coap_pkt*()` functions have been created that work
      on `coap_pkt_t *` instead of `coap_hdr_t *`
    - If non-UDP transports are used, the deprecated `coap_hdr*()`
      will probably not be exposed to avoid footguns.
- `coap_build_hdr()` has been renamed to `coap_build_udp_hdr()` and
  that works on an `uint8_t *` buffer with a given length, rather than
  on a `coap_hdr_t *` with a *figers crossed* length
    - a deprecated `coap_build_hdr()` function was added that calls
      to `coap_build_udp_hdr()` and has the same signature, so that
      users have time to update
2025-11-10 17:28:41 +01:00
AnnsAnn
55fa531e02 examples: restructure to use subfolders based on README structure
examples: Fix incorrect category heading

examples: shorten coap folder name

static-tests/examples: check subfolders for entries

ci/test_native: Adjust to new examples structure

examples: adjust makefiles to new structure

ci/tests: Fix symlinks to point towards proper examples
2025-02-13 11:54:09 +01:00
benpicco
4d9e8a8dde
Merge pull request #20335 from fzi-haxel/pr/native64-board
native64: Separate board for 64-bit native
2024-02-05 22:58:02 +00:00
Frederik Haxel
5ed0bafc92 examples, tests: Changes for the native64 board
- Adapted build system and test checks for the native boards to include native64
- Added `native64` to the same tests as `native`
2024-02-05 22:02:14 +01:00
Benjamin Valentin
85cfcafdf6 boards/weact-g030f6: add new board 2024-02-05 00:45:42 +01:00
Jason Parker
a2f4a13beb boards/nucleo-c031c6 initial add 2024-01-30 10:11:57 -05:00
zengwei2000
4edfd85286
wasm: fix the memory leak: wasm_buf
wasm: fix the memory leak: wasm_buf

Signed-off-by: zengwei zengwei1@uniontech.com
2023-12-20 23:37:28 +08:00
Marian Buschsieweke
82d98ed377
examples, tests: update Makefile.ci for AVR8
Ran dist/tools/insufficient_memory for all AVR8 boards.
2023-12-01 19:37:05 +01:00
Marian Buschsieweke
f6c7234e39
examples/wasm/wasm_sample: revert prebuild WASM
Running `make` in the wasm example modifies the `hello_prebuild.wasm`
example, making it easy to sneak in unwanted changes. This reverts such
an instance and modifies the Makefile to only recreate/update
`hello_prebuild.wasm` with:

    make hello_prebuild.wasm
2023-05-17 12:31:13 +02:00
Marian Buschsieweke
e7d1c4abc0
boards/olimex-msp430-h1611: new board 2023-05-16 15:03:12 +02:00
Marian Buschsieweke
d2a3ff3d83
boards/{bluepill*,blackpill*}: rename and improve doc
- renamed:
    - `bluepill` --> `bluepill-stm32f103c8`
    - `bluepill-128kib` --> `bluepill-stm32f103cb`
    - `blackpill` --> `blackpill-stm32f103c8`
    - `blackpill-128kib` --> `blackpill-stm32f103cb`
- doc:
    - added link to corresponding hardware page on the STM32-base
      project
    - added picture
2023-01-02 16:23:10 +01:00
Marian Buschsieweke
c801990c5d
examples/wasm/wasm_sample: fix linking with new wasm-ld
Apparently the order of the flags now became significant. This fixes:

    wasm-ld: error: entry symbol not defined (pass --no-entry to suppress)
2022-11-09 20:12:32 +01:00
Alexandre Abadie
12758b94fc
Merge pull request #17954 from aabadie/pr/boards/stm32f750n8-dk
boards/stm32f750n8-dk: add support
2022-04-15 15:05:55 +02:00
Alexandre Abadie
d5e184b326
examples: tests: update Makefile.ci with stm32f7508-dk
This commit also makes some cleanup in the files since add_insufficient_memory_board.sh was used for the update
2022-04-15 12:51:58 +02:00
Alexandre Abadie
cad8d4f900
examples/wasm: ignore generated hello.wasm 2022-04-14 21:32:10 +02:00
Karl Fessel
3400819fbd example/wasm: remove allocator selection
add comment refering to the wasm header instead
2022-03-02 12:21:59 +01:00
Karl Fessel
8c617abc4c example/wasm: add Makefile.ci 2022-02-11 13:29:40 +01:00
Karl Fessel
20cb961329 example/wasm: add prebuild hello.wasm 2022-02-11 13:29:40 +01:00
Karl Fessel
51c94a1217 example/wasm: simplify example extend sample
* uneventise example
2022-02-11 13:29:40 +01:00
Karl Fessel
df057e09cf example/wasm: split example, eventise and introduce wamr_run 2022-02-11 13:28:53 +01:00
Karl Fessel
4cc9bd9e4e example/wasm: a basic wamr example
* using makefile blobs
* improve usability of example
* add sample with memory saving Makefile
2022-02-11 13:09:50 +01:00