otRadioFrame Struct Reference

This structure represents an IEEE 802.15.4 radio frame.

#include <include/openthread/platform/radio.h>

Public Attributes

uint8_t * mPsdu
 The PSDU.
 
uint16_t mLength
 Length of the PSDU.
 
uint8_t mChannel
 Channel used to transmit/receive the frame.
 
uint8_t mRadioType
 Radio link type - should be ignored by radio driver.
 
uint8_t mIid
 Interface Id for the radio packet.
 
union {
   struct {
      const otMacKeyMaterial *   mAesKey
 The key material used for AES-CCM frame security.
 
      otRadioIeInfo *   mIeInfo
 The pointer to the Header IE(s) related information.
 
      uint32_t   mTxDelay
 The delay time for this transmission (based on mTxDelayBaseTime).
 
      uint32_t   mTxDelayBaseTime
 The base time for the transmission delay.
 
      uint8_t   mMaxCsmaBackoffs
 Maximum number of backoffs attempts before declaring CCA failure.
 
      uint8_t   mMaxFrameRetries
 Maximum number of retries allowed after a transmission failure.
 
      bool   mIsHeaderUpdated: 1
 Indicates whether frame counter and CSL IEs are properly updated in the header.
 
      bool   mIsARetx: 1
 Indicates whether the frame is a retransmission or not.
 
      bool   mCsmaCaEnabled: 1
 Set to true to enable CSMA-CA for this packet, false otherwise.
 
      bool   mCslPresent: 1
 Set to true if CSL header IE is present.
 
      bool   mIsSecurityProcessed: 1
 True if SubMac should skip the AES processing of this frame.
 
   }   mTxInfo
 Structure representing radio frame transmit information.
 
   struct {
      uint64_t   mTimestamp
 The timestamp when the frame was received in microseconds.
 
      uint32_t   mAckFrameCounter
 ACK security frame counter (applicable when mAckedWithSecEnhAck is set).
 
      uint8_t   mAckKeyId
 ACK security key index (applicable when mAckedWithSecEnhAck is set).
 
      int8_t   mRssi
 Received signal strength indicator in dBm for received frames.
 
      uint8_t   mLqi
 Link Quality Indicator for received frames.
 
      bool   mAckedWithFramePending: 1
 This indicates if this frame was acknowledged with frame pending set.
 
      bool   mAckedWithSecEnhAck: 1
 This indicates if this frame was acknowledged with secured enhance ACK.
 
   }   mRxInfo
 Structure representing radio frame receive information.
 
mInfo
 The union of transmit and receive information for a radio frame.

This structure represents an IEEE 802.15.4 radio frame.

Member Data Documentation

◆ 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.

◆ 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 when TIME_SYNC or CSL is enabled. Otherwise, the time when the MAC frame was fully received is also acceptable.


The documentation for this struct was generated from the following file:
  • include/openthread/platform/radio.h