#[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

source

pub fn mIsHeaderUpdated(&self) -> bool

source

pub fn set_mIsHeaderUpdated(&mut self, val: bool)

source

pub fn mIsARetx(&self) -> bool

source

pub fn set_mIsARetx(&mut self, val: bool)

source

pub fn mCsmaCaEnabled(&self) -> bool

source

pub fn set_mCsmaCaEnabled(&mut self, val: bool)

source

pub fn mCslPresent(&self) -> bool

source

pub fn set_mCslPresent(&mut self, val: bool)

source

pub fn mIsSecurityProcessed(&self) -> bool

source

pub fn set_mIsSecurityProcessed(&mut self, val: bool)

source

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

source§

fn clone(&self) -> otRadioFrame__bindgen_ty_1__bindgen_ty_1

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for otRadioFrame__bindgen_ty_1__bindgen_ty_1

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for otRadioFrame__bindgen_ty_1__bindgen_ty_1

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl Copy for otRadioFrame__bindgen_ty_1__bindgen_ty_1

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.