Trait netstack3_ip::IpLayerIpExt

source ·
pub trait IpLayerIpExt: IpExt + MulticastRouteIpExt + IcmpHandlerIpExt + FilterIpExt {
    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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl IpLayerIpExt for Ipv4

§

type AddressStatus = Ipv4PresentAddressStatus

§

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

§

type PacketIdState = AtomicU16

§

type PacketId = u16

§

type RxCounters = Ipv4RxCounters

source§

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

source§

impl IpLayerIpExt for Ipv6

§

type AddressStatus = Ipv6PresentAddressStatus

§

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

§

type PacketIdState = ()

§

type PacketId = ()

§

type RxCounters = Ipv6RxCounters

source§

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

Implementors§