Expand description
EtherNeighborDiscovery — NDN neighbor discovery over raw Ethernet.
Implements DiscoveryProtocol using periodic hello Interest broadcasts on
a [MulticastEtherFace] and unicast NamedEtherFace creation per peer.
§Protocol (doc format)
Hello Interest (broadcast on multicast face):
Name: /ndn/local/nd/hello/<nonce-u32>
(no AppParams)Hello Data (reply sent back on multicast face):
Name: /ndn/local/nd/hello/<nonce-u32>
Content: HelloPayload TLV
NODE-NAME = /ndn/site/mynode
SERVED-PREFIX = ... (optional, InHello mode)
CAPABILITIES = [flags] (optional)
NEIGHBOR-DIFF = [...] (SWIM gossip piggyback, optional)The sender’s MAC is extracted from meta.source (populated by the engine
via MulticastEtherFace::recv_with_source), not from the packet payload.
On receiving a Hello Interest a node:
- Reads the sender MAC from
meta.source(LinkAddr::Ether). - Triggers
PassiveDetectionon the strategy when the MAC is new. - Replies with a Hello Data carrying its own
HelloPayload.
On receiving a Hello Data the sender:
- Decodes
HelloPayloadfrom Content. - Reads responder MAC from
meta.source. - Creates a
NamedEtherFaceto the responder if needed. - Updates the neighbor to
Establishedand records RTT. - Installs FIB routes for
served_prefixes(ifInHellomode). - Applies any piggybacked
NEIGHBOR-DIFFentries.
Structs§
- Ether
Medium - Ethernet-specific link medium for
HelloProtocol. - Ether
Neighbor Discovery - Ethernet neighbor discovery — newtype wrapper around
HelloProtocol<EtherMedium>.