#[non_exhaustive]pub struct DeviceCapabilities {
pub medium: Medium,
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
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.medium: Medium
Medium of the device.
This indicates what kind of packet the sent/received bytes are, and determines some behaviors of Interface. For example, ARP/NDISC address resolution is only done for Ethernet mediums.
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.
Implementations§
Trait Implementations§
Source§impl Clone for DeviceCapabilities
impl Clone for DeviceCapabilities
Source§fn clone(&self) -> DeviceCapabilities
fn clone(&self) -> DeviceCapabilities
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for DeviceCapabilities
impl Debug for DeviceCapabilities
Source§impl Default for DeviceCapabilities
impl Default for DeviceCapabilities
Source§fn default() -> DeviceCapabilities
fn default() -> DeviceCapabilities
Auto Trait Implementations§
impl Freeze for DeviceCapabilities
impl RefUnwindSafe for DeviceCapabilities
impl Send for DeviceCapabilities
impl Sync for DeviceCapabilities
impl Unpin for DeviceCapabilities
impl UnwindSafe for DeviceCapabilities
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)