Definition of Managed Objects for the Neighborhood Discovery Protocol
obsoletes
- rfc-6779 — Definition of Managed Objects for the Neighborhood Discovery Protocol
Extracted elements (27)
L_quality is excluded from the nhdpIibLinkSetEntry because link quality updates may be required too frequently to be practical in a MIB table without causing excessive SNMP traffic. Only the derived boolean L_lost flag (from RFC 7466) is included.
Link quality objects (nhdpHystAcceptQuality, nhdpHystRejectQuality, nhdpInitialQuality) use Float32TC from RFC 6340 rather than integer-scaled values, but cannot carry formal DEFVAL clauses because SMIv2 range constraints are unavailable for OCTET STRING-based textual conventions; default values are documented in DESCRIPTION clauses only.
The notification throttling threshold is set more conservatively than RFC 4750's OSPF recommendation because NHDP targets lossy wireless MANET channels where excessive notifications risk collisions and dropped packets, and dense deployments may trigger many simultaneous topology-change events.
This document (RFC 7939) was necessitated by RFC 7466, which optimized NHDP by tracking the N2_lost state for 2-hop neighbors. The MIB was updated to add nhdpIib2HopSetN2Lost, nhdpIfPerfCounterDiscontinuityTime, and the 'notconsidered' value in nhdp2HopNbrState to reflect this new per-2-hop-neighbor link quality tracking.
Two TEXTUAL-CONVENTIONs, NeighborIfIndex and NeighborRouterIndex, were introduced because NHDP indexes neighbor information via dynamic address sets whereas SMIv2 requires statically defined table indexes. These constructs provide a local mapping between NHDP address-set-based identity and integer-indexed MIB tables.
The NHDP-MIB imports from SNMPv2-SMI (RFC 2578), SNMPv2-TC (RFC 2579), SNMPv2-CONF (RFC 2580), IF-MIB (RFC 2863), SNMP-FRAMEWORK-MIB (RFC 3411), INET-ADDRESS-MIB (RFC 4001), and FLOAT-TC-MIB (RFC 6340). Float32TC from RFC 6340 is used for link quality threshold objects because SMI range constraints cannot be applied to OCTET STRING-based types.
The nhdpInterfaceTable 'sparse augments' the IF-MIB ifTable: a row exists only when an interface supports and runs NHDP. Each nhdpInterfaceTable entry has a corresponding ifTable entry with matching index values. Deletion of the ifTable entry automatically removes the NHDP entry.
To enable cross-referencing between the NHDP-MIB and routing protocol MIB modules that rely on NHDP neighbor information, NeighborIfIndex and NeighborRouterIndex are defined as shared index types. Routing protocol MIBs on the same router SHOULD use the same locally significant index values for cross-table correlation.
A NeighborRouterIndex value MUST remain constant at least from one re-initialization of the network management agent to the next, except when an application is deleted and re-created. A NeighborRouterIndex value MUST NOT be reused until the next agent restart.
nhdpIfIndex MUST correspond to an ifIndex referring to a valid entry in the IF-MIB Interfaces Table. If that corresponding ifTable entry is deleted, the nhdpInterfaceTable row is automatically deleted, NHDP is disabled on the interface, and all related configuration and state MUST be removed from memory.
Notification throttling is RECOMMENDED with a threshold value of 10 occurrences and a window of at least 5 times nhdpHelloInterval. This is stricter than the RFC 4750 recommendation of '7 traps / 10 seconds' because NHDP is expected to operate over lossier wireless channels than OSPF.
The nhdpLibLocalIfSetRowStatus object requires that all read-create objects (which have no DEFVAL clauses) MUST be administratively specified by the management station before the row can transition to 'active(1)'. Updated values MUST be reflected in NHDP and MUST be written to nonvolatile storage.
To avoid unnecessary notification floods during NHDP initialization, a router SHOULD NOT originate expected notifications until a predefined, administratively configured time interval has elapsed. It is RECOMMENDED that this interval be at least 3 times nhdpHelloInterval so that symmetric neighbors are discovered before notifications begin.
When an object in a row with nhdpIfRowStatus of 'active(1)' is changed, the updated value MUST be reflected in the running NHDP instance and MUST be written to nonvolatile storage. If nhdpIfRowStatus is not 'active(1)', all associated entries in nhdpLibLocalIfSetTable, nhdpInterfaceStateTable, nhdpIibLinkSetTable, and nhdpInterfacePerfTable MUST be deleted.
When the local router determines that two NeighborIfIndex values refer to the same physical neighbor interface, the agent MUST aggregate the two address sets to a single index chosen from the aggregated set and MUST update all MIB tables indexed by NeighborIfIndex accordingly. It MAY reuse freed index values after the next agent restart.
NeighborIfIndex is an arbitrary locally unique Unsigned32 (1..2147483647) identifying a virtual neighbor interface discovered via NHDP HELLO messages. Multiple addresses may share one NeighborIfIndex, and its value need not persist across agent restarts.
NeighborRouterIndex is an arbitrary locally unique Unsigned32 (1..2147483647) identifying a discovered neighbor router (one or two hops). Its value MUST remain constant across agent re-initializations unless the application is deleted and re-created, and MUST NOT be reused until the next agent restart.
Notification throttling is controlled by four MIB objects: nhdpNbrStateChangeThreshold and nhdpNbrStateChangeWindow (for 1-hop neighbor state changes), and nhdp2HopNbrStateChangeThreshold and nhdp2HopNbrStateChangeWindow (for 2-hop neighbor state changes).
The nhdpConformance subtree defines compliance requirements for implementations of the NHDP-MIB. A revised full compliance statement is included in this document to cover the new objects added for RFC 7466 support (nhdpIib2HopSetN2Lost and nhdpIfPerfCounterDiscontinuityTime).
The nhdpDiscIfSetTable maps discovered neighbor interface address sets to locally assigned NeighborIfIndex and NeighborRouterIndex values. Each entry (INDEX { nhdpDiscIfSetIndex }) records address type, InetAddress (4 or 16 bytes), and prefix length for one address of the neighbor interface.
The nhdpIib2HopSetTable (INDEX { nhdpIfIndex, nhdpDiscIfIndex, nhdpIib2HopSetIpAddressType, nhdpIib2HopSetIpAddress }) records symmetric 2-hop neighbors with fields N2_2hop_addr, prefix length, associated 1-hop interface (nhdpIib2HopSet1HopIfIndex), expiration (nhdpIib2HopSetN2Time), and N2_lost flag (nhdpIib2HopSetN2Lost). The N2_lost field was added by this document to reflect RFC 7466.
The nhdpIibLinkSetTable (INDEX { nhdpIfIndex, nhdpDiscIfIndex }) records per-interface link state for 1-hop neighbors with fields L_HEARD_time (nhdpIibLinkSetLHeardTime), L_SYM_time (nhdpIibLinkSetLSymTime), L_pending (nhdpIibLinkSetLPending, TruthValue), L_lost (nhdpIibLinkSetLLost, TruthValue), and L_time (nhdpIibLinkSetLTime, expiration timestamp). L_quality is intentionally omitted.
The nhdpInterfaceTable (INDEX { nhdpIfIndex }) configures per-interface NHDP parameters: nhdpHelloInterval (default 2000 ms), nhdpHelloMinInterval (default 500 ms), nhdpRefreshInterval (default 2000 ms), nhdpLHoldTime (default 6000 ms), nhdpHHoldTime (default 6000 ms), nhdpHpMaxJitter (default 500 ms), nhdpHtMaxJitter (default 500 ms), and link-quality thresholds (nhdpHystAcceptQuality, nhdpHystRejectQuality, nhdpInitialQuality, nhdpInitialPending).
The nhdpLibLocalIfSetTable records local interface address tuples (address type, InetAddress 4 or 16 bytes, prefix length, IfIndex) for each NHDP-configured interface. The nhdpLibRemovedIfAddrSetTable records addresses recently removed from local interfaces, including an IR_time expiration timestamp.
The NHDP-MIB module is assigned OID { mib-2 213 }, registered under the IANA-managed mib-2 subtree. This document obsoletes RFC 6779 and updates the registration to cover RFC 7466 extensions.
Several NHDP-MIB objects are read-write or read-create (e.g., nhdpHelloInterval, nhdpHHoldTime, nhdpIfStatus, nhdpIfRowStatus). Unauthorized modification of these objects could disrupt NHDP neighbor discovery, destabilize MANET routing, or cause denial of service by altering timing parameters or disabling interfaces.
The NHDP-MIB module SHOULD be accessed via SNMPv3 with authentication and privacy (authPriv security level) to prevent eavesdropping on management traffic and unauthorized configuration changes. Implementations MUST support the SNMP security model defined in RFC 3411.