pub enum LoopbackDevice {}
Expand description
Loopback device domain.
Trait Implementations§
Source§impl Clone for LoopbackDevice
impl Clone for LoopbackDevice
Source§fn clone(&self) -> LoopbackDevice
fn clone(&self) -> LoopbackDevice
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<'a, BT, L> DeviceCollectionContext<LoopbackDevice, BT> for CoreCtx<'a, BT, L>where
BT: BindingsTypes,
L: LockBefore<DeviceLayerState>,
impl<'a, BT, L> DeviceCollectionContext<LoopbackDevice, BT> for CoreCtx<'a, BT, L>where
BT: BindingsTypes,
L: LockBefore<DeviceLayerState>,
Source§fn insert(&mut self, device: LoopbackPrimaryDeviceId<BT>)
fn insert(&mut self, device: LoopbackPrimaryDeviceId<BT>)
Adds
device
to the device collection.Source§fn remove(
&mut self,
device: &LoopbackDeviceId<BT>,
) -> Option<LoopbackPrimaryDeviceId<BT>>
fn remove( &mut self, device: &LoopbackDeviceId<BT>, ) -> Option<LoopbackPrimaryDeviceId<BT>>
Removes
device
from the collection, if it exists.Source§impl<'a, BT, L> DeviceConfigurationContext<LoopbackDevice> for CoreCtx<'a, BT, L>where
BT: BindingsTypes,
impl<'a, BT, L> DeviceConfigurationContext<LoopbackDevice> for CoreCtx<'a, BT, L>where
BT: BindingsTypes,
Source§fn with_nud_config<I: Ip, O, F: FnOnce(Option<&NudUserConfig>) -> O>(
&mut self,
_device_id: &Self::DeviceId,
f: F,
) -> O
fn with_nud_config<I: Ip, O, F: FnOnce(Option<&NudUserConfig>) -> O>( &mut self, _device_id: &Self::DeviceId, f: F, ) -> O
Calls the callback with a mutable reference to the NUD user
configuration for IP version
I
. Read moreSource§fn with_nud_config_mut<I: Ip, O, F: FnOnce(Option<&mut NudUserConfig>) -> O>(
&mut self,
_device_id: &Self::DeviceId,
f: F,
) -> O
fn with_nud_config_mut<I: Ip, O, F: FnOnce(Option<&mut NudUserConfig>) -> O>( &mut self, _device_id: &Self::DeviceId, f: F, ) -> O
Calls the callback with a mutable reference to the NUD user
configuration for IP version
I
. Read moreSource§impl<BT: BindingsTypes, L> DeviceIdContext<LoopbackDevice> for CoreCtx<'_, BT, L>
impl<BT: BindingsTypes, L> DeviceIdContext<LoopbackDevice> for CoreCtx<'_, BT, L>
Source§type DeviceId = BaseDeviceId<LoopbackDevice, BT>
type DeviceId = BaseDeviceId<LoopbackDevice, BT>
The type of device IDs.
Source§type WeakDeviceId = BaseWeakDeviceId<LoopbackDevice, BT>
type WeakDeviceId = BaseWeakDeviceId<LoopbackDevice, BT>
The type of weakly referenced device IDs.
Source§impl DeviceStateSpec for LoopbackDevice
impl DeviceStateSpec for LoopbackDevice
Source§const IS_LOOPBACK: bool = true
const IS_LOOPBACK: bool = true
Marker for loopback devices.
Source§const DEBUG_TYPE: &'static str = "Loopback"
const DEBUG_TYPE: &'static str = "Loopback"
Marker used to print debug information for device identifiers.
Source§type Link<BT: DeviceLayerTypes> = LoopbackDeviceState<WeakDeviceId<BT>>
type Link<BT: DeviceLayerTypes> = LoopbackDeviceState<WeakDeviceId<BT>>
The link state.
Source§type External<BT: DeviceLayerTypes> = <BT as DeviceLayerStateTypes>::LoopbackDeviceState
type External<BT: DeviceLayerTypes> = <BT as DeviceLayerStateTypes>::LoopbackDeviceState
The external (bindings) state.
Source§type CreationProperties = LoopbackCreationProperties
type CreationProperties = LoopbackCreationProperties
Properties given to device creation.
Source§type Counters = EthernetDeviceCounters
type Counters = EthernetDeviceCounters
Device-specific counters.
Source§type TimerId<D: WeakDeviceIdentifier> = Infallible
type TimerId<D: WeakDeviceIdentifier> = Infallible
The timer identifier required by this device state.
Source§fn new_link_state<CC, BC>(
_bindings_ctx: &mut BC,
_self_id: <CC as DeviceIdContext<LoopbackDevice>>::WeakDeviceId,
_: <LoopbackDevice as DeviceStateSpec>::CreationProperties,
) -> <LoopbackDevice as DeviceStateSpec>::Link<BC>where
CC: CoreTimerContext<<LoopbackDevice as DeviceStateSpec>::TimerId<<CC as DeviceIdContext<LoopbackDevice>>::WeakDeviceId>, BC> + DeviceIdContext<LoopbackDevice>,
BC: DeviceLayerTypes + TimerContext,
fn new_link_state<CC, BC>(
_bindings_ctx: &mut BC,
_self_id: <CC as DeviceIdContext<LoopbackDevice>>::WeakDeviceId,
_: <LoopbackDevice as DeviceStateSpec>::CreationProperties,
) -> <LoopbackDevice as DeviceStateSpec>::Link<BC>where
CC: CoreTimerContext<<LoopbackDevice as DeviceStateSpec>::TimerId<<CC as DeviceIdContext<LoopbackDevice>>::WeakDeviceId>, BC> + DeviceIdContext<LoopbackDevice>,
BC: DeviceLayerTypes + TimerContext,
Creates a new link state from the given properties.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackRxDequeue>> ReceiveDequeContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackRxDequeue>> ReceiveDequeContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§type ReceiveQueueCtx<'a> = Locked<&'a StackState<BC>, <LoopbackRxDequeue as WrappedLockLevel>::LockLevel>
type ReceiveQueueCtx<'a> = Locked<&'a StackState<BC>, <LoopbackRxDequeue as WrappedLockLevel>::LockLevel>
The inner dequeueing context.
Source§fn with_dequed_frames_and_rx_queue_ctx<O, F: FnOnce(&mut DequeueState<Self::Meta, Buf<Vec<u8>>>, &mut Self::ReceiveQueueCtx<'_>) -> O>(
&mut self,
device_id: &LoopbackDeviceId<BC>,
cb: F,
) -> O
fn with_dequed_frames_and_rx_queue_ctx<O, F: FnOnce(&mut DequeueState<Self::Meta, Buf<Vec<u8>>>, &mut Self::ReceiveQueueCtx<'_>) -> O>( &mut self, device_id: &LoopbackDeviceId<BC>, cb: F, ) -> O
Calls the function with the RX deque state and the RX queue context.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackRxQueue>> ReceiveQueueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackRxQueue>> ReceiveQueueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§fn with_receive_queue_mut<O, F: FnOnce(&mut ReceiveQueueState<Self::Meta, Self::Buffer>) -> O>(
&mut self,
device_id: &LoopbackDeviceId<BC>,
cb: F,
) -> O
fn with_receive_queue_mut<O, F: FnOnce(&mut ReceiveQueueState<Self::Meta, Self::Buffer>) -> O>( &mut self, device_id: &LoopbackDeviceId<BC>, cb: F, ) -> O
Calls the function with the RX queue state.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackRxQueue>> ReceiveQueueTypes<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackRxQueue>> ReceiveQueueTypes<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§type Meta = LoopbackRxQueueMeta<WeakDeviceId<BC>>
type Meta = LoopbackRxQueueMeta<WeakDeviceId<BC>>
Metadata associated with an RX frame.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackTxDequeue>> TransmitDequeueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackTxDequeue>> TransmitDequeueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§type TransmitQueueCtx<'a> = Locked<&'a StackState<BC>, <LoopbackTxDequeue as WrappedLockLevel>::LockLevel>
type TransmitQueueCtx<'a> = Locked<&'a StackState<BC>, <LoopbackTxDequeue as WrappedLockLevel>::LockLevel>
The inner context providing dequeuing.
Source§fn with_dequed_packets_and_tx_queue_ctx<O, F: FnOnce(&mut DequeueState<Self::Meta, Self::Buffer>, &mut Self::TransmitQueueCtx<'_>) -> O>(
&mut self,
device_id: &Self::DeviceId,
cb: F,
) -> O
fn with_dequed_packets_and_tx_queue_ctx<O, F: FnOnce(&mut DequeueState<Self::Meta, Self::Buffer>, &mut Self::TransmitQueueCtx<'_>) -> O>( &mut self, device_id: &Self::DeviceId, cb: F, ) -> O
Calls the function with the TX deque state and the TX queue context.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackTxQueue>> TransmitQueueCommon<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackTxQueue>> TransmitQueueCommon<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§type Meta = LoopbackTxQueueMeta<WeakDeviceId<BC>>
type Meta = LoopbackTxQueueMeta<WeakDeviceId<BC>>
The metadata associated with every packet in the queue.
Source§type Allocator = BufVecU8Allocator
type Allocator = BufVecU8Allocator
An allocator of
Self::Buffer
.Source§type DequeueContext = Infallible
type DequeueContext = Infallible
The context given to
send_frame
when dequeueing.Source§fn parse_outgoing_frame<'a, 'b>(
buf: &'a [u8],
_meta: &'b Self::Meta,
) -> Result<SentFrame<&'a [u8]>, ParseSentFrameError>
fn parse_outgoing_frame<'a, 'b>( buf: &'a [u8], _meta: &'b Self::Meta, ) -> Result<SentFrame<&'a [u8]>, ParseSentFrameError>
Parses an outgoing frame for packet socket delivery.
Source§impl<BC: BindingsContext, L: LockBefore<LoopbackTxQueue>> TransmitQueueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
impl<BC: BindingsContext, L: LockBefore<LoopbackTxQueue>> TransmitQueueContext<LoopbackDevice, BC> for CoreCtx<'_, BC, L>
Source§fn with_transmit_queue_mut<O, F: FnOnce(&mut TransmitQueueState<Self::Meta, Self::Buffer, Self::Allocator>) -> O>(
&mut self,
device_id: &LoopbackDeviceId<BC>,
cb: F,
) -> O
fn with_transmit_queue_mut<O, F: FnOnce(&mut TransmitQueueState<Self::Meta, Self::Buffer, Self::Allocator>) -> O>( &mut self, device_id: &LoopbackDeviceId<BC>, cb: F, ) -> O
Calls
cb
with mutable access to the queue state.Source§fn with_transmit_queue<O, F: FnOnce(&TransmitQueueState<Self::Meta, Self::Buffer, Self::Allocator>) -> O>(
&mut self,
device_id: &LoopbackDeviceId<BC>,
cb: F,
) -> O
fn with_transmit_queue<O, F: FnOnce(&TransmitQueueState<Self::Meta, Self::Buffer, Self::Allocator>) -> O>( &mut self, device_id: &LoopbackDeviceId<BC>, cb: F, ) -> O
Calls
cb
with immutable access to the queue state.impl Copy for LoopbackDevice
impl Device for LoopbackDevice
Auto Trait Implementations§
impl Freeze for LoopbackDevice
impl RefUnwindSafe for LoopbackDevice
impl Send for LoopbackDevice
impl Sync for LoopbackDevice
impl Unpin for LoopbackDevice
impl UnwindSafe for LoopbackDevice
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)Source§impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CCwhere
Meta: ReceivableFrameMeta<CC, BC>,
Source§impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CCwhere
Meta: SendableFrameMeta<CC, BC>,
Source§fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
fn send_frame<S>(
&mut self,
bindings_ctx: &mut BC,
metadata: Meta,
frame: S,
) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>where
S: Serializer,
<S as Serializer>::Buffer: BufferMut,
Send a frame. Read more
Source§impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
impl<Id, CC, BC> TimerHandler<BC, Id> for CCwhere
BC: TimerBindingsTypes,
Id: HandleableTimer<CC, BC>,
Source§fn handle_timer(
&mut self,
bindings_ctx: &mut BC,
dispatch: Id,
timer: <BC as TimerBindingsTypes>::UniqueTimerId,
)
fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )
Handle a timer firing. Read more
Source§impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
impl<L, T> UnlockedAccess<L> for Twhere
L: UnlockedAccessMarkerFor<T>,
Source§type Data = <L as UnlockedAccessMarkerFor<T>>::Data
type Data = <L as UnlockedAccessMarkerFor<T>>::Data
The type of state being accessed.
Source§type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data
where
T: 'l
type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l
A guard providing read access to the data.
Source§fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>
How to access the state.