Commit graph

127 commits

Author SHA1 Message Date
Andrzej Głąbek
f930739acf modules: openthread: ble: Update after BT_LE_ADV_CONN got deprecated
This is a follow-up to commit 8cfad44852.

Replace the deprecated BT_LE_ADV_CONN macro with BT_LE_ADV_CONN_FAST_2.

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2025-01-23 16:32:10 +01:00
Maciej Baczmanski
74bbbdccf8 net: openthread: cleanup diag commands
After https://github.com/openthread/openthread/pull/11055,
platform is not required to check diagnostics mode while
processing commands.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2025-01-14 08:59:22 +01:00
Maciej Baczmanski
712da726be net: openthread: radio: Add setting channel in diag mode
Add possibility to set channel in diag mode by implementing
`platformRadioChannelSet` API.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2025-01-09 15:49:21 +01:00
Maciej Baczmanski
b46f72009a net: openthread: radio: Fix platform radio state machine
Fix platform radio state machine to be compliant with one shown in
OpenThread's `include/openthread/platform/radio.h`

Align twister tests to verify proper behavior of the
state machine.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2025-01-09 15:49:21 +01:00
Przemyslaw Bida
e34f19a8ca net: openthread: Add openthread tcat multiradio config.
As per BHC-750 in TCAT case for now only allowed devices
are the ones that have either dual radio or multiplexed
radio capabilities. So the 'M' bit in BLE advertisement
should be always set to 1. In future specifications
devices without multiradio capabilities will be allowed
this is the reason why new Kconfig was introduced.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-12-19 12:36:54 +01:00
Przemyslaw Bida
1512ed2d3c net: openthread: Adding diag transmit command.
Commit adds `diag transmit` used for transmission IEEE802154 packets
in specific amount and interval.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-12-16 15:55:04 +01:00
Przemyslaw Bida
63e1bb41b1 net: openthread: Add modcarrier command to OT diag module.
Commit add `modcarrier` shell command for Openthread diagnostic mode.
Command can transmit modulated carrier out of device for test purposes.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-12-04 12:10:11 +01:00
Kamil Kasperczyk
0b98834424 modules: openthread: Add of Kconfigs to change child timeouts
Introduced few Kconfigs that allow to change default values
of MLE child timeout and child supervision timeouts.

Signed-off-by: Kamil Kasperczyk <kamil.kasperczyk@nordicsemi.no>
2024-12-02 09:42:35 +01:00
Przemyslaw Bida
e0f94f8823 drivers: ieee802154: New API for modulated carrier wave transmission.
Added new API function to start modulated carrier wave transmission

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-11-29 21:46:46 +01:00
Jamel Arbi
ec4e0192fb modules: openthread: Add of spinel hdlc rcp host interface
Add a spinel support to an RCP design, the core of OpenThread lives on the
host processor connected to an RCP radio controller over a HDLC interface.

Signed-off-by: Jamel Arbi <jamel.arbi@nxp.com>
2024-11-27 10:37:21 -05:00
Adrian Gielniewski
9fd9e231df net: openthread: Add platform message management
* Add CONFIG_OPENTHREAD_PLATFORM_MESSAGE_MANAGEMENT to allow enabling
message management by the platform.
* Add implementation of `otPlatMessagePoolInit`, `otPlatMessagePoolNew`
and `otPlatMessagePoolFree`.

Signed-off-by: Adrian Gielniewski <adrian.gielniewski@nordicsemi.no>
2024-11-16 15:21:20 -05:00
Damian Krolik
11b6bd0ab1 net: openthread: support Wake-up End Device without CSL receiver
Make it possible to enable Wake-up End Device feature with
CSL receiver disabled (to receive wake-up frames on MED).

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2024-11-16 15:09:07 -05:00
Damian Krolik
de9519127b net: openthread: add wake-up end device support
Add Kconfig option to enable the Wake-up End Device role.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Co-authored-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2024-11-16 15:09:07 -05:00
Damian Krolik
8ce12aaa04 net: openthread: add wake-up coordinator support
Add Kconfig option `OPENTHREAD_WAKEUP_COORDINATOR` to enable
the Wake-up Coordinator role. Implement API to set Coordinated
Sampled Transmitting sample time and period for a driver that supports
`IEE802154_OPENTHREAD_HW_CST` capability.

The feature is be enabled on with ieee802154_nrf5 driver with option
by setting default value of CONFIG_IEEE802154_NRF5_CST_ENDPOINT.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Co-authored-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2024-11-16 15:09:07 -05:00
Andrzej Kuros
adf4e73d64 net: openthread: support Kconfig IEEE802154_SELECTIVE_TXCHANNEL
For transmit_message if the transmission is timed and underlying
driver supports `IEEE802154_HW_SELECTIVE_TXCHANNEL` then use
the selective txchannel feature for transmission.
This does not change the current `channel` at the moment of call,
the driver will transmit the message on the channel selected through
`net_pkt_set_ieee802154_txchannel` then (after receiving an ACK
if requested) it will return to the original channel.
When Kconfig option IEEE802154_SELECTIVE_TXCHANNEL is turned on,
the timed transmissions scheduled some time ahead on different
channel will not abort ongoing reception until the exact moment
of transmission comes.

Signed-off-by: Andrzej Kuroś <andrzej.kuros@nordicsemi.no>
2024-10-22 14:04:33 +02:00
Lukasz Maciejonczyk
0b7c5ad378 kconfig: openthread: Increase range for OPENTHREAD_CLI_MAX_LINE_LENGTH
This commit increases the range of value for the
OPENTHREAD_CLI_MAX_LINE_LENGTH option to the maximum allowed.

The previous range may have been insufficient for Openthread vendor CLI
commands.

Signed-off-by: Lukasz Maciejonczyk <lukasz.maciejonczyk@nordicsemi.no>
2024-10-21 12:35:42 +02:00
Damian Krolik
5d69216cc9 net: openthread: add Kconfig for CSL request time ahead
Add OPENTHREAD_CSL_REQUEST_TIME_AHEAD Kconfig variable.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2024-10-16 12:26:06 +02:00
Nick Ward
89b7336876 net: openthread: make receive sensitivity configurable
OpenThread route cost calculations are dependent on this
being accurate for the hardware design.

Signed-off-by: Nick Ward <nix.ward@gmail.com>
2024-10-15 04:06:08 -04:00
Lukasz Maciejonczyk
a131e85a94 kconfig: openthread: Add OPENTHREAD_CLI_VENDOR_EXTENSION option
This commit introduces a new option, OPENTHREAD_CLI_VENDOR_EXTENSION,
in the Zephyr OpenThread module to map the upstream option
OT_CLI_VENDOR_EXTENSION.

OPENTHREAD_CLI_VENDOR_EXTENSION option specifies the path to a CMake
file that defines and links the CLI vendor extension. By setting this
option, it enables the addition of vendor-specific commands to
the OpenThread CLI interface.

Signed-off-by: Lukasz Maciejonczyk <lukasz.maciejonczyk@nordicsemi.no>
2024-10-14 13:05:44 +02:00
Maciej Baczmanski
9655c2f61b net: openthread: add OPENTHREAD_STORE_FRAME_COUNTER_AHEAD
Add `OPENTHREAD_STORE_FRAME_COUNTER_AHEAD` Kconfig option
and set it to 100000, as after calculations it appears to
be a more suitable value.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-10-02 10:16:16 +02:00
Maciej Baczmanski
539cc1ddfa manifest: openthread: Regular OpenThread upmerge
Update OpenThread up to `2aeb8b8` and align KConfig options

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-10-02 10:16:16 +02:00
Valerio Setti
33931cf8e1 mbedtls: remove unused option MBEDTLS_SSL_EXPORT_KEYS
According to Mbed TLS changelog this feature was set default ON
since 3.1.0 release, so the build symbol is no more available.
This commit removes it from Zephyr.

Signed-off-by: Valerio Setti <vsetti@baylibre.com>
2024-09-12 13:31:20 -04:00
Maciej Baczmanski
23ba68a45d kconfig: openthread: Add 1.4 version
This commit adds thread 1.4 version.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-08-13 14:56:30 +02:00
Przemyslaw Bida
bd05d0032c net: openthread: Clean not used defines in OT platform.
Remove unused `DEVICE_NAME` from OT `ble.c`.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-08-09 17:58:24 +01:00
Rubin Gerritsen
a4e43d013c Bluetooth: Samples: Use string printing functions for error codes
When developing Bluetooth applications, you typically run into some errors.
If you are an experienced Bluetooth developer, you would typically know
how to translate the error codes into string representations.
Others might not.

This commit to adds string printing of error codes for all
samples to make them more user-friendly.

Several formatting alternatives were considered. The chosen alternative
balances code readability and FLASH size (with and without string
printing).

Example output from the peripheral_hids sample when the
peer rejects pairing:

```
Bluetooth initialized
Bluetooth authentication callbacks registered.
Advertising successfully started
Connected 5E:67:02:D3:1C:DB (random)
Security failed: 5E:67:02:D3:1C:DB (random) \
level 1 err 6 BT_SECURITY_ERR_PAIR_NOT_ALLOWED
Disconnected from 5E:67:02:D3:1C:DB (random), \
reason 0x13 BT_HCI_ERR_REMOTE_USER_TERM_CONN
```

Other alternatives that were considered:

- Use of parantheses:
```
// strings enabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 \
err BT_SECURITY_ERR_PAIR_NOT_ALLOWED(6)
Disconnected from 5E:67:02:D3:1C:DB (random), reason \
BT_HCI_ERR_REMOTE_USER_TERM_CONN(0x13)
// strings disabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 err (6)
Disconnected from 5E:67:02:D3:1C:DB (random), reason (0x13)
```

- Spaces and parantheses:
```
// strings enabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 \
err BT_SECURITY_ERR_PAIR_NOT_ALLOWED (6)
Disconnected from 5E:67:02:D3:1C:DB (random), \
reason BT_HCI_ERR_REMOTE_USER_TERM_CONN (0x13)
// strings disabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 err  (6)
Disconnected from 5E:67:02:D3:1C:DB (random), reason  (0x13)
```

- Parantheses around everything:
```
// strings enabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 \
err (BT_SECURITY_ERR_PAIR_NOT_ALLOWED(6))
Disconnected from 5E:67:02:D3:1C:DB (random), \
reason (BT_HCI_ERR_REMOTE_USER_TERM_CONN(0x13))
// strings disabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 err ((6))
Disconnected from 5E:67:02:D3:1C:DB (random), reason ((0x13))
```

- Error code first, then string representation:
```
// strings enabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 \
err 6 (BT_SECURITY_ERR_PAIR_NOT_ALLOWED)
Disconnected from 5E:67:02:D3:1C:DB (random), reason \
0x13 (BT_HCI_ERR_REMOTE_USER_TERM_CONN)
// strings disabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 err 6 ()
Disconnected from 5E:67:02:D3:1C:DB (random), reason 0x13 ()
```

- Apostrophes around error printing:
```
// strings enabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 \
err "BT_SECURITY_ERR_PAIR_NOT_ALLOWED (6)"
Disconnected from 5E:67:02:D3:1C:DB (random), reason \
"BT_HCI_ERR_REMOTE_USER_TERM_CONN (0x13)"
// strings disabled
Security failed: 5E:67:02:D3:1C:DB (random) level 1 err " (6)"
Disconnected from 5E:67:02:D3:1C:DB (random), reason " (0x13)"
```

Signed-off-by: Rubin Gerritsen <rubin.gerritsen@nordicsemi.no>
2024-07-31 12:56:11 +02:00
Maciej Baczmanski
040a942a63 manifest: net: openthread: Regular openthread upmerge to e10a925.
Regular openthread upmerge to `e10a92570f94ff1e0bc5e0da9ecf0ee135d955a6`.

Additionally commit aligns platform implementation with diag changes:
https://github.com/openthread/openthread/pull/10354

based on:
https://github.com/openthread/ot-nrf528xx/pull/822

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-07-30 18:27:15 +01:00
Marcin Gasiorek
313a92baf9 net: openthread: Set CIDR for NAT64
Implementation of functionality whitch configure CIDR for OT NAT64.

Signed-off-by: Marcin Gasiorek <marcin.gasiorek@nordicsemi.no>
2024-07-28 07:29:50 +03:00
Marcin Gasiorek
ac0a9d79ab net: openthread: Add NAT64 send and receive callbacks.
Packets are routed between OT and Zephyr net stacks.
For IPv4 these packets are managed by NAT64 by default.

Signed-off-by: Marcin Gasiorek <marcin.gasiorek@nordicsemi.no>
2024-07-28 07:29:50 +03:00
Pieter De Gendt
ad63ca284e kconfig: replace known integer constants with variables
Make the intent of the value clear and avoid invalid ranges with typos.

Signed-off-by: Pieter De Gendt <pieter.degendt@basalte.be>
2024-07-27 20:49:15 +03:00
Konrad Derda
ec0d6ab885 net: l2: openthread: set multicast loop by default
When multicast packet is forwarded to the OpenThread stack it has to
have its "multicast loop" flag enabled to be processed by the stack
itself instead of only propagating it further.

Signed-off-by: Konrad Derda <konrad.derda@nordicsemi.no>
2024-07-27 10:46:38 +03:00
Przemyslaw Bida
7dc830e9db net: openthread: Add new kconfig OT options.
Adding:
	- `OPENTHREAD_BORDER_AGENT_EPHEMERAL_KEY_ENABLE`
	- `OPENTHREAD_CHANNEL_MANAGER_CSL`
	- `OPENTHREAD_PLATFORM_LOG_CRASH_DUMP`
	- `OPENTHREAD_MULTICAST_DNS`
	- `OPENTHREAD_VERHOEFF_CHECKSUM`

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-06-11 10:05:04 +02:00
Przemyslaw Bida
4c34e95904 net: openthread: Add implementation of TCAT advertisement.
Adds implementation of tcat advertisement API.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-06-11 10:05:04 +02:00
Damian Krolik
42d928ee93 drivers: ieee802154: fix configuring CSL IE in ACK
The code was assigning a pointer to a scoped buffer to
an object outside that scope. This would cause the driver
would receive garbage instead of a well-formatted IE and
would likely reject the IE. This in turn caused CSL IE
not being included in enhanced ACKs (verified with
wireshark).

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2024-04-03 13:57:50 +03:00
Dave Lacerte
379ac5e394 modules: openthread: platform: radio: Time Sync OT Feature support
Add missing otRadioIeInfo structure and add plaform time to transmit frame

Signed-off-by: Dave Lacerte <lacerte.dave@hydroquebec.com>
2024-03-28 16:05:21 -05:00
Maciej Baczmanski
ba2a8bd795 manifest: openthread: Regular openthread upmerge
Adds `CONFIG_OPENTHREAD_SRP_ADV_PROXY` option

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-03-11 15:21:46 +00:00
Henrik Brix Andersen
33708c6b3d modules: openthread: platform: logging: catch up on log2_generic rename
The log2_generic() function was renamed to log_generic().

Fixes: 2155a9e5f7

Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
2024-02-15 10:02:40 +01:00
Maciej Baczmanski
85bc24eb07 net: openthread: Add PSA implementation for PBDKF2 genkey
Add implementation of openthread pbkdf2 generate key using PSA
functions.

Co-authored-by: Joakim Andersson <joakim.andersson@nordicsemi.no>

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-26 11:03:42 +01:00
Maciej Baczmanski
0f1747e4e7 net: openthread: upmerge to 7761b81
additionaly, implement `otPlatRadioResetCsl` functionality

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-26 10:48:02 +01:00
Maciej Baczmanski
36b7f44c1d drivers: ieee802154: fix handling of struct ieee802154_config
`struct ieee802154_config config` is a struct containing an
union. Members of `config` were accessed incorrectly in
`otPlatRadioEnableCsl`. Fix by initializing `config` with `0`
and accessing one member at a time.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-26 10:48:02 +01:00
Maciej Baczmanski
d76bcd346c drivers: ieee802154: fix ACK header IE implementation
- In `set_vendor_ie_header_lm`, case when
`link_metrics_data_len == 0` has been ignored.
This commit fixes that by setting `header_ie->length = 0`
before returning.
- current implementation of enh ACK header IE returns
`-ENOTSUP` when `ack_ie.header_ie == NULL` or
`ack_ie.header_ie->length == 0`. This commit fixes that by
refactoring checks in `nrf5_configure`.

Co-authored-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-26 10:48:02 +01:00
Przemyslaw Bida
a6184b9be3 net: openthread: Fix key import in case of ECDSA.
According to PSA specification in case of `PSA_KEY_TYPE_ECC_KEY_PAIR`
function `psa_import_key` takes private key from key pair as argument.
This commit adds extraction of Private key from ECDSA key pair.

Also removes not needed `otPlatCryptoEcdsaGetPublicKey`.

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-01-23 10:02:17 +01:00
Eduardo Montoya
822e8d4cc4 net: openthread: remove unneded call to otLinkMetricsInit
Platforms calculate Link Metrics values internally after using
`otPlatRadioConfigureEnhAckProbing`.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
2024-01-19 09:48:03 +01:00
Eduardo Montoya
fe9e306a83 net: openthread: fix otLinkMetricsInit usage
Remove usage of `otPlatRadioGetReceiveSensitivity` without the
`otInstance` parameter.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
2024-01-17 09:55:34 +01:00
Damian Krolik
7b42e36c68 net: openthread: Print the actual assert location
When OpenThread application is built with CONFIG_ASSERT
and CONFIG_ASSERT_NO_MSG_INFO, OT_ASSERT() prints a location
that points to the otPlatAssertFail() function instead of
the code that actually failed an assertion.

This is confusing and CONFIG_ASSERT_NO_MSG_INFO sometimes
cannot be disabled because of flash size limitations.

Make otPlatAssertFail() always print the actual assert
location.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2024-01-15 09:58:48 +01:00
Damian Krolik
36b7a3e701 net: openthread: Remove PSA crypto backend workarounds
Remove two workarounds in OpenThread's PSA crypto backend
that were required when Zephyr used pre-1.5 TF-M version:
1. psa_open_key() is no longer needed to reference
   a persistent key
2. psa_cipher_encrypt() can be used to simplify AES
   encryption

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
2024-01-12 11:26:41 -06:00
Przemyslaw Bida
0018204091 net: openthread: Add new key and algorithm in PSA.
This commit adds new types of keys and algorithm to crypto_psa backend
of openthread.

Added options:
- `OT_CRYPTO_KEY_TYPE_ECDSA`
- `OT_CRYPTO_KEY_ALG_ECDSA`
- `OT_CRYPTO_KEY_USAGE_VERIFY_HASH`

Signed-off-by: Przemyslaw Bida <przemyslaw.bida@nordicsemi.no>
2024-01-11 15:40:55 -06:00
Maciej Baczmanski
f32e686511 net: openthread: implement otPlatResetToBootloader
This commit implements `otPlatResetToBootloader` in two ways:

- trigger reset to bootloader using boot mode retention API
- trigger reset to bootloader by triggering GPIO pin (applicable
for nRF52840 Dongle)

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-11 15:37:58 -06:00
Maciej Baczmanski
d0283f9b15 net: openthread: add missing cmake option
Added `OT_PLATFORM_POWER_CALIBRATION` and set to always off
as in Zephyr power calibration is handled by Radio Driver.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-08 10:09:13 +01:00
Eduardo Montoya
5767998d4f drivers: ieee802154: nrf: make selective tx power the default
Remove `IEEE802154_SELECTIVE_TXPOWER` option.

Cache the tx power value in nRF5 driver and make use of it on each
operation.

Signed-off-by: Eduardo Montoya <eduardo.montoya@nordicsemi.no>
Signed-off-by: Jędrzej Ciupis <jedrzej.ciupis@nordicsemi.no>
2024-01-05 09:04:17 +01:00
Maciej Baczmanski
11613e08e7 net: openthread: increase TCAT stack size
Running TCAT with PSA crypto API  causes stack overflow.
Increased stack size.

Signed-off-by: Maciej Baczmanski <maciej.baczmanski@nordicsemi.no>
2024-01-03 19:01:05 +00:00