pub struct WlanFullmacRxRateIndexHistogram {
pub hist_scope: WlanFullmacHistScope,
pub antenna_id: WlanFullmacAntennaId,
pub rx_rate_index_samples: Vec<WlanFullmacHistBucket>,
pub invalid_samples: u64,
}
Expand description
Histogram for received data rate.
Fields§
§hist_scope: WlanFullmacHistScope
§antenna_id: WlanFullmacAntennaId
If hist_scope is PER_ANTENNA, antenna_id must be provided.
rx_rate_index_samples: Vec<WlanFullmacHistBucket>
Sparse histogram of count of received frames for each rate. Each sample’s bucket_index is an index into this lookup table: 0-3: B-MCS 0-3 4-11: G-MCS 0-7 12-27: N-MCS 0-15 (BW20) 28-43: N-MCS 0-15 (BW40) 44-59: N-MCS 0-15 (BW20:SGI) 60-75: N-MCS 0-15 (BW40:SGI) 76-85: AC-MCS 0-9 (VHT:BW20:NSS1) 86-95: AC-MCS 0-9 (VHT:BW20:NSS2) 96-105: AC-MCS 0-9 (VHT:BW40:NSS1) 106-115: AC-MCS 0-9 (VHT:BW40:NSS2) 116-125: AC-MCS 0-9 (VHT:BW80:NSS1) 126-135: AC-MCS 0-9 (VHT:BW80:NSS2) 136-145: AC-MCS 0-9 (VHT:BW20:NSS1:SGI) 146-155: AC-MCS 0-9 (VHT:BW20:NSS2:SGI) 156-165: AC-MCS 0-9 (VHT:BW40:NSS1:SGI) 166-175: AC-MCS 0-9 (VHT:BW40:NSS2:SGI) 176-185: AC-MCS 0-9 (VHT:BW80:NSS1:SGI) 186-195: AC-MCS 0-9 (VHT:BW80:NSS2:SGI)
For example, if rx_rate_index_samples contains a WlanFullmacHistBucket with bucket_index = 75 and num_samples = 50, that means there were 50 frames counted that had a rate corresponding to N-MCS 15 (BW40:SGI).
invalid_samples: u64
Count of invalid samples encountered, if any.
Trait Implementations§
Source§impl Clone for WlanFullmacRxRateIndexHistogram
impl Clone for WlanFullmacRxRateIndexHistogram
Source§fn clone(&self) -> WlanFullmacRxRateIndexHistogram
fn clone(&self) -> WlanFullmacRxRateIndexHistogram
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<D: ResourceDialect> Decode<WlanFullmacRxRateIndexHistogram, D> for WlanFullmacRxRateIndexHistogram
impl<D: ResourceDialect> Decode<WlanFullmacRxRateIndexHistogram, D> for WlanFullmacRxRateIndexHistogram
Source§impl<D: ResourceDialect> Encode<WlanFullmacRxRateIndexHistogram, D> for &WlanFullmacRxRateIndexHistogram
impl<D: ResourceDialect> Encode<WlanFullmacRxRateIndexHistogram, D> for &WlanFullmacRxRateIndexHistogram
Source§impl<D: ResourceDialect, T0: Encode<WlanFullmacHistScope, D>, T1: Encode<WlanFullmacAntennaId, D>, T2: Encode<Vector<WlanFullmacHistBucket, 196>, D>, T3: Encode<u64, D>> Encode<WlanFullmacRxRateIndexHistogram, D> for (T0, T1, T2, T3)
impl<D: ResourceDialect, T0: Encode<WlanFullmacHistScope, D>, T1: Encode<WlanFullmacAntennaId, D>, T2: Encode<Vector<WlanFullmacHistBucket, 196>, D>, T3: Encode<u64, D>> Encode<WlanFullmacRxRateIndexHistogram, D> for (T0, T1, T2, T3)
Source§impl Ord for WlanFullmacRxRateIndexHistogram
impl Ord for WlanFullmacRxRateIndexHistogram
Source§fn cmp(&self, other: &WlanFullmacRxRateIndexHistogram) -> Ordering
fn cmp(&self, other: &WlanFullmacRxRateIndexHistogram) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for WlanFullmacRxRateIndexHistogram
impl PartialEq for WlanFullmacRxRateIndexHistogram
Source§fn eq(&self, other: &WlanFullmacRxRateIndexHistogram) -> bool
fn eq(&self, other: &WlanFullmacRxRateIndexHistogram) -> bool
self
and other
values to be equal, and is used by ==
.Source§impl PartialOrd for WlanFullmacRxRateIndexHistogram
impl PartialOrd for WlanFullmacRxRateIndexHistogram
Source§impl TypeMarker for WlanFullmacRxRateIndexHistogram
impl TypeMarker for WlanFullmacRxRateIndexHistogram
Source§type Owned = WlanFullmacRxRateIndexHistogram
type Owned = WlanFullmacRxRateIndexHistogram
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.Source§impl ValueTypeMarker for WlanFullmacRxRateIndexHistogram
impl ValueTypeMarker for WlanFullmacRxRateIndexHistogram
Source§type Borrowed<'a> = &'a WlanFullmacRxRateIndexHistogram
type Borrowed<'a> = &'a WlanFullmacRxRateIndexHistogram
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Eq for WlanFullmacRxRateIndexHistogram
impl Persistable for WlanFullmacRxRateIndexHistogram
impl StructuralPartialEq for WlanFullmacRxRateIndexHistogram
Auto Trait Implementations§
impl Freeze for WlanFullmacRxRateIndexHistogram
impl RefUnwindSafe for WlanFullmacRxRateIndexHistogram
impl Send for WlanFullmacRxRateIndexHistogram
impl Sync for WlanFullmacRxRateIndexHistogram
impl Unpin for WlanFullmacRxRateIndexHistogram
impl UnwindSafe for WlanFullmacRxRateIndexHistogram
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
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
)