FakeBindingsCtx

Struct FakeBindingsCtx 

Source
pub struct FakeBindingsCtx(/* private fields */);
Expand description

Test-only implementation of BindingsContext.

Implementations§

Source§

impl FakeBindingsCtx

Source

pub fn timer_ctx(&self) -> impl Deref<Target = FakeTimerCtx<TimerId<Self>>> + '_

Gets the fake timer context.

Source

pub fn state_mut(&mut self) -> impl DerefMut<Target = FakeBindingsCtxState> + '_

Returns a mutable reference guard to FakeBindingsCtxState.

Source

pub fn copy_ethernet_frames( &mut self, ) -> Vec<(EthernetWeakDeviceId<FakeBindingsCtx>, Vec<u8>)>

Copy all ethernet frames sent so far.

§Panics

Panics if the there are non-Ethernet frames stored.

Source

pub fn take_ethernet_frames( &mut self, ) -> Vec<(EthernetWeakDeviceId<FakeBindingsCtx>, Vec<u8>)>

Take all ethernet frames sent so far.

§Panics

Panics if the there are non-Ethernet frames stored.

Source

pub fn take_ip_frames( &mut self, ) -> Vec<(PureIpDeviceAndIpVersion<FakeBindingsCtx>, Vec<u8>)>

Take all IP frames sent so far.

§Panics

Panics if the there are non-IP frames stored.

Source

pub fn take_events(&mut self) -> Vec<DispatchedEvent>

Takes all the events stored in the fake context.

Source

pub fn take_icmp_replies<I: IpExt>( &mut self, conn: &IcmpSocketId<I, WeakDeviceId<FakeBindingsCtx>, FakeBindingsCtx>, ) -> Vec<Vec<u8>>

Takes all the received ICMP replies for a given conn.

Source

pub fn take_udp_received<I: IpExt>( &mut self, conn: &UdpSocketId<I, WeakDeviceId<FakeBindingsCtx>, FakeBindingsCtx>, ) -> Vec<Vec<u8>>

Takes all received UDP frames from the fake bindings context.

Source

pub fn seed_rng(&self, seed: u128)

Seed the RNG.

Trait Implementations§

Source§

impl Clone for FakeBindingsCtx

Source§

fn clone(&self) -> FakeBindingsCtx

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Default for FakeBindingsCtx

Source§

fn default() -> FakeBindingsCtx

Returns the “default value” for a type. Read more
Source§

impl DeferredResourceRemovalContext for FakeBindingsCtx

Source§

fn defer_removal<T: Send + 'static>( &mut self, receiver: Self::ReferenceReceiver<T>, )

Defers the removal of some resource T to bindings. Read more
Source§

fn defer_removal_result<T>( &mut self, result: RemoveResourceResult<T, Self::ReferenceReceiver<T>>, )
where T: Send + 'static,

A shorthand for [defer_removal] that takes a ReferenceReceiver from the Deferred variant of a RemoveResourceResult. Read more
Source§

impl DeviceLayerEventDispatcher for FakeBindingsCtx

Source§

type DequeueContext = ()

The transmit queue dequeueing context used by bindings. Read more
Source§

fn send_ethernet_frame( &mut self, device: &EthernetDeviceId<FakeBindingsCtx>, frame: Buf<Vec<u8>>, _dequeue_context: Option<&mut Self::DequeueContext>, ) -> Result<(), DeviceSendFrameError>

Send a frame to an Ethernet device driver. Read more
Source§

fn send_ip_packet( &mut self, device: &PureIpDeviceId<FakeBindingsCtx>, packet: Buf<Vec<u8>>, ip_version: IpVersion, _dequeue_context: Option<&mut Self::DequeueContext>, ) -> Result<(), DeviceSendFrameError>

Send an IP packet to an IP device driver. Read more
Source§

impl DeviceLayerStateTypes for FakeBindingsCtx

Source§

type LoopbackDeviceState = ()

The state associated with loopback devices.
Source§

type EthernetDeviceState = ()

The state associated with ethernet devices.
Source§

type BlackholeDeviceState = ()

The state associated with blackhole devices.
Source§

type PureIpDeviceState = ()

The state associated with pure IP devices.
Source§

type DeviceIdentifier = MonotonicIdentifier

An opaque identifier that is available from both strong and weak device references.
Source§

impl DeviceSocketBindingsContext<DeviceId<FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn receive_frame( &self, socket_id: &SocketId<Self>, device: &DeviceId<Self>, _frame: Frame<&[u8]>, raw_frame: &[u8], ) -> Result<(), ReceiveFrameError>

Called for each received frame that matches the provided socket. Read more
Source§

impl DeviceSocketTypes for FakeBindingsCtx

Source§

type SocketState<D: Send + Sync + Debug> = Mutex<Vec<(WeakDeviceId<FakeBindingsCtx>, Vec<u8>)>>

State for the socket held by core and exposed to bindings.
Source§

impl<T: Into<DispatchedEvent>> EventContext<T> for FakeBindingsCtx

Source§

fn on_event(&mut self, event: T)

Handles event.
Source§

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, ) -> Result<(), ReceiveIcmpEchoError>

Receives an ICMP echo reply.
Source§

impl IcmpEchoBindingsTypes for FakeBindingsCtx

Source§

type ExternalData<I: Ip> = ()

Opaque bindings data held by core for a given IP version.
Source§

type SocketWritableListener = FakeSocketWritableListener

The listener notified when sockets’ writable state changes.
Source§

impl InstantBindingsTypes for FakeBindingsCtx

Source§

type Instant = FakeInstant

The type of an instant in time. Read more
Source§

type AtomicInstant = FakeAtomicInstant

An atomic representation of Self::Instant.
Source§

impl InstantContext for FakeBindingsCtx

Source§

fn now(&self) -> FakeInstant

Returns the current instant. Read more
Source§

fn now_atomic(&self) -> Self::AtomicInstant

Returns the current instant, as an [Self::AtomicInstant].
Source§

impl IpRoutingBindingsTypes for FakeBindingsCtx

Source§

type RoutingTableId = ()

An opaque type that represents a routing table ID from the Bindings. The Bindings implementation is responsible for providing a unique ID for each routing table.
Source§

impl<D: LinkDevice> LinkResolutionContext<D> for FakeBindingsCtx

Source§

type Notifier = NoOpLinkResolutionNotifier

A notifier held by core that can be used to inform interested parties of the result of link address resolution.
Source§

impl MatcherBindingsTypes for FakeBindingsCtx

Source§

type DeviceClass = ()

The device class type for devices installed in the netstack.
Source§

type BindingsPacketMatcher = Infallible

The type used to represent a custom filter matcher. Read more
Source§

impl<I: IpExt> RawIpSocketsBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn receive_packet<B: SplitByteSlice>( &self, _socket: &RawIpSocketId<I, WeakDeviceId<Self>, Self>, _packet: &I::Packet<B>, _device: &DeviceId<Self>, ) -> Result<(), ReceivePacketError>

Called for each received IP packet that matches the provided socket.
Source§

impl RawIpSocketsBindingsTypes for FakeBindingsCtx

Source§

type RawIpSocketState<I: Ip> = ()

The bindings state (opaque to core) associated with a socket.
Source§

impl ReceiveQueueBindingsContext<BaseDeviceId<LoopbackDevice, FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn wake_rx_task(&mut self, device: &LoopbackDeviceId<FakeBindingsCtx>)

Signals to bindings that RX frames are available and ready to be handled by device. Read more
Source§

impl ReferenceNotifiers for FakeBindingsCtx

Source§

type ReferenceReceiver<T: 'static> = Infallible

The receiver for shared reference destruction notifications.
Source§

type ReferenceNotifier<T: Send + 'static> = Infallible

The notifier for shared reference destruction notifications.
Source§

fn new_reference_notifier<T: Send + 'static>( debug_references: DynDebugReferences, ) -> (Self::ReferenceNotifier<T>, Self::ReferenceReceiver<T>)

Creates a new Notifier/Receiver pair for T. Read more
Source§

impl RngContext for FakeBindingsCtx

Source§

type Rng<'a> = FakeCryptoRng

The random number generator (RNG) provided by this RngContext. Read more
Source§

fn rng(&mut self) -> Self::Rng<'_>

Gets the random number generator (RNG).
Source§

impl SocketOpsFilterBindingContext<DeviceId<FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn socket_ops_filter(&self) -> impl SocketOpsFilter<DeviceId<FakeBindingsCtx>>

Returns the filter that should be called for socket ops.
Source§

impl TcpBindingsTypes for FakeBindingsCtx

Source§

type ReceiveBuffer = Arc<Mutex<RingBuffer>>

Receive buffer used by TCP.
Source§

type SendBuffer = TestSendBuffer

Send buffer used by TCP.
Source§

type ReturnedBuffers = ClientBuffers

The object that will be returned by the state machine when a passive open connection becomes established. The bindings can use this object to read/write bytes from/into the created buffers.
Source§

type ListenerNotifierOrProvidedBuffers = ProvidedBuffers

The extra information provided by the Bindings that implements platform dependent behaviors. It serves as a ListenerNotifier if the socket was used as a listener and it will be used to provide buffers if used to establish connections.
Source§

fn new_passive_open_buffers( buffer_sizes: BufferSizes, ) -> (Self::ReceiveBuffer, Self::SendBuffer, Self::ReturnedBuffers)

Creates new buffers and returns the object that Bindings need to read/write from/into the created buffers.
Source§

impl TimerBindingsTypes for FakeBindingsCtx

Source§

type Timer = <FakeTimerCtx<TimerId<FakeBindingsCtx>> as TimerBindingsTypes>::Timer

State for a timer created through TimerContext.
Source§

type DispatchId = TimerId<FakeBindingsCtx>

The type used to dispatch fired timers from bindings to core.
Source§

type UniqueTimerId = <FakeTimerCtx<TimerId<FakeBindingsCtx>> as TimerBindingsTypes>::UniqueTimerId

A value that uniquely identifiers a Timer. It is given along with the DispatchId whenever a timer is fired. Read more
Source§

impl TimerContext for FakeBindingsCtx

Source§

fn new_timer(&mut self, id: Self::DispatchId) -> Self::Timer

Creates a new timer that dispatches id back to core when fired. Read more
Source§

fn schedule_timer_instant( &mut self, time: Self::Instant, timer: &mut Self::Timer, ) -> Option<Self::Instant>

Schedule a timer to fire at some point in the future. Returns the previously scheduled instant, if this timer was scheduled.
Source§

fn cancel_timer(&mut self, timer: &mut Self::Timer) -> Option<Self::Instant>

Cancel a timer. Read more
Source§

fn scheduled_instant(&self, timer: &mut Self::Timer) -> Option<Self::Instant>

Get the instant a timer will fire, if one is scheduled.
Source§

fn unique_timer_id(&self, timer: &Self::Timer) -> Self::UniqueTimerId

Retrieves the timer id for timer. Read more
Source§

fn schedule_timer( &mut self, duration: Duration, timer: &mut Self::Timer, ) -> Option<Self::Instant>

Like [schedule_timer_instant] but schedules a time for duration in the future.
Source§

impl<D: Clone + Into<DeviceId<Self>>> TransmitQueueBindingsContext<D> for FakeBindingsCtx

Source§

fn wake_tx_task(&mut self, device: &D)

Signals to bindings that TX frames are available and ready to be sent over the device. Read more
Source§

impl TxMetadataBindingsTypes for FakeBindingsCtx

Source§

type TxMetadata = CoreTxMetadata<FakeBindingsCtx>

The metadata associated with a TX frame.
Source§

impl UdpBindingsTypes for FakeBindingsCtx

Source§

type ExternalData<I: Ip> = ()

Opaque bindings data held by core for a given IP version.
Source§

type SocketWritableListener = FakeSocketWritableListener

The listener notified when sockets’ writable state changes.
Source§

impl<I: IpExt> UdpReceiveBindingsContext<I, DeviceId<FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn receive_udp( &mut self, id: &UdpSocketId<I, WeakDeviceId<Self>, FakeBindingsCtx>, _device_id: &DeviceId<Self>, _meta: UdpPacketMeta<I>, body: &[u8], ) -> Result<(), ReceiveUdpError>

Receives a UDP packet on a socket.
Source§

impl WithFakeFrameContext<DispatchedFrame> for FakeBindingsCtx

Source§

fn with_fake_frame_ctx_mut<O, F: FnOnce(&mut FakeFrameCtx<DispatchedFrame>) -> O>( &mut self, f: F, ) -> O

Calls the callback with a mutable reference to the FakeFrameCtx.
Source§

impl WithFakeTimerContext<TimerId<FakeBindingsCtx>> for FakeBindingsCtx

Source§

fn with_fake_timer_ctx<O, F: FnOnce(&FakeTimerCtx<TimerId<FakeBindingsCtx>>) -> O>( &self, f: F, ) -> O

Calls the callback with a borrow of FakeTimerCtx.
Source§

fn with_fake_timer_ctx_mut<O, F: FnOnce(&mut FakeTimerCtx<TimerId<FakeBindingsCtx>>) -> O>( &mut self, f: F, ) -> O

Calls the callback with a mutable borrow of FakeTimerCtx.
Source§

impl AlwaysDefaultsSettingsContext for FakeBindingsCtx

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<O, BC> BuildableCoreContext<BC> for O
where O: Default,

Source§

type Builder = ()

The builder type that can build this core context.
Source§

fn build(_bindings_ctx: &mut BC, _: ()) -> O

Consumes this builder and returns the context.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<Id, Ctx> FakeTimerCtxExt<Id> for Ctx
where Id: Clone, Ctx: WithFakeTimerContext<Id> + TimerBindingsTypes<UniqueTimerId = FakeTimerId>,

Source§

fn trigger_next_timer<H>(&mut self, handler: &mut H) -> Option<Id>
where H: TimerHandler<Ctx, Id>,

Triggers the next timer, if any, by calling f on it.

trigger_next_timer triggers the next timer, if any, advances the internal clock to the timer’s scheduled time, and returns its ID.

Source§

fn trigger_timers_until_instant<H>( &mut self, instant: FakeInstant, handler: &mut H, ) -> Vec<Id>
where H: TimerHandler<Ctx, Id>,

Skips the current time forward until instant, triggering all timers until then, inclusive, by giving them to handler.

Returns the timers which were triggered.

§Panics

Panics if instant is in the past.

Source§

fn trigger_timers_for<H>( &mut self, duration: Duration, handler: &mut H, ) -> Vec<Id>
where H: TimerHandler<Ctx, Id>,

Skips the current time forward by duration, triggering all timers until then, inclusive, by calling f on them.

Returns the timers which were triggered.

Source§

fn trigger_timers_and_expect_unordered<I, H>( &mut self, timers: I, handler: &mut H, )
where I: IntoIterator<Item = Id>, H: TimerHandler<Ctx, Id>, Id: Debug + Hash + Eq,

Triggers timers and expects them to be the given timers.

The number of timers to be triggered is taken to be the number of timers produced by timers. Timers may be triggered in any order.

§Panics

Panics under the following conditions:

  • Fewer timers could be triggered than expected
  • Timers were triggered that were not expected
  • Timers that were expected were not triggered
Source§

fn trigger_timers_until_and_expect_unordered<I, H>( &mut self, instant: FakeInstant, timers: I, handler: &mut H, )
where I: IntoIterator<Item = Id>, H: TimerHandler<Ctx, Id>, Id: Debug + Hash + Eq,

Triggers timers until instant and expects them to be the given timers.

Like trigger_timers_and_expect_unordered, except that timers will only be triggered until instant (inclusive).

Source§

fn trigger_timers_for_and_expect<I, H>( &mut self, duration: Duration, timers: I, handler: &mut H, )
where I: IntoIterator<Item = Id>, H: TimerHandler<Ctx, Id>, Id: Debug + Hash + Eq,

Triggers timers for duration and expects them to be the given timers.

Like trigger_timers_and_expect_unordered, except that timers will only be triggered for duration (inclusive).

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<CC, BC, Meta> RecvFrameContext<Meta, BC> for CC
where Meta: ReceivableFrameMeta<CC, BC>,

Source§

fn receive_frame<B>(&mut self, bindings_ctx: &mut BC, metadata: Meta, frame: B)
where B: BufferMut + Debug,

Receive a frame. Read more
Source§

impl<N> ReferenceNotifiersExt for N

Source§

fn unwrap_or_notify_with_new_reference_notifier<S, O, F>( primary: Primary<S>, map: F, ) -> RemoveResourceResult<O, Self::ReferenceReceiver<O>>
where S: Send + Sync + 'static, O: Send, F: Send + Copy + 'static + FnOnce(S) -> O,

Unwraps a PrimaryRc if it has no pending references, otherwise notifying with [Self::ReferenceNotifier]. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<CC, BC, Meta> SendFrameContext<BC, Meta> for CC
where Meta: SendableFrameMeta<CC, BC>,

Source§

fn send_frame<S>( &mut self, bindings_ctx: &mut BC, metadata: Meta, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>

Send a frame. Read more
Source§

impl<BC, S, Meta, DeviceId> SendableFrameMeta<FakeCoreCtx<S, Meta, DeviceId>, BC> for Meta

Source§

fn send_meta<SS>( self, core_ctx: &mut FakeCoreCtx<S, Meta, DeviceId>, bindings_ctx: &mut BC, frame: SS, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, SS>>
where SS: Serializer, <SS as Serializer>::Buffer: BufferMut,

Sends this frame metadata to the provided contexts.
Source§

impl<Meta, BC> SendableFrameMeta<FakeFrameCtx<Meta>, BC> for Meta

Source§

fn send_meta<S>( self, core_ctx: &mut FakeFrameCtx<Meta>, _bindings_ctx: &mut BC, frame: S, ) -> Result<(), ErrorAndSerializer<SendFrameErrorReason, S>>

Sends this frame metadata to the provided contexts.
Source§

impl<T, O> SettingsContext<T> for O
where T: Default + 'static, O: AlwaysDefaultsSettingsContext,

Source§

fn settings(&self) -> impl Deref<Target = T>

Borrows the current settings values.
Source§

impl<Id, CC, BC> TimerHandler<BC, Id> for CC
where BC: TimerBindingsTypes, Id: HandleableTimer<CC, BC>,

Source§

fn handle_timer( &mut self, bindings_ctx: &mut BC, dispatch: Id, timer: <BC as TimerBindingsTypes>::UniqueTimerId, )

Handle a timer firing. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<L, T> UnlockedAccess<L> for T

Source§

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

A guard providing read access to the data.
Source§

fn access(&self) -> <T as UnlockedAccess<L>>::Guard<'_>

How to access the state.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

Source§

impl<BC> BindingsContext for BC

Source§

impl<O> BindingsTypes for O

Source§

impl<BC> DatagramBindingsContext for BC

Source§

impl<BT> DatagramBindingsTypes for BT

Source§

impl<BC> DeviceLayerTypes for BC

Source§

impl<BC, DeviceId> EthernetDeviceEventBindingsContext<DeviceId> for BC
where BC: EventContext<EthernetDeviceEvent<DeviceId>>,

Source§

impl<BC> FilterBindingsContext for BC

Source§

impl<BT> FilterBindingsTypes for BT

Source§

impl<BC> IcmpBindingsContext for BC

Source§

impl<BT> IcmpBindingsTypes for BT

Source§

impl<I, BC> IpBindingsContext<I> for BC

Source§

impl<D, I, BC> IpDeviceBindingsContext<I, D> for BC

Source§

impl<BT> IpDeviceStateBindingsTypes for BT

Source§

impl<I, DeviceId, BC> IpLayerBindingsContext<I, DeviceId> for BC

Source§

impl<D, BC> IpSocketBindingsContext<D> for BC

Source§

impl<BC> Ipv6RouteDiscoveryBindingsContext for BC
where BC: Ipv6RouteDiscoveryBindingsTypes + TimerContext,

Source§

impl<B, A> LockBefore<B> for A
where B: LockAfter<A>,

Source§

impl<I, D, BC> MulticastForwardingBindingsContext<I, D> for BC

Source§

impl<BT> MulticastForwardingBindingsTypes for BT

Source§

impl<DeviceId, BC> NdpBindingsContext<DeviceId> for BC

Source§

impl<I, D, DeviceId, BC> NudBindingsContext<I, D, DeviceId> for BC

Source§

impl<BT, D> NudBindingsTypes<D> for BT

Source§

impl<D, BC> SlaacBindingsContext<D> for BC
where BC: RngContext + TimerContext + EventContext<IpDeviceEvent<D, Ipv6, <BC as InstantBindingsTypes>::Instant>> + SlaacBindingsTypes,

Source§

impl<D, BC> TcpBindingsContext<D> for BC

Source§

impl<I, BC, D> UdpBindingsContext<I, D> for BC