pub enum EventDynamicState<L>where
L: LinkUnicastAddress,{
Incomplete,
Reachable(L),
Stale(L),
Delay(L),
Probe(L),
Unreachable(L),
}
Expand description
The state of dynamic neighbor table entries as published via events.
Note that this is not how state is held in the neighbor table itself,
see DynamicNeighborState
.
Modeled after RFC 4861 section 7.3.2. Descriptions are kept implementation-independent by using a set of generic terminology.
,——————————————————————. | Generic Term | ARP Term | NDP Term | |—————————+———––+————————| | Reachability Probe | ARP Request | Neighbor Solicitation | | Reachability Confirmation | ARP Reply | Neighbor Advertisement | `—————————+———––+————————’
Variants§
Incomplete
Reachability is in the process of being confirmed for a newly created entry.
Reachable(L)
Forward reachability has been confirmed; the path to the neighbor is functioning properly.
Stale(L)
Reachability is considered unknown.
Occurs in one of two ways:
- Too much time has elapsed since the last positive reachability confirmation was received.
- Received a reachability confirmation from a neighbor with a different MAC address than the one cached.
Delay(L)
A packet was recently sent while reachability was considered unknown.
This state is an optimization that gives non-Neighbor-Discovery related protocols time to confirm reachability after the last confirmation of reachability has expired due to lack of recent traffic.
Probe(L)
A reachability confirmation is actively sought by periodically retransmitting unicast reachability probes until a reachability confirmation is received, or until the maximum number of probes has been sent.
Unreachable(L)
Target is considered unreachable. A reachability confirmation was not received after transmitting the maximum number of reachability probes.
Trait Implementations§
Source§impl<L> Clone for EventDynamicState<L>where
L: Clone + LinkUnicastAddress,
impl<L> Clone for EventDynamicState<L>where
L: Clone + LinkUnicastAddress,
Source§fn clone(&self) -> EventDynamicState<L>
fn clone(&self) -> EventDynamicState<L>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<L> Debug for EventDynamicState<L>where
L: Debug + LinkUnicastAddress,
impl<L> Debug for EventDynamicState<L>where
L: Debug + LinkUnicastAddress,
Source§impl<L> Hash for EventDynamicState<L>where
L: Hash + LinkUnicastAddress,
impl<L> Hash for EventDynamicState<L>where
L: Hash + LinkUnicastAddress,
Source§impl<L> PartialEq for EventDynamicState<L>where
L: PartialEq + LinkUnicastAddress,
impl<L> PartialEq for EventDynamicState<L>where
L: PartialEq + LinkUnicastAddress,
impl<L> Copy for EventDynamicState<L>where
L: Copy + LinkUnicastAddress,
impl<L> Eq for EventDynamicState<L>where
L: Eq + LinkUnicastAddress,
impl<L> StructuralPartialEq for EventDynamicState<L>where
L: LinkUnicastAddress,
Auto Trait Implementations§
impl<L> Freeze for EventDynamicState<L>where
L: Freeze,
impl<L> RefUnwindSafe for EventDynamicState<L>where
L: RefUnwindSafe,
impl<L> Send for EventDynamicState<L>
impl<L> Sync for EventDynamicState<L>where
L: Sync,
impl<L> Unpin for EventDynamicState<L>where
L: Unpin,
impl<L> UnwindSafe for EventDynamicState<L>where
L: UnwindSafe,
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
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)
clone_to_uninit
)