#[repr(C)]pub struct otRadioFrame__bindgen_ty_1__bindgen_ty_1 {
pub mAesKey: *const otMacKeyMaterial,
pub mIeInfo: *mut otRadioIeInfo,
pub mTxDelayBaseTime: u32,
pub mTxDelay: u32,
pub mMaxCsmaBackoffs: u8,
pub mMaxFrameRetries: u8,
pub mRxChannelAfterTxDone: u8,
pub mTxPower: i8,
pub _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1]>,
pub mTimestamp: u64,
}
Expand description
Structure representing radio frame transmit information.
Fields§
§mAesKey: *const otMacKeyMaterial
< The key material used for AES-CCM frame security.
mIeInfo: *mut otRadioIeInfo
< The pointer to the Header IE(s) related information.
mTxDelayBaseTime: u32
The base time in microseconds for scheduled transmissions
relative to the local radio clock, see otPlatRadioGetNow
and
mTxDelay
.
If this field is non-zero, mMaxCsmaBackoffs
should be ignored.
This field does not affect CCA behavior which is controlled by mCsmaCaEnabled
.
mTxDelay: u32
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.
If this field is non-zero, mMaxCsmaBackoffs
should be ignored.
This field does not affect CCA behavior which is controlled by mCsmaCaEnabled
.
mMaxCsmaBackoffs: u8
Maximum number of CSMA backoff attempts before declaring channel access failure.
This is applicable and MUST be used when radio platform provides the OT_RADIO_CAPS_CSMA_BACKOFF
and/or
OT_RADIO_CAPS_TRANSMIT_RETRIES
.
This field MUST be ignored if mCsmaCaEnabled
is set to false
(CCA is disabled) or
either mTxDelayBaseTime
or mTxDelay
is non-zero (frame transmission is expected at a specific time).
It can be set to 0
to skip backoff mechanism (note that CCA MUST still be performed assuming
mCsmaCaEnabled
is true
).
mMaxFrameRetries: u8
< Maximum number of retries allowed after a transmission failure.
mRxChannelAfterTxDone: u8
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.
mTxPower: i8
The transmit power in dBm.
If the platform layer does not provide OT_RADIO_CAPS_TRANSMIT_FRAME_POWER
capability, it can ignore
this value.
If the value is OT_RADIO_POWER_INVALID, then the platform should ignore this value and transmit the frame with its default transmit power.
Otherwise, the platform should transmit this frame with the maximum power no larger than minimal of the following values: 1. mTxPower, 2. The power limit set by otPlatRadioSetChannelTargetPower(), 3. The power limit set by otPlatRadioSetChannelMaxTransmitPower(), 4. The power limit set by otPlatRadioSetRegion().
_bitfield_align_1: [u8; 0]
§_bitfield_1: __BindgenBitfieldUnit<[u8; 1]>
§mTimestamp: u64
The time of the local radio clock in microseconds when the end of the SFD was present at the local antenna.
The platform should update this field before otPlatRadioTxStarted() is fired for each transmit attempt.
Implementations§
Source§impl otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl otRadioFrame__bindgen_ty_1__bindgen_ty_1
pub fn mIsHeaderUpdated(&self) -> bool
pub fn set_mIsHeaderUpdated(&mut self, val: bool)
pub unsafe fn mIsHeaderUpdated_raw(this: *const Self) -> bool
pub unsafe fn set_mIsHeaderUpdated_raw(this: *mut Self, val: bool)
pub fn mIsARetx(&self) -> bool
pub fn set_mIsARetx(&mut self, val: bool)
pub unsafe fn mIsARetx_raw(this: *const Self) -> bool
pub unsafe fn set_mIsARetx_raw(this: *mut Self, val: bool)
pub fn mCsmaCaEnabled(&self) -> bool
pub fn set_mCsmaCaEnabled(&mut self, val: bool)
pub unsafe fn mCsmaCaEnabled_raw(this: *const Self) -> bool
pub unsafe fn set_mCsmaCaEnabled_raw(this: *mut Self, val: bool)
pub fn mCslPresent(&self) -> bool
pub fn set_mCslPresent(&mut self, val: bool)
pub unsafe fn mCslPresent_raw(this: *const Self) -> bool
pub unsafe fn set_mCslPresent_raw(this: *mut Self, val: bool)
pub fn mIsSecurityProcessed(&self) -> bool
pub fn set_mIsSecurityProcessed(&mut self, val: bool)
pub unsafe fn mIsSecurityProcessed_raw(this: *const Self) -> bool
pub unsafe fn set_mIsSecurityProcessed_raw(this: *mut Self, val: bool)
pub fn new_bitfield_1( mIsHeaderUpdated: bool, mIsARetx: bool, mCsmaCaEnabled: bool, mCslPresent: bool, mIsSecurityProcessed: bool, ) -> __BindgenBitfieldUnit<[u8; 1]>
Trait Implementations§
Source§impl Clone for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl Clone for otRadioFrame__bindgen_ty_1__bindgen_ty_1
Source§fn clone(&self) -> otRadioFrame__bindgen_ty_1__bindgen_ty_1
fn clone(&self) -> otRadioFrame__bindgen_ty_1__bindgen_ty_1
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more