#[non_exhaustive]pub struct NeighborEntry {
pub id: Id<NeighborEntry>,
pub interface_index: u32,
pub address: IpAddress,
pub mac: Option<MacAddress>,
pub state: NeighborState,
}Expand description
A single entry in the system’s neighbor table (ARP for IPv4, NDP for IPv6): the mapping from an on-link IP address to a link-layer (MAC) address, as observed or configured on a given interface.
#[non_exhaustive]: platforms carry different neighbor fields (Linux
exposes NUD state and a routing-protocol-style entry kind; BSD/macOS
expose only a flags word; Windows exposes IsRouter/reachability
timestamps). Marking this non-exhaustive now means adding
platform-specific fields later is not a breaking change for consumers who
construct a NeighborEntry via NeighborEntry::new rather than a
struct literal — see ARCHITECTURE.md’s note on model extensibility.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.id: Id<NeighborEntry>§interface_index: u32The OS-level interface index this entry was observed on, the same raw
value Interface::index/Route::interface_index carry.
address: IpAddress§mac: Option<MacAddress>Absent for an entry still being resolved (NeighborState::Incomplete)
or one the platform reports without a link-layer address at all.
state: NeighborStateImplementations§
Source§impl NeighborEntry
impl NeighborEntry
pub fn new( id: Id<NeighborEntry>, interface_index: u32, address: IpAddress, ) -> NeighborEntry
pub fn with_mac(self, mac: MacAddress) -> NeighborEntry
pub fn with_state(self, state: NeighborState) -> NeighborEntry
Trait Implementations§
Source§impl Clone for NeighborEntry
impl Clone for NeighborEntry
Source§fn clone(&self) -> NeighborEntry
fn clone(&self) -> NeighborEntry
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more