#[repr(C)]
pub struct IcmpDestUnreachable { /* private fields */ }
Expand description

An ICMP Destination Unreachable message.

Implementations§

source§

impl IcmpDestUnreachable

source

pub fn new_for_frag_req(mtu: NonZeroU16) -> Self

Create a new ICMP Destination Unreachable message for a message with Code = Fragmentation Required (4) which requires a next hop MTU value as defined in RFC 1191 section 4.

source

pub fn next_hop_mtu(&self) -> Option<NonZeroU16>

Get the Next Hop MTU value as defined in RFC 1191 section 4.

Note, this field is considered unused in all Destination Unreachable ICMP messages, except for ICMPv4 Destination Unreachable messages with Code = Fragmentation Required (4).

Trait Implementations§

source§

impl Clone for IcmpDestUnreachable

source§

fn clone(&self) -> IcmpDestUnreachable

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 IcmpDestUnreachable

source§

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

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

impl Default for IcmpDestUnreachable

source§

fn default() -> IcmpDestUnreachable

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

impl FromBytes for IcmpDestUnreachable
where [u8; 2]: FromBytes, U16: FromBytes,

§

fn ref_from(bytes: &[u8]) -> Option<&Self>
where Self: Sized + NoCell,

Interprets the given bytes as a &Self without copying. Read more
§

fn ref_from_prefix(bytes: &[u8]) -> Option<&Self>
where Self: Sized + NoCell,

Interprets the prefix of the given bytes as a &Self without copying. Read more
§

fn ref_from_suffix(bytes: &[u8]) -> Option<&Self>
where Self: Sized + NoCell,

Interprets the suffix of the given bytes as a &Self without copying. Read more
§

fn mut_from(bytes: &mut [u8]) -> Option<&mut Self>
where Self: Sized + IntoBytes + NoCell,

Interprets the given bytes as a &mut Self without copying. Read more
§

fn mut_from_prefix(bytes: &mut [u8]) -> Option<&mut Self>
where Self: Sized + IntoBytes + NoCell,

Interprets the prefix of the given bytes as a &mut Self without copying. Read more
§

fn mut_from_suffix(bytes: &mut [u8]) -> Option<&mut Self>
where Self: Sized + IntoBytes + NoCell,

Interprets the suffix of the given bytes as a &mut Self without copying. Read more
§

fn slice_from(bytes: &[u8]) -> Option<&[Self]>
where Self: Sized + NoCell,

Interprets the given bytes as a &[Self] without copying. Read more
§

fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>
where Self: Sized + NoCell,

Interprets the prefix of the given bytes as a &[Self] with length equal to count without copying. Read more
§

fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>
where Self: Sized + NoCell,

Interprets the suffix of the given bytes as a &[Self] with length equal to count without copying. Read more
§

fn mut_slice_from(bytes: &mut [u8]) -> Option<&mut [Self]>
where Self: Sized + IntoBytes + NoCell,

Interprets the given bytes as a &mut [Self] without copying. Read more
§

fn mut_slice_from_prefix( bytes: &mut [u8], count: usize ) -> Option<(&mut [Self], &mut [u8])>
where Self: Sized + IntoBytes + NoCell,

Interprets the prefix of the given bytes as a &mut [Self] with length equal to count without copying. Read more
§

fn mut_slice_from_suffix( bytes: &mut [u8], count: usize ) -> Option<(&mut [u8], &mut [Self])>
where Self: Sized + IntoBytes + NoCell,

Interprets the suffix of the given bytes as a &mut [Self] with length equal to count without copying. Read more
§

fn read_from(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from bytes. Read more
§

fn read_from_prefix(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from the prefix of bytes. Read more
§

fn read_from_suffix(bytes: &[u8]) -> Option<Self>
where Self: Sized,

Reads a copy of Self from the suffix of bytes. Read more
source§

impl FromZeros for IcmpDestUnreachable
where [u8; 2]: FromZeros, U16: FromZeros,

§

fn zero(&mut self)

Overwrites self with zeros. Read more
§

fn new_zeroed() -> Self
where Self: Sized,

Creates an instance of Self from zeroed bytes. Read more
source§

impl IcmpMessage<Ipv4> for IcmpDestUnreachable

source§

const EXPECTS_BODY: bool = true

Whether or not a message body is expected in an ICMP packet.
§

type Code = Icmpv4DestUnreachableCode

The type of codes used with this message. Read more
§

type Body<B: ByteSlice> = OriginalPacket<B>

The type of the body used with this message.
source§

const TYPE: <Ipv4 as IcmpIpExt>::IcmpMessageType = {transmute(0x01): <net_types::ip::Ipv4 as icmp::IcmpIpExt>::IcmpMessageType}

The type corresponding to this message type. Read more
source§

fn code_from_u8(u: u8) -> Option<Self::Code>

Parse a Code from an 8-bit number. Read more
source§

impl IcmpMessage<Ipv6> for IcmpDestUnreachable

source§

const EXPECTS_BODY: bool = true

Whether or not a message body is expected in an ICMP packet.
§

type Code = Icmpv6DestUnreachableCode

The type of codes used with this message. Read more
§

type Body<B: ByteSlice> = OriginalPacket<B>

The type of the body used with this message.
source§

const TYPE: <Ipv6 as IcmpIpExt>::IcmpMessageType = {transmute(0x00): <net_types::ip::Ipv6 as icmp::IcmpIpExt>::IcmpMessageType}

The type corresponding to this message type. Read more
source§

fn code_from_u8(u: u8) -> Option<Self::Code>

Parse a Code from an 8-bit number. Read more
source§

impl IntoBytes for IcmpDestUnreachable
where [u8; 2]: IntoBytes, U16: IntoBytes, HasPadding<IcmpDestUnreachable, { _ }>: ShouldBe<false>,

§

fn as_bytes(&self) -> &[u8]
where Self: NoCell,

Gets the bytes of this value. Read more
§

fn as_bytes_mut(&mut self) -> &mut [u8]
where Self: FromBytes + NoCell,

Gets the bytes of this value mutably. Read more
§

fn write_to(&self, bytes: &mut [u8]) -> Option<()>
where Self: NoCell,

Writes a copy of self to bytes. Read more
§

fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>
where Self: NoCell,

Writes a copy of self to the prefix of bytes. Read more
§

fn write_to_suffix(&self, bytes: &mut [u8]) -> Option<()>
where Self: NoCell,

Writes a copy of self to the suffix of bytes. Read more
source§

impl PartialEq for IcmpDestUnreachable

source§

fn eq(&self, other: &IcmpDestUnreachable) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for IcmpDestUnreachable

source§

impl Eq for IcmpDestUnreachable

source§

impl StructuralPartialEq for IcmpDestUnreachable

source§

impl Unaligned for IcmpDestUnreachable
where [u8; 2]: Unaligned, U16: Unaligned,

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where 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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where 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> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where 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 T
where 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.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more