Struct otRadioFrame__bindgen_ty_1__bindgen_ty_1

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

Source

pub fn mIsHeaderUpdated(&self) -> bool

Source

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

Source

pub unsafe fn mIsHeaderUpdated_raw(this: *const Self) -> bool

Source

pub unsafe fn set_mIsHeaderUpdated_raw(this: *mut Self, val: bool)

Source

pub fn mIsARetx(&self) -> bool

Source

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

Source

pub unsafe fn mIsARetx_raw(this: *const Self) -> bool

Source

pub unsafe fn set_mIsARetx_raw(this: *mut Self, val: bool)

Source

pub fn mCsmaCaEnabled(&self) -> bool

Source

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

Source

pub unsafe fn mCsmaCaEnabled_raw(this: *const Self) -> bool

Source

pub unsafe fn set_mCsmaCaEnabled_raw(this: *mut Self, val: bool)

Source

pub fn mCslPresent(&self) -> bool

Source

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

Source

pub unsafe fn mCslPresent_raw(this: *const Self) -> bool

Source

pub unsafe fn set_mCslPresent_raw(this: *mut Self, val: bool)

Source

pub fn mIsSecurityProcessed(&self) -> bool

Source

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

Source

pub unsafe fn mIsSecurityProcessed_raw(this: *const Self) -> bool

Source

pub unsafe fn set_mIsSecurityProcessed_raw(this: *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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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,

Source§

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>,

Source§

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>,

Source§

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.