otRadioFrame

#include <radio.h>

表示 IEEE 802.15.4 无线电帧。

摘要

公共属性

mAckFrameCounter
uint32_t
ACK 安全帧计数器(在设置了 mAckedWithSecEnhAck 时适用)。
mAckKeyId
uint8_t
ACK 安全密钥索引(适用于设置了 mAckedWithSecEnhAck 的情况)。
mAckedWithFramePending
bool
这表示此帧是否已经过确认,且帧待处理已设置。
mAckedWithSecEnhAck
bool
这表示此帧是否通过安全增强 ACK 得到确认。
mAesKey
用于 AES-CCM 帧安全性的密钥材料。
mChannel
uint8_t
用于传输/接收帧的通道。
mCslPresent
bool
如果存在 CSL 标头 IE,则设置为 true。
mCsmaCaEnabled
bool
如果设置为 true,则为该数据包启用 CSMA-CA;否则,设置为 false。
mIeInfo
指向标头 IE 相关信息的指针。
mInfo
union otRadioFrame::@24
无线装置帧的发送和接收信息的集合。
mIsARetx
bool
指示该帧是否正在重新传输。
mIsHeaderUpdated
bool
指明标头中的帧计数器和 CSL IE 是否正确更新。
mIsSecurityProcessed
bool
如果 SubMac 应跳过该帧的 AES 处理,则为 true。
mLength
uint16_t
PSDU 的长度。
mLqi
uint8_t
已接收帧的链接质量指示器。
mMaxCsmaBackoffs
uint8_t
在声明 CCA 失败前的退避尝试次数上限。
mMaxFrameRetries
uint8_t
传输失败后允许的重试次数上限。
mPsdu
uint8_t *
PSDU。
mRadioType
uint8_t
电台链接类型 - 应由电台驱动程序忽略。
mRssi
int8_t
已接收帧的接收信号强度指示器(以 dBm 为单位)。
mRxChannelAfterTxDone
uint8_t
帧 TX 完成后(在所有帧重试后 - 收到确认、超时或中止后)的 RX 通道。
mRxInfo
struct otRadioFrame::@24::@26
表示无线装置帧接收信息的结构。
mTimestamp
uint64_t
当 SFD 的结尾出现在本地天线上时,本地无线电时钟的时间(以微秒为单位)。
mTxDelay
uint32_t
mTxDelayBaseTime 为参考的此传输的延迟时间(以微秒为单位)。
mTxDelayBaseTime
uint32_t
相对于本地无线装置时钟,计划传输的基本时间(以微秒为单位),请参阅 otPlatRadioGetNowmTxDelay
mTxInfo
struct otRadioFrame::@24::@25
表示无线电帧传输信息的结构。

公共属性

mAckFrameCounter

uint32_t otRadioFrame::mAckFrameCounter

ACK 安全帧计数器(在设置了 mAckedWithSecEnhAck 时适用)。

mAckKeyId

uint8_t otRadioFrame::mAckKeyId

ACK 安全密钥索引(适用于设置了 mAckedWithSecEnhAck 的情况)。

mAckedWithFramePending

bool otRadioFrame::mAckedWithFramePending

这表示此帧是否已经过确认,且帧待处理已设置。

mAckedWithSecEnhAck

bool otRadioFrame::mAckedWithSecEnhAck

这表示此帧是否通过安全增强 ACK 得到确认。

mAesKey

const otMacKeyMaterial * otRadioFrame::mAesKey

用于 AES-CCM 帧安全性的密钥材料。

mChannel

uint8_t otRadioFrame::mChannel

用于传输/接收帧的通道。

mCslPresent

bool otRadioFrame::mCslPresent

如果存在 CSL 标头 IE,则设置为 true。

mCsmaCaEnabled

bool otRadioFrame::mCsmaCaEnabled

如果设置为 true,则为该数据包启用 CSMA-CA;否则,设置为 false。

mIeInfo

otRadioIeInfo * otRadioFrame::mIeInfo

指向标头 IE 相关信息的指针。

mInfo

union otRadioFrame::@24 otRadioFrame::mInfo

无线装置帧的发送和接收信息的集合。

mIsARetx

bool otRadioFrame::mIsARetx

指示该帧是否正在重新传输。

mIsHeaderUpdated

bool otRadioFrame::mIsHeaderUpdated

指明标头中的帧计数器和 CSL IE 是否正确更新。

如果平台层未提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能,则可以忽略此标志。

如果平台提供 OT_RADIO_CAPS_TRANSMIT_SEC 功能,则平台应负责处理 tx 安全处理和帧计数器分配。在这种情况下,预期会出现以下情况:

如果设置了 mIsHeaderUpdated,则表示 OpenThread 核心已在准备好的帧中设置了帧计数器和 CSL IE(如果已启用安全功能)。计数器确保与同一帧之前尝试的计数器值一致。平台不应分配或更改帧计数器(但可能仍需要根据 mIsSecurityProcessed 标志执行安全处理)。

如果未设置 mIsHeaderUpdated,则 OpenThread 核心未在框架中设置的帧计数器和密钥 CSL IE,并由无线装置平台负责分配它们。在无线发送帧之前,平台必须先更新帧标头(分配计数器和 CSL IE 值),但是,如果传输被中止,而从不通过无线方式发送帧(例如,出现频道访问错误),平台可能会选择不更新标头。如果平台更新头文件,它还必须在从 otPlatRadioTxDone() 回调将帧传回之前设置此标志。

mIsSecurityProcessed

bool otRadioFrame::mIsSecurityProcessed

如果 SubMac 应跳过该帧的 AES 处理,则为 true。

mLength

uint16_t otRadioFrame::mLength

PSDU 的长度。

mLqi

uint8_t otRadioFrame::mLqi

已接收帧的链接质量指示器。

mMaxCsmaBackoffs

uint8_t otRadioFrame::mMaxCsmaBackoffs

在声明 CCA 失败前的退避尝试次数上限。

mMaxFrameRetries

uint8_t otRadioFrame::mMaxFrameRetries

传输失败后允许的重试次数上限。

mPsdu

uint8_t * otRadioFrame::mPsdu

PSDU。

mRadioType

uint8_t otRadioFrame::mRadioType

电台链接类型 - 应由电台驱动程序忽略。

mRssi

int8_t otRadioFrame::mRssi

已接收帧的接收信号强度指示器(以 dBm 为单位)。

mRxChannelAfterTxDone

uint8_t otRadioFrame::mRxChannelAfterTxDone

帧 TX 完成后(在所有帧重试后 - 收到确认、超时或中止后)的 RX 通道。

电台平台可以选择完全忽略此要求。OT 堆栈会确保在完成帧 TX 并在 otPlatRadioTxDone() 回调中发出信号后,使用所需的 RX 通道调用 otPlatRadioReceive()。不提供 OT_RADIO_CAPS_TRANSMIT_RETRIES 的电台平台必须始终忽略此消息。

这适用于 OT 栈和无线装置之间的交互可能存在延迟的情况。例如,在 RCP/主机架构中就是使用这种模型,以确保 RCP 更快地切换到 PAN 信道。特别值得一提的是,这有助于对昏昏欲睡的孩子进行 CSL Tx,因为对于此类孩子,可以使用与 PAN 渠道不同的 CSL 渠道。在帧 tx 之后,我们希望无线装置/RCP 快速返回到 PAN 信道,以确保父项之后不会错过来自子项的 tx,例如,子项使用 PAN 通道响应从父项传输的较早 CSL 的帧,而无线装置仍停留在 CSL 信道。

切换到 RX 通道必须在帧 TX 全部完成后,即在所有重试之后和收到确认时(在 TX 帧上设置“确认请求”标记时)或确认超时时进行。请注意,确认应在发送帧的通道上执行。

mRxInfo

struct otRadioFrame::@24::@26 otRadioFrame::mRxInfo

表示无线装置帧接收信息的结构。

mTimestamp

uint64_t otRadioFrame::mTimestamp

当 SFD 的结尾出现在本地天线上时,本地无线电时钟的时间(以微秒为单位)。

mTxDelay

uint32_t otRadioFrame::mTxDelay

mTxDelayBaseTime 为参考的此传输的延迟时间(以微秒为单位)。

注意:mTxDelayBaseTime + mTxDelay 应指向相对于本地无线电时钟,SFD 结束时将出现在本地天线上的时间点。

mTxDelayBaseTime

uint32_t otRadioFrame::mTxDelayBaseTime

相对于本地无线装置时钟,计划传输的基本时间(以微秒为单位),请参阅 otPlatRadioGetNowmTxDelay

mTxInfo

struct otRadioFrame::@24::@25 otRadioFrame::mTxInfo

表示无线电帧传输信息的结构。

资源

OpenThread API 参考文档源自 GitHub 上提供的源代码。如需了解详情,或者为我们的文档做贡献,请参阅资源