rfc-7466

An Optimization for the Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP)

C. Dearlove, T. Clausen
date2015-03 streamIETF areartg wgmanet statusPROPOSED STANDARD pages9 canonicalhttps://www.rfc-editor.org/rfc/rfc7466 doi10.17487/RFC7466
The link quality mechanism of the Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP) enables "ignoring" some 1-hop neighbors if the measured link quality from that 1-hop neighbor is below an acceptable threshold while still retaining the corresponding link information as acquired from the HELLO message exchange. This allows immediate reinstatement of the 1-hop neighbor if the link quality later improves sufficiently. NHDP also collects information about symmetric 2-hop neighbors. However, it specifies that if a link from a symmetric 1-hop neighbor ceases being symmetric, including while "ignored" (as described above), then corresponding symmetric 2-hop neighbors are removed. This may lead to symmetric 2-hop neighborhood information being permanently removed (until further HELLO messages are received) if the link quality of a symmetric 1-hop neighbor drops below the acceptable threshold, even if only for a moment. This specification updates RFC 6130 "Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP)" and RFC 7181 "The Optimized Link State Routing Protocol Version 2 (OLSRv2)" to permit, as an option, retaining, but ignoring, symmetric 2-hop information when the link quality from the corresponding 1-hop neighbor drops below the acceptable threshold. This allows immediate reinstatement of the symmetric 2-hop neighbor if the link quality later improves sufficiently, thus making the symmetric 2-hop neighborhood more "robust".

updates

Extracted elements (17)

design-rationale §1

The optimization is strictly optional and invisible to other protocols (e.g., OLSRv2) if the implementation conceals 2-Hop Tuples with N2_lost=true from higher-layer protocols. However, because some OLSRv2 implementations are not modularly separated from NHDP, the direct impact on RFC 7181 is also specified.

routing

design-rationale §1

When link quality from a symmetric 1-hop neighbor drops below threshold, NHDP RFC 6130 removes corresponding 2-Hop Tuples immediately. This means that even a momentary quality drop causes symmetric 2-hop neighbor information to be permanently lost until the next HELLO messages are received, unlike 1-hop information which is retained. This RFC addresses that asymmetry.

routing

interoperability-note §3

A router implementing this optimization interoperates successfully with routers that implement RFC 6130 but do not implement this optimization, since the retained-but-ignored 2-Hop Tuples do not affect any externally visible behavior.

routing

normative-requirement §5 MUST

For OLSRv2 (RFC 7181), implementations MUST behave as if a 2-Hop Tuple only exists when N2_lost=false, and as if a change of N2_lost (in either direction) corresponds to a 2-Hop Tuple appearing or being removed for all MPR Set and Routing Set calculations.

routing

normative-requirement §5 MUST

If the NHDP implementation makes all 2-Hop Tuples visible to higher-layer protocols (including those with N2_lost=true), then protocols using RFC 6130 MUST ignore such 2-Hop Tuples with N2_lost=true.

routing

normative-requirement §4.2 REQUIRED

In HELLO message processing (RFC 6130 Section 12.6 point 2), the condition for creating or updating a 2-Hop Tuple is changed from 'L_status = SYMMETRIC' to 'L_SYM_time not expired', so that Tuples are also created for links in the LOST state while still within their symmetric time window.

routing

normative-requirement §5 MUST

In OLSRv2 Section 17.6 (MPR recalculation triggers), 2-Hop Tuples with N2_lost=true MUST NOT trigger MPR recalculation; only tuples with N2_lost=false and valid metrics (N2_out_metric or N2_in_metric != UNKNOWN_METRIC) are considered, along with changes to N2_lost itself.

routing

normative-requirement §5 MUST

In OLSRv2 Sections 17.7, 18.4, 18.5, 19.1, and Appendix C.7, the condition on 2-Hop Tuples is tightened to additionally require N2_lost=false alongside the existing metric validity checks.

routing

normative-requirement §4.4 MUST

The constraint on each 2-Hop Tuple is updated: there MUST be an associated Link Tuple on the same MANET interface where L_neighbor_iface_addr_list equals N2_neighbor_iface_addr_list, L_SYM_time has not expired, AND L_lost equals N2_lost.

routing

normative-requirement §4.3 MUST

When a Link Tuple transitions from SYMMETRIC to LOST (L_lost set to true) while L_SYM_time has not expired, corresponding 2-Hop Tuples MUST have their N2_lost flag set to true rather than being removed.

routing

normative-requirement §4.2 REQUIRED

When a new 2-Hop Tuple is created during HELLO processing, the N2_lost field MUST be initialized to the current value of L_lost for the corresponding Link Tuple.

routing

normative-requirement §4.3 MUST

When L_HEARD_time expires and either L_status changes from SYMMETRIC or L_SYM_time expires, the Section 13.2 actions (2-Hop Tuple updates) MUST be performed before the Section 13.3 actions for that Link Tuple.

routing

normative-requirement §4.3 MUST

When L_SYM_time expires or the Link Tuple is removed, all corresponding 2-Hop Tuples (those whose N2_neighbor_iface_addr_list overlaps with L_neighbor_iface_addr_list) MUST be removed.

routing

normative-requirement §4 MUST

While implementation of this optimization is OPTIONAL, if any of the changes specified in Section 4 are made, then all of those changes MUST be made.

routing

protocol-element §4.1

A new boolean flag N2_lost is added to each 2-Hop Tuple in the 2-Hop Set. N2_lost=false when the corresponding Link Tuple has L_status=SYMMETRIC (L_lost=false); N2_lost=true when L_SYM_time has not expired but L_lost=true (L_status=LOST). In all other LOST cases, no 2-Hop Tuple is retained.

routing

security-consideration §6

This optimization introduces no new security considerations to implementations of RFC 6130 or RFC 7181. It only retains information for the same duration it would have been usable under the original specification, so no additional attack surface is created.

security, routing

state-machine §4.1

N2_lost transitions: set to false when a 2-Hop Tuple is created under a SYMMETRIC link (L_lost=false); set to true when L_status changes from SYMMETRIC to LOST (L_lost set to true) while L_SYM_time has not yet expired; the 2-Hop Tuple is removed entirely when L_SYM_time expires or the Link Tuple is removed.

routing