#[non_exhaustive]
pub struct Capabilities { pub max_transmission_unit: usize, pub max_burst_size: Option<usize>, pub checksum: ChecksumCapabilities, }
Expand description

A description of device capabilities.

Higher-level protocols may achieve higher throughput or lower latency if they consider the bandwidth or packet size limitations.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§max_transmission_unit: usize

Maximum transmission unit.

The network device is unable to send or receive frames larger than the value returned by this function.

For Ethernet devices, this is the maximum Ethernet frame size, including the Ethernet header (14 octets), but not including the Ethernet FCS (4 octets). Therefore, Ethernet MTU = IP MTU + 14.

Note that in Linux and other OSes, “MTU” is the IP MTU, not the Ethernet MTU, even for Ethernet devices. This is a common source of confusion.

Most common IP MTU is 1500. Minimum is 576 (for IPv4) or 1280 (for IPv6). Maximum is 9216 octets.

§max_burst_size: Option<usize>

Maximum burst size, in terms of MTU.

The network device is unable to send or receive bursts large than the value returned by this function.

If None, there is no fixed limit on burst size, e.g. if network buffers are dynamically allocated.

§checksum: ChecksumCapabilities

Checksum behavior.

If the network device is capable of verifying or computing checksums for some protocols, it can request that the stack not do so in software to improve performance.

Trait Implementations§

source§

impl Clone for Capabilities

source§

fn clone(&self) -> Capabilities

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 Capabilities

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for Capabilities

source§

fn default() -> Capabilities

Returns the “default value” for a type. Read more
source§

impl Format for Capabilities

source§

fn format(&self, f: Formatter<'_>)

Writes the defmt representation of self to fmt.

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. 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 Twhere 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, U> TryFrom<U> for Twhere U: Into<T>,

§

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 Twhere U: TryFrom<T>,

§

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.