Type Alias IpLinkDeviceState

Source
pub type IpLinkDeviceState<T, BT> = IpLinkDeviceStateInner<<T as DeviceStateSpec>::State<BT>, BT>;
Expand description

A convenience wrapper around IpLinkDeviceStateInner that uses DeviceStateSpec to extract the link state type and make type signatures shorter.

Aliased Type§

struct IpLinkDeviceState<T, BT> {
    pub ip: DualStackIpDeviceState<BT>,
    pub link: <T as DeviceStateSpec>::State<BT>,
    pub counters: DeviceCounters,
    /* private fields */
}

Fields§

§ip: DualStackIpDeviceState<BT>

The device’s IP state.

§link: <T as DeviceStateSpec>::State<BT>

The device’s link state.

§counters: DeviceCounters

Common device counters.

Implementations

Source§

impl<T, BC: DeviceLayerTypes + TimerContext> IpLinkDeviceStateInner<T, BC>

Source

pub fn new<D: WeakDeviceIdentifier, A: IpAddressIdSpec, CC: CoreTimerContext<IpDeviceTimerId<Ipv6, D, A>, BC> + CoreTimerContext<IpDeviceTimerId<Ipv4, D, A>, BC>>( bindings_ctx: &mut BC, device_id: D, link: T, metric: RawMetric, origin: OriginTracker, ) -> Self

Create a new IpLinkDeviceState with a link-specific state link.

Trait Implementations§

Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<ArpState<EthernetLinkDevice, BT>> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = Mutex<ArpState<EthernetLinkDevice, BT>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DequeueState<<BT as TxMetadataBindingsTypes>::TxMetadata, Buf<Vec<u8>>>> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = Mutex<DequeueState<<BT as TxMetadataBindingsTypes>::TxMetadata, Buf<Vec<u8>>>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DequeueState<LoopbackRxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>> for IpLinkDeviceState<LoopbackDevice, BT>

Source§

type Lock = Mutex<DequeueState<LoopbackRxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DequeueState<LoopbackTxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>> for IpLinkDeviceState<LoopbackDevice, BT>

Source§

type Lock = Mutex<DequeueState<LoopbackTxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DequeueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>>> for IpLinkDeviceState<PureIpDevice, BT>

Source§

type Lock = Mutex<DequeueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DynamicEthernetDeviceState> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = RwLock<DynamicEthernetDeviceState>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<DynamicPureIpDeviceState> for IpLinkDeviceState<PureIpDevice, BT>

Source§

type Lock = RwLock<DynamicPureIpDeviceState>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes, I: Ip> OrderedLockAccess<IpMarked<I, NudUserConfig>> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = RwLock<IpMarked<I, NudUserConfig>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<NudState<Ipv6, EthernetLinkDevice, BT>> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = Mutex<NudState<Ipv6, EthernetLinkDevice, BT>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<ReceiveQueueState<LoopbackRxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>> for IpLinkDeviceState<LoopbackDevice, BT>

Source§

type Lock = Mutex<ReceiveQueueState<LoopbackRxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<TransmitQueueState<<BT as TxMetadataBindingsTypes>::TxMetadata, Buf<Vec<u8>>, BufVecU8Allocator>> for IpLinkDeviceState<EthernetLinkDevice, BT>

Source§

type Lock = Mutex<TransmitQueueState<<BT as TxMetadataBindingsTypes>::TxMetadata, Buf<Vec<u8>>, BufVecU8Allocator>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<TransmitQueueState<LoopbackTxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>, BufVecU8Allocator>> for IpLinkDeviceState<LoopbackDevice, BT>

Source§

type Lock = Mutex<TransmitQueueState<LoopbackTxQueueMeta<WeakDeviceId<BT>, BT>, Buf<Vec<u8>>, BufVecU8Allocator>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<TransmitQueueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>, BufVecU8Allocator>> for IpLinkDeviceState<PureIpDevice, BT>

Source§

type Lock = Mutex<TransmitQueueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>, BufVecU8Allocator>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more
Source§

impl<T, BT: DeviceLayerTypes> AsRef<DualStackIpDeviceState<BT>> for IpLinkDeviceStateInner<T, BT>

Source§

fn as_ref(&self) -> &DualStackIpDeviceState<BT>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<T, BT: DeviceLayerTypes> OrderedLockAccess<DeviceSockets<WeakDeviceId<BT>, BT>> for IpLinkDeviceStateInner<T, BT>

Source§

type Lock = RwLock<DeviceSockets<WeakDeviceId<BT>, BT>>

The lock type that observes ordering. Read more
Source§

fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>

Returns a borrow to the order-aware lock. Read more