This structure represents an IEEE 802.15.4 radio frame.

Public Attributes#

uint8_t *

The PSDU.

uint16_t

Length of the PSDU.

uint8_t

Channel used to transmit/receive the frame.

uint8_t

Radio link type - should be ignored by radio driver.

uint8_t

Interface Id for the incoming/outgoing radio packet.

The key material used for AES-CCM frame security.

The pointer to the Header IE(s) related information.

uint32_t

The delay time for this transmission (based on mTxDelayBaseTime).

uint32_t

The base time for the transmission delay.

uint8_t

Maximum number of backoffs attempts before declaring CCA failure.

uint8_t

Maximum number of retries allowed after a transmission failure.

uint8_t

The RX channel after frame TX is done (after all frame retries - ack received, or timeout, or abort).

bool

Indicates whether frame counter and CSL IEs are properly updated in the header.

bool

Indicates whether the frame is a retransmission or not.

bool

Set to true to enable CSMA-CA for this packet, false otherwise.

bool

Set to true if CSL header IE is present.

bool

True if SubMac should skip the AES processing of this frame.

struct otRadioFrame::@19::@20

Structure representing radio frame transmit information.

uint64_t

The timestamp when the frame was received in microseconds.

uint32_t

ACK security frame counter (applicable when mAckedWithSecEnhAck is set).

uint8_t

ACK security key index (applicable when mAckedWithSecEnhAck is set).

int8_t

Received signal strength indicator in dBm for received frames.

uint8_t

Link Quality Indicator for received frames.

bool

This indicates if this frame was acknowledged with frame pending set.

bool

This indicates if this frame was acknowledged with secured enhance ACK.

struct otRadioFrame::@19::@21

Structure representing radio frame receive information.

union otRadioFrame::@19

The union of transmit and receive information for a radio frame.

Public Attribute Documentation#

mPsdu#

uint8_t* otRadioFrame::mPsdu

The PSDU.


Definition at line 256 of file include/openthread/platform/radio.h

mLength#

uint16_t otRadioFrame::mLength

Length of the PSDU.


Definition at line 258 of file include/openthread/platform/radio.h

mChannel#

uint8_t otRadioFrame::mChannel

Channel used to transmit/receive the frame.


Definition at line 259 of file include/openthread/platform/radio.h

mRadioType#

uint8_t otRadioFrame::mRadioType

Radio link type - should be ignored by radio driver.


Definition at line 261 of file include/openthread/platform/radio.h

mIid#

uint8_t otRadioFrame::mIid

Interface Id for the incoming/outgoing radio packet.

This field is used by RCP when OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE is enabled. If not enabled, this field defaults to zero.

Incoming packets are marked with the correct IID to deliver to the appropriate host. RCP determines the IID value based on the destination PAN ID of the received packet. The IID value of zero indicates the broadcast packet, which will send it to all the hosts.

For outgoing packets, IID is used to format the transmit done callback for the appropriate host. RCP extracts the IID value while processing the received spinel frame from the spinel header.


Definition at line 278 of file include/openthread/platform/radio.h

mAesKey#

const otMacKeyMaterial* otRadioFrame::mAesKey

The key material used for AES-CCM frame security.


Definition at line 290 of file include/openthread/platform/radio.h

mIeInfo#

otRadioIeInfo* otRadioFrame::mIeInfo

The pointer to the Header IE(s) related information.


Definition at line 291 of file include/openthread/platform/radio.h

mTxDelay#

uint32_t otRadioFrame::mTxDelay

The delay time for this transmission (based on mTxDelayBaseTime).


Definition at line 292 of file include/openthread/platform/radio.h

mTxDelayBaseTime#

uint32_t otRadioFrame::mTxDelayBaseTime

The base time for the transmission delay.


Definition at line 293 of file include/openthread/platform/radio.h

mMaxCsmaBackoffs#

uint8_t otRadioFrame::mMaxCsmaBackoffs

Maximum number of backoffs attempts before declaring CCA failure.


Definition at line 294 of file include/openthread/platform/radio.h

mMaxFrameRetries#

uint8_t otRadioFrame::mMaxFrameRetries

Maximum number of retries allowed after a transmission failure.


Definition at line 295 of file include/openthread/platform/radio.h

mRxChannelAfterTxDone#

uint8_t otRadioFrame::mRxChannelAfterTxDone

The RX channel after frame TX is done (after all frame retries - ack received, or timeout, or abort).

Radio platforms can choose to fully ignore this. OT stack will make sure to call otPlatRadioReceive() with the desired RX channel after a frame TX is done and signaled in otPlatRadioTxDone() callback. Radio platforms that don't provide OT_RADIO_CAPS_TRANSMIT_RETRIES must always ignore this.

This is intended for situations where there may be delay in interactions between OT stack and radio, as an example this is used in RCP/host architecture to make sure RCP switches to PAN channel more quickly. In particular, this can help with CSL tx to a sleepy child, where the child may use a different channel for CSL than the PAN channel. After frame tx, we want the radio/RCP to go back to the PAN channel quickly to ensure that parent does not miss tx from child afterwards, e.g., child responding to the earlier CSL transmitted frame from parent using PAN channel while radio still staying on CSL channel.

The switch to the RX channel MUST happen after the frame TX is fully done, i.e., after all retries and when ack is received (when "Ack Request" flag is set on the TX frame) or ack timeout. Note that ack is expected on the same channel that frame is sent on.


Definition at line 316 of file include/openthread/platform/radio.h

mIsHeaderUpdated#

bool otRadioFrame::mIsHeaderUpdated

Indicates whether frame counter and CSL IEs are properly updated in the header.

If the platform layer does not provide OT_RADIO_CAPS_TRANSMIT_SEC capability, it can ignore this flag.

If the platform provides OT_RADIO_CAPS_TRANSMIT_SEC capability, then platform is expected to handle tx security processing and assignment of frame counter. In this case the following behavior is expected:

When mIsHeaderUpdated is set, it indicates that OpenThread core has already set the frame counter and CSL IEs (if security is enabled) in the prepared frame. The counter is ensured to match the counter value from the previous attempts of the same frame. The platform should not assign or change the frame counter (but may still need to perform security processing depending on mIsSecurityProcessed flag).

If mIsHeaderUpdated is not set, then the frame counter and key CSL IE not set in the frame by OpenThread core and it is the responsibility of the radio platform to assign them. The platform must update the frame header (assign counter and CSL IE values) before sending the frame over the air, however if the the transmission gets aborted and the frame is never sent over the air (e.g., channel access error) the platform may choose to not update the header. If the platform updates the header, it must also set this flag before passing the frame back from the otPlatRadioTxDone() callback.


Definition at line 339 of file include/openthread/platform/radio.h

mIsARetx#

bool otRadioFrame::mIsARetx

Indicates whether the frame is a retransmission or not.


Definition at line 340 of file include/openthread/platform/radio.h

mCsmaCaEnabled#

bool otRadioFrame::mCsmaCaEnabled

Set to true to enable CSMA-CA for this packet, false otherwise.


Definition at line 341 of file include/openthread/platform/radio.h

mCslPresent#

bool otRadioFrame::mCslPresent

Set to true if CSL header IE is present.


Definition at line 342 of file include/openthread/platform/radio.h

mIsSecurityProcessed#

bool otRadioFrame::mIsSecurityProcessed

True if SubMac should skip the AES processing of this frame.


Definition at line 343 of file include/openthread/platform/radio.h

mTxInfo#

struct otRadioFrame::@19::@20 otRadioFrame::mTxInfo

Structure representing radio frame transmit information.


Definition at line 344 of file include/openthread/platform/radio.h

mTimestamp#

uint64_t otRadioFrame::mTimestamp

The timestamp when the frame was received in microseconds.

The value SHALL be the time when the SFD was received.


Definition at line 357 of file include/openthread/platform/radio.h

mAckFrameCounter#

uint32_t otRadioFrame::mAckFrameCounter

ACK security frame counter (applicable when mAckedWithSecEnhAck is set).


Definition at line 359 of file include/openthread/platform/radio.h

mAckKeyId#

uint8_t otRadioFrame::mAckKeyId

ACK security key index (applicable when mAckedWithSecEnhAck is set).


Definition at line 360 of file include/openthread/platform/radio.h

mRssi#

int8_t otRadioFrame::mRssi

Received signal strength indicator in dBm for received frames.


Definition at line 361 of file include/openthread/platform/radio.h

mLqi#

uint8_t otRadioFrame::mLqi

Link Quality Indicator for received frames.


Definition at line 362 of file include/openthread/platform/radio.h

mAckedWithFramePending#

bool otRadioFrame::mAckedWithFramePending

This indicates if this frame was acknowledged with frame pending set.


Definition at line 365 of file include/openthread/platform/radio.h

mAckedWithSecEnhAck#

bool otRadioFrame::mAckedWithSecEnhAck

This indicates if this frame was acknowledged with secured enhance ACK.


Definition at line 366 of file include/openthread/platform/radio.h

mRxInfo#

struct otRadioFrame::@19::@21 otRadioFrame::mRxInfo

Structure representing radio frame receive information.


Definition at line 367 of file include/openthread/platform/radio.h

mInfo#

union otRadioFrame::@19 otRadioFrame::mInfo

The union of transmit and receive information for a radio frame.


Definition at line 368 of file include/openthread/platform/radio.h