#[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 _bitfield_align_1: [u8; 0],
pub _bitfield_1: __BindgenBitfieldUnit<[u8; 1]>,
pub __bindgen_padding_0: u32,
}
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
.
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.
mMaxCsmaBackoffs: u8
< Maximum number of backoffs attempts before declaring CCA failure.
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.
_bitfield_align_1: [u8; 0]
§_bitfield_1: __BindgenBitfieldUnit<[u8; 1]>
§__bindgen_padding_0: u32
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 fn mIsARetx(&self) -> bool
pub fn set_mIsARetx(&mut self, val: bool)
pub fn mCsmaCaEnabled(&self) -> bool
pub fn set_mCsmaCaEnabled(&mut self, val: bool)
pub fn mCslPresent(&self) -> bool
pub fn set_mCslPresent(&mut self, val: bool)
pub fn mIsSecurityProcessed(&self) -> bool
pub fn set_mIsSecurityProcessed(&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 moreimpl Copy for otRadioFrame__bindgen_ty_1__bindgen_ty_1
Auto Trait Implementations§
impl Freeze for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl RefUnwindSafe for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl !Send for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl !Sync for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl Unpin for otRadioFrame__bindgen_ty_1__bindgen_ty_1
impl UnwindSafe for otRadioFrame__bindgen_ty_1__bindgen_ty_1
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)