rfc-7939

Definition of Managed Objects for the Neighborhood Discovery Protocol

U. Herberg, R. Cole, I. Chakeres, T. Clausen
date2016-08 streamIETF areartg wgmanet statusPROPOSED STANDARD pages72 canonicalhttps://www.rfc-editor.org/rfc/rfc7939 doi10.17487/RFC7939
This document replaces RFC 6779; it contains revisions and extensions to the original document. It defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it describes objects for configuring parameters of the Neighborhood Discovery Protocol (NHDP) process on a router. The extensions described in this document add objects and values to support the NHDP optimization specified in RFC 7466. The MIB module defined in this document, denoted NHDP-MIB, also reports state, performance information, and notifications about NHDP. This additional state and performance information is useful to troubleshoot problems and performance issues during neighbor discovery.

obsoletes

Extracted elements (27)

design-rationale §7

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.

routing, measurement

design-rationale §7

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.

routing

design-rationale §5.1.3.2

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.

routing

design-rationale §1.1

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.

routing

design-rationale §5.3

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.

routing

interoperability-note §6.4

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.

routing

interoperability-note §6.3

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.

routing

interoperability-note §6.2

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.

routing

normative-requirement §7 MUST NOT

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.

routing

normative-requirement §6.3 MUST

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.

routing

normative-requirement §5.1.3.2 RECOMMENDED

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.

routing

normative-requirement §7 MUST

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.

routing

normative-requirement §5.1.3.1 SHOULD NOT

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.

routing

normative-requirement §7 MUST

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.

routing

normative-requirement §7 MUST

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.

routing

protocol-element §7

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.

routing

protocol-element §7

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.

routing

protocol-element §5.1.3.2

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).

routing

protocol-element §7

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).

routing

protocol-element §7

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.

routing

protocol-element §7

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.

routing

protocol-element §7

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.

routing, measurement

protocol-element §5.2

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).

routing

protocol-element §7

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.

routing

registry §10

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.

registry, routing

security-consideration §8

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.

security, routing

security-consideration §8

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.

security, routing