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: u64Count 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 (const: unstable) · 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> Decode<RxRateIndexHistogram, D> for RxRateIndexHistogramwhere
D: ResourceDialect,
impl<D> Decode<RxRateIndexHistogram, D> for RxRateIndexHistogramwhere
D: ResourceDialect,
Source§fn new_empty() -> RxRateIndexHistogram
fn new_empty() -> RxRateIndexHistogram
Self. The specific value does not matter,
since it will be overwritten by decode.Source§impl<D> Encode<RxRateIndexHistogram, D> for &RxRateIndexHistogramwhere
D: ResourceDialect,
impl<D> Encode<RxRateIndexHistogram, D> for &RxRateIndexHistogramwhere
D: ResourceDialect,
impl Eq for RxRateIndexHistogram
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 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
1.21.0 (const: unstable) · Source§fn min(self, other: Self) -> Selfwhere
Self: Sized,
fn min(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for RxRateIndexHistogram
impl PartialEq for RxRateIndexHistogram
Source§impl PartialOrd for RxRateIndexHistogram
impl PartialOrd for RxRateIndexHistogram
impl Persistable for RxRateIndexHistogram
impl StructuralPartialEq 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.Source§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 moreSource§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 moreSource§fn borrow(
value: &<RxRateIndexHistogram as TypeMarker>::Owned,
) -> <RxRateIndexHistogram as ValueTypeMarker>::Borrowed<'_>
fn borrow( value: &<RxRateIndexHistogram as TypeMarker>::Owned, ) -> <RxRateIndexHistogram as ValueTypeMarker>::Borrowed<'_>
&Self::Owned to Self::Borrowed.