[][src]Struct capsule::packets::icmp::v6::PacketTooBig

pub struct PacketTooBig<E: Ipv6Packet> { /* fields omitted */ }

Packet Too Big Message defined in IETF RFC 4443.

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Type      |     Code      |          Checksum             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             MTU                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    As much of invoking packet                 |
+               as possible without the ICMPv6 packet           +
|               exceeding the minimum IPv6 MTU [IPv6]           |
  • MTU: The Maximum Transmission Unit of the next-hop link.

Implementations

impl<E: Ipv6Packet> PacketTooBig<E>[src]

pub fn mtu(&self) -> u32[src]

Returns the MTU of the next-hop link.

pub fn set_mtu(&mut self, mtu: u32)[src]

Sets the MTU of the next-hop link.

pub fn data(&self) -> &[u8][src]

Returns the invoking packet as a u8 slice.

Trait Implementations

impl<E: Ipv6Packet> Debug for PacketTooBig<E>[src]

impl<E: Ipv6Packet> Icmpv6Message for PacketTooBig<E>[src]

type Envelope = E

The preceding packet type that encapsulates this message.

fn reconcile(&mut self)[src]

Reconciles the derivable header fields against the changes made to the packet.

  • the whole packet is truncated so it doesn't exceed the minimum IPv6 MTU.
  • checksum is computed based on the pseudo-header and the PacketTooBig message.

impl<E: Ipv6Packet> Icmpv6Packet for PacketTooBig<E>[src]

impl<E: Ipv6Packet> Packet for PacketTooBig<E>[src]

type Envelope = E

The preceding packet type that encapsulates this packet. Read more

Auto Trait Implementations

impl<E> RefUnwindSafe for PacketTooBig<E> where
    E: RefUnwindSafe

impl<E> !Send for PacketTooBig<E>

impl<E> !Sync for PacketTooBig<E>

impl<E> Unpin for PacketTooBig<E> where
    E: Unpin

impl<E> UnwindSafe for PacketTooBig<E> where
    E: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,