Struct netstack3_device::ArpState

source ·
pub struct ArpState<D: ArpDevice, BT: NudBindingsTypes<D>> { /* private fields */ }
Expand description

The state associated with an instance of the Address Resolution Protocol (ARP).

Each device will contain an ArpState object for each of the network protocols that it supports.

Implementations§

source§

impl<D: ArpDevice, BC: NudBindingsTypes<D> + TimerContext> ArpState<D, BC>

source

pub fn new<DeviceId: WeakDeviceIdentifier, CC: CoreTimerContext<NudTimerId<Ipv4, D, DeviceId>, BC>>( bindings_ctx: &mut BC, device_id: DeviceId, ) -> Self

Creates a new ArpState for device_id.

Trait Implementations§

source§

impl<BT: DeviceLayerTypes> OrderedLockAccess<ArpState<EthernetLinkDevice, BT>> for IpLinkDeviceState<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>

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

Auto Trait Implementations§

§

impl<D, BT> Freeze for ArpState<D, BT>

§

impl<D, BT> RefUnwindSafe for ArpState<D, BT>
where <D as LinkDevice>::Address: Sized + RefUnwindSafe, <BT as InstantBindingsTypes>::Instant: RefUnwindSafe, <BT as TimerBindingsTypes>::Timer: RefUnwindSafe, D: RefUnwindSafe, <BT as LinkResolutionContext<D>>::Notifier: RefUnwindSafe,

§

impl<D, BT> Send for ArpState<D, BT>
where <D as LinkDevice>::Address: Sized, D: Send,

§

impl<D, BT> Sync for ArpState<D, BT>
where <D as LinkDevice>::Address: Sized + Sync, D: Sync, <BT as LinkResolutionContext<D>>::Notifier: Sync,

§

impl<D, BT> Unpin for ArpState<D, BT>
where <D as LinkDevice>::Address: Sized + Unpin, <BT as InstantBindingsTypes>::Instant: Unpin, <BT as TimerBindingsTypes>::Timer: Unpin, D: Unpin, <BT as LinkResolutionContext<D>>::Notifier: Unpin,

§

impl<D, BT> UnwindSafe for ArpState<D, BT>
where <D as LinkDevice>::Address: Sized + UnwindSafe, <BT as InstantBindingsTypes>::Instant: UnwindSafe, <BT as TimerBindingsTypes>::Timer: UnwindSafe, D: UnwindSafe, <BT as LinkResolutionContext<D>>::Notifier: UnwindSafe,

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<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<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<T> Same for T

§

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>>
where S: Serializer, <S as Serializer>::Buffer: BufferMut,

Send a frame. Read more
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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.
§

impl<L, T> UnlockedAccess<L> for T
where L: UnlockedAccessMarkerFor<T>,

§

type Data = <L as UnlockedAccessMarkerFor<T>>::Data

The type of state being accessed.
§

type Guard<'l> = &'l <L as UnlockedAccessMarkerFor<T>>::Data where T: 'l

A guard providing read access to the data.
§

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

§

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