pub struct IterableQstats<'a> { /* private fields */ }netdev only.Implementations§
Source§impl<'a> IterableQstats<'a>
impl<'a> IterableQstats<'a>
Sourcepub fn get_ifindex(&self) -> Result<u32, ErrorContext>
pub fn get_ifindex(&self) -> Result<u32, ErrorContext>
ifindex of the netdevice to which stats belong.
Sourcepub fn get_queue_type(&self) -> Result<u32, ErrorContext>
pub fn get_queue_type(&self) -> Result<u32, ErrorContext>
Queue type as rx, tx, for queue-id.
Associated type: QueueType (enum)
Sourcepub fn get_queue_id(&self) -> Result<u32, ErrorContext>
pub fn get_queue_id(&self) -> Result<u32, ErrorContext>
Queue ID, if stats are scoped to a single queue instance.
Sourcepub fn get_scope(&self) -> Result<u32, ErrorContext>
pub fn get_scope(&self) -> Result<u32, ErrorContext>
What object type should be used to iterate over the stats.
Associated type: QstatsScope (enum)
Sourcepub fn get_rx_packets(&self) -> Result<u32, ErrorContext>
pub fn get_rx_packets(&self) -> Result<u32, ErrorContext>
Number of wire packets successfully received and passed to the stack. For drivers supporting XDP, XDP is considered the first layer of the stack, so packets consumed by XDP are still counted here.
Sourcepub fn get_rx_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_rx_bytes(&self) -> Result<u32, ErrorContext>
Successfully received bytes, see `rx-packets`.
Sourcepub fn get_tx_packets(&self) -> Result<u32, ErrorContext>
pub fn get_tx_packets(&self) -> Result<u32, ErrorContext>
Number of wire packets successfully sent. Packet is considered to be successfully sent once it is in device memory (usually this means the device has issued a DMA completion for the packet).
Sourcepub fn get_tx_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_tx_bytes(&self) -> Result<u32, ErrorContext>
Successfully sent bytes, see `tx-packets`.
Sourcepub fn get_rx_alloc_fail(&self) -> Result<u32, ErrorContext>
pub fn get_rx_alloc_fail(&self) -> Result<u32, ErrorContext>
Number of times skb or buffer allocation failed on the Rx datapath. Allocation failure may, or may not result in a packet drop, depending on driver implementation and whether system recovers quickly.
Sourcepub fn get_rx_hw_drops(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_drops(&self) -> Result<u32, ErrorContext>
Number of all packets which entered the device, but never left it, including but not limited to: packets dropped due to lack of buffer space, processing errors, explicit or implicit policies and packet filters.
Sourcepub fn get_rx_hw_drop_overruns(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_drop_overruns(&self) -> Result<u32, ErrorContext>
Number of packets dropped due to transient lack of resources, such as buffer space, host descriptors etc.
Sourcepub fn get_rx_csum_complete(&self) -> Result<u32, ErrorContext>
pub fn get_rx_csum_complete(&self) -> Result<u32, ErrorContext>
Number of packets that were marked as CHECKSUM_COMPLETE.
Sourcepub fn get_rx_csum_unnecessary(&self) -> Result<u32, ErrorContext>
pub fn get_rx_csum_unnecessary(&self) -> Result<u32, ErrorContext>
Number of packets that were marked as CHECKSUM_UNNECESSARY.
Sourcepub fn get_rx_csum_none(&self) -> Result<u32, ErrorContext>
pub fn get_rx_csum_none(&self) -> Result<u32, ErrorContext>
Number of packets that were not checksummed by device.
Sourcepub fn get_rx_csum_bad(&self) -> Result<u32, ErrorContext>
pub fn get_rx_csum_bad(&self) -> Result<u32, ErrorContext>
Number of packets with bad checksum. The packets are not discarded, but still delivered to the stack.
Sourcepub fn get_rx_hw_gro_packets(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_gro_packets(&self) -> Result<u32, ErrorContext>
Number of packets that were coalesced from smaller packets by the device. Counts only packets coalesced with the HW-GRO netdevice feature, LRO-coalesced packets are not counted.
Sourcepub fn get_rx_hw_gro_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_gro_bytes(&self) -> Result<u32, ErrorContext>
See `rx-hw-gro-packets`.
Sourcepub fn get_rx_hw_gro_wire_packets(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_gro_wire_packets(&self) -> Result<u32, ErrorContext>
Number of packets that were coalesced to bigger packetss with the HW-GRO netdevice feature. LRO-coalesced packets are not counted.
Sourcepub fn get_rx_hw_gro_wire_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_gro_wire_bytes(&self) -> Result<u32, ErrorContext>
See `rx-hw-gro-wire-packets`.
Sourcepub fn get_rx_hw_drop_ratelimits(&self) -> Result<u32, ErrorContext>
pub fn get_rx_hw_drop_ratelimits(&self) -> Result<u32, ErrorContext>
Number of the packets dropped by the device due to the received packets bitrate exceeding the device rate limit.
Sourcepub fn get_tx_hw_drops(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_drops(&self) -> Result<u32, ErrorContext>
Number of packets that arrived at the device but never left it, encompassing packets dropped for reasons such as processing errors, as well as those affected by explicitly defined policies and packet filtering criteria.
Sourcepub fn get_tx_hw_drop_errors(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_drop_errors(&self) -> Result<u32, ErrorContext>
Number of packets dropped because they were invalid or malformed.
Sourcepub fn get_tx_csum_none(&self) -> Result<u32, ErrorContext>
pub fn get_tx_csum_none(&self) -> Result<u32, ErrorContext>
Number of packets that did not require the device to calculate the checksum.
Sourcepub fn get_tx_needs_csum(&self) -> Result<u32, ErrorContext>
pub fn get_tx_needs_csum(&self) -> Result<u32, ErrorContext>
Number of packets that required the device to calculate the checksum. This counter includes the number of GSO wire packets for which device calculated the L4 checksum.
Sourcepub fn get_tx_hw_gso_packets(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_gso_packets(&self) -> Result<u32, ErrorContext>
Number of packets that necessitated segmentation into smaller packets by the device.
Sourcepub fn get_tx_hw_gso_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_gso_bytes(&self) -> Result<u32, ErrorContext>
See `tx-hw-gso-packets`.
Sourcepub fn get_tx_hw_gso_wire_packets(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_gso_wire_packets(&self) -> Result<u32, ErrorContext>
Number of wire-sized packets generated by processing `tx-hw-gso-packets`
Sourcepub fn get_tx_hw_gso_wire_bytes(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_gso_wire_bytes(&self) -> Result<u32, ErrorContext>
See `tx-hw-gso-wire-packets`.
Sourcepub fn get_tx_hw_drop_ratelimits(&self) -> Result<u32, ErrorContext>
pub fn get_tx_hw_drop_ratelimits(&self) -> Result<u32, ErrorContext>
Number of the packets dropped by the device due to the transmit packets bitrate exceeding the device rate limit.
Sourcepub fn get_tx_stop(&self) -> Result<u32, ErrorContext>
pub fn get_tx_stop(&self) -> Result<u32, ErrorContext>
Number of times driver paused accepting new tx packets from the stack to this queue, because the queue was full. Note that if BQL is supported and enabled on the device the networking stack will avoid queuing a lot of data at once.
Sourcepub fn get_tx_wake(&self) -> Result<u32, ErrorContext>
pub fn get_tx_wake(&self) -> Result<u32, ErrorContext>
Number of times driver re-started accepting send requests to this queue from the stack.
Trait Implementations§
Source§impl<'a> Clone for IterableQstats<'a>
impl<'a> Clone for IterableQstats<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IterableQstats<'_>
impl Debug for IterableQstats<'_>
Source§impl<'a> Default for IterableQstats<'a>
impl<'a> Default for IterableQstats<'a>
Source§impl<'a> Iterator for IterableQstats<'a>
impl<'a> Iterator for IterableQstats<'a>
Source§fn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
Source§fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self,
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk)N values. Read more1.0.0 · Source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
1.0.0 · Source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
1.0.0 · Source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
Source§fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
fn advance_by(&mut self, n: usize) -> Result<(), NonZero<usize>>
iter_advance_by)n elements. Read more1.0.0 · Source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
nth element of the iterator. Read more1.28.0 · Source§fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self> ⓘwhere
Self: Sized,
1.0.0 · Source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter> ⓘ
1.0.0 · Source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter> ⓘwhere
Self: Sized,
U: IntoIterator,
Source§fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
fn intersperse(self, separator: Self::Item) -> Intersperse<Self> ⓘ
iter_intersperse)separator between items
of the original iterator. Read moreSource§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G> ⓘ
iter_intersperse)separator
between items of the original iterator. Read more1.0.0 · Source§fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
fn map<B, F>(self, f: F) -> Map<Self, F> ⓘ
1.0.0 · Source§fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
fn filter<P>(self, predicate: P) -> Filter<Self, P> ⓘ
1.0.0 · Source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F> ⓘ
1.0.0 · Source§fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
fn enumerate(self) -> Enumerate<Self> ⓘwhere
Self: Sized,
1.0.0 · Source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P> ⓘ
1.0.0 · Source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P> ⓘ
1.57.0 · Source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P> ⓘ
1.0.0 · Source§fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
fn skip(self, n: usize) -> Skip<Self> ⓘwhere
Self: Sized,
n elements. Read more1.0.0 · Source§fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
fn take(self, n: usize) -> Take<Self> ⓘwhere
Self: Sized,
n elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · Source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F> ⓘ
1.29.0 · Source§fn flatten(self) -> Flatten<Self> ⓘ
fn flatten(self) -> Flatten<Self> ⓘ
Source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N> ⓘ
iter_map_windows)f for each contiguous window of size N over
self and returns an iterator over the outputs of f. Like slice::windows(),
the windows during mapping overlap as well. Read more1.0.0 · Source§fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
fn inspect<F>(self, f: F) -> Inspect<Self, F> ⓘ
1.0.0 · Source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
Iterator. Read moreSource§fn try_collect<B>(
&mut self,
) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
fn try_collect<B>( &mut self, ) -> <<Self::Item as Try>::Residual as Residual<B>>::TryType
iterator_try_collect)Source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into)1.0.0 · Source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
Source§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned)true precede all those that return false. Read more1.27.0 · Source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0 · Source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0 · Source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0 · Source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
Source§fn try_reduce<R>(
&mut self,
f: impl FnMut(Self::Item, Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<R>( &mut self, f: impl FnMut(Self::Item, Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce)1.0.0 · Source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 · Source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 · Source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
Source§fn try_find<R>(
&mut self,
f: impl FnMut(&Self::Item) -> R,
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<R>( &mut self, f: impl FnMut(&Self::Item) -> R, ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find)1.0.0 · Source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.0.0 · Source§fn max(self) -> Option<Self::Item>
fn max(self) -> Option<Self::Item>
1.0.0 · Source§fn min(self) -> Option<Self::Item>
fn min(self) -> Option<Self::Item>
1.6.0 · Source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · Source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 · Source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · Source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 · Source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 · Source§fn copied<'a, T>(self) -> Copied<Self> ⓘ
fn copied<'a, T>(self) -> Copied<Self> ⓘ
Source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N> ⓘwhere
Self: Sized,
iter_array_chunks)N elements of the iterator at a time. Read more1.11.0 · Source§fn product<P>(self) -> P
fn product<P>(self) -> P
Source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read more1.5.0 · Source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
PartialOrd elements of
this Iterator with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moreSource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by)Iterator with those
of another with respect to the specified comparison function. Read moreSource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by)1.5.0 · Source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator are lexicographically
less than those of another. Read more1.5.0 · Source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator are lexicographically
less or equal to those of another. Read more1.5.0 · Source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator are lexicographically
greater than those of another. Read more1.5.0 · Source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator are lexicographically
greater than or equal to those of another. Read more