pub struct RxRateIndexHistogram {
pub hist_scope: HistScope,
pub antenna_id: Option<Box<AntennaId>>,
pub rx_rate_index_samples: Vec<HistBucket>,
pub invalid_samples: u64,
}
Expand description
Histogram for received data rate.
Fields§
§hist_scope: HistScope
§antenna_id: Option<Box<AntennaId>>
If hist_scope is PER_ANTENNA, antenna_id must be provided.
rx_rate_index_samples: Vec<HistBucket>
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 HistBucket 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 RxRateIndexHistogram
impl Clone for RxRateIndexHistogram
Source§fn clone(&self) -> RxRateIndexHistogram
fn clone(&self) -> RxRateIndexHistogram
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for RxRateIndexHistogram
impl Debug for RxRateIndexHistogram
Source§impl<D: ResourceDialect> Decode<RxRateIndexHistogram, D> for RxRateIndexHistogram
impl<D: ResourceDialect> Decode<RxRateIndexHistogram, D> for RxRateIndexHistogram
Source§impl<D: ResourceDialect> Encode<RxRateIndexHistogram, D> for &RxRateIndexHistogram
impl<D: ResourceDialect> Encode<RxRateIndexHistogram, D> for &RxRateIndexHistogram
Source§impl<D: ResourceDialect, T0: Encode<HistScope, D>, T1: Encode<Boxed<AntennaId>, D>, T2: Encode<Vector<HistBucket, 196>, D>, T3: Encode<u64, D>> Encode<RxRateIndexHistogram, D> for (T0, T1, T2, T3)
impl<D: ResourceDialect, T0: Encode<HistScope, D>, T1: Encode<Boxed<AntennaId>, D>, T2: Encode<Vector<HistBucket, 196>, D>, T3: Encode<u64, D>> Encode<RxRateIndexHistogram, D> for (T0, T1, T2, T3)
Source§impl Hash for RxRateIndexHistogram
impl Hash for RxRateIndexHistogram
Source§impl Ord for RxRateIndexHistogram
impl Ord for RxRateIndexHistogram
Source§fn cmp(&self, other: &RxRateIndexHistogram) -> Ordering
fn cmp(&self, other: &RxRateIndexHistogram) -> 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 RxRateIndexHistogram
impl PartialEq for RxRateIndexHistogram
Source§impl PartialOrd for RxRateIndexHistogram
impl PartialOrd for RxRateIndexHistogram
Source§impl TypeMarker for RxRateIndexHistogram
impl TypeMarker for RxRateIndexHistogram
Source§type Owned = RxRateIndexHistogram
type Owned = RxRateIndexHistogram
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 RxRateIndexHistogram
impl ValueTypeMarker for RxRateIndexHistogram
Source§type Borrowed<'a> = &'a RxRateIndexHistogram
type Borrowed<'a> = &'a RxRateIndexHistogram
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read more