zephyr/drivers/ieee802154
Florian Grandel 80da9ddfef drivers: ieee802154: improve ACK header IE config
Improves standard conformance of the IEEE802154_CONFIG_ENH_ACK_HEADER_IE
option and introduces certain "soft MAC" capabilities around header IEs:
 * Introduces types and helpers that allow driver maintainers to
   represent, parse, write and validate header IEs.
 * Introduces helper functions to access non-aligned fields in header
   IEs, namely element IDs.

Updates the only existing L2 and driver pair that uses
IEEE802154_CONFIG_ENH_ACK_HEADER_IE: OpenThread platform radio and nRF5
and improves header IE validation in the nRF5 driver.

This change should help further driver maintainers to support
OpenThread's CSL and vendor IE extensions. It is based on the rules
specified in RFC #61227.

It is also a precondition to generically support both, "soft MAC" and
"hard MAC", approaches to header IEs in the TSCH protocol, namely the
time synchronization IE.

Fixes: #62940

Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de>
2023-10-20 14:58:23 +02:00
..
CMakeLists.txt drivers: ieee802154: cmake: remove TI compile definitions 2022-07-28 20:51:55 +02:00
ieee802154_b91.c drivers: ieee802154: b91: buflen sanity check 2023-10-17 19:15:56 +03:00
ieee802154_b91.h drivers: ieee802154: b91: Fix Set Channel API and ACK detection 2021-12-14 13:47:25 -06:00
ieee802154_cc13xx_cc26xx.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_cc13xx_cc26xx.h drivers: ieee802154: introduce channel pages 2023-09-27 12:44:15 -04:00
ieee802154_cc13xx_cc26xx_subg.c drivers: ieee802154: cc13xx_cc26xx_subg: buflen sanity check 2023-10-17 19:15:56 +03:00
ieee802154_cc13xx_cc26xx_subg.h drivers: ieee802154: cc13xx_cc26xx_subg: fix oper. state 2023-10-05 12:01:29 +03:00
ieee802154_cc1200.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_cc1200.h net: l2: ieee802154: standardize RSSI value 2023-06-17 07:16:32 -04:00
ieee802154_cc1200_regs.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
ieee802154_cc1200_rf.h drivers: ieee802154: cc1200: SUN-FSK compatibility 2023-09-27 12:44:15 -04:00
ieee802154_cc2520.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_cc2520.h drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
ieee802154_cc2520_regs.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
ieee802154_dw1000.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_dw1000_regs.h everywhere: fix typos 2022-03-18 13:24:08 -04:00
ieee802154_kw41z.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_mcr20a.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_mcr20a.h drivers: ieee802154: mcr20a: Remove unused variable 2022-06-29 06:02:28 -05:00
ieee802154_mcr20a_regs.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
ieee802154_nrf5.c drivers: ieee802154: improve ACK header IE config 2023-10-20 14:58:23 +02:00
ieee802154_nrf5.h drivers: ieee802154: nrf5: multiple CCA support 2023-07-25 09:13:41 +02:00
ieee802154_rf2xx.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_rf2xx.h drivers: ieee802154: introduce channel pages 2023-09-27 12:44:15 -04:00
ieee802154_rf2xx_iface.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
ieee802154_rf2xx_iface.h everywhere: fix typos 2022-03-14 20:22:24 -04:00
ieee802154_rf2xx_regs.h drivers: ieee802154: rf2xx: Fix rf231 invalid frame 2023-09-25 09:52:28 +02:00
ieee802154_uart_pipe.c random: Rename random header 2023-10-10 14:23:50 +03:00
ieee802154_uart_pipe.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
Kconfig net: openthread: allow to configure CSL debugging 2023-06-17 07:48:25 -04:00
Kconfig.b91 drivers: ieee802154: IEEE802154 depends on NETWORKING 2022-08-05 12:56:47 +02:00
Kconfig.cc13xx_cc26xx drivers: ieee802154: introduce channel pages 2023-09-27 12:44:15 -04:00
Kconfig.cc1200 drivers: ieee802154: introduce channel pages 2023-09-27 12:44:15 -04:00
Kconfig.cc2520 drivers: ieee802154: IEEE802154 depends on NETWORKING 2022-08-05 12:56:47 +02:00
Kconfig.dw1000 drivers: ieee802154: Move to using select in Kconfig for SPI bus 2022-08-12 11:33:02 +02:00
Kconfig.kw41z drivers: ieee802154: IEEE802154 depends on NETWORKING 2022-08-05 12:56:47 +02:00
Kconfig.mcr20a drivers: ieee802154: Move to using select in Kconfig for SPI bus 2022-08-12 11:33:02 +02:00
Kconfig.nrf5 drivers: ieee802154: nrf5: multiple CCA support 2023-07-25 09:13:41 +02:00
Kconfig.rf2xx drivers: ieee802154: introduce channel pages 2023-09-27 12:44:15 -04:00
Kconfig.uart_pipe drivers: ieee802154: IEEE802154 depends on NETWORKING 2022-08-05 12:56:47 +02:00