Represents an IEEE 802.15.4 radio frame.
Public Attributes#
The PSDU.
Length of the PSDU.
Channel used to transmit/receive the frame.
Radio link type - should be ignored by radio driver.
The key material used for AES-CCM frame security.
The pointer to the Header IE(s) related information.
The base time in microseconds for scheduled transmissions relative to the local radio clock, see otPlatRadioGetNow
and mTxDelay
.
The delay time in microseconds for this transmission referenced to mTxDelayBaseTime
.
Maximum number of backoffs attempts before declaring CCA failure.
Maximum number of retries allowed after a transmission failure.
The RX channel after frame TX is done (after all frame retries - ack received, or timeout, or abort).
Indicates whether frame counter and CSL IEs are properly updated in the header.
Indicates whether the frame is a retransmission or not.
Set to true to enable CSMA-CA for this packet, false otherwise.
Set to true if CSL header IE is present.
True if SubMac should skip the AES processing of this frame.
Structure representing radio frame transmit information.
The time of the local radio clock in microseconds when the end of the SFD was present at the local antenna.
ACK security frame counter (applicable when mAckedWithSecEnhAck
is set).
ACK security key index (applicable when mAckedWithSecEnhAck
is set).
Received signal strength indicator in dBm for received frames.
Link Quality Indicator for received frames.
This indicates if this frame was acknowledged with frame pending set.
This indicates if this frame was acknowledged with secured enhance ACK.
Structure representing radio frame receive information.
The union of transmit and receive information for a radio frame.
Public Attribute Documentation#
mPsdu#
uint8_t* otRadioFrame::mPsdu
The PSDU.
257
of file include/openthread/platform/radio.h
mLength#
uint16_t otRadioFrame::mLength
Length of the PSDU.
259
of file include/openthread/platform/radio.h
mChannel#
uint8_t otRadioFrame::mChannel
Channel used to transmit/receive the frame.
260
of file include/openthread/platform/radio.h
mRadioType#
uint8_t otRadioFrame::mRadioType
Radio link type - should be ignored by radio driver.
262
of file include/openthread/platform/radio.h
mAesKey#
const otMacKeyMaterial* otRadioFrame::mAesKey
The key material used for AES-CCM frame security.
274
of file include/openthread/platform/radio.h
mIeInfo#
otRadioIeInfo* otRadioFrame::mIeInfo
The pointer to the Header IE(s) related information.
275
of file include/openthread/platform/radio.h
mTxDelayBaseTime#
uint32_t otRadioFrame::mTxDelayBaseTime
The base time in microseconds for scheduled transmissions relative to the local radio clock, see otPlatRadioGetNow
and mTxDelay
.
282
of file include/openthread/platform/radio.h
mTxDelay#
uint32_t otRadioFrame::mTxDelay
The delay time in microseconds for this transmission referenced to mTxDelayBaseTime
.
Note: mTxDelayBaseTime
+ mTxDelay
SHALL point to the point in time when the end of the SFD will be present at the local antenna, relative to the local radio clock.
292
of file include/openthread/platform/radio.h
mMaxCsmaBackoffs#
uint8_t otRadioFrame::mMaxCsmaBackoffs
Maximum number of backoffs attempts before declaring CCA failure.
294
of file include/openthread/platform/radio.h
mMaxFrameRetries#
uint8_t otRadioFrame::mMaxFrameRetries
Maximum number of retries allowed after a transmission failure.
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.
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.
339
of file include/openthread/platform/radio.h
mIsARetx#
bool otRadioFrame::mIsARetx
Indicates whether the frame is a retransmission or not.
340
of file include/openthread/platform/radio.h
mCsmaCaEnabled#
bool otRadioFrame::mCsmaCaEnabled
Set to true to enable CSMA-CA for this packet, false otherwise.
341
of file include/openthread/platform/radio.h
mCslPresent#
bool otRadioFrame::mCslPresent
Set to true if CSL header IE is present.
342
of file include/openthread/platform/radio.h
mIsSecurityProcessed#
bool otRadioFrame::mIsSecurityProcessed
True if SubMac should skip the AES processing of this frame.
343
of file include/openthread/platform/radio.h
mTxInfo#
struct otRadioFrame::@17::@18 otRadioFrame::mTxInfo
Structure representing radio frame transmit information.
344
of file include/openthread/platform/radio.h
mTimestamp#
uint64_t otRadioFrame::mTimestamp
The time of the local radio clock in microseconds when the end of the SFD was present at the local antenna.
355
of file include/openthread/platform/radio.h
mAckFrameCounter#
uint32_t otRadioFrame::mAckFrameCounter
ACK security frame counter (applicable when mAckedWithSecEnhAck
is set).
357
of file include/openthread/platform/radio.h
mAckKeyId#
uint8_t otRadioFrame::mAckKeyId
ACK security key index (applicable when mAckedWithSecEnhAck
is set).
358
of file include/openthread/platform/radio.h
mRssi#
int8_t otRadioFrame::mRssi
Received signal strength indicator in dBm for received frames.
359
of file include/openthread/platform/radio.h
mLqi#
uint8_t otRadioFrame::mLqi
Link Quality Indicator for received frames.
360
of file include/openthread/platform/radio.h
mAckedWithFramePending#
bool otRadioFrame::mAckedWithFramePending
This indicates if this frame was acknowledged with frame pending set.
363
of file include/openthread/platform/radio.h
mAckedWithSecEnhAck#
bool otRadioFrame::mAckedWithSecEnhAck
This indicates if this frame was acknowledged with secured enhance ACK.
364
of file include/openthread/platform/radio.h
mRxInfo#
struct otRadioFrame::@17::@19 otRadioFrame::mRxInfo
Structure representing radio frame receive information.
365
of file include/openthread/platform/radio.h
mInfo#
union otRadioFrame::@17 otRadioFrame::mInfo
The union of transmit and receive information for a radio frame.
366
of file include/openthread/platform/radio.h