pub enum Ipv6DadState<BT: DadBindingsTypes> {
Assigned,
Tentative {
dad_transmits_remaining: Option<NonZeroU16>,
timer: BT::Timer,
nonces: NonceCollection,
added_extra_transmits_after_detecting_looped_back_ns: bool,
},
Uninitialized,
}
Expand description
The various states DAD may be in for an address.
Variants§
Assigned
The address is assigned to an interface and can be considered bound to it (all packets destined to the address will be accepted).
Tentative
The address is considered unassigned to an interface for normal operations, but has the intention of being assigned in the future (e.g. once NDP’s Duplicate Address Detection is completed).
When dad_transmits_remaining
is None
, then no more DAD messages need
to be sent and DAD may be resolved.
Uninitialized
The address has not yet been initialized.
Trait Implementations§
Source§impl<BT: DadBindingsTypes> Debug for Ipv6DadState<BT>
impl<BT: DadBindingsTypes> Debug for Ipv6DadState<BT>
Source§impl<BT: IpDeviceStateBindingsTypes> OrderedLockAccess<Ipv6DadState<BT>> for Ipv6AddressEntry<BT>
impl<BT: IpDeviceStateBindingsTypes> OrderedLockAccess<Ipv6DadState<BT>> for Ipv6AddressEntry<BT>
Source§type Lock = Mutex<Ipv6DadState<BT>>
type Lock = Mutex<Ipv6DadState<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
Auto Trait Implementations§
impl<BT> Freeze for Ipv6DadState<BT>
impl<BT> RefUnwindSafe for Ipv6DadState<BT>
impl<BT> Send for Ipv6DadState<BT>
impl<BT> Sync for Ipv6DadState<BT>
impl<BT> Unpin for Ipv6DadState<BT>
impl<BT> UnwindSafe for Ipv6DadState<BT>
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<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