Trait IpExt

Source
pub trait IpExt: EthernetIpExt + IcmpIpExt {
    type Packet<B: SplitByteSlice>: IpPacket<B, Self, Builder = Self::PacketBuilder> + GenericOverIp<Self, Type = Self::Packet<B>> + GenericOverIp<Ipv4, Type = Ipv4Packet<B>> + GenericOverIp<Ipv6, Type = Ipv6Packet<B>>;
    type PacketRaw<B: SplitByteSlice>: IpPacketRaw<B, Self> + GenericOverIp<Self, Type = Self::PacketRaw<B>> + GenericOverIp<Ipv4, Type = Ipv4PacketRaw<B>> + GenericOverIp<Ipv6, Type = Ipv6PacketRaw<B>>;
    type PacketBuilder: IpPacketBuilder<Self> + Eq;

    const MIN_HEADER_LENGTH: usize;
}
Expand description

An extension trait to the Ip trait adding associated types relevant for packet parsing and serialization.

Required Associated Constants§

Source

const MIN_HEADER_LENGTH: usize

Minimal IP header size.

Required Associated Types§

Source

type Packet<B: SplitByteSlice>: IpPacket<B, Self, Builder = Self::PacketBuilder> + GenericOverIp<Self, Type = Self::Packet<B>> + GenericOverIp<Ipv4, Type = Ipv4Packet<B>> + GenericOverIp<Ipv6, Type = Ipv6Packet<B>>

An IP packet type for this IP version.

Source

type PacketRaw<B: SplitByteSlice>: IpPacketRaw<B, Self> + GenericOverIp<Self, Type = Self::PacketRaw<B>> + GenericOverIp<Ipv4, Type = Ipv4PacketRaw<B>> + GenericOverIp<Ipv6, Type = Ipv6PacketRaw<B>>

A raw IP packet type for this IP version.

Source

type PacketBuilder: IpPacketBuilder<Self> + Eq

An IP packet builder type for the IP version.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl IpExt for Ipv4

Source§

const MIN_HEADER_LENGTH: usize = 20usize

Source§

type Packet<B: SplitByteSlice> = Ipv4Packet<B>

Source§

type PacketRaw<B: SplitByteSlice> = Ipv4PacketRaw<B>

Source§

type PacketBuilder = Ipv4PacketBuilder

Source§

impl IpExt for Ipv6

Source§

const MIN_HEADER_LENGTH: usize = 40usize

Source§

type Packet<B: SplitByteSlice> = Ipv6Packet<B>

Source§

type PacketRaw<B: SplitByteSlice> = Ipv6PacketRaw<B>

Source§

type PacketBuilder = Ipv6PacketBuilder

Implementors§