Enum netstack3_core::device::DeviceId
source · pub enum DeviceId<BT: DeviceLayerTypes> {
Ethernet(EthernetDeviceId<BT>),
Loopback(LoopbackDeviceId<BT>),
PureIp(PureIpDeviceId<BT>),
}
Expand description
A strong ID identifying a device.
Holders may safely assume that the underlying device is “alive” in the sense that the device is still recognized by the stack. That is, operations that use this device ID will never fail as a result of “unrecognized device”-like errors.
Variants§
Implementations§
source§impl<BT: DeviceLayerTypes> DeviceId<BT>
impl<BT: DeviceLayerTypes> DeviceId<BT>
sourcepub fn downgrade(&self) -> WeakDeviceId<BT>
pub fn downgrade(&self) -> WeakDeviceId<BT>
Downgrade to a WeakDeviceId
.
sourcepub fn bindings_id(&self) -> &BT::DeviceIdentifier
pub fn bindings_id(&self) -> &BT::DeviceIdentifier
Returns the bindings identifier associated with the device.
Trait Implementations§
source§impl DeviceSocketBindingsContext<DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
impl DeviceSocketBindingsContext<DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
source§fn receive_frame(
&self,
state: &Self::SocketState,
device: &DeviceId<Self>,
_frame: Frame<&[u8]>,
raw_frame: &[u8]
)
fn receive_frame( &self, state: &Self::SocketState, device: &DeviceId<Self>, _frame: Frame<&[u8]>, raw_frame: &[u8] )
Called for each received frame that matches the provided socket. Read more
source§impl<I: IpExt> IcmpEchoBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
impl<I: IpExt> IcmpEchoBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
source§fn receive_icmp_echo_reply<B: BufferMut>(
&mut self,
conn: &IcmpSocketId<I, WeakDeviceId<FakeBindingsCtx>, FakeBindingsCtx>,
_device: &DeviceId<Self>,
_src_ip: I::Addr,
_dst_ip: I::Addr,
_id: u16,
data: B
)
fn receive_icmp_echo_reply<B: BufferMut>( &mut self, conn: &IcmpSocketId<I, WeakDeviceId<FakeBindingsCtx>, FakeBindingsCtx>, _device: &DeviceId<Self>, _src_ip: I::Addr, _dst_ip: I::Addr, _id: u16, data: B )
Receives an ICMP echo reply.
source§impl<BT: DeviceLayerTypes> InterfaceProperties<<BT as FilterBindingsTypes>::DeviceClass> for DeviceId<BT>
impl<BT: DeviceLayerTypes> InterfaceProperties<<BT as FilterBindingsTypes>::DeviceClass> for DeviceId<BT>
source§fn id_matches(&self, id: &NonZeroU64) -> bool
fn id_matches(&self, id: &NonZeroU64) -> bool
Returns whether the provided ID matches the interface.
source§fn name_matches(&self, name: &str) -> bool
fn name_matches(&self, name: &str) -> bool
Returns whether the provided name matches the interface.
source§fn device_class_matches(&self, device_class: &BT::DeviceClass) -> bool
fn device_class_matches(&self, device_class: &BT::DeviceClass) -> bool
Returns whether the provided device class matches the interface.
source§impl<BT: DeviceLayerTypes> Ord for DeviceId<BT>
impl<BT: DeviceLayerTypes> Ord for DeviceId<BT>
source§impl<BT: DeviceLayerTypes> PartialEq<DeviceId<BT>> for WeakDeviceId<BT>
impl<BT: DeviceLayerTypes> PartialEq<DeviceId<BT>> for WeakDeviceId<BT>
source§impl<BT: DeviceLayerTypes> PartialEq<WeakDeviceId<BT>> for DeviceId<BT>
impl<BT: DeviceLayerTypes> PartialEq<WeakDeviceId<BT>> for DeviceId<BT>
source§fn eq(&self, other: &WeakDeviceId<BT>) -> bool
fn eq(&self, other: &WeakDeviceId<BT>) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl<BT: DeviceLayerTypes> PartialEq for DeviceId<BT>
impl<BT: DeviceLayerTypes> PartialEq for DeviceId<BT>
source§impl<BT: DeviceLayerTypes> PartialOrd for DeviceId<BT>
impl<BT: DeviceLayerTypes> PartialOrd for DeviceId<BT>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl<I: IpExt> UdpReceiveBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
impl<I: IpExt> UdpReceiveBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx
source§fn receive_udp<B: BufferMut>(
&mut self,
id: &UdpSocketId<I, WeakDeviceId<Self>, FakeBindingsCtx>,
_device: &DeviceId<Self>,
_dst_addr: (I::Addr, NonZeroU16),
_src_addr: (I::Addr, Option<NonZeroU16>),
body: &B
)
fn receive_udp<B: BufferMut>( &mut self, id: &UdpSocketId<I, WeakDeviceId<Self>, FakeBindingsCtx>, _device: &DeviceId<Self>, _dst_addr: (I::Addr, NonZeroU16), _src_addr: (I::Addr, Option<NonZeroU16>), body: &B )
Receives a UDP packet on a socket.
impl<BT: DeviceLayerTypes> Eq for DeviceId<BT>
Auto Trait Implementations§
impl<BT> RefUnwindSafe for DeviceId<BT>where
<BT as DeviceLayerStateTypes>::DeviceIdentifier: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::EthernetDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::LoopbackDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::PureIpDeviceState: RefUnwindSafe,
impl<BT> Send for DeviceId<BT>
impl<BT> Sync for DeviceId<BT>
impl<BT> Unpin for DeviceId<BT>
impl<BT> UnwindSafe for DeviceId<BT>where
<BT as DeviceLayerStateTypes>::DeviceIdentifier: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::EthernetDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::LoopbackDeviceState: RefUnwindSafe,
<BT as DeviceLayerStateTypes>::PureIpDeviceState: RefUnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more