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>
impl<T, BC: DeviceLayerTypes + TimerContext> IpLinkDeviceStateInner<T, BC>
Sourcepub 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
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>
impl<BT: DeviceLayerTypes> OrderedLockAccess<ArpState<EthernetLinkDevice, BT>> for IpLinkDeviceState<EthernetLinkDevice, BT>
Source§type Lock = Mutex<ArpState<EthernetLinkDevice, BT>>
type Lock = Mutex<ArpState<EthernetLinkDevice, BT>>
The lock type that observes ordering. Read more
Source§fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
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>
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>>>>
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>
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>
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>>>>
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>
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>
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>>>>
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>
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>
impl<BT: DeviceLayerTypes> OrderedLockAccess<DequeueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>>> for IpLinkDeviceState<PureIpDevice, BT>
Source§type Lock = Mutex<DequeueState<PureIpDeviceTxQueueFrameMetadata<BT>, Buf<Vec<u8>>>>
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>
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>
impl<BT: DeviceLayerTypes> OrderedLockAccess<DynamicEthernetDeviceState> for IpLinkDeviceState<EthernetLinkDevice, BT>
Source§type Lock = RwLock<DynamicEthernetDeviceState>
type Lock = RwLock<DynamicEthernetDeviceState>
The lock type that observes ordering. Read more
Source§fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
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>
impl<BT: DeviceLayerTypes> OrderedLockAccess<DynamicPureIpDeviceState> for IpLinkDeviceState<PureIpDevice, BT>
Source§type Lock = RwLock<DynamicPureIpDeviceState>
type Lock = RwLock<DynamicPureIpDeviceState>
The lock type that observes ordering. Read more
Source§fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
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>
impl<BT: DeviceLayerTypes, I: Ip> OrderedLockAccess<IpMarked<I, NudUserConfig>> for IpLinkDeviceState<EthernetLinkDevice, BT>
Source§impl<BT: DeviceLayerTypes> OrderedLockAccess<NudState<Ipv6, EthernetLinkDevice, BT>> for IpLinkDeviceState<EthernetLinkDevice, BT>
impl<BT: DeviceLayerTypes> OrderedLockAccess<NudState<Ipv6, EthernetLinkDevice, BT>> for IpLinkDeviceState<EthernetLinkDevice, BT>
Source§type Lock = Mutex<NudState<Ipv6, EthernetLinkDevice, BT>>
type Lock = Mutex<NudState<Ipv6, EthernetLinkDevice, BT>>
The lock type that observes ordering. Read more
Source§fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
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>
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>>>>
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>
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>
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>>
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>
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>
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>>
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>
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>
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>>
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>
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>
impl<T, BT: DeviceLayerTypes> AsRef<DualStackIpDeviceState<BT>> for IpLinkDeviceStateInner<T, BT>
Source§impl<T, BT: DeviceLayerTypes> OrderedLockAccess<DeviceSockets<WeakDeviceId<BT>, BT>> for IpLinkDeviceStateInner<T, BT>
impl<T, BT: DeviceLayerTypes> OrderedLockAccess<DeviceSockets<WeakDeviceId<BT>, BT>> for IpLinkDeviceStateInner<T, BT>
Source§type Lock = RwLock<DeviceSockets<WeakDeviceId<BT>, BT>>
type Lock = RwLock<DeviceSockets<WeakDeviceId<BT>, BT>>
The lock type that observes ordering. Read more
Source§fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
fn ordered_lock_access(&self) -> OrderedLockRef<'_, Self::Lock>
Returns a borrow to the order-aware lock. Read more