netstack3_ip

Trait IpLayerIpExt

Source
pub trait IpLayerIpExt:
    IpExt
    + MulticastRouteIpExt
    + IcmpHandlerIpExt
    + FilterIpExt
    + FragmentationIpExt
    + IpDeviceIpExt
    + IpAddressIdExt {
    type AddressStatus: Debug;
    type State<StrongDeviceId: StrongDeviceIdentifier, BT: IpLayerBindingsTypes>: AsRef<IpStateInner<Self, StrongDeviceId, BT>>;
    type PacketIdState;
    type PacketId;
    type RxCounters: Default + Inspectable;

    // Required method
    fn next_packet_id_from_state(state: &Self::PacketIdState) -> Self::PacketId;
}
Expand description

An extension trait providing IP layer properties.

Required Associated Types§

Source

type AddressStatus: Debug

IP Address status.

Source

type State<StrongDeviceId: StrongDeviceIdentifier, BT: IpLayerBindingsTypes>: AsRef<IpStateInner<Self, StrongDeviceId, BT>>

IP Address state.

Source

type PacketIdState

State kept for packet identifiers.

Source

type PacketId

The type of a single packet identifier.

Source

type RxCounters: Default + Inspectable

Receive counters.

Required Methods§

Source

fn next_packet_id_from_state(state: &Self::PacketIdState) -> Self::PacketId

Produces the next packet ID from the state.

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 IpLayerIpExt for Ipv4

Source§

type AddressStatus = Ipv4PresentAddressStatus

Source§

type State<StrongDeviceId: StrongDeviceIdentifier, BT: IpLayerBindingsTypes> = Ipv4State<StrongDeviceId, BT>

Source§

type PacketIdState = AtomicU16

Source§

type PacketId = u16

Source§

type RxCounters = Ipv4RxCounters

Source§

fn next_packet_id_from_state( next_packet_id: &Self::PacketIdState, ) -> Self::PacketId

Source§

impl IpLayerIpExt for Ipv6

Source§

type AddressStatus = Ipv6PresentAddressStatus

Source§

type State<StrongDeviceId: StrongDeviceIdentifier, BT: IpLayerBindingsTypes> = Ipv6State<StrongDeviceId, BT>

Source§

type PacketIdState = ()

Source§

type PacketId = ()

Source§

type RxCounters = Ipv6RxCounters

Source§

fn next_packet_id_from_state((): &Self::PacketIdState) -> Self::PacketId

Implementors§