Zephyr Project API 3.7.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
ieee802154_radio_openthread.h File Reference

This file extends interface of ieee802154_radio.h for OpenThread. More...

Go to the source code of this file.

Data Structures

struct  ieee802154_openthread_config
 OpenThread specific configuration data of ieee802154 driver. More...
 
struct  ieee802154_openthread_attr_value
 OpenThread specific attribute value data of ieee802154 driver. More...
 

Macros

#define IEEE802154_OPENTHREAD_THREAD_IE_VENDOR_OUI   { 0x9b, 0xb8, 0xea }
 Thread vendor OUI for vendor specific header or nested information elements, see IEEE 802.15.4-2020, sections 7.4.2.2 and 7.4.4.30.
 
#define IEEE802154_OPENTHREAD_VENDOR_OUI_LEN   3
 length of IEEE 802.15.4-2020 vendor OUIs
 

Enumerations

enum  ieee802154_openthread_hw_caps { IEEE802154_OPENTHREAD_HW_MULTIPLE_CCA = BIT(IEEE802154_HW_CAPS_BITS_PRIV_START) }
 OpenThread specific capabilities of ieee802154 driver. More...
 
enum  ieee802154_openthread_tx_mode { IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA = IEEE802154_TX_MODE_PRIV_START }
 TX mode. More...
 
enum  ieee802154_openthread_config_type { IEEE802154_OPENTHREAD_CONFIG_MAX_EXTRA_CCA_ATTEMPTS = IEEE802154_CONFIG_PRIV_START }
 OpenThread specific configuration types of ieee802154 driver. More...
 
enum  ieee802154_openthread_attr { IEEE802154_OPENTHREAD_ATTR_T_RECCA = IEEE802154_ATTR_PRIV_START , IEEE802154_OPENTHREAD_ATTR_T_CCATX }
 OpenThread specific attributes of ieee802154 driver. More...
 

Detailed Description

This file extends interface of ieee802154_radio.h for OpenThread.

Macro Definition Documentation

◆ IEEE802154_OPENTHREAD_THREAD_IE_VENDOR_OUI

#define IEEE802154_OPENTHREAD_THREAD_IE_VENDOR_OUI   { 0x9b, 0xb8, 0xea }

Thread vendor OUI for vendor specific header or nested information elements, see IEEE 802.15.4-2020, sections 7.4.2.2 and 7.4.4.30.

in little endian

◆ IEEE802154_OPENTHREAD_VENDOR_OUI_LEN

#define IEEE802154_OPENTHREAD_VENDOR_OUI_LEN   3

length of IEEE 802.15.4-2020 vendor OUIs

Enumeration Type Documentation

◆ ieee802154_openthread_attr

OpenThread specific attributes of ieee802154 driver.

This type extends ieee802154_attr

Enumerator
IEEE802154_OPENTHREAD_ATTR_T_RECCA 

Attribute: Maximum time between consecutive CCAs performed back-to-back.

    This is attribute for T_recca parameter mentioned for
    @ref IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA.
    Time is expressed in microseconds.
IEEE802154_OPENTHREAD_ATTR_T_CCATX 

Attribute: Maximum time between detection of CCA idle channel and the moment of start of SHR at the local antenna.

This is attribute for T_ccatx parameter mentioned for IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA. Time is expressed in microseconds.

◆ ieee802154_openthread_config_type

OpenThread specific configuration types of ieee802154 driver.

This type extends ieee802154_config_type.

Enumerator
IEEE802154_OPENTHREAD_CONFIG_MAX_EXTRA_CCA_ATTEMPTS 

Allows to configure extra CCA for transmission requested with mode IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA.

Requires IEEE802154_OPENTHREAD_HW_MULTIPLE_CCA capability.

◆ ieee802154_openthread_hw_caps

OpenThread specific capabilities of ieee802154 driver.

This type extends ieee802154_hw_caps.

Enumerator
IEEE802154_OPENTHREAD_HW_MULTIPLE_CCA 

Capability to transmit with IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA mode.

◆ ieee802154_openthread_tx_mode

TX mode.

Enumerator
IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA 

The IEEE802154_OPENTHREAD_TX_MODE_TXTIME_MULTIPLE_CCA mode allows to send a scheduled packet if the channel is reported idle after at most 1 + max_extra_cca_attempts CCAs performed back-to-back.

This mode is a non-standard experimental OpenThread feature. It allows transmission of a packet within a certain time window. The earliest transmission time is specified as in the other TXTIME modes: When the first CCA reports an idle channel then the first symbol of the packet's PHR SHALL be present at the local antenna at the time represented by the scheduled TX timestamp (referred to as T_tx below).

If the first CCA reports a busy channel, then additional CCAs up to max_extra_cca_attempts will be done until one of them reports an idle channel and the packet is sent out or the max number of attempts is reached in which case the transmission fails.

The timing of these additional CCAs depends on the capabilities of the driver which reports them in the T_recca and T_ccatx driver attributes (see IEEE802154_OPENTHREAD_ATTR_T_RECCA and IEEE802154_OPENTHREAD_ATTR_T_CCATX). Based on these attributes the upper layer can calculate the latest point in time (T_txmax) that the first symbol of the scheduled packet's PHR SHALL be present at the local antenna:

T_maxtxdelay = max_extra_cca_attempts * (aCcaTime + T_recca) - T_recca + T_ccatx T_txmax = T_tx + T_maxtxdelay

See IEEE 802.15.4-2020, section 11.3, table 11-1 for the definition of aCcaTime.

Drivers implementing this TX mode SHOULD keep T_recca and T_ccatx as short as possible. T_ccatx SHALL be less than or equal aTurnaroundTime as defined in ibid., section 11.3, table 11-1.

CCA SHALL be executed as defined by the phyCcaMode PHY PIB attribute (see ibid., section 11.3, table 11-2).

Requires IEEE802154_OPENTHREAD_HW_MULTIPLE_CCA capability.