summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc6130.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc6130.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc6130.txt')
-rw-r--r--doc/rfc/rfc6130.txt4931
1 files changed, 4931 insertions, 0 deletions
diff --git a/doc/rfc/rfc6130.txt b/doc/rfc/rfc6130.txt
new file mode 100644
index 0000000..553a0b9
--- /dev/null
+++ b/doc/rfc/rfc6130.txt
@@ -0,0 +1,4931 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) T. Clausen
+Request for Comments: 6130 LIX, Ecole Polytechnique
+Category: Standards Track C. Dearlove
+ISSN: 2070-1721 BAE Systems ATC
+ J. Dean
+ Naval Research Laboratory
+ April 2011
+
+
+ Mobile Ad Hoc Network (MANET) Neighborhood Discovery Protocol (NHDP)
+
+Abstract
+
+ This document describes a 1-hop and symmetric 2-hop neighborhood
+ discovery protocol (NHDP) for mobile ad hoc networks (MANETs).
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 5741.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc6130.
+
+Copyright Notice
+
+ Copyright (c) 2011 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+ This document may contain material from IETF Documents or IETF
+ Contributions published or made publicly available before November
+ 10, 2008. The person(s) controlling the copyright in some of this
+
+
+
+Clausen, et al. Standards Track [Page 1]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ material may not have granted the IETF Trust the right to allow
+ modifications of such material outside the IETF Standards Process.
+ Without obtaining an adequate license from the person(s) controlling
+ the copyright in such materials, this document may not be modified
+ outside the IETF Standards Process, and derivative works of it may
+ not be created outside the IETF Standards Process, except to format
+ it for publication as an RFC or to translate it into languages other
+ than English.
+
+Table of Contents
+
+ 1. Introduction .....................................................4
+ 1.1. Motivation .................................................5
+ 2. Terminology .....................................................6
+ 3. Applicability Statement .........................................9
+ 4. Protocol Overview and Functioning ..............................10
+ 4.1. Routers and Interfaces ....................................11
+ 4.2. Information Base Overview .................................12
+ 4.2.1. Local Information Base .............................13
+ 4.2.2. Interface Information Bases ........................13
+ 4.2.3. Neighbor Information Base ..........................14
+ 4.3. Signaling Overview ........................................14
+ 4.3.1. HELLO Message Generation ...........................15
+ 4.3.2. HELLO Message Content ..............................16
+ 4.3.3. HELLO Message Processing ...........................17
+ 4.4. Link Quality ..............................................17
+ 5. Protocol Parameters and Constants ..............................18
+ 5.1. Protocol and Port Numbers .................................18
+ 5.2. Multicast Address .........................................18
+ 5.3. Interface Parameters ......................................18
+ 5.3.1. Message Intervals ..................................19
+ 5.3.2. Information Validity Times .........................21
+ 5.3.3. Link Quality .......................................22
+ 5.3.4. Jitter .............................................22
+ 5.4. Router Parameters .........................................23
+ 5.4.1. Information Validity Time ..........................23
+ 5.5. Parameter Change Constraints ..............................23
+ 5.6. Constants .................................................24
+ 6. Local Information Base .........................................24
+ 6.1. Local Interface Set .......................................25
+ 6.2. Removed Interface Address Set .............................26
+ 7. Interface Information Bases ....................................26
+ 7.1. Link Set ..................................................27
+ 7.2. 2-Hop Set .................................................28
+ 8. Neighbor Information Base ......................................28
+ 8.1. Neighbor Set ..............................................28
+ 8.2. Lost Neighbor Set .........................................29
+ 9. Local Information Base Changes .................................29
+
+
+
+Clausen, et al. Standards Track [Page 2]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 9.1. Adding an Interface .......................................29
+ 9.2. Removing an Interface .....................................30
+ 9.3. Adding a Network Address to an Interface ..................30
+ 9.4. Removing a Network Address from an Interface ..............31
+ 10. Packets and Messages ..........................................32
+ 10.1. HELLO Messages ...........................................32
+ 10.1.1. Address Blocks ....................................33
+ 11. HELLO Message Generation ......................................34
+ 11.1. HELLO Message Specification ..............................35
+ 11.2. HELLO Message Transmission ...............................37
+ 11.2.1. HELLO Message Jitter ..............................37
+ 12. HELLO Message Processing ......................................38
+ 12.1. Invalid Message ..........................................38
+ 12.2. Definitions ..............................................40
+ 12.3. Updating the Neighbor Set ................................41
+ 12.4. Updating the Lost Neighbor Set ...........................42
+ 12.5. Updating the Link Sets ...................................42
+ 12.6. Updating the 2-Hop Set ...................................44
+ 13. Other Information Base Changes ................................45
+ 13.1. Link Tuple Symmetric .....................................46
+ 13.2. Link Tuple Not Symmetric .................................47
+ 13.3. Link Tuple Heard Timeout .................................48
+ 14. Link Quality ..................................................48
+ 14.1. Deployment without Link Quality ..........................49
+ 14.2. Basic Principles of Link Quality .........................49
+ 14.3. When Link Quality Changes ................................50
+ 14.4. Updating Link Quality ....................................51
+ 15. Proposed Values for Parameters and Constants ..................51
+ 15.1. Message Interval Interface Parameters ....................51
+ 15.2. Information Validity Time Interface Parameters ...........51
+ 15.3. Information Validity Time Router Parameters ..............52
+ 15.4. Link Quality Interface Parameters ........................52
+ 15.5. Jitter Interface Parameters ..............................52
+ 15.6. Constants ................................................52
+ 16. Usage with Other Protocols ....................................52
+ 17. Security Considerations .......................................54
+ 17.1. Invalid HELLO Messages ...................................56
+ 17.2. Authentication, Integrity, and Confidentiality
+ Suggestions ..............................................57
+ 18. IANA Considerations ...........................................57
+ 18.1. Expert Review: Evaluation Guidelines .....................58
+ 18.2. Message Types ............................................58
+ 18.3. Message-Type-Specific TLV Type Registries ................58
+ 18.4. Address Block TLV Types ..................................59
+ 18.5. LOCAL_IF, LINK_STATUS, and OTHER_NEIGHB Values ...........60
+ 19. Contributors ..................................................61
+ 20. Acknowledgments ...............................................61
+ 21. References ....................................................62
+
+
+
+Clausen, et al. Standards Track [Page 3]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 21.1. Normative References .....................................62
+ 21.2. Informative References ...................................62
+ Appendix A. Address Block TLV Combinations ........................63
+ Appendix B. Constraints ...........................................64
+ Appendix C. HELLO Message Example .................................66
+ Appendix D. Flow and Congestion Control ...........................69
+ Appendix E. Interval and Timer Illustrations ......................70
+ E.1. HELLO Message Generation Timing ..........................70
+ E.2. HELLO Message Processing Timing ..........................76
+ E.3. Other HELLO Message Timing ...............................77
+ Appendix F. Topology Pictures ....................................79
+ F.1. Example 1: Standard Single Interface Topology ............79
+ F.2. Example 2: Dual Addressed Interface on 1-Hop Neighbor ....80
+ F.3. Example 3: Dual Addressed Interface on 2-Hop Neighbor ....81
+ F.4. Example 4: Dual Addressed Interfaces .....................81
+ F.5. Example 5: Dual Interface on 2-Hop Neighbor ..............82
+ F.6. Example 6: Dual interface on 1-Hop Neighbor ..............82
+ F.7. Example 7: Dual Interface on 1-Hop and 2-Hop Neighbors ...83
+ F.8. Example 8: Dual Interface Locally and on 1-Hop Neighbor ..84
+ F.9. Example 9: Dual Interface on All Routers .................85
+ F.10. Example 10: Dual Addressed Dual Interfaces on All
+ Routers ......................................86
+ F.11. Example 11: Single Addressed Dual Interface Locally ......87
+
+1. Introduction
+
+ This document describes a neighborhood discovery protocol (NHDP) for
+ a mobile ad hoc network (MANET) [RFC2501]. This protocol uses a
+ local exchange of HELLO messages so that each router can determine
+ the presence of, and connectivity to, its 1-hop and symmetric 2-hop
+ neighbors. Messages are defined and sent in packets according to the
+ specification [RFC5444].
+
+ 1-hop neighborhood information is recorded for use by MANET routing
+ protocols to determine direct (1-hop) connectivity to neighboring
+ routers. 2-hop symmetric neighborhood information is recorded so as
+ to enable MANET routing protocols to employ flooding reduction
+ techniques, e.g., to select reduced relay sets for efficient network-
+ wide traffic dissemination.
+
+ 1-hop and symmetric 2-hop neighborhood information is recorded in the
+ form of Information Bases. These are available for use by other
+ protocols, such as MANET routing protocols, that require information
+ regarding the local network connectivity. This protocol is designed
+ to maintain the information in these Information Bases even in the
+ presence of a dynamic network topology and wireless communication
+ channel characteristics.
+
+
+
+
+Clausen, et al. Standards Track [Page 4]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ This protocol makes no assumptions about the underlying link layer,
+ other than support of local broadcast or multicast for communication
+ to 1-hop neighbor routers. Link-layer information may be used if
+ available and applicable.
+
+ This protocol is based on the neighborhood discovery process
+ contained in the Optimized Link State Routing (OLSR) Protocol
+ [RFC3626].
+
+1.1. Motivation
+
+ MANETs differ from more traditional wired and infrastructure-based
+ wireless networks due to their envisioned applicability over more
+ challenging communication channels (e.g., wireless, lossy, broadcast
+ channels with moderate and shared bandwidth, hidden and exposed
+ terminals, and interference from other network devices and the
+ environment) and in more challenging topological conditions (e.g.,
+ rapid and unpredictable mobility, dynamic and non-predetermined
+ network membership).
+
+ Due to the properties of wireless transmissions, communication
+ between two neighboring routers may not be bi-directional; even if
+ router A is able to receive packets from router B, the converse is
+ not guaranteed to be true. Furthermore, because of the localized
+ nature of wireless broadcast communication, neighboring routers
+ within the same communications channel may have different sets of
+ neighbors. That is, when using the same communication channel, even
+ if router A is able to exchange packets with router B, and router B
+ is able to exchange packets with router C, this does not guarantee
+ that router A and router C can exchange packets directly.
+
+ Each router in a MANET may use more than one communication channel.
+ In particular, between the same pair of routers, more than one
+ distinct communication channel may exist, each with different
+ properties. This may, for example, be the case where MANET routers
+ are equipped with multiple distinct wireless interfaces, operating at
+ different frequencies.
+
+ For use by MANET routing protocols, as well as for establishing a
+ router's neighbors, a router may also need to determine whether each
+ communication channel with that neighbor is bi-directional.
+
+ The set of neighbor routers of a given MANET router may be
+ continuously changing, often due to router mobility or a changing
+ physical environment in which the MANET is located. There is
+ typically no information from lower layers that would enable an IP
+ routing protocol to detect and, as appropriate, react to such
+ changes. Such changes can often take place on a short timescale,
+
+
+
+Clausen, et al. Standards Track [Page 5]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ such as of the order of seconds, requiring MANET routing protocols to
+ act rapidly to ensure suitable convergence properties.
+
+ MANET routing protocols, for example [RFC3626] and [RFC5449], often
+ employ relay set reductions in order to conserve network capacity
+ when maintaining network-wide topological information, with
+ calculation of these reduced relay sets employing up to two hop
+ information.
+
+ The neighborhood discovery protocol specified in this document
+ provides continued tracking of neighborhood changes, link bi-
+ directionality, and local topological information up to two hops.
+ Combined, this allows a MANET routing protocol access to information
+ describing link establishment/disappearance and provides the
+ necessary topological information for reduced relay set selection and
+ other purposes.
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ [RFC2119].
+
+ All terms introduced in [RFC5444], including "packet", "message",
+ "Address Block", "TLV Block", "TLV", "address", "address prefix", and
+ "address object" are to be interpreted as described therein.
+
+ Additionally, this document uses the following terminology:
+
+ Network Address:
+ An address plus an associated prefix length. This may be an
+ address with an associated maximum prefix length or an address
+ prefix including a prefix length. A network address thus
+ represents a range of addresses.
+
+ Router:
+ A MANET router that implements this neighborhood discovery
+ protocol.
+
+ Interface:
+ A router's attachment to a communications medium. An interface is
+ assigned one or more addresses.
+
+ MANET interface:
+ An interface participating in a MANET and using this neighborhood
+ discovery protocol. A router may have several MANET interfaces.
+
+
+
+
+Clausen, et al. Standards Track [Page 6]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Heard:
+ A MANET interface of router X is considered heard on a MANET
+ interface of a router Y if the latter can receive control
+ messages, according to this specification, from the former.
+
+ Link:
+ A link between two MANET interfaces exists if either can be heard
+ by the other.
+
+ Symmetric link:
+ A symmetric link between two MANET interfaces exists if both can
+ be heard by the other.
+
+ 1-hop neighbor:
+ A router X is a 1-hop neighbor of a router Y if a MANET interface
+ of router X is heard by a MANET interface of router Y.
+
+ Symmetric 1-hop neighbor:
+ A router X is a symmetric 1-hop neighbor of a router Y if a
+ symmetric link exists between a MANET interface on router X and a
+ MANET interface on router Y.
+
+ 2-hop neighbor:
+ A router X is a 2-hop neighbor of a router Y if router X is a
+ 1-hop neighbor of a 1-hop neighbor of router Y, but is not router
+ Y itself.
+
+ Symmetric 2-hop neighbor:
+ A router X is a symmetric 2-hop neighbor of a router Y if router X
+ is a symmetric 1-hop neighbor of a symmetric 1-hop neighbor of
+ router Y, but is not router Y itself.
+
+ 1-hop neighborhood:
+ The 1-hop neighborhood of a router X is the set of the 1-hop
+ neighbors of router X.
+
+ Symmetric 1-hop neighborhood:
+ The symmetric 1-hop neighborhood of a router X is the set of the
+ symmetric 1-hop neighbors of router X.
+
+ 2-hop neighborhood:
+ The 2-hop neighborhood of a router X is the set of the 2-hop
+ neighbors of router X. (This may include routers in the 1-hop
+ neighborhood of router X.)
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 7]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Symmetric 2-hop neighborhood:
+ The symmetric 2-hop neighborhood of a router X is the set of the
+ symmetric 2-hop neighbors of router X. (This may include routers
+ in the 1-hop neighborhood, or even in the symmetric 1-hop
+ neighborhood, of router X.)
+
+ Constant:
+ A numerical value that MUST be the same for all MANET interfaces
+ of all routers in the MANET, at all times.
+
+ Interface parameter:
+ A boolean or numerical value, specified separately for each MANET
+ interface of each router. A router MAY change interface parameter
+ values at any time, subject to some constraints.
+
+ Router parameter:
+ A boolean or numerical value, specified for each router, and not
+ specific to an interface. A router MAY change router parameter
+ values at any time, subject to some constraints.
+
+ Information Base:
+ A collection of information maintained by this protocol and which
+ is to be made available to MANET routing protocols. An
+ Information Base may be associated with a MANET interface or with
+ a router.
+
+ Furthermore, this document uses the following notational conventions:
+
+ X contains y, or y is contained in X
+ An unordered list membership operator. X is an unordered list and
+ y is an element. "X contains y" or "y is contained in X" returns
+ true if the unordered list X includes the element y, and returns
+ false otherwise.
+
+ X contains Y, or Y is contained in X
+ An unordered list inclusion operator. X and Y are both unordered
+ lists. "X contains Y" or "Y is contained in X" returns true if
+ the unordered list X contains all elements y which are contained
+ in Y, and returns false otherwise.
+
+ A overlaps B
+ If A and B are network addresses, and the range of addresses
+ represented by A and the range of addresses represented by B both
+ contain at least one common address. (This is only possible if
+ one range is a sub-range of the other.)
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 8]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ a := b
+ An assignment operator, whereby the left side (a) is assigned the
+ value of the right side (b). a and b may be values, network
+ addresses, or unordered lists (they must be of the same type).
+
+ c = d
+ A comparison operator, returning true if the value of the left
+ side (c) is equal to the value of the right side (d). c and d may
+ be values, network addresses, or unordered lists (they must be of
+ the same type). If c and d are unordered lists, then they are
+ considered to be equal if c contains d and d contains c (i.e.,
+ they contain the same set of elements, regardless of the order in
+ which they are recorded in the lists). If c and d are network
+ addresses, they are considered equal only if both addresses and
+ prefix lengths are equal (i.e., they represent the same).
+
+ e != f
+ A comparison operator, returning not (e = f), i.e., returning true
+ where (e = f) would have returned false, and returning false where
+ (e = f) would have returned true.
+
+3. Applicability Statement
+
+ This protocol:
+
+ o Is applicable to networks, especially wireless networks, in which
+ unknown neighbors can be reached by local broadcast or multicast
+ packets.
+
+ o Is designed to work in networks with a dynamic topology, and in
+ which messages may be lost, such as due to collisions in wireless
+ networks.
+
+ o Supports routers that each have one or more participating MANET
+ interfaces. The set of a router's interfaces may change over
+ time. Each interface may have one or more associated network
+ addresses, and these may also be dynamically changing.
+
+ o Provides each router with current local topology information up to
+ two hops away, and makes this local topology information available
+ to MANET routing protocols in Information Bases.
+
+ o Uses the packet and message formats specified in [RFC5444]. This
+ includes the definition of a HELLO Message Type, used for
+ signaling local topology information.
+
+ o Allows "external" and "internal" extensibility as enabled by
+ [RFC5444].
+
+
+
+Clausen, et al. Standards Track [Page 9]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o May interact with, and be extended by, other protocols, such as
+ MANET routing protocols, see Section 16.
+
+ o Can use relevant link-layer information if it is available.
+
+ o Is designed to work in a completely distributed manner, and does
+ not depend on any central entity.
+
+4. Protocol Overview and Functioning
+
+ The objective of this protocol is, for each router:
+
+ o To identify 1-hop neighbors and symmetric 1-hop neighbors of this
+ router.
+
+ o To find the interface network addresses of the router's symmetric
+ 2-hop neighbors.
+
+ o To record this information in Information Bases and thus make this
+ information available to other protocols that use this
+ neighborhood discovery protocol.
+
+ o To be available for use by other protocols, which MAY extend the
+ information in these Information Bases, including adding new Sets
+ to Information Bases, new elements to protocol Tuples and new TLVs
+ to be included in outgoing HELLO messages and processed when in
+ incoming HELLO messages.
+
+ These objectives are achieved using local (1-hop) signaling that:
+
+ o Advertises the presence of a router and its interface network
+ addresses.
+
+ o Discovers links from neighboring routers.
+
+ o Performs bi-directionality checks on the discovered links.
+
+ o Advertises discovered links, and whether each is symmetric, to its
+ 1-hop neighbors, and hence discovers symmetric 2-hop neighbors.
+
+ This specification defines, in turn:
+
+ o Parameters and constants used by the protocol. Parameters used by
+ this protocol may, where appropriate, be specific to a given MANET
+ interface or to a MANET router. This protocol allows all
+ parameters to be changed dynamically, and to be set independently
+ for each MANET router or MANET interface, as appropriate.
+
+
+
+
+Clausen, et al. Standards Track [Page 10]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o The Information Bases describing local interfaces, discovered
+ links and their status, current and former 1-hop neighbors, and
+ symmetric 2-hop neighbors.
+
+ o The format of the HELLO message that is used for local signaling.
+
+ o The generation of HELLO messages from some of the information in
+ the Information Bases.
+
+ o The updating of the Information Bases according to received HELLO
+ messages and other events.
+
+ o The response to other events, such as the expiration of
+ information in the Information Bases.
+
+4.1. Routers and Interfaces
+
+ In order for a router to participate in a MANET, it MUST have at
+ least one, and possibly more, MANET interfaces.
+
+ Each MANET interface:
+
+ o Is configured with one or more network addresses. Each address in
+ the range of addresses represented by that network address MUST
+ satisfy the following properties:
+
+ o It MUST be unique to this router, i.e., it MUST NOT be assigned
+ to any interface of any other router.
+
+ o If assigned to other MANET interfaces, on the same router,
+ these MANET interfaces MUST be isolated, i.e., addresses may
+ only be assigned to different interfaces on the same router if
+ no MANET interface on another router can communicate with both.
+ For example, interfaces using distinct radio "channels" MAY be
+ assigned the same address.
+
+ o Has a set of interface parameters, defining the behavior of this
+ MANET interface. Each MANET interface MAY be individually
+ parameterized.
+
+ o Has an Interface Information Base, recording information regarding
+ links to this MANET interface and symmetric 2-hop neighbors that
+ can be reached through such links.
+
+ o Generates and processes HELLO messages.
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 11]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ In addition to a set of MANET interfaces as described above, each
+ router has:
+
+ o A Local Information Base, containing the network addresses of the
+ interfaces (MANET and non-MANET) of this router. The contents of
+ this Information Base are not changed by signaling.
+
+ o A Neighbor Information Base, recording information regarding
+ current and recently lost 1-hop neighbors of this router.
+
+ A router may have both MANET interfaces and non-MANET interfaces.
+ Interfaces of both of these types are recorded in a router's Local
+ Information Base, which is used, but not updated, by the signaling of
+ this protocol.
+
+4.2. Information Base Overview
+
+ Each router maintains protocol state using Information Bases,
+ described in the following sections. Each Information Base consists
+ of a number of Protocol Sets. Each Protocol Set contains a number of
+ Protocol Tuples.
+
+ An implementation of this protocol MAY maintain this information in
+ the indicated form, or in any other organization that offers access
+ to this information. In particular, note that it is not necessary to
+ remove Protocol Tuples from Protocol Sets at the exact time
+ indicated, only to behave as if the Protocol Tuples were removed at
+ that time.
+
+ Information in the Local Information Base is defined locally and
+ included in HELLO messages. Information in the Interface Information
+ Base and the Neighbor Information Base is determined from received
+ HELLO messages; some of this information may also be included in
+ transmitted HELLO messages. Such information has a limited duration
+ in which it is considered valid. This duration is determined from
+ the VALIDITY_TIME TLV in the HELLO message in which the information
+ is received, which in turn is set by the router that originated the
+ HELLO message, using its corresponding interface parameter
+ H_HOLD_TIME.
+
+ Appendix E illustrates the relationship between message reception,
+ included VALIDITY_TIME TLVs, and the duration for which information
+ received in a HELLO message is considered valid. Appendix F
+ illustrates some example topologies and how they correspond to
+ information in the Information Bases.
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 12]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+4.2.1. Local Information Base
+
+ Each router maintains a Local Information Base, which contains the
+ router's local configuration information, specifically:
+
+ o The Local Interface Set, which consists of Local Interface Tuples,
+ each of which represents an interface (MANET or non-MANET) of the
+ router.
+
+ o The Removed Interface Address Set, which consists of Removed
+ Interface Address Tuples, each of which records a recently used
+ network address of an interface (MANET or non-MANET) of the
+ router.
+
+ The Local Interface Set is used for generating HELLO messages,
+ specifically for determining which interface network addresses are to
+ be included and identified as local interfaces. The Removed
+ Interface Address Set is used to avoid incorrectly recording a
+ formerly used network address as a symmetric 2-hop neighbor's network
+ address.
+
+ The Local Information Base is used for generating signaling, but is
+ not itself updated by signaling specified in this document. Updates
+ to the Local Information Base are due to changes of the router
+ configuration, and may be allowed to trigger signaling.
+
+4.2.2. Interface Information Bases
+
+ Each router maintains, for each of its MANET interfaces, an Interface
+ Information Base, which contains 1-hop neighborhood and symmetric
+ 2-hop neighborhood information collected from this MANET interface,
+ specifically:
+
+ o A Link Set, which records information about current and recently
+ lost links between this MANET interface and MANET interfaces of
+ 1-hop neighbors. The Link Set consists of Link Tuples, each of
+ which contains information about a single link. Link quality
+ information (see Section 14), when used, is recorded in Link
+ Tuples.
+
+ o A 2-Hop Set, which records the existence of symmetric links
+ between symmetric 1-hop neighbors of this MANET interface and
+ other routers (symmetric 2-hop neighbors). The 2-Hop Set consists
+ of 2-Hop Tuples, each of which records a network address of a
+ symmetric 2-hop neighbor, and all network addresses of the
+ corresponding symmetric 1-hop neighbor.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 13]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ The Link Set for a MANET interface is used for generating HELLO
+ messages. Specifically, the Link Set information is included to both
+ allow other routers to identify symmetric links and to populate the
+ 2-Hop Set. Recently lost links are recorded in the Link Set for a
+ MANET interface so that they can be advertised in HELLO messages,
+ accelerating their removal from relevant 1-hop neighbors' Link Sets.
+
+ The Link Set for a MANET interface is itself updated on receiving a
+ HELLO message, including recording symmetric links as indicated
+ above. The 2-Hop Set for a MANET interface is updated as indicated
+ above, and is not itself used in generating HELLO messages.
+
+4.2.3. Neighbor Information Base
+
+ Each router maintains a Neighbor Information Base, which contains
+ collected information about current and recently lost 1-hop
+ neighbors, specifically:
+
+ o The Neighbor Set consists of Neighbor Tuples, each of which
+ records all network addresses of a single 1-hop neighbor.
+ Neighbor Tuples are maintained as long as there are corresponding
+ Link Tuples.
+
+ o The Lost Neighbor Set consists of Lost Neighbor Tuples, each of
+ which records a network address of a recently lost symmetric 1-hop
+ neighbor.
+
+ The Neighbor Set associates all network addresses of each 1-hop
+ neighbor. These network addresses may be included when generating a
+ HELLO message, so that other symmetric 1-hop neighbors can record
+ this information in a 2-Hop Set. The Neighbor Set can be updated on
+ receiving a HELLO message.
+
+ The Lost Neighbor Set is used to determine which network addresses
+ are to be included in a HELLO message as being lost (of a recently
+ symmetric 1-hop neighbor). The Lost Neighbor Set can itself be
+ updated on receiving a HELLO message.
+
+4.3. Signaling Overview
+
+ This protocol contains a signaling mechanism for maintaining the
+ Interface Information Bases and the Neighbor Information Base. If
+ information from the link layer, or any other source, is available
+ and appropriate, it may also be used to update these Information
+ Bases. Such updates are subject to the constraints specified in
+ Appendix B.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 14]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Signaling consists of a single type of message, known as a HELLO
+ message. Each router generates HELLO messages on each of its MANET
+ interfaces. HELLO messages are generated independently on each MANET
+ interface of a MANET router; the content of a given HELLO message
+ depends on the MANET interface for which it has been generated.
+
+ Each HELLO message:
+
+ o Identifies, as far as is required, the MANET interface for which
+ it is generated and transmitted; this allows recipients of that
+ HELLO message to identify that MANET interface from among those it
+ may hear.
+
+ o Reports the network addresses of other interfaces (MANET and non-
+ MANET) of the router; this allows recipients of that HELLO message
+ to associate a set of network addresses with a single 1-hop
+ neighbor.
+
+ o Includes 1-hop neighbor information from the Information Bases;
+ this allows detection of local symmetric links, and symmetric
+ 2-hop neighbors.
+
+ HELLO message generation, and the validity of the information
+ recorded as a consequence of processing a HELLO message, is affected
+ by timers and validity information included in HELLO messages through
+ TLVs. The relationship between message timers and intervals is
+ illustrated in Appendix E.
+
+4.3.1. HELLO Message Generation
+
+ HELLO messages are generated by a router for each of its MANET
+ interfaces, and MAY be sent:
+
+ o Proactively, at a regular interval, known as HELLO_INTERVAL.
+ HELLO_INTERVAL may be fixed, or may be dynamic. For example,
+ HELLO_INTERVAL may be backed off due to congestion or network
+ stability.
+
+ o As a response to a change in the router itself, or its 1-hop
+ neighborhood, for example, on first becoming active or in response
+ to a new, lost, or changed status link.
+
+ o In a combination of these proactive and responsive mechanisms.
+
+ Jittering of HELLO message generation and transmission SHOULD be used
+ as described in Section 11.2, unless the medium access control
+ mechanism in use prevents any simultaneous transmissions by
+ potentially interfering routers.
+
+
+
+Clausen, et al. Standards Track [Page 15]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ HELLO messages MAY be scheduled independently for each MANET
+ interface, or, interface parameters permitting, using the same
+ schedule for all MANET interfaces of a router.
+
+4.3.2. HELLO Message Content
+
+ The content of a HELLO message MUST satisfy the following:
+
+ o A HELLO message MUST contain all of the network addresses in the
+ Local Interface Set of the router on which the HELLO message is
+ being generated. This includes:
+
+ o At least one network address of each MANET interface of the
+ router.
+
+ o Network addresses that include all source addresses of any IP
+ datagrams sent by the router on any MANET interface.
+
+ o All other network addresses of the router that are to be made
+ known to any other router for any reason.
+
+ o For each MANET interface, within every time interval equal to the
+ corresponding REFRESH_INTERVAL, sent HELLO messages MUST
+ collectively include all of the relevant information in the
+ corresponding Link Set and the Neighbor Information Base. Note
+ that when determining whether to include information in a HELLO
+ message, the sender MUST consider all times up to the latest time
+ when it may send its next HELLO message on this MANET interface.
+
+ o For each MANET interface, within every time interval equal to the
+ corresponding REFRESH_INTERVAL, sent HELLO messages MUST
+ collectively include all of the relevant information in the
+ corresponding Link Set and the Neighbor Information Base.
+
+ o When determining whether to include a given piece of neighbor
+ information in a HELLO message, it is not sufficient to consider
+ whether that information has been sent in the interval of length
+ REFRESH_INTERVAL up to the current time. Instead, the router MUST
+ consider the interval of length REFRESH_INTERVAL that will end at
+ the latest possible time at which the next HELLO message will be
+ sent on this MANET interface. (Normally, this will be
+ HELLO_INTERVAL past the current time, but MAY be earlier if this
+ router elects to divide its neighbor information among more than
+ one HELLO message in order to reduce the size of its HELLO
+ messages.) All neighbor information MUST be sent in this
+ interval, i.e., the router MUST ensure that this HELLO message
+ includes all neighbor information that has not already been
+ included in any HELLO messages sent since the start of this
+
+
+
+Clausen, et al. Standards Track [Page 16]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ interval (normally, the current time - (REFRESH_INTERVAL -
+ HELLO_INTERVAL)).
+
+ o A HELLO message MUST include exactly one VALIDITY_TIME Message
+ TLV, as specified in [RFC5497], that indicates the length of time
+ for which the message content is to be considered valid, and is
+ therefore to be included in the receiving router's Interface
+ Information Base.
+
+ o A periodically generated HELLO message SHOULD include exactly one
+ INTERVAL_TIME Message TLV, as specified in [RFC5497], that
+ indicates the current value of HELLO_INTERVAL for that MANET
+ interface, i.e., the period within which a further HELLO message
+ is guaranteed to be sent on that MANET interface.
+
+4.3.3. HELLO Message Processing
+
+ HELLO messages received by a router are used to update the Interface
+ Information Base for the MANET interface over which that HELLO
+ message was received, as well as the Neighbor Information Base of the
+ router. Specifically:
+
+ o The router ensures that there is a single Neighbor Tuple
+ corresponding to the originator of that HELLO message.
+
+ o The router ensures that there is a Link Tuple, with appropriate
+ status (heard or symmetric) and advertised duration, corresponding
+ to the link between the MANET interfaces on which that HELLO
+ message was sent and received. One or more Lost Neighbor Tuples
+ may be created if the HELLO message reports that the link was
+ lost.
+
+ o If the link between the MANET interfaces on which the HELLO
+ message was sent and received is symmetric, then the router
+ ensures that there are the appropriate 2-Hop Tuples, with
+ advertised duration.
+
+ The processing defined in this specification handles any unexpected
+ and erroneous information in a HELLO message, maintaining the
+ constraints on Information Base contents specified in Appendix B.
+
+4.4. Link Quality
+
+ Some links in a MANET may be marginal, e.g., due to adverse wireless
+ propagation. In order to avoid using such marginal links, a link
+ quality value is recorded in each Link Tuple. A MANET router
+ considers links for which an insufficient link quality is recorded as
+ lost. Modifying the recorded link quality in a Link Tuple is
+
+
+
+Clausen, et al. Standards Track [Page 17]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ OPTIONAL. If link quality is not to be modified, it MUST be set to
+ indicate an always usable quality link.
+
+ Note that link quality is a "link admittance" mechanism, allowing a
+ router to determine that a given link is too unstable to even
+ consider for use. It is specifically not a link metric nor is it a
+ substitute for one.
+
+ Link quality information is only used locally and is not used in
+ signaling. Routers may interoperate whether they are using the same,
+ different, or no link quality information. Link quality information
+ is thus not equivalent to a link metric.
+
+ Link quality information is defined in this specification as a
+ normalized, dimensionless value in the interval zero to one,
+ inclusive, where the greater the value, the better the link quality.
+ See Section 14 for further details.
+
+5. Protocol Parameters and Constants
+
+ The parameters and constants used in this specification are described
+ in this section.
+
+5.1. Protocol and Port Numbers
+
+ This protocol specifies HELLO messages, which are included in packets
+ as defined by [RFC5444]. These packets may be sent using either the
+ "manet" protocol number or the "manet" well-known UDP port number, as
+ specified in [RFC5498].
+
+5.2. Multicast Address
+
+ This protocol specifies HELLO messages, which are included in packets
+ as defined by [RFC5444]. These packets may be locally transmitted
+ using the link-local multicast address "LL-MANET-Routers", as
+ specified in [RFC5498].
+
+5.3. Interface Parameters
+
+ The interface parameters used by this specification may be classified
+ into the following four categories:
+
+ o Message intervals
+
+ o Information validity times
+
+ o Link quality
+
+
+
+
+Clausen, et al. Standards Track [Page 18]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o Jitter
+
+ These are detailed in the following sections.
+
+ Different MANET interfaces (on the same or on different routers) MAY
+ employ different interface parameter values and MAY change their
+ interface parameter values dynamically, subject to the constraints
+ given in this section. A particular case is where all MANET
+ interfaces on all MANET routers within a given MANET employ the same
+ set of interface parameter values.
+
+5.3.1. Message Intervals
+
+ HELLO messages serve two principal functions:
+
+ o To advertise network addresses of this router's interface to its
+ 1-hop neighbors. The frequency of these advertisements is
+ regulated by the interface parameters HELLO_INTERVAL and
+ HELLO_MIN_INTERVAL.
+
+ o To advertise this router's knowledge of each of its 1-hop
+ neighbors. The frequency of the advertisement of each such
+ neighbor is regulated by the interface parameter REFRESH_INTERVAL.
+
+ Specifically, these parameters are as follows:
+
+ HELLO_INTERVAL:
+ The maximum time between the transmission of two successive HELLO
+ messages on this MANET interface. If using periodic transmission
+ of HELLO messages, these SHOULD be at a separation of
+ HELLO_INTERVAL, possibly modified by jitter as specified in
+ [RFC5148].
+
+ HELLO_MIN_INTERVAL:
+ The minimum interval between transmission of two successive HELLO
+ messages on this MANET interface. (This minimum interval MAY be
+ modified by jitter, as defined in [RFC5148].)
+
+ REFRESH_INTERVAL:
+ The maximum interval between advertisements, in a HELLO message on
+ this MANET interface, of each 1-hop neighbor network address and
+ its status. In all intervals of length REFRESH_INTERVAL, a router
+ MUST include each 1-hop neighbor network address and its status in
+ at least one HELLO message on this MANET interface. (This may be
+ in the same or in different HELLO messages.)
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 19]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ REFRESH_INTERVAL thus represents the frequency at which a piece of
+ information, as received in HELLO messages, can be expected to be
+ refreshed. Thus, the REFRESH_INTERVAL is used as a basis for
+ determining when such information expires in receiving routers (see
+ Section 5.3.2). HELLO_INTERVAL represents the frequency of HELLO
+ message emissions. Logically, HELLO_INTERVAL cannot be greater than
+ the REFRESH_INTERVAL; otherwise, information cannot be refreshed in a
+ timely manner.
+
+ HELLO messages can, however, be sent with a higher frequency. A
+ possible use for sending HELLO messages at such a higher frequency
+ includes sending partial HELLO messages (e.g., accommodating
+ constraints on packet sizes from the underlying medium) refreshing
+ only part of the information in each HELLO message. Another use is
+ for a router to send "empty HELLO messages", advertising its own
+ presence frequently in smaller HELLO messages (e.g., in case HELLO
+ message exchange success rates are used for link quality estimation,
+ or to enable rapid detection by new routers in the neighborhood) in
+ between HELLO messages refreshing neighbor information in other
+ routers.
+
+ The following constraints apply to these interface parameters:
+
+ o HELLO_INTERVAL > 0
+
+ o HELLO_MIN_INTERVAL >= 0
+
+ o HELLO_INTERVAL >= HELLO_MIN_INTERVAL
+
+ o REFRESH_INTERVAL >= HELLO_INTERVAL
+
+ o If an INTERVAL_TIME Message TLV as defined in [RFC5497] is
+ included in a HELLO message, then HELLO_INTERVAL MUST be
+ representable as described in [RFC5497].
+
+ If REFRESH_INTERVAL > HELLO_INTERVAL, then a router may distribute
+ its neighbor advertisements between HELLO messages in any manner,
+ subject to the constraints above.
+
+ In the absence of any changes to the local neighborhood, a router
+ will send a HELLO message on a MANET interface after an (possibly
+ jittered) interval of length HELLO_INTERVAL. For a router to employ
+ this protocol in a purely responsive manner on a MANET interface,
+ i.e., for the router to only send HELLO messages on that MANET
+ interface as a response to external events, HELLO_INTERVAL (and hence
+ also REFRESH_INTERVAL) SHOULD be set sufficiently large, i.e., such
+ that a responsive HELLO message is always expected with a shorter
+ period than this value.
+
+
+
+Clausen, et al. Standards Track [Page 20]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ If a router has more than one MANET interface, then, even if the
+ router configures different values of HELLO_INTERVAL on each MANET
+ interface, the router SHOULD configure the same value of
+ HELLO_MIN_INTERVAL on all MANET interfaces on which responsive HELLO
+ messages may be sent. (This ensures that changes observed on one
+ MANET interface are reported on other MANET interfaces, so that 1-hop
+ neighbors connected to the latter can maintain up-to-date 2-hop
+ neighborhood information.)
+
+5.3.2. Information Validity Times
+
+ The following interface parameters manage the validity time of link
+ information:
+
+ L_HOLD_TIME:
+ The period of advertisement, on this MANET interface, of former
+ 1-hop neighbor network addresses as lost in HELLO messages,
+ allowing recipients of these HELLO messages to accelerate removal
+ of this information from their Link Sets. L_HOLD_TIME MAY be set
+ to zero, if accelerated information removal is not required.
+
+ H_HOLD_TIME:
+ Used as the Value in the VALIDITY_TIME Message TLV included in all
+ HELLO messages on this MANET interface. It is then used by each
+ router receiving such a HELLO message to indicate the validity of
+ the information taken from that HELLO message and recorded in the
+ receiving router's Information Bases.
+
+ Note that as each item of neighbor information is included in HELLO
+ messages within an interval of length REFRESH_INTERVAL, constraints
+ on H_HOLD_TIME are based on REFRESH_INTERVAL, not on HELLO_INTERVAL.
+
+ The following constraints apply to these interface parameters:
+
+ o L_HOLD_TIME >= 0
+
+ o H_HOLD_TIME >= REFRESH_INTERVAL
+
+ o If HELLO messages can be lost, then both parameters SHOULD be
+ significantly greater than REFRESH_INTERVAL.
+
+ o H_HOLD_TIME MUST be representable as described in [RFC5497].
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 21]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+5.3.3. Link Quality
+
+ The following interface parameters manage the usage of link quality
+ (see Section 14):
+
+ HYST_ACCEPT:
+ The link quality threshold at or above which a link becomes
+ usable, if it was not already so.
+
+ HYST_REJECT:
+ The link quality threshold below which a link becomes unusable, if
+ it was not already so.
+
+ INITIAL_QUALITY:
+ The initial quality of a newly identified link.
+
+ INITIAL_PENDING:
+ If true, then a newly identified link is considered pending, and
+ is not usable until the link quality has reached or exceeded the
+ HYST_ACCEPT threshold.
+
+ The following constraints apply to these interface parameters:
+
+ o 0 <= HYST_REJECT <= HYST_ACCEPT <= 1
+
+ o 0 <= INITIAL_QUALITY <= 1.
+
+ o If link quality is not updated, then INITIAL_QUALITY >=
+ HYST_ACCEPT.
+
+ o If INITIAL_QUALITY >= HYST_ACCEPT, then INITIAL_PENDING := false.
+
+ o If INITIAL_QUALITY < HYST_REJECT, then INITIAL_PENDING := true.
+
+5.3.4. Jitter
+
+ If jitter, as defined in [RFC5148], is used, then these parameters
+ are as follows:
+
+ HP_MAXJITTER:
+ Represents the value of MAXJITTER used in [RFC5148] for
+ periodically generated HELLO messages on this MANET interface.
+
+ HT_MAXJITTER:
+ Represents the value of MAXJITTER used in [RFC5148] for externally
+ triggered HELLO messages on this MANET interface.
+
+ For constraints on these interface parameters, see [RFC5148].
+
+
+
+Clausen, et al. Standards Track [Page 22]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+5.4. Router Parameters
+
+ The two router parameters defined by this specification are in the
+ category of information validity time.
+
+5.4.1. Information Validity Time
+
+ The following router parameter manages the validity time of lost
+ symmetric 1-hop neighbor information:
+
+ N_HOLD_TIME:
+ Used as the period during which former 1-hop neighbor network
+ addresses are advertised as lost in HELLO messages, allowing
+ recipients of these HELLO messages to accelerate removal of this
+ information from their 2-Hop Sets. N_HOLD_TIME MAY be set to
+ zero, if accelerated information removal is not required.
+
+ I_HOLD_TIME:
+ The period for which a recently used local interface network
+ address is recorded.
+
+ The following constraints apply to these router parameters:
+
+ o N_HOLD_TIME >= 0
+
+ o I_HOLD_TIME >= 0
+
+5.5. Parameter Change Constraints
+
+ If protocol parameters are changed dynamically, the constraints in
+ this section apply.
+
+ HELLO_INTERVAL
+
+ o If the HELLO_INTERVAL for a MANET interface increases, then the
+ next HELLO message on this MANET interface MUST be generated
+ according to the previous, shorter, HELLO_INTERVAL. A number
+ of subsequent HELLO messages MAY be generated according to the
+ previous, shorter, HELLO_INTERVAL (but MUST include times
+ according to current parameters). This ensures that "promises"
+ as to timely transmission of a future HELLO message are kept
+ until these previous promises have expired.
+
+ o If the HELLO_INTERVAL for a MANET interface decreases, then the
+ following HELLO messages on this MANET interface MUST be
+ generated according to this current, shorter, HELLO_INTERVAL.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 23]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ REFRESH_INTERVAL
+
+ o If the REFRESH_INTERVAL for a MANET interface increases, then
+ the content of subsequent HELLO messages must be organized such
+ that the specification of the old value of REFRESH_INTERVAL is
+ satisfied for a further period equal to the old value of
+ REFRESH_INTERVAL.
+
+ o If the REFRESH_INTERVAL for a MANET interface decreases, then
+ it MAY be necessary to reschedule HELLO message generation on
+ that MANET interface, in order for the specification of
+ REFRESH_INTERVAL is satisfied from the time of change.
+
+ HYST_ACCEPT and HYST_REJECT
+
+ o If HYST_ACCEPT or HYST_REJECT changes, then the appropriate
+ actions for link quality change, as specified in Section 14.3,
+ MUST be taken.
+
+ L_HOLD_TIME
+
+ o If L_HOLD_TIME changes, then the expiry times of all relevant
+ Link Tuples MUST be changed.
+
+ N_HOLD_TIME
+
+ o If N_HOLD_TIME changes, then the expiry times of all relevant
+ Lost Neighbor Tuples MUST be changed.
+
+ HP_MAXJITTER
+
+ o If HP_MAXJITTER changes, then the periodic HELLO message
+ schedule on this MANET interface MAY be changed.
+
+ HT_MAXJITTER
+
+ o If HT_MAXJITTER changes, then externally triggered HELLO
+ messages on this MANET interface MAY be rescheduled.
+
+5.6. Constants
+
+ The constant C (time granularity) is used as specified in [RFC5497].
+
+6. Local Information Base
+
+ A router maintains a Local Information Base that records information
+ about its interfaces (MANET and non-MANET). Each interface of a
+ router MUST be identified by at least one network address. Such
+
+
+
+Clausen, et al. Standards Track [Page 24]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ network addresses MAY be specific to that interface, or MAY in some
+ circumstances be used by more than one interface as specified below.
+
+ The Local Information Base is not modified by signaling. If a
+ router's interface configuration changes, then the Local Information
+ Base MUST reflect these changes. This MAY also result in signaling
+ to advertise these changes.
+
+ It is not necessary to include all addresses of an interface in the
+ Local Information Base, and hence in HELLO messages. However, any
+ address that may be the source address of an IP datagram sent from
+ that interface MUST be included (and at least one address MUST be
+ included). A protocol using this specification MAY add additional
+ requirements to these, e.g., that any address that may be the
+ destination address of an IP datagram is also included.
+
+ The addresses assigned to an interface are "owned" by the router, and
+ MUST NOT be used by any other router as an interface address. If an
+ address has a prefix length and represents a range of addresses, this
+ applies to all addresses in that range (i.e., such ranges MUST NOT
+ overlap).
+
+ The addresses assigned to different interfaces on the same router
+ MUST be distinct (hence, network address ranges MUST NOT overlap)
+ except that:
+
+ o The same address MAY be assigned to any number of non-MANET
+ interfaces as well as to one (or more if the following condition
+ also applies) MANET interface.
+
+ o The same address MAY be assigned to two (or more if each pair
+ satisfies this condition) MANET interfaces if those two MANET
+ interfaces cannot communicate to, from, or one to and one from any
+ other MANET interface of another router.
+
+6.1. Local Interface Set
+
+ A router's Local Interface Set records its local interfaces. It
+ consists of Local Interface Tuples, one per interface:
+
+ (I_local_iface_addr_list, I_manet)
+
+ where:
+
+ I_local_iface_addr_list is an unordered list of the network
+ addresses of this interface.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 25]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ I_manet is a boolean flag, describing if this interface is a MANET
+ interface.
+
+ Local Interface Tuples are removed from the Local Interface Set only
+ when the routers' interface configuration changes, subject to
+ Section 9, i.e., they are not subject to timer-based expiration.
+
+6.2. Removed Interface Address Set
+
+ A router's Removed Interface Address Set records network addresses
+ that were recently used as local interface network addresses. If a
+ router's interface network addresses are immutable, then the Removed
+ Interface Address Set is always empty and MAY be omitted. It
+ consists of Removed Interface Address Tuples, one per network
+ address:
+
+ (IR_local_iface_addr, IR_time)
+
+ where:
+
+ IR_local_iface_addr is a recently used network address of an
+ interface of this router.
+
+ IR_time specifies when this Tuple expires and MUST be removed.
+
+7. Interface Information Bases
+
+ A router maintains an Interface Information Base for each of its
+ MANET interfaces. This records information about links to that MANET
+ interface and symmetric 2-hop neighbors that can be reached in two
+ hops using those links as the first hop. Each Interface Information
+ Base includes a Link Set and a 2-Hop Set.
+
+ A network address of a symmetric 2-hop neighbor can also be present
+ as the network address of a 1-hop neighbor. This allows the router
+ using this network address to be immediately considered as a
+ symmetric 2-hop neighbor if it fails to be a symmetric 1-hop
+ neighbor.
+
+ An element that specifies a time is considered expired if the current
+ time is greater than or equal to that time. One such element,
+ present in most Tuples, indicates, when expired, that the Tuple
+ itself is considered expired and MUST be removed. Tuples that do not
+ have such a time element are removed at other times as specified; for
+ example, a Neighbor Tuple is removed when all corresponding Link
+ Tuples have been removed.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 26]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+7.1. Link Set
+
+ An interface's Link Set records links from other routers that are, or
+ recently were, 1-hop neighbors. It consists of Link Tuples, each
+ representing a single link:
+
+ (L_neighbor_iface_addr_list, L_HEARD_time, L_SYM_time,
+ L_quality, L_pending, L_lost, L_time)
+
+ where:
+
+ L_neighbor_iface_addr_list is an unordered list of the network
+ addresses of the MANET interface of the 1-hop neighbor;
+
+ L_HEARD_time is the time up to which the MANET interface of the
+ 1-hop neighbor would be considered heard if not considering link
+ quality;
+
+ L_SYM_time is the time up to which the link to the 1-hop neighbor
+ would be considered symmetric if not considering link quality;
+
+ L_quality is a dimensionless number between 0 (inclusive) and 1
+ (inclusive) describing the quality of a link; a greater value of
+ L_quality indicating a higher quality link;
+
+ L_pending is a boolean flag, describing if a link is considered
+ pending (i.e., a candidate, but not yet established, link);
+
+ L_lost is a boolean flag, describing if a link is considered lost
+ due to low link quality;
+
+ L_time specifies when this Tuple expires and MUST be removed.
+
+ The status of the link, as obtained through HELLO message exchange
+ and using link quality, is denoted L_status. L_status can take the
+ Values PENDING, HEARD, SYMMETRIC, and LOST. The values LOST,
+ SYMMETRIC, and HEARD are defined in Section 18.5. The Value PENDING
+ is never used in a HELLO message, it is only used locally by a
+ router, and any Value distinct from LOST, SYMMETRIC, and HEARD may be
+ used.
+
+ L_status is defined by:
+
+ 1. If L_pending = true, then L_status := PENDING;
+
+ 2. otherwise, if L_lost = true, then L_status := LOST;
+
+
+
+
+
+Clausen, et al. Standards Track [Page 27]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 3. otherwise, if L_SYM_time is not expired, then L_status :=
+ SYMMETRIC;
+
+ 4. otherwise, if L_HEARD_time is not expired, then L_status :=
+ HEARD;
+
+ 5. otherwise, L_status := LOST.
+
+7.2. 2-Hop Set
+
+ An interface's 2-Hop Set records network addresses of symmetric 2-hop
+ neighbors, and the symmetric links to symmetric 1-hop neighbors
+ through which these symmetric 2-hop neighbors can be reached. It
+ consists of 2-Hop Tuples, each representing a single network address
+ of a symmetric 2-hop neighbor, and a single MANET interface of a
+ symmetric 1-hop neighbor.
+
+ (N2_neighbor_iface_addr_list, N2_2hop_addr, N2_time)
+
+ where:
+
+ N2_neighbor_iface_addr_list is an unordered list of the network
+ addresses of the MANET interface of the symmetric 1-hop neighbor
+ from which this information was received;
+
+ N2_2hop_addr is a network address of a symmetric 2-hop neighbor
+ that has a symmetric link (using any MANET interface) to the
+ indicated symmetric 1-hop neighbor;
+
+ N2_time specifies when this Tuple expires and MUST be removed.
+
+8. Neighbor Information Base
+
+ Each router maintains a Neighbor Information Base that records
+ information about network addresses of current and recently symmetric
+ 1-hop neighbors.
+
+8.1. Neighbor Set
+
+ A router's Neighbor Set records all network addresses of each 1-hop
+ neighbor. It consists of Neighbor Tuples, each representing a single
+ 1-hop neighbor:
+
+ (N_neighbor_addr_list, N_symmetric)
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 28]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ where:
+
+ N_neighbor_addr_list is an unordered list of the network addresses
+ of a 1-hop neighbor;
+
+ N_symmetric is a boolean flag, describing if this is a symmetric
+ 1-hop neighbor.
+
+ Neighbor Tuples are removed from the Neighbor Set only when
+ corresponding Link Tuples expire from the routers' Link Set, i.e.,
+ Neighbor Tuples are not directly subject to timer-based expiration.
+
+8.2. Lost Neighbor Set
+
+ A router's Lost Neighbor Set records network addresses of routers
+ that recently were symmetric 1-hop neighbors but that are now
+ advertised as lost. It consists of Lost Neighbor Tuples, each
+ representing a single such network address:
+
+ (NL_neighbor_addr, NL_time)
+
+ where:
+
+ NL_neighbor_addr is a network address of a router that recently
+ was a symmetric 1-hop neighbor of this router;
+
+ NL_time specifies when this Tuple expires and MUST be removed.
+
+9. Local Information Base Changes
+
+ The Local Information Base MUST be updated in response to changes in
+ the router's local interface configuration. These MAY also change
+ the Interface Information Base and the Neighbor Information Base. If
+ any changes to the latter Information Bases satisfy any of the
+ conditions described in Section 13, then those changes MUST be
+ applied immediately, unless noted otherwise below.
+
+ A router MAY transmit HELLO messages in response to these changes.
+
+9.1. Adding an Interface
+
+ If an interface is added to the router, then this is indicated by the
+ addition of a Local Interface Tuple to the Local Interface Set. If
+ the new interface is a MANET interface, then an initially empty
+ Interface Information Base MUST be created for this new MANET
+ interface. The actions in Section 9.3 MUST be taken for each network
+ address of this added interface. A HELLO message MAY be sent on all
+ MANET interfaces, it SHOULD be sent on the new interface if it is a
+
+
+
+Clausen, et al. Standards Track [Page 29]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ MANET interface. If using scheduled messages, then a message
+ schedule MUST be established on the new MANET interface.
+
+9.2. Removing an Interface
+
+ If an interface is removed from the router, then this MUST result in
+ changes to the Local Information Base and to the Neighbor Information
+ Base as follows:
+
+ 1. Identify the Local Interface Tuple that corresponds to the
+ interface to be removed.
+
+ 2. For each network address (henceforth removed address) in the
+ I_local_iface_addr_list of that Local Interface Tuple, if that
+ network address is not in the I_local_iface_addr_list of any
+ other Local Interface Tuple, then create a Removed Interface
+ Address Tuple with:
+
+ o IR_local_iface_addr := removed address;
+
+ o IR_time := current time + I_HOLD_TIME.
+
+ 3. Remove that Local Interface Tuple from the Local Interface Set.
+
+ 4. If the interface to be removed is a MANET interface (i.e., with
+ I_manet = true), then:
+
+ 1. Remove the Interface Information Base for that MANET
+ interface;
+
+ 2. All Neighbor Tuples for which none of the network addresses
+ in its N_neighbor_addr_list are contained in any
+ L_neighbor_iface_addr_list in any remaining Link Tuple are
+ removed.
+
+ If the removed interface is the last MANET interface of the router,
+ then there will be no remaining Interface Information Bases, and the
+ router will no longer participate in this protocol.
+
+ After removing the interface and making these changes, a HELLO
+ message MAY be sent on all remaining MANET interfaces.
+
+9.3. Adding a Network Address to an Interface
+
+ If a network address is added to an interface, then this is indicated
+ by the addition of a network address to the appropriate
+ I_local_iface_addr_list. The following changes MUST be made to the
+ Information Bases:
+
+
+
+Clausen, et al. Standards Track [Page 30]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 1. Remove any Removed Interface Address Tuple whose
+ IR_local_iface_addr is the added network address.
+
+ 2. Remove any Neighbor Tuples whose N_neighbor_addr_list contains a
+ network address that overlaps the added network address.
+
+ 3. Remove any Link Tuples, in any Link Set, for which either:
+
+ o L_neighbor_iface_addr_list contains any network address in the
+ N_neighbor_addr_list of any removed Neighbor Tuple; OR
+
+ o L_neighbor_iface_addr_list contains a network address that
+ overlaps the added network address.
+
+ Apply Section 13.2 but not Section 13.3.
+
+ 4. Remove any Lost Neighbor Tuples whose NL_neighbor_addr overlaps
+ the added network address.
+
+ 5. Remove any 2-Hop Tuples whose N2_2hop_addr overlaps the added
+ network address.
+
+ After adding the network address and making these changes, a HELLO
+ message MAY be sent on all MANET interfaces.
+
+ These changes, other than to the appropriate I_local_iface_addr_list,
+ are made in order to maintain consistency of the Information Bases.
+ Specifically, these changes remove any record of any use of this
+ network address by routers in the 1-hop neighborhood or in the
+ symmetric 2-hop neighborhood of this router.
+
+9.4. Removing a Network Address from an Interface
+
+ If a network address (henceforth removed address) is removed from an
+ interface, then:
+
+ 1. Identify the Local Interface Tuple that corresponds to the
+ removed address.
+
+ 2. If this is the only network address of that interface (the only
+ network address in the corresponding I_local_iface_addr_list),
+ then remove that interface as specified in Section 9.2.
+
+ 3. Otherwise:
+
+ 1. Remove the removed address from this I_local_iface_addr_list.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 31]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 2. If the removed address is not in the I_local_iface_addr_list
+ of any other Local Interface Tuple, then create a Removed
+ Interface Address Tuple with:
+
+ o IR_local_iface_addr := removed address;
+
+ o IR_time := current time + I_HOLD_TIME.
+
+ After removing the network address and making these changes, a HELLO
+ message MAY be sent on all MANET interfaces.
+
+10. Packets and Messages
+
+ The packet and message format used by this protocol is defined in
+ [RFC5444], which is used with the following considerations:
+
+ o This protocol specifies one Message Type, the HELLO message.
+
+ o A HELLO message MAY use any combination of Message Header options
+ specified in [RFC5444].
+
+ o HELLO messages MUST NOT be forwarded, i.e., a <msg-hop-limit>, if
+ present, MUST have the value 1.
+
+ o HELLO messages MAY be included in multi-message packets as
+ specified in [RFC5444].
+
+ o Received HELLO messages MUST be parsed in accordance with
+ [RFC5444]. A HELLO message that is not in conformance with
+ [RFC5444] MUST be discarded without being processed. A HELLO
+ message can also be discarded without being processed for other
+ reasons, see Section 12.1.
+
+ o This protocol specifies three Address Block TLVs. It also uses
+ two Message TLVs defined in [RFC5497]. These five TLV Types are
+ all defined only with Type Extension = 0. TLVs of other types,
+ and of these types but without Type Extension = 0, are ignored by
+ this protocol. All references in this specification to, for
+ example, an Address Block TLV with Type = LINK_STATUS, are to be
+ considered as referring to an Address Block TLV with Type =
+ LINK_STATUS and Type Extension = 0.
+
+10.1. HELLO Messages
+
+ A HELLO message MUST contain:
+
+ o Exactly one VALIDITY_TIME Message TLV as specified in [RFC5497],
+ representing H_HOLD_TIME for the transmitting MANET interface.
+
+
+
+Clausen, et al. Standards Track [Page 32]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ The options included in [RFC5497] for representing zero and
+ infinite times MUST NOT be used.
+
+ A HELLO message transmitted due to a periodic timer SHOULD contain,
+ and otherwise (i.e., transmitted for any other reason, in particular
+ in response to any Information Base changes) MAY contain:
+
+ o Exactly one INTERVAL_TIME Message TLV as specified in [RFC5497],
+ representing HELLO_INTERVAL for the transmitting MANET interface.
+ The options included in [RFC5497] for representing zero and
+ infinite times MUST NOT be used.
+
+ A HELLO message MAY contain:
+
+ o Other Message TLVs.
+
+ o One or more Address Blocks, each with an associated Address Block
+ TLV Block, which MAY contain other Address Block TLVs.
+
+10.1.1. Address Blocks
+
+ All network addresses in a router's Local Interface Set (i.e., in any
+ I_local_iface_addr_list) MUST be represented as address objects (see
+ [RFC5444]), and included in the Address Blocks in all generated HELLO
+ messages, with the following permitted exception:
+
+ o If the MANET interface on which the HELLO message is to be sent
+ has a single address with maximum prefix length (i.e., /32 for
+ IPv4, /128 for IPv6), then that address MAY be omitted from being
+ included in any Address Block, provided that this address is
+ included as the sending address of the IP datagram in which the
+ HELLO message is included.
+
+ All network addresses of the router's interfaces included in any
+ Address Block(s) MUST be associated with an Address Block TLV with
+ Type = LOCAL_IF, as defined in Table 1.
+
+ +----------+---------+----------------------------------------------+
+ | Name | Value | Description |
+ | | Length | |
+ +----------+---------+----------------------------------------------+
+ | LOCAL_IF | 1 octet | Specifies that the network address is |
+ | | | associated with the MANET interface on which |
+ | | | the message was sent (THIS_IF) or another |
+ | | | interface of the sending router (OTHER_IF). |
+ +----------+---------+----------------------------------------------+
+
+ Table 1: LOCAL_IF TLV Definition
+
+
+
+Clausen, et al. Standards Track [Page 33]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Address Blocks MAY contain current or recently lost 1-hop neighbors'
+ network addresses, represented as address objects (see [RFC5444]),
+ each of which is associated with one or both Address Block TLVs as
+ described in Table 2.
+
+ +--------------+---------+------------------------------------------+
+ | Name | Value | Description |
+ | | Length | |
+ +--------------+---------+------------------------------------------+
+ | LINK_STATUS | 1 octet | Specifies the status of the link from |
+ | | | the indicated network address and to the |
+ | | | MANET interface over which the HELLO |
+ | | | message is transmitted (LOST, SYMMETRIC, |
+ | | | or HEARD). |
+ | OTHER_NEIGHB | 1 octet | Specifies that the network address is |
+ | | | (SYMMETRIC) or was (LOST) of a MANET |
+ | | | interface of a symmetric 1-hop neighbor |
+ | | | of the router transmitting the HELLO |
+ | | | message. |
+ +--------------+---------+------------------------------------------+
+
+ Table 2: LINK_STATUS and OTHER_NEIGHB TLV Definition
+
+ An Address Block TLV with Type = LINK_STATUS and Value = SYMMETRIC or
+ Value = LOST also performs the function of an Address Block TLV with
+ Type = OTHER_NEIGHB and the same Value. Including the latter
+ associated with the same address object is discouraged for efficiency
+ reasons. If an Address Block TLV with Type = LINK_STATUS and Value =
+ SYMMETRIC is combined with an Address Block TLV with Type =
+ OTHER_NEIGHB and Value = LOST associated with the same address
+ object, then the latter MUST be ignored and SHOULD NOT be included.
+ See Appendix A.
+
+ Other network addresses MAY be represented as address objects (see
+ [RFC5444]) and included in Address Blocks, but MUST NOT be associated
+ with any of the Address Block TLVs specified in this specification.
+
+11. HELLO Message Generation
+
+ Each MANET interface MUST generate HELLO messages according to the
+ specification in this section. HELLO messages are generated for each
+ MANET interface independently. HELLO message generation and
+ scheduling MUST be according to the interface parameters for that
+ MANET interface, and MAY be independent for each MANET interface or,
+ interface parameters permitting, MANET interfaces MAY use the same
+ schedule.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 34]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ If transmitting periodic HELLO messages, then, following a HELLO
+ message transmission on a MANET interface, another HELLO message MUST
+ be transmitted on the same MANET interface after an interval not
+ greater than HELLO_INTERVAL. Two successive HELLO message
+ transmissions on the same MANET interface MUST be separated by at
+ least HELLO_MIN_INTERVAL, except as noted in Section 11.2.1.
+
+11.1. HELLO Message Specification
+
+ HELLO messages are generated independently on each MANET interface.
+
+ All network addresses in any I_local_iface_addr_list MUST be
+ included, represented as address objects (see [RFC5444]), except
+ that:
+
+ o If the interface on which the HELLO message is to be sent has a
+ single address with maximum prefix length (i.e., /32 for IPv4,
+ /128 for IPv6), then that address MAY be omitted, provided that
+ this address is included as the sending address of the IP datagram
+ in which the HELLO message is included.
+
+ All such included address objects MUST be associated with an Address
+ Block TLV with Type := LOCAL_IF and Value according to the following:
+
+ o If the address object represents a network address of the sending
+ MANET interface, then Value := THIS_IF.
+
+ o Otherwise, Value := OTHER_IF.
+
+ If such a network address is included in more than one
+ I_local_iface_addr_list, then, for efficiency reasons, it is
+ encouraged that the corresponding address object is associated with
+ only one Value using an Address Block TLV with Type := LOCAL_IF; this
+ MUST be Value := THIS_IF if the address object represents a network
+ address of the sending MANET interface.
+
+ The following network addresses of current or former 1-hop neighbors
+ MAY be represented as address objects (see [RFC5444]) and included in
+ any HELLO message, respecting the parameter REFRESH_INTERVAL for each
+ association for that MANET interface, and according to the following:
+
+ o Network addresses of MANET interfaces of 1-hop neighbors from the
+ Link Set of the Interface Information Base for this MANET
+ interface (i.e., from an L_neighbor_iface_addr_list), other than
+ those from Link Tuples with L_status = PENDING.
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 35]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o Other network addresses of symmetric 1-hop neighbors from the
+ Neighbor Set of this router's Neighbor Information Base (i.e.,
+ from an N_neighbor_addr_list).
+
+ o Network addresses of MANET interfaces of previously symmetric or
+ heard 1-hop neighbors connected on this MANET interface from the
+ Link Set of the Interface Information Base for this MANET
+ interface (i.e., from an L_neighbor_iface_addr_list with L_status
+ = LOST).
+
+ o Other network addresses of previously symmetric 1-hop neighbors
+ from the Lost Neighbor Set of this router's Neighbor Information
+ Base (i.e., from an NL_neighbor_addr).
+
+ Each such address object (see [RFC5444]) MUST be associated with one
+ or more appropriate Address Block TLVs. Specifically:
+
+ 1. For each address object (henceforth linked address) that
+ represents a network address contained in an
+ L_neighbor_iface_addr_list of a Link Tuple in the Link Set for
+ this MANET interface, for which L_status != PENDING, include the
+ linked address with an associated Address Block TLV with:
+
+ o Type := LINK_STATUS; AND
+
+ o Value := L_status.
+
+ 2. For each address object (henceforth neighbor address) that
+ represents a network address contained in an N_neighbor_addr_list
+ in a Neighbor Tuple with N_symmetric = true and that has not
+ already been included with an associated Address Block TLV with
+ Type = LINK_STATUS and Value = SYMMETRIC, include the neighbor
+ network address with an associated Address Block TLV with:
+
+ o Type := OTHER_NEIGHB; AND
+
+ o Value := SYMMETRIC.
+
+ 3. For each Lost Neighbor Tuple whose NL_neighbor_addr (henceforth
+ lost address) has not already been represented as an address
+ object and included, include lost address with an associated
+ Address Block TLV with:
+
+ o Type := OTHER_NEIGHB; AND
+
+ o Value := LOST.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 36]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ If any such network addresses have been added to these Information
+ Bases since the last HELLO message was sent on this MANET interface,
+ or if their status (as indicated by these TLVs and the Values they
+ associate with that network address) have changed since that network
+ address was last reported on this MANET interface, then that network
+ address, and the indicated TLVs, SHOULD be included in the HELLO
+ message.
+
+ If the address object (see [RFC5444]) representing a network address
+ of a 1-hop neighbor is specified with more than one associated
+ Address Block TLV, then these Address Block TLVs MAY be independently
+ included or excluded from each HELLO message. Each such Address
+ Block TLV MUST be included associated with the address object
+ representation of that network address in a HELLO message sent on
+ that MANET interface in every interval of length equal to that MANET
+ interface's parameter REFRESH_INTERVAL. Address Block TLVs
+ associated with the same address object included in the same HELLO
+ message MAY be applied to the same or different copies of that
+ address object.
+
+ An implementation of this protocol MAY limit the information included
+ in each HELLO message, for example, to accommodate smaller MTU sizes.
+ HELLO messages remain constrained by the above requirements, in
+ particular, that all local interface information MUST be included in
+ all HELLO messages, and that all neighbor information MUST be sent
+ within each interval of length REFRESH_INTERVAL. This neighbor
+ information MAY, however, be sent in the same or in different HELLO
+ messages.
+
+11.2. HELLO Message Transmission
+
+ HELLO messages are transmitted in the format specified by [RFC5444].
+
+11.2.1. HELLO Message Jitter
+
+ HELLO messages MAY be sent using periodic message generation or
+ externally triggered message generation. If using data link and
+ physical layers that are subject to packet loss due to collisions,
+ HELLO messages SHOULD be jittered as described in [RFC5148].
+
+ Internally triggered message generation (such as due to a change in
+ local interfaces) MAY be treated as if externally generated message
+ generation or MAY be not jittered.
+
+ HELLO messages MUST NOT be forwarded, and thus message forwarding
+ jitter does not apply to HELLO messages.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 37]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Each form of jitter described in [RFC5148] requires a parameter
+ MAXJITTER. These interface parameters may be dynamic and are
+ specified by:
+
+ o For periodic message generation: HP_MAXJITTER.
+
+ o For externally triggered message generation: HT_MAXJITTER.
+
+ When HELLO message generation is delayed in order that a HELLO
+ message is not sent within HELLO_MIN_INTERVAL of the previous HELLO
+ message on the same MANET interface, then HELLO_MIN_INTERVAL SHOULD
+ be reduced by jitter, with maximum reduction HP_MAXJITTER, as
+ described in [RFC5148]. In this case, HP_MAXJITTER MUST NOT be
+ greater than HELLO_MIN_INTERVAL.
+
+12. HELLO Message Processing
+
+ On receiving a HELLO message, a router MUST first check if the
+ message is invalid for processing by this router, as defined in
+ Section 12.1 and, if so, discard the message without further
+ processing. Otherwise, for each received and valid HELLO message,
+ the receiving router MUST update its appropriate Interface
+ Information Base and its Neighbor Information Base as specified in
+ Section 12.3 to Section 12.6. These updates MUST be performed in the
+ order in which they are presented in this specification. If any
+ changes satisfy any of the conditions described in Section 13, then
+ the indicated consequences in that section MUST be applied
+ immediately, unless noted otherwise.
+
+ All message processing, including determination of whether a message
+ is invalid, considers only TLVs with Type Extension = 0. TLVs with
+ any other type extension are ignored. All references to, for
+ example, a TLV with Type = LINK_STATUS refer to a TLV with Type =
+ LINK_STATUS and Type Extension = 0.
+
+12.1. Invalid Message
+
+ A received HELLO message is invalid for processing by this router if
+ any of the following conditions are true:
+
+ o The address length as specified in the Message Header is not equal
+ to the length of the addresses used by this router.
+
+ o The message has a <msg-hop-limit> field in its Message Header with
+ a value other than one. (Note that the message does not need to
+ have a <msg-hop-limit> field.)
+
+
+
+
+
+Clausen, et al. Standards Track [Page 38]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o The message has a <msg-hop-count> field in its Message Header with
+ a value other than zero. (Note that the message does not need to
+ have a <msg-hop-count> field.)
+
+ o The message does not have a Message TLV with Type = VALIDITY_TIME
+ in its Message TLV Block.
+
+ o The message has more than one Message TLV with Type =
+ VALIDITY_TIME in its Message TLV Block.
+
+ o The message has more than one Message TLV with Type =
+ INTERVAL_TIME in its Message TLV Block.
+
+ o The message has any Address Block TLV(s) with Type = LOCAL_IF and
+ any single Value v such that v != THIS_IF and v != OTHER_IF.
+
+ o Any address object (including different address objects
+ representing the same network address, in the same or different
+ Address Blocks) is associated with more than one Value by one or
+ more Address Block TLV(s) with Type = LOCAL_IF.
+
+ o Any address object (henceforth local address) associated with an
+ Address Block TLV with Type = LOCAL_IF represents one of the
+ receiving router's current or recently used network addresses
+ (i.e., local address overlaps any network address in any
+ I_local_iface_addr_list in the Local Interface Set or any
+ IR_local_iface_addr in the Removed Interface Address Set).
+
+ o The message has any Address Block TLV(s) with Type = LINK_STATUS
+ with any single Value v such that v != LOST, v != SYMMETRIC, and v
+ != HEARD.
+
+ o The message has any Address Block TLV(s) with Type = OTHER_NEIGHB
+ with any single Value v such that v != LOST and v != SYMMETRIC.
+
+ o Any address object (including different copies of an address
+ object, in the same or different Address Blocks) is associated
+ with an Address Block TLV with Type = LOCAL_IF and with an Address
+ Block TLV with Type = LINK_STATUS.
+
+ o Any address object (including different copies of an address
+ object, in the same or different Address Blocks) is associated
+ with an Address Block TLV with Type = LOCAL_IF and with an Address
+ Block TLV with Type = OTHER_NEIGHB.
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 39]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o Any address object (including different copies of an address
+ object, in the same or different Address Blocks) is associated
+ with more than one Value by one or more Address Block TLVs with
+ Type = LINK_STATUS.
+
+ o Any address object (including different copies of an address
+ object, in the same or different Address Blocks) is associated
+ with more than one Value by one or more Address Block TLVs with
+ Type = OTHER_NEIGHB.
+
+ A router MAY recognize additional reasons for identifying that a
+ message is badly formed and therefore invalid for processing, e.g.,
+ to allow a security protocol as suggested in Section 17 to perform
+ verification of HELLO message signatures and prevent processing of
+ unverifiable HELLO messages by this protocol.
+
+ An invalid message MUST be silently discarded, without updating the
+ router's Information Bases.
+
+12.2. Definitions
+
+ For the purpose of this section, note the following definitions:
+
+ o "validity time" is calculated from the Message TLV with Type =
+ VALIDITY_TIME of the HELLO message as specified in [RFC5497].
+ (Note that, as specified by Section 12.1, there must be exactly
+ one such Message TLV in the HELLO message.) All information in
+ the HELLO message used by this specification has the same validity
+ time.
+
+ o "Receiving Address List" is the I_local_iface_addr_list
+ corresponding to the MANET interface on which the HELLO message
+ was received
+
+ o "Sending Address List" is an unordered list of network addresses
+ of the MANET interface over which the HELLO message was sent,
+ i.e., is an unordered list of the network addresses represented by
+ address objects contained in the HELLO message with an associated
+ Address Block TLV with Type = LOCAL_IF and Value = THIS_IF. If
+ the Sending Address List is otherwise empty, then the Sending
+ Address List contains a single network address with maximum prefix
+ length (i.e., /32 for IPv4, /128 for IPv6) with an address equal
+ to the sending address of the IP datagram in which the HELLO
+ message was included.
+
+ o "Neighbor Address List" is an unordered list of all the network
+ addresses of all the interfaces of the router that generated the
+ HELLO message, i.e., is the Sending Address List, plus the network
+
+
+
+Clausen, et al. Standards Track [Page 40]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ addresses represented by address objects contained in the HELLO
+ message with an associated Address Block TLV with Type = LOCAL_IF
+ and Value = OTHER_IF.
+
+ o "EXPIRED" indicates that a timer is set to a value clearly
+ preceding the current time (e.g., current time - 1).
+
+ o "Removed Address List" is a list of network addresses created by
+ this HELLO message processing that were formerly reported as local
+ by the router originating the HELLO message but that are not
+ included in the Neighbor Address List. This list is initialized
+ as empty.
+
+ o "Lost Address List" is a subset of the Removed Address List
+ containing network addresses that were formerly considered as
+ symmetric. This list is initialized as empty.
+
+12.3. Updating the Neighbor Set
+
+ On receiving a HELLO message, the router MUST update its Neighbor Set
+ and populate the Removed Address List and Lost Address List:
+
+ 1. Find all Neighbor Tuples (henceforth matching Neighbor Tuples)
+ where N_neighbor_addr_list contains any network address that
+ overlaps with any network address in the Neighbor Address List.
+
+ 2. If there are no matching Neighbor Tuples, then:
+
+ 1. Create a new Neighbor Tuple with:
+
+ o N_neighbor_addr_list := Neighbor Address List;
+
+ o N_symmetric := false.
+
+ 3. If there is one matching Neighbor Tuple, then:
+
+ 1. If the matching Neighbor Tuple's N_neighbor_addr_list !=
+ Neighbor Address List, then:
+
+ 1. For each network address (henceforth removed address)
+ that is contained in that N_neighbor_addr_list but that
+ is not contained in the Neighbor Address List:
+
+ 1. Add the removed address to the Removed Address List.
+
+ 2. If N_symmetric = true, then add the removed address
+ to the Lost Address List.
+
+
+
+
+Clausen, et al. Standards Track [Page 41]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 2. Update the matching Neighbor Tuple by:
+
+ o N_neighbor_addr_list := Neighbor Address List.
+
+ 4. If there are two or more matching Neighbor Tuples, then:
+
+ 1. For each network address (henceforth removed address) that is
+ contained in the N_neighbor_addr_list of any of the matching
+ Neighbor Tuples but is not contained in the Neighbor Address
+ List:
+
+ 1. Add removed address to the Removed Address List.
+
+ 2. If N_symmetric = true, then add removed address to the
+ Lost Address List.
+
+ 2. Replace the matching Neighbor Tuples by a single Neighbor
+ Tuple with:
+
+ o N_neighbor_addr_list := Neighbor Address List;
+
+ o N_symmetric := false
+
+12.4. Updating the Lost Neighbor Set
+
+ On receiving a HELLO message, a router MUST update its Lost Neighbor
+ Set:
+
+ 1. For each network address (henceforth lost address) that is
+ contained in the Lost Address List, if no Lost Neighbor Tuple
+ with NL_neighbor_addr = lost address exists, then add a Lost
+ Neighbor Tuple with:
+
+ o NL_neighbor_addr := lost address;
+
+ o NL_time := current time + N_HOLD_TIME.
+
+12.5. Updating the Link Sets
+
+ On receiving a HELLO message, a router MUST update its Link Sets:
+
+ 1. Remove all network addresses in the Removed Address List from the
+ L_neighbor_iface_addr_list of all Link Tuples.
+
+ 2. Remove all Link Tuples whose L_neighbor_iface_addr_list is now
+ empty; apply Section 13.2 but not Section 13.3.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 42]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ The router MUST then update its Link Set for the MANET interface on
+ which the HELLO message is received:
+
+ 1. Find all Link Tuples (henceforth matching Link Tuples) where:
+
+ o L_neighbor_iface_addr_list contains one or more network
+ addresses in the Sending Address List.
+
+ 2. If there is more than one matching Link Tuple, then remove them
+ all; apply Section 13.2 but not Section 13.3.
+
+ 3. If no matching Link Tuples remain, then create a new matching
+ Link Tuple with:
+
+ o L_neighbor_iface_addr_list := empty;
+
+ o L_HEARD_time := EXPIRED;
+
+ o L_SYM_time := EXPIRED;
+
+ o L_quality := INITIAL_QUALITY;
+
+ o L_pending := INITIAL_PENDING;
+
+ o L_lost := false;
+
+ o L_time := current time + validity time.
+
+ 4. The matching Link Tuple, existing or new, is then modified as
+ follows:
+
+ 1. If the router finds any network address (henceforth receiving
+ address) in the Receiving Address List in an Address Block in
+ the HELLO message, then the Link Tuple is modified as
+ follows:
+
+ 1. If any receiving address in the HELLO message is
+ associated with an Address Block TLV with Type =
+ LINK_STATUS and with Value = HEARD or Value = SYMMETRIC,
+ then:
+
+ o L_SYM_time := current time + validity time.
+
+ 2. Otherwise, if any receiving address in the HELLO message
+ is associated with an Address Block TLV with Type =
+ LINK_STATUS and Value = LOST, then:
+
+ 1. if L_SYM_time has not expired, then:
+
+
+
+Clausen, et al. Standards Track [Page 43]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 1. L_SYM_time := EXPIRED.
+
+ 2. if L_status = HEARD, then:
+
+ o L_time := current time + L_HOLD_TIME.
+
+ 2. L_neighbor_iface_addr_list := Sending Address List.
+
+ 3. L_HEARD_time := max(current time + validity time,
+ L_SYM_time).
+
+ 4. If L_status = PENDING, then:
+
+ o L_time := max(L_time, L_HEARD_time).
+
+ 5. Otherwise, if L_status = HEARD or L_status = SYMMETRIC, then:
+
+ o L_time := max(L_time, L_HEARD_time + L_HOLD_TIME).
+
+12.6. Updating the 2-Hop Set
+
+ On receiving a HELLO message, a router MUST update its 2-Hop Set for
+ the MANET interface on which the HELLO message was received:
+
+ 1. Remove all network addresses in the Removed Address List from the
+ N2_neighbor_iface_addr_list of all 2-Hop Tuples.
+
+ 2. If the Link Tuple whose L_neighbor_iface_addr_list = Sending
+ Address List, has L_status = SYMMETRIC, then:
+
+ 1. For each network address (henceforth 2-hop address) in an
+ Address Block of the HELLO message, where:
+
+ o a 2-hop address is not contained in the Neighbor Address
+ List;
+
+ o a 2-hop address is not contained in any
+ I_local_iface_addr_list; AND
+
+ o a 2-hop address != any IR_local_iface_addr
+
+ perform the following processing:
+
+ 1. If the 2-hop address has an associated Address Block TLV
+ with:
+
+ o Type = LINK_STATUS and Value = SYMMETRIC; OR
+
+
+
+
+Clausen, et al. Standards Track [Page 44]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o Type = OTHER_NEIGHB and Value = SYMMETRIC,
+
+ then, if there is no 2-Hop Tuple such that:
+
+ o N2_neighbor_iface_addr_list contains one or more
+ network addresses in the Sending Address List; AND
+
+ o N2_2hop_addr = 2-hop address,
+
+ then create a 2-Hop Neighbor Tuple with:
+
+ o N2_2hop_addr := 2-hop address.
+
+ This 2-Hop Tuple (existing or new) is then modified as
+ follows:
+
+ o N2_neighbor_iface_addr_list := Sending Address List;
+
+ o N2_time := current time + validity time.
+
+ 2. Otherwise, if a 2-hop address has an Address Block TLV
+ with:
+
+ o Type = LINK_STATUS and Value = LOST or Value = HEARD;
+ OR
+
+ o Type = OTHER_NEIGHB and Value = LOST;
+
+ then remove all 2-Hop Tuples with:
+
+ o N2_neighbor_iface_addr_list containing one or more
+ network addresses in the Sending Address List; AND
+
+ o N2_2hop_addr = 2-hop address.
+
+13. Other Information Base Changes
+
+ The Interface and Neighbor Information Bases MUST be changed when
+ certain events occur. These events may result from HELLO message
+ processing or may be otherwise generated (e.g., expiry of timers or
+ link quality changes).
+
+ Events that cause changes in the Information Bases are:
+
+ o A Link Tuple's L_status changes to SYMMETRIC. In this case, the
+ actions specified in Section 13.1 are performed.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 45]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o A Link Tuple's L_status changes from SYMMETRIC, or the Link Tuple
+ is removed. In this case, the actions specified in Section 13.2
+ are performed.
+
+ o A Link Tuple's L_HEARD_time expires, or the Link Tuple is removed.
+ In this case, the actions specified in Section 13.3 are performed.
+
+ o Local interface network address changes. In this case, the
+ actions specified in Section 9 are performed.
+
+ o Link quality changes. In this case, the actions specified in
+ Section 14 are performed.
+
+ If a Link Tuple is removed, or if L_status changes from SYMMETRIC and
+ L_HEARD_time expires, then the actions specified in Section 13.2 MUST
+ be performed before the actions specified in Section 13.3 are
+ performed for that Link Tuple.
+
+ A router MAY report updated information in response to any of these
+ changes in HELLO message(s), subject to the constraints in
+ Section 11.
+
+ A router that transmits HELLO messages in response to such changes
+ SHOULD transmit a HELLO message:
+
+ o On all MANET interfaces, if the Neighbor Set changes such as to
+ indicate the change in symmetry of any 1-hop neighbors (including
+ addition or removal of symmetric 1-hop neighbors).
+
+ o Otherwise, on all those MANET interfaces whose Link Set changes
+ such as to indicate a change in L_status of any 1-hop neighbors
+ (including the addition or removal of any 1-hop neighbors, other
+ than those considered pending).
+
+13.1. Link Tuple Symmetric
+
+ If, for any Link Tuple that does not have L_status = SYMMETRIC:
+
+ o L_status changes to SYMMETRIC;
+
+ then:
+
+ 1. For the Neighbor Tuple whose N_neighbor_addr_list contains
+ L_neighbor_iface_addr_list, set:
+
+ o N_symmetric := true.
+
+
+
+
+
+Clausen, et al. Standards Track [Page 46]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 2. Remove all Lost Neighbor Tuples whose NL_neighbor_addr is
+ contained in that N_neighbor_addr_list.
+
+ This includes any newly created Link Tuples whose status is
+ immediately updated such that L_status = SYMMETRIC. (Note that in
+ this specification, all Link Tuples are created such that their
+ L_status is not SYMMETRIC, but a Link Tuple may be immediately
+ updated by subsequent processing of the same HELLO message that
+ caused the creation of the Link Tuple such that the Link Tuple's
+ L_status changes to SYMMETRIC.)
+
+13.2. Link Tuple Not Symmetric
+
+ If for any Link Tuple with L_status = SYMMETRIC:
+
+ o L_status changes to any other value; OR
+
+ o the Link Tuple is removed;
+
+ then:
+
+ 1. All 2-Hop Tuples for the same MANET interface with:
+
+ o N2_neighbor_iface_addr_list contains one or more network
+ addresses in L_neighbor_iface_addr_list;
+
+ are removed.
+
+ 2. For the Neighbor Tuple whose N_neighbor_addr_list contains
+ L_neighbor_iface_addr_list:
+
+ 1. If there are no remaining Link Tuples for any MANET interface
+ where:
+
+ o L_neighbor_iface_addr_list is contained in
+ N_neighbor_addr_list; AND
+
+ o L_status = SYMMETRIC;
+
+ then modify the Neighbor Tuple by:
+
+ 1. N_symmetric := false.
+
+ 2. For each network address (henceforth neighbor address) in
+ N_neighbor_addr_list, add a Lost Neighbor Tuple with:
+
+ o NL_neighbor_addr := neighbor address;
+
+
+
+
+Clausen, et al. Standards Track [Page 47]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o NL_time := current time + N_HOLD_TIME.
+
+13.3. Link Tuple Heard Timeout
+
+ If, for any Link Tuple:
+
+ o L_HEARD_time expires; OR
+
+ o the Link Tuple is removed;
+
+ then:
+
+ 1. For the Neighbor Tuple whose N_neighbor_addr_list contains
+ L_neighbor_iface_addr_list, if no Link Tuples for any MANET
+ interface remain where:
+
+ o L_neighbor_iface_addr_list is contained in
+ N_neighbor_addr_list; AND
+
+ o L_HEARD_time is not expired;
+
+ then remove the Neighbor Tuple.
+
+14. Link Quality
+
+ Link quality is a mechanism whereby a router MAY take considerations
+ other than message exchange into account for determining when a link
+ is and is not a candidate for being considered as HEARD or SYMMETRIC.
+ As such, it is a "link admission" mechanism.
+
+ Link quality information for a link is generated (e.g., through
+ access to signal to noise ratio, packet loss rate, or other
+ information from the link layer) and used only locally, i.e., is not
+ included in signaling, and routers may interoperate whether they are
+ using the same, different, or no, link quality information. Link
+ quality information is specified as a normalized, dimensionless
+ figure in the interval zero to one, inclusive, a higher value
+ indicating a better link quality.
+
+ For deployments where no link quality is used, the considerations in
+ Section 14.1 apply. For deployments where link quality is used, the
+ general principles of link quality usage are described in
+ Section 14.2. Sections 14.3 and 14.4 detail link quality
+ functioning.
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 48]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+14.1. Deployment without Link Quality
+
+ In order for a router to not employ link quality, the router MUST
+ define:
+
+ o INITIAL_PENDING := false;
+
+ o INITIAL_QUALITY >= HYST_REJECT (there is no reason not to define
+ INITIAL_QUALITY := 1).
+
+14.2. Basic Principles of Link Quality
+
+ To enable link quality usage, the L_quality value of a Link Tuple is
+ used in conjunction with two thresholds, HYST_ACCEPT and HYST_REJECT,
+ to set the flags L_pending and L_lost of that Link Tuple. Based on
+ these flags, the link status to advertise for that Link Tuple is
+ determined as described in Section 7.1.
+
+ The use of two thresholds implements link hysteresis, whereby a link
+ that has HYST_REJECT <= L_quality < HYST_ACCEPT may be either
+ accepted or rejected (depending on which threshold it has most
+ recently crossed, or, if neither, on the value of parameter
+ INITIAL_PENDING). With appropriate values of these parameters, this
+ prevents overly rapid changes of link status.
+
+ The basic principles of link quality usage are as follows:
+
+ o A router does not advertise a neighbor interface in any state
+ until L_quality is acceptable:
+
+ o If INITIAL_PENDING = true, then the link is advertised when
+ link L_quality >= HYST_ACCEPT.
+
+ o Otherwise, the link is advertised when L_quality >=
+ HYST_REJECT.
+
+ A link that is not yet advertised has L_pending = true.
+
+ o Once L_quality >= HYST_ACCEPT, the router sets L_pending := false,
+ indicating that the link can be advertised.
+
+ o A link for which L_pending = false is advertised until its
+ L_quality drops below HYST_REJECT.
+
+ o If a link has L_pending = false and L_quality < HYST_REJECT, the
+ link is LOST and is advertised as such. This link is not
+ reconsidered as a candidate HEARD or SYMMETRIC link until
+ L_quality >= HYST_ACCEPT.
+
+
+
+Clausen, et al. Standards Track [Page 49]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o A link that has an acceptable quality may be advertised as HEARD,
+ SYMMETRIC or LOST according to the exchange of HELLO messages.
+
+ In order that these principles can all hold, a router MUST NOT
+ define:
+
+ o INITIAL_PENDING = false and INITIAL_QUALITY < HYST_REJECT; OR
+
+ o INITIAL_PENDING = true and INITIAL_QUALITY >= HYST_ACCEPT.
+
+14.3. When Link Quality Changes
+
+ If L_quality for a link changes, then the following actions MUST be
+ taken:
+
+ 1. If L_quality >= HYST_ACCEPT, then the corresponding Link Tuple is
+ modified by:
+
+ 1. L_pending := false;
+
+ 2. L_lost := false;
+
+ 3. If L_status = HEARD or L_status = SYMMETRIC, then:
+
+ o L_time := max(L_time, L_HEARD_time + L_HOLD_TIME).
+
+ 2. If L_status != PENDING, and L_quality < HYST_REJECT, then the
+ corresponding Link Tuple is modified by:
+
+ 1. If L_lost = false, then:
+
+ o L_lost := true;
+
+ o L_time := min(L_time, current time + L_HOLD_TIME).
+
+ As a result of this processing, the L_STATUS of a Link Tuple may
+ change. In this case, the processing actions corresponding to this
+ change, as specified in Section 13, MUST also be taken.
+
+ If L_quality for a link is updated based on HELLO message reception,
+ or on reception of a packet including a HELLO message, then L_quality
+ MUST be updated prior to the HELLO message processing described in
+ Section 12. (If the receipt of the HELLO message, or the packet
+ containing it, creates the Link Tuple, then the Link Tuple MUST be
+ created with the appropriately updated L_quality value, rather than
+ with L_quality := INITIAL_QUALITY.)
+
+
+
+
+
+Clausen, et al. Standards Track [Page 50]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+14.4. Updating Link Quality
+
+ A router MAY update link quality based on any information available
+ to it. Particular cases that MAY be used include:
+
+ o Information from the link layer, such as signal-to-noise ratio or
+ packet acknowledgment reception and loss information.
+
+ o Receipt or loss of control packets. If control packets include a
+ sequential packet sequence number, as defined in [RFC5444], then
+ link quality can be updated when a control packet is received,
+ whether or not it contains a HELLO message. The link quality may
+ then, for example, be based on whether the last N out of M control
+ packets on the link were received, or may use a "leaky integrator"
+ tracking packet reception and loss.
+
+ o Receipt or loss of HELLO messages. If the maximum interval
+ between HELLO messages is known (such as by inclusion in HELLO
+ messages of a Message TLV with Type := INTERVAL_TIME, as defined
+ in [RFC5497]), then the loss of HELLO messages can be determined
+ without the need to receive a later HELLO message. Note that if
+ this case is combined with the previous case, then care must be
+ taken to avoid "double counting" a lost HELLO message in a lost
+ packet.
+
+15. Proposed Values for Parameters and Constants
+
+ This section lists the parameters and constants used in the
+ specification of the protocol, and proposed values of each that MAY
+ be used when a single value of each is used.
+
+15.1. Message Interval Interface Parameters
+
+ o HELLO_INTERVAL := 2 seconds
+
+ o HELLO_MIN_INTERVAL := HELLO_INTERVAL/4
+
+ o REFRESH_INTERVAL := HELLO_INTERVAL
+
+15.2. Information Validity Time Interface Parameters
+
+ o H_HOLD_TIME := 3 x REFRESH_INTERVAL
+
+ o L_HOLD_TIME := H_HOLD_TIME
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 51]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+15.3. Information Validity Time Router Parameters
+
+ o N_HOLD_TIME := L_HOLD_TIME
+
+ o I_HOLD_TIME := N_HOLD_TIME
+
+15.4. Link Quality Interface Parameters
+
+ If link quality is changed, then parameter values will depend on the
+ link quality process. If link quality is not changed, then:
+
+ o HYST_ACCEPT := 1
+
+ o HYST_REJECT := 0
+
+ o INITIAL_QUALITY := 1
+
+ o INITIAL_PENDING := false
+
+15.5. Jitter Interface Parameters
+
+ o HP_MAXJITTER := HELLO_INTERVAL/4
+
+ o HT_MAXJITTER := HP_MAXJITTER
+
+15.6. Constants
+
+ o C := 1/1024 second
+
+16. Usage with Other Protocols
+
+ Other protocols, such as MANET routing protocols, that use
+ neighborhood discovery, may need to interact with this protocol.
+ This protocol is designed to permit such interactions, in particular:
+
+ o Through accessing, and possibly extending, the information in the
+ Local Information Base (Section 6), the Interface Information Base
+ (Section 7), and the Neighbor Information Base (Section 8). These
+ Information Bases record the interface configuration of the
+ router, as well as the local connectivity, up to two hops away.
+ All updates to the elements specified in this document are subject
+ to the constraints specified in Appendix B.
+
+ o Through accessing an outgoing HELLO message prior to it being
+ transmitted over any MANET interface, and to add information
+ (e.g., TLVs) as specified in [RFC5444]. This may, for example, be
+ to allow a security protocol, as suggested in Section 17, to add a
+ TLV containing a cryptographic signature to the message, or be to
+
+
+
+Clausen, et al. Standards Track [Page 52]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ allow inserting relay selection information into a HELLO message
+ by way of adding a TLV to an outgoing HELLO message prior to it
+ being transmitted.
+
+ o Through accessing an incoming HELLO message, and potentially
+ discarding it prior to processing by this protocol. This may, for
+ example, allow a security protocol as suggested in Section 17 to
+ perform verification of HELLO message signatures and prevent
+ processing of unverifiable HELLO messages by this protocol.
+
+ o Through accessing an incoming HELLO message after it has been
+ completely processed by this protocol. This may, in particular,
+ allow a protocol that has added information, such as relay
+ selection information by way of inclusion of appropriate TLVs,
+ access to such information after appropriate updates have been
+ recorded in the Information Bases in this protocol.
+
+ o Through requesting that a HELLO message be generated at a specific
+ time. In that case, HELLO message generation MUST still respect
+ the constraints in Appendix B.
+
+ Address objects in HELLO messages are processed according to their
+ associated Address Block TLVs. All such address objects are to be
+ processed according to this specification are associated with Address
+ Block TLVs with Type of LOCAL_IF, OTHER_NEIGHB, or LINK_STATUS (and
+ type extension zero). Address objects not associated with an Address
+ Block TLV of any of these Types are therefore not processed by the
+ protocol described in this specification.
+
+ A protocol, such as a MANET routing protocol, interacting with this
+ protocol may need to add information to HELLO messages. This may be
+ in the form of associating TLVs (of Type other than LOCAL_IF,
+ OTHER_NEIGHB, or LINK_STATUS) to address objects already included by
+ this specification.
+
+ A protocol, such as a MANET routing protocol, interacting with this
+ protocol may also add information to HELLO messages by inserting
+ address objects not already included by this specification. Such
+ address objects are in the following called "inserted addresses".
+ These inserted addresses may added to Address Blocks already present
+ by virtue of the HELLO message generation in this specification, or
+ may appear in new Address Blocks. In both cases, the following MUST
+ be observed:
+
+ o An inserted address MUST NOT be associated with an Address Block
+ TLV of Type LOCAL_IF, OTHER_NEIGHB, or LINK_STATUS. Consequently,
+ the processing in this specification will ignore such address
+ objects.
+
+
+
+Clausen, et al. Standards Track [Page 53]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o Each inserted address MUST be associated with an Address Block
+ TLV, to be defined by the specification of the protocol inserting
+ the address object. In this way, all addresses present in a HELLO
+ message are associated with an Address Block TLV defining their
+ semantics.
+
+ Informally speaking, Address Block TLVs define the semantics of
+ address objects in an Address Block. If an address object in an
+ Address Block does not have any Address Block TLVs associated, that
+ address object has no semantics. Consequently, all protocols using
+ the protocol defined in this specification MUST respect the
+ following:
+
+ o An address object in an Address Block, which is not associated
+ with any Address Block TLV, MUST be silently ignored; the mere
+ presence of an address object without an associated Address Block
+ TLV in a HELLO message MUST NOT cause any processing.
+
+ A protocol interacting with this protocol MAY also add an originator
+ address to HELLO messages, as specified in [RFC5444]. Such an
+ originator address MUST be unique to the originating router, it MAY
+ be a local interface address of the router. It SHOULD be used
+ consistently, but SHOULD NOT be constrained in any other way.
+
+ Strict adherence to these points will enable unambiguous coexistence
+ of future "extensions" to HELLO messages.
+
+ In some cases, a protocol interacting with the protocol defined in
+ this specification, may need to recognize which HELLO messages to
+ process and which HELLO messages to discard. It is the
+ responsibility of that protocol to ensure that such messages are
+ suitably identifiable, e.g., through inclusion of a Message TLV or
+ through recognizing an administrative configuration (such as address
+ ranges). Note that such a protocol interacting with this protocol
+ MAY specify such interaction by recognizing an additional reason for
+ discarding a message. As suggested in Section 17 this might, for
+ example, be a security protocol discarding a message that does not
+ carry a Message TLV containing a cryptographic signature.
+
+17. Security Considerations
+
+ The objective of this protocol is to allow each router in the network
+ to acquire information describing its 1-hop neighborhood and
+ symmetric 2-hop neighborhood. This is acquired through HELLO message
+ exchange between neighboring routers. This information is made
+ available through the Interface Information Bases and Neighbor
+ Information Base, describing the router's 1-hop neighborhood and
+ symmetric 2-hop neighborhood.
+
+
+
+Clausen, et al. Standards Track [Page 54]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Under normal circumstances, the information recorded in these
+ Information Bases is correct, i.e., corresponds to the actual network
+ topology, apart from any changes that have not (yet) been tracked by
+ the HELLO message exchanges.
+
+ If a router for some reason, whether malice or malfunction, transmits
+ invalid HELLO messages, incorrect information may be recorded in
+ other routers' Information Bases. This protocol specification does,
+ however, prevent inconsistent information from being included in the
+ Information Bases through the specified processing, which maintains
+ the constraints in Appendix B. The exact consequence of information
+ inexactness depends on the use of these Information Bases, and SHOULD
+ therefore be reflected in the specification of protocols that use
+ information provided by this neighborhood discovery protocol.
+
+ This section, therefore, firstly outlines the ways in which correctly
+ formed, but still invalid, HELLO messages may appear, in
+ Section 17.1.
+
+ Injection of invalid HELLO messages into a network may be prevented
+ in a number of ways. If, for example, a network is deployed in a
+ site to which access is strictly regulated, so that physical access
+ and proximity to the network is prevented, then further security
+ mechanisms to protect against malicious routers injecting invalid
+ HELLO messages may not be required. Similarly, if the link layer
+ over which the network is formed provides appropriate
+ confidentiality, authentication, and integrity, then this may, for a
+ given deployment, suffice to appropriately protect against disclosure
+ of information to an eavesdropper, and against a malicious router
+ injecting invalid HELLO messages. In the latter case, the link layer
+ would discard frames that fail the link-layer checks, without
+ attempting to deliver such frames to IP. Finally, certain usage may
+ be of a nature where disruption of service is of no consequence, or
+ at least not of sufficient consequence to warrant deployment of
+ additional security mechanisms.
+
+ A further point to stress, and which follows from the discussions
+ above is, that it will not be the case that "one size security fits
+ all". Different deployments may have different requirements. For
+ example, in a deployment of a low-value sensor network,
+ authentication using a simple message authentication code and shared
+ symmetric keys may suffice, while anything beyond that may require
+ too many computational resources to be viable. Conversely, in, for
+ example, a community network, verifying not only that the originator
+ of a HELLO message "has the right key" but also the precise identity
+ of the originator may be required to be proved, and computational
+ resources may be available to make such a requirement feasible.
+
+
+
+
+Clausen, et al. Standards Track [Page 55]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Section 17.2, therefore, does not specify a single "one-size-fits-
+ all" mechanism, but rather details how the security suggestions in
+ [RFC5444] are considered for applicability within the context of this
+ protocol, and with the purpose of aiding deployment-specific security
+ mechanisms to be developed.
+
+17.1. Invalid HELLO Messages
+
+ A correctly formed, but still invalid, HELLO message may take any of
+ the following forms. Note that a present or absent address object in
+ an Address Block, does not by itself cause a problem. It is the
+ presence, absence, or incorrectness of associated LOCAL_IF,
+ LINK_STATUS, and OTHER_NEIGHB Address Block TLVs that causes
+ problems.
+
+ A router may provide false information about its own identity:
+
+ o The HELLO message may contain address objects with an
+ associated LOCAL_IF Address Block TLV that do not correspond to
+ addresses of interfaces of the router transmitting the HELLO
+ message.
+
+ o The HELLO message may omit network addresses, or their
+ associated LOCAL_IF Address Block TLV, of interfaces of the
+ router transmitting the HELLO message (other than the allowed
+ omission of the only local interface network address of the
+ MANET interface over which the HELLO message is transmitted, if
+ that is the case).
+
+ o The HELLO message may incorrectly specify the LOCAL_IF Address
+ Block TLV Value associated with one or more local interface
+ network addresses, indicating incorrectly whether they are
+ associated with the MANET interface over which the HELLO
+ message is transmitted.
+
+ A router may provide false information about the identity of other
+ routers:
+
+ o A present LINK_STATUS Address Block TLV may, incorrectly,
+ identify a network address as being of a MANET interface that
+ is or was heard on the MANET interface over which the HELLO
+ message is transmitted.
+
+ o A consistently absent LINK_STATUS Address Block TLV may,
+ incorrectly, fail to identify a network address as being of a
+ MANET interface that is or was heard on the MANET interface
+ over which the HELLO message is transmitted.
+
+
+
+
+Clausen, et al. Standards Track [Page 56]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o A present OTHER_NEIGHB Address Block TLV may, incorrectly,
+ identify a network address as being of a router that is or was
+ in the sending router's symmetric 1-hop neighborhood.
+
+ o A consistently absent OTHER_NEIGHB Address Block TLV may,
+ incorrectly, fail to identify a network address as being of a
+ router that is or was in the sending router's symmetric 1-hop
+ neighborhood.
+
+ o The Value of a LINK_STATUS Address Block TLV may incorrectly
+ indicate the status (LOST, SYMMETRIC or HEARD) of the link from
+ a 1-hop neighbor.
+
+ o The Value of an OTHER_NEIGHB Address Block TLV may incorrectly
+ indicate the status (LOST or SYMMETRIC) of a symmetric 1-hop
+ neighbor.
+
+17.2. Authentication, Integrity, and Confidentiality Suggestions
+
+ The security suggestions in [RFC5444] regarding inclusion of a
+ cryptographic signature in a Message TLV or a Packet TLV can be
+ applied to this protocol. Failure to verify either form of
+ cryptographic signature should cause a HELLO message to be rejected
+ without being processed.
+
+ The following simplification of the suggestions for end-to-end
+ authentication for integrity in [RFC5444] may be applied to HELLO
+ messages:
+
+ o As the Message Header fields <msg-hop-count> and <msg-hop-limit>
+ are either omitted or will always have the values 0 and 1,
+ respectively, an end to end cryptographic signature can be
+ calculated based on the entire HELLO message, including its
+ unmodified Message Header.
+
+ The security mechanisms suggested in [RFC5444] with respect to
+ confidentiality can be directly applied to this protocol.
+
+18. IANA Considerations
+
+ This specification defines one Message Type, which has been allocated
+ from the "Message Types" registry of [RFC5444], and three Address
+ Block TLV Types, which have been allocated from the "Address Block
+ TLV Types" registry of [RFC5444].
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 57]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+18.1. Expert Review: Evaluation Guidelines
+
+ For the registries where an Expert Review is required, the designated
+ expert SHOULD take the same general recommendations into
+ consideration as are specified by [RFC5444].
+
+18.2. Message Types
+
+ This specification defines one Message Type, which has been allocated
+ from the 0-223 range of the "Message Types" namespace defined in
+ [RFC5444], as specified in Table 3.
+
+ +------+-------------------------+
+ | Type | Description |
+ +------+-------------------------+
+ | 0 | HELLO : Local signaling |
+ +------+-------------------------+
+
+ Table 3: Message Type Assignment
+
+18.3. Message-Type-Specific TLV Type Registries
+
+ IANA has created a registry for Message-Type-specific Message TLVs
+ for HELLO messages, in accordance with Section 6.2.1 of [RFC5444],
+ and with initial assignments and allocation policies as specified in
+ Table 4.
+
+ +---------+-------------+-------------------+
+ | Type | Description | Allocation Policy |
+ +---------+-------------+-------------------+
+ | 128-223 | Unassigned | Expert Review |
+ +---------+-------------+-------------------+
+
+ Table 4: HELLO Message-Type-specific Message TLV Types
+
+ IANA has created a registry for Message-Type-specific Address Block
+ TLVs for HELLO messages, in accordance with Section 6.2.1 of
+ [RFC5444], and with initial assignments and allocation policies as
+ specified in Table 5.
+
+ +---------+-------------+-------------------+
+ | Type | Description | Allocation Policy |
+ +---------+-------------+-------------------+
+ | 128-223 | Unassigned | Expert Review |
+ +---------+-------------+-------------------+
+
+ Table 5: HELLO Message-Type-specific Address Block TLV Types
+
+
+
+
+Clausen, et al. Standards Track [Page 58]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+18.4. Address Block TLV Types
+
+ This specification defines three Address Block TLV Types, which have
+ been allocated from the "Address Block TLV Types" namespace defined
+ in [RFC5444]. IANA has made allocations in the 0-127 range for these
+ types. Three new type extension registries have been created, with
+ assignments as specified in Tables 6, 7, and 8. Specifications of
+ these Address Block TLVs are in Section 10.1.1, with Value Constants
+ defined in Section 18.5.
+
+ +----------+------+-----------+------------------------+------------+
+ | Name | Type | Type | Description | Allocation |
+ | | | extension | | policy |
+ +----------+------+-----------+------------------------+------------+
+ | LOCAL_IF | 2 | 0 | Specifies that the | |
+ | | | | network address is | |
+ | | | | associated with this | |
+ | | | | local interface of the | |
+ | | | | sending router | |
+ | | | | (THIS_IF = 0) or | |
+ | | | | another local | |
+ | | | | interface of the | |
+ | | | | sending router | |
+ | | | | (OTHER_IF = 1) | |
+ | LOCAL_IF | 2 | 1-255 | Unassigned | Expert |
+ | | | | | Review |
+ +----------+------+-----------+------------------------+------------+
+
+ Table 6: Address Block TLV Type Assignment: LOCAL_IF
+
+ +-------------+------+-----------+---------------------+------------+
+ | Name | Type | Type | Description | Allocation |
+ | | | extension | | policy |
+ +-------------+------+-----------+---------------------+------------+
+ | LINK_STATUS | 3 | 0 | Specifies the | |
+ | | | | status of the link | |
+ | | | | from the indicated | |
+ | | | | network address | |
+ | | | | (LOST = 0, | |
+ | | | | SYMMETRIC = 1, or | |
+ | | | | HEARD = 2) | |
+ | LINK_STATUS | 3 | 1-255 | Unassigned | Expert |
+ | | | | | Review |
+ +-------------+------+-----------+---------------------+------------+
+
+ Table 7: Address Block TLV Type Assignment: LINK_STATUS
+
+
+
+
+
+Clausen, et al. Standards Track [Page 59]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ +--------------+------+-----------+--------------------+------------+
+ | Name | Type | Type | Description | Allocation |
+ | | | extension | | policy |
+ +--------------+------+-----------+--------------------+------------+
+ | OTHER_NEIGHB | 4 | 0 | Specifies the | |
+ | | | | status of the | |
+ | | | | relationship with | |
+ | | | | the router that | |
+ | | | | uses the indicated | |
+ | | | | network address on | |
+ | | | | one or more | |
+ | | | | interfaces (LOST = | |
+ | | | | 0, or SYMMETRIC = | |
+ | | | | 1) | |
+ | OTHER_NEIGHB | 4 | 1-255 | Unassigned | Expert |
+ | | | | | Review |
+ +--------------+------+-----------+--------------------+------------+
+
+ Table 8: Address Block TLV Type Assignment: OTHER_NEIGHB
+
+18.5. LOCAL_IF, LINK_STATUS, and OTHER_NEIGHB Values
+
+ Note: This information is recorded here for clarity and for use
+ elsewhere in this specification. The information required by IANA is
+ included in the descriptions of the Address Block TLVs allocated in
+ Section 18.4.
+
+ The Values that the LOCAL_IF Address Block TLV can use are the
+ following:
+
+ o THIS_IF := 0
+
+ o OTHER_IF := 1
+
+ The Values that the LINK_STATUS Address Block TLV can use are the
+ following:
+
+ o LOST := 0
+
+ o SYMMETRIC := 1
+
+ o HEARD := 2
+
+ The Values that the OTHER_NEIGHB Address Block TLV can use are the
+ following:
+
+ o LOST := 0
+
+
+
+
+Clausen, et al. Standards Track [Page 60]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o SYMMETRIC := 1
+
+19. Contributors
+
+ This specification is the result of the joint efforts of the
+ following contributors from the OLSRv2 Design Team, listed
+ alphabetically:
+
+ o Brian Adamson, NRL, USA, <adamson@itd.nrl.navy.mil>
+
+ o Cedric Adjih, INRIA, France, <Cedric.Adjih@inria.fr>
+
+ o Thomas Heide Clausen, LIX, France, <T.Clausen@computer.org>
+
+ o Justin Dean, NRL, USA, <jdean@itd.nrl.navy.mil>
+
+ o Christopher Dearlove, BAE Systems ATC, UK,
+ <chris.dearlove@baesystems.com>
+
+ o Philippe Jacquet, INRIA, France, <Philippe.Jacquet@inria.fr>
+
+20. Acknowledgments
+
+ The authors would like to acknowledge the team behind OLSRv1,
+ specified in RFC3626 for their contributions.
+
+ The authors would like to gratefully acknowledge the following people
+ for intense technical discussions, early reviews and comments on the
+ specification and its components (listed alphabetically): Alan Cullen
+ (BAE Systems), Ulrich Herberg (LIX), Satoh Hiroki (Hitachi) Joe
+ Macker (NRL), Charles E. Perkins (WiChorus), Laurent Viennot (INRIA),
+ and the entire IETF MANET working group.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 61]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+21. References
+
+21.1. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119, March 1997.
+
+ [RFC5148] Clausen, T., Dearlove, C., and B. Adamson, "Jitter
+ Considerations in Mobile Ad Hoc Networks (MANETs)",
+ RFC 5148, February 2008.
+
+ [RFC5444] Clausen, T., Dearlove, C., Dean, J., and C. Adjih,
+ "Generalized Mobile Ad Hoc Network (MANET) Packet/Message
+ Format", RFC 5444, February 2009.
+
+ [RFC5497] Clausen, T. and C. Dearlove, "Representing Multi-Value
+ Time in Mobile Ad Hoc Networks (MANETs)", RFC 5497,
+ March 2009.
+
+ [RFC5498] Chakeres, I., "IANA Allocations for Mobile Ad Hoc Network
+ (MANET) Protocols", RFC 5498, March 2009.
+
+21.2. Informative References
+
+ [RFC2501] Corson, M. and J. Macker, "Mobile Ad hoc Networking
+ (MANET): Routing Protocol Performance Issues and
+ Evaluation Considerations", RFC 2501, January 1999.
+
+ [RFC3626] Clausen, T. and P. Jacquet, "Optimized Link State Routing
+ Protocol (OLSR)", RFC 3626, October 2003.
+
+ [RFC5449] Baccelli, E., Jacquet, P., Nguyen, D., and T. Clausen,
+ "OSPF Multipoint Relay (MPR) Extension for Ad Hoc
+ Networks", RFC 5449, February 2009.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 62]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+Appendix A. Address Block TLV Combinations
+
+ The algorithm for generating HELLO messages in Section 11 specifies
+ which 1-hop neighbor network addresses may be included in the Address
+ Blocks, and with which associated Address Block TLVs. These Address
+ Block TLVs may have Type = LINK_STATUS or Type = OTHER_NEIGHB, or
+ both. Address Block TLVs with Type = LINK_STATUS may have three
+ possible Values (Value = HEARD, Value = SYMMETRIC, or Value = LOST),
+ and Address Block TLVs of TYPE = OTHER_NEIGHB may have two possible
+ Values (Value = SYMMETRIC or Value = LOST). When both Address Block
+ TLVs are associated with the same network address only certain
+ combinations of these Address Block TLV Values are necessary, and are
+ the only combinations generated by the algorithm in Section 11.
+ These combinations are indicated in Table 9.
+
+ Cells labeled with "Yes" indicate the possible combinations that are
+ generated by the algorithm in Section 11. Cells labeled with "No"
+ indicate combinations not generated by the algorithm in Section 11
+ but that are correctly parsed and interpreted by the algorithm in
+ Section 12. The cell labeled with "No*" is actually inconsistent, it
+ is handled by ignoring the Address Block TLV with Type =
+ OTHER_NEIGHB, but SHOULD NOT be used.
+
+ +----------------+----------------+----------------+----------------+
+ | | Type = | Type = | Type = |
+ | | OTHER_NEIGHB | OTHER_NEIGHB, | OTHER_NEIGHB, |
+ | | (absent) | Value = | Value = LOST |
+ | | | SYMMETRIC | |
+ +----------------+----------------+----------------+----------------+
+ | Type = | No | Yes | Yes |
+ | LINK_STATUS | | | |
+ | (absent) | | | |
+ | Type = | Yes | Yes | Yes |
+ | LINK_STATUS, | | | |
+ | Value = HEARD | | | |
+ | Type = | Yes | No | No* |
+ | LINK_STATUS, | | | |
+ | Value = | | | |
+ | SYMMETRIC | | | |
+ | Type = | Yes | Yes | No |
+ | LINK_STATUS, | | | |
+ | Value = LOST | | | |
+ +----------------+----------------+----------------+----------------+
+
+ Table 9: LINK_STATUS and OTHER_NEIGHB TLV Combinations
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 63]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+Appendix B. Constraints
+
+ Any process that updates the Local Information Base or the Neighbor
+ Information Base MUST ensure that all constraints specified in this
+ appendix are maintained.
+
+ In each Local Interface Tuple:
+
+ o I_local_iface_addr_list MUST NOT be empty.
+
+ o I_local_iface_addr_list MUST NOT contain any duplicated network
+ addresses.
+
+ o If I_manet = true, then I_local_iface_addr_list MUST NOT contain
+ any network address that overlaps any network address in the
+ I_local_iface_addr_list of any other Local Interface Tuple with
+ I_manet = true, unless it is known that the corresponding MANET
+ interfaces will always communicate with separate sets of MANET
+ interfaces on other routers.
+
+ In each Removed Interface Address Tuple:
+
+ o IR_local_iface_addr MUST NOT contain any network address that is
+ in the I_local_iface_addr_list of any Local Interface Tuple.
+
+ o IR_local_iface_addr MUST NOT equal the IR_local_iface_addr of any
+ other Removed Interface Address Tuple.
+
+ In each Link Tuple:
+
+ o L_neighbor_iface_addr_list MUST NOT be empty.
+
+ o L_neighbor_iface_addr_list MUST NOT contain any network address
+ that overlaps any network address in the I_local_iface_addr_list
+ of any Local Interface Tuple or the IR_local_iface_addr of any
+ Removed Interface Address Tuple.
+
+ o L_neighbor_iface_addr_list MUST NOT contain any duplicated network
+ addresses.
+
+ o L_neighbor_iface_addr_list MUST NOT contain any network address
+ which is in the L_neighbor_iface_addr_list of any other Link Tuple
+ in the same Link Set.
+
+ o If L_HEARD_time has not expired, then there MUST be a Neighbor
+ Tuple whose N_neighbor_addr_list contains
+ L_neighbor_iface_addr_list.
+
+
+
+
+Clausen, et al. Standards Track [Page 64]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o L_HEARD_time MUST NOT be greater than L_time.
+
+ o L_SYM_time MUST NOT be greater than L_HEARD_time (unless both are
+ expired).
+
+ o L_quality MUST NOT be less than 0 or greater than 1.
+
+ o If L_quality >= HYST_ACCEPT, then L_pending MUST be false.
+
+ o If L_quality < HYST_REJECT, then L_status MUST be PENDING or LOST.
+
+ o L_pending MUST NOT be set to true if it is currently false.
+
+ In each Neighbor Tuple:
+
+ o N_neighbor_addr_list MUST NOT contain any network address that
+ overlaps any network address in the I_local_iface_addr_list of any
+ Local Interface Tuple or the IR_local_iface_addr of any Removed
+ Interface Address Tuple.
+
+ o N_neighbor_addr_list MUST NOT contain any duplicated network
+ addresses.
+
+ o N_neighbor_addr_list MUST NOT contain any network address that is
+ in the N_neighbor_addr_list of any other Neighbor Tuple.
+
+ o If N_symmetric is = true, then there MUST be one or more Link
+ Tuples with:
+
+ o L_neighbor_iface_addr_list contained in N_neighbor_addr_list;
+ AND
+
+ o L_status = SYMMETRIC.
+
+ o If N_symmetric is = false, then there MUST be one or more Link
+ Tuples with:
+
+ o L_neighbor_iface_addr_list contained in N_neighbor_addr_list.
+
+ All such Link Tuples MUST NOT have L_status = SYMMETRIC. At least
+ one such Link Tuple MUST have L_HEARD_time not expired.
+
+ In each Lost Neighbor Tuple:
+
+ o NL_neighbor_addr MUST NOT overlap any network address in the
+ I_local_iface_addr_list of any Local Interface Tuple or the
+ IR_local_iface_addr of any Removed Interface Address Tuple.
+
+
+
+
+Clausen, et al. Standards Track [Page 65]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ o NL_neighbor_addr MUST NOT equal the NL_neighbor_addr of any other
+ Lost Neighbor Tuple.
+
+ o NL_neighbor_addr MUST NOT be in the N_neighbor_addr_list of any
+ Neighbor Tuple with N_symmetric = true.
+
+ In each 2-Hop Tuple:
+
+ o There MUST be a Link Tuple associated with the same MANET
+ interface with:
+
+ o L_neighbor_iface_addr_list = N2_neighbor_iface_addr_list; AND
+
+ o L_status = SYMMETRIC.
+
+ o N2_2hop_addr MUST NOT overlap any network address in the
+ I_local_iface_addr_list of any Local Interface Tuple or the
+ IR_local_iface_addr of any Removed Interface Address Tuple.
+
+ o N2_2hop_addr MUST NOT be the N2_2hop_addr of any other 2-Hop Tuple
+ in the same 2-Hop Set and with the same
+ N2_neighbor_iface_addr_list.
+
+ o N2_2hop_addr MUST NOT be in the N2_neighbor_iface_addr_list of the
+ same 2-Hop Tuple.
+
+Appendix C. HELLO Message Example
+
+ HELLO messages are instances of [RFC5444] messages, and this protocol
+ supports any combination of message header options and address
+ encodings, enabled by [RFC5444] that convey the required information.
+ As a consequence, there is no single way to represent how all HELLO
+ messages look. This appendix illustrates two HELLO message with
+ similar content, the exact values included are explained in the
+ following text.
+
+ The HELLO message's four bit Message Flags (MF) field has value 7
+ indicating that the message header contains hop limit, hop count, and
+ message sequence number fields. Its four bit Message Address Length
+ (MAL) field has value 3, indicating addresses in the message have a
+ length of four octets, here being IPv4 addresses. The message is as
+ transmitted, with a hop limit of 1 and a hop count of 0. The overall
+ message length is 45 octets.
+
+ The message contains a Message TLV Block with content length 8 octets
+ containing two Message TLVs, of types VALIDITY_TIME and
+ INTERVAL_TIME. Each uses a Message TLV with Flags octet (MTLVF)
+ value 16, indicating that each has a Value, and each has a Value
+
+
+
+Clausen, et al. Standards Track [Page 66]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Length of 1 octet. The Values included are time codes (as defined in
+ [RFC5497]) representing the parameters H_HOLD_TIME and
+ HELLO_INTERVAL, respectively.
+
+ The message has a single Address Block containing 5 addresses. The
+ Address Block Flags octet (ABF) value 128 indicates an address Head
+ but no address Tail, and no address prefixes. The Head Length of 3
+ octets indicates address Mid sections of one octet each (Mid 0 to Mid
+ 4).
+
+ The following Address Block TLV Block (content length 14 octets)
+ includes two Address Block TLVs. The first is a LOCAL_IF Address
+ Block TLV with Flags octet (ATLVF) value 80, which indicates that a
+ single address, with index 0 (i.e., the address Head:Mid 0) is the
+ single local interface address of this router (the one octet Value
+ THIS_IF indicates that this address is of this interface). The
+ second is a LINK_STATUS Address Block TLV with Flags octet (ATLVF)
+ value 52, which specifies the link status values of all reported
+ neighbors in a single multivalue Address Block TLV that covers the
+ addresses with indexes 1 to 4, inclusive. The Address Block TLV
+ Value Length of 4 octets indicates one octet per Value per address.
+ The last four addresses thus are of neighbors, each an with
+ associated link status: the first and second HEARD, the third
+ SYMMETRIC, and the fourth LOST.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 67]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | HELLO | MF=7 | MAL=3 | Message Length = 45 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Hop Limit = 1 | Hop Count = 0 | Message Sequence Number |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Message TLV Block Length = 8 | VALIDITY_TIME | MTLVF = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Value Len = 1 | Value (Time) | INTERVAL_TIME | MTLVF = 16 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Value Len = 1 | Value (Time) | Num Addrs = 5 | ABF = 128 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Head Len = 3 | Head |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Mid 0 | Mid 1 | Mid 2 | Mid 3 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Mid 4 | Address TLV Block Length = 14 | LOCAL_IF |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | ATLVF = 80 | Index = 0 | Value Len = 1 | THIS_IF |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LINK_STATUS | ATLV = 52 | Strt Indx = 1 | Stop Indx = 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Value Len = 4 | HEARD | HEARD | SYMMETRIC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LOST |
+ +-+-+-+-+-+-+-+-+
+
+ Note that this example is for illustrative purposes. The essential
+ information can be conveyed, more efficiently (assuming that the
+ local interface address will be supplied by IP, and that the
+ INTERVAL_TIME TLV is not needed) by the 29 octets:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 68]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | HELLO |0 0 0 0 0 0 1 1|0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 1|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0| VALIDITY_TIME |0 0 0 1 0 0 0 0|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 0 0 1|0 1 1 0 0 1 0 0|0 0 0 0 0 1 0 0|1 0 0 0 0 0 0 0|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 0 1 1| Head |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Mid 1 | Mid 2 | Mid 3 | Mid 4 |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1| LINK_STATUS |0 0 0 1 0 1 0 0|
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ |0 0 0 0 0 1 0 0| HEARD | HEARD | SYMMETRIC |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | LOST |
+ +-+-+-+-+-+-+-+-+
+
+ Note that the above example assumes that H_HOLD_TIME and C have their
+ default values of 6 seconds and 1/1024 second, and thus result in a
+ time code of 100 (hexadecimal 64).
+
+Appendix D. Flow and Congestion Control
+
+ This protocol specifies one Message Type, the HELLO message. The
+ maximum size of a HELLO message is proportional to the size of the
+ originating router's 1-hop neighborhood. HELLO messages MUST NOT be
+ forwarded.
+
+ A router MUST report its 1-hop neighborhood in HELLO messages on each
+ of its MANET interfaces at least each REFRESH_INTERVAL. This puts a
+ lower bound on the control traffic generated by each router in the
+ network employing this protocol.
+
+ A router MUST ensure that two successive HELLO messages sent on the
+ same MANET interface are separated by at least HELLO_MIN_INTERVAL.
+ (If using jitter, then this may be reduced to a mean minimum value of
+ HELLO_MIN_INTERVAL - HP_MAXJITTER/2.) Thus, this puts an upper bound
+ on the control traffic generated by each router in the network
+ employing this protocol.
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 69]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+Appendix E. Interval and Timer Illustrations
+
+ This informative appendix illustrates the relationship between
+ message timers and intervals. (The adjustments to this timing when
+ using timing jitter, as defined in [RFC5148], are not shown.)
+
+E.1. HELLO Message Generation Timing
+
+ Figure 1 illustrates a basic HELLO message schedule for a router, on
+ a MANET interface, employing strictly periodic transmission of HELLO
+ messages. The router transmits a HELLO message each HELLO_INTERVAL.
+ Each HELLO message contains all 1-hop neighbor network addresses of
+ the router that are to be reported in any such HELLO message. (The
+ parameter REFRESH_INTERVAL, not shown, is in this example equal to
+ the parameter HELLO_INTERVAL.)
+
+ The router includes a VALIDITY_TIME TLV in each HELLO message,
+ encoding the parameter H_HOLD_TIME, the duration for which
+ information received in the HELLO message should be considered valid
+ by receiving routers. Receiving routers will, when recording the
+ information received in the HELLO message, each use this for setting
+ the L_HEARD_time, L_SYM_time and L_time elements of their
+ corresponding Link Tuple, and the N2_time in the corresponding 2-Hop
+ Tuple for each network address. Only L_time is illustrated in
+ Figure 1.
+
+ H_HOLD_TIME: |-----------------------------| ...
+
+ HELLO_INTERVAL: |---------|---------|---------| ...
+
+ Time: ---*---------*---------*---------*------>
+
+ ^ ^ ^ ^
+ | | | |
+ HELLO (a, b, c, d) | | |
+ | | |
+ HELLO (a, b, c, d) | | ...
+ | |
+ HELLO (a, b, c, d) |
+ |
+ HELLO (a, b, c, d)
+
+ L_time: |-----------------------------|
+ |-------------------- ...
+ |---------- ...
+ | ...
+
+ Figure 1: HELLO Message Generation: Regular Schedule
+
+
+
+Clausen, et al. Standards Track [Page 70]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Figure 2 illustrates a message schedule similar to Figure 1, where
+ the router announces its own presence more frequently by sending
+ additional HELLO messages. HELLO messages are still sent regularly,
+ at a reduced interval defined by a new value of HELLO_INTERVAL.
+ However, REFRESH_INTERVAL has not been reduced. Each 1-hop neighbor
+ network address included in these HELLO messages need be advertised
+ only once within each REFRESH_INTERVAL. Consequently, the additional
+ HELLO messages due to the reduced value of HELLO_INTERVAL may
+ therefore be empty. (This is not the only allowed distribution of
+ 1-hop neighbor network addresses, they could, for example, be sent
+ alternately a, b and c, d.)
+
+ H_HOLD_TIME: |-----------------------------| ...
+
+ REFRESH_INTERVAL: |---------|---------|---------| ...
+
+ HELLO_INTERVAL: |----|----|----|----|----|----| ...
+
+ Time: ---*---------*---------*---------*------>
+
+ ^ ^ ^ ^ ^ ^ ^
+ | | | | | | |
+ HELLO (a, b, c, d) | | | | | |
+ | | | | | |
+ HELLO () | | | | |
+ | | | | |
+ HELLO (a, b, c, d) | | | |
+ | | | | ...
+ HELLO () | | |
+ | | |
+ HELLO (a, b, c, d) | |
+ | |
+ HELLO () |
+ |
+ HELLO (a, b, c, d)
+
+ L_time: |-----------------------------|
+ |------------------------- ...
+ |-------------------- ...
+ |--------------- ...
+ |---------- ...
+ |----- ...
+ | ...
+
+ Figure 2: HELLO Message Generation: Regular Schedule with Different
+ HELLO_INTERVAL and REFRESH_INTERVAL
+
+
+
+
+
+Clausen, et al. Standards Track [Page 71]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ HELLO messages may also be sent in response to events. The minimal
+ interval between two successive HELLO message transmissions by a
+ router is HELLO_MIN_INTERVAL, setting an upper bound of the HELLO
+ message emission rate. Hence, for each HELLO message transmission, a
+ router must wait at least HELLO_MIN_INTERVAL before the next HELLO
+ message transmission. Similarly, the maximum interval between two
+ successive HELLO message transmissions is HELLO_INTERVAL, setting a
+ lower bound on the message transmission rate. Hence, for each HELLO
+ message transmission, the router must ensure that the next HELLO
+ message transmission must not wait more than HELLO_INTERVAL.
+
+ Figure 3 illustrates a message schedule similar to Figure 1, but with
+ HELLO messages responding to events at maximum rate, i.e., with HELLO
+ messages being sent each HELLO_MIN_INTERVAL. Note that when a HELLO
+ message is sent, it is assumed that the following messages may all be
+ scheduled at an interval of HELLO_INTERVAL, and hence each HELLO
+ message contains all 1-hop neighbor network addresses. In each HELLO
+ message in this example, a new 1-hop neighbor network address is
+ added, reflecting the changes occurring since the last HELLO message
+ was sent. HELLO messages are sent at the maximum allowed rate in
+ order to signal these changes as rapidly as possible.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 72]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ H_HOLD_TIME: |-----------------------------| ...
+
+ HELLO_INTERVAL: |---------|---------|---------| ...
+
+ HELLO_MIN_INTERVAL: |----|----|----|----|----|----| ...
+
+ Time: ---*---------*---------*---------*------>
+
+ ^ ^ ^ ^ ^ ^ ^
+ | | | | | | |
+ HELLO () | | | | | |
+ | | | | | |
+ HELLO (a) | | | | |
+ | | | | |
+ HELLO (a, b) | | | |
+ | | | | ...
+ HELLO (a, b, c) | | |
+ | | |
+ HELLO (a, b, c, d) | |
+ | |
+ HELLO (a, b, c, d, e) |
+ |
+ HELLO (a, b, c, d, e, f)
+
+ L_time: |-----------------------------|
+ |------------------------- ...
+ |-------------------- ...
+ |--------------- ...
+ |---------- ...
+ |----- ...
+ | ...
+
+ Figure 3: HELLO Message Generation: Regular Schedule with Responsive
+ Messages
+
+ Figure 4 shows the same example as Figure 3, but with an increased
+ REFRESH_INTERVAL, and showing partial HELLO messages that include
+ only the necessary network addresses.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 73]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ H_HOLD_TIME: |-----------------------------| ...
+
+ REFRESH_INTERVAL: |-------------------|---------- ...
+ |-------------------|----- ...
+ |-------------------| ...
+ |--------------- ...
+ |---------- ...
+ |----- ...
+ | ...
+
+ HELLO_INTERVAL: |---------|---------|---------| ...
+
+ HELLO_MIN_INTERVAL: |----|----|----|----|----|----| ...
+
+ Time: ---*---------*---------*---------*------>
+
+ ^ ^ ^ ^ ^ ^ ^
+ | | | | | | |
+ HELLO () | | | | | |
+ | | | | | |
+ HELLO (a) | | | | |
+ | | | | |
+ HELLO (b) | | | |
+ | | | | ...
+ HELLO (c) | | |
+ | | |
+ HELLO (a, d) | |
+ | |
+ HELLO (b, e) |
+ |
+ HELLO (c, f)
+
+ L_time: |-----------------------------|
+ |------------------------- ...
+ |-------------------- ...
+ |--------------- ...
+ |---------- ...
+ |----- ...
+ | ...
+
+ Figure 4: HELLO Message Generation: Regular Schedule with Responsive
+ Messages and Different HELLO_INTERVAL and REFRESH_INTERVAL
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 74]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Figure 5 summarizes the overall relationship between the intervals
+ governing HELLO message transmissions by a router.
+
+ H_HOLD_TIME: |------------------------------------|
+
+ REFRESH_INTERVAL: |----------------|
+
+ HELLO_INTERVAL: |----------|
+
+ HELLO_MIN_INTERVAL: |---|
+
+ Time: ----------------------------------------------->
+
+ ^ ^ ^ ^ ^
+ | | | | |
+ | | | | Time up to which
+ HELLO message | | | received HELLO
+ transmission | | | message content
+ | | | is valid.
+ | | |
+ | | Time before which all
+ | | neighbor information must
+ | | be transmitted in HELLO
+ | | messages (one or more)
+ | |
+ | Latest time for next HELLO message
+ | transmission
+ |
+ Earliest time for next HELLO message
+ transmission
+
+ Figure 5: HELLO Message Generation Intervals
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 75]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+E.2. HELLO Message Processing Timing
+
+ Figure 6 illustrates the Link Set timers when receiving a HELLO
+ message not including the network address of the receiving MANET
+ interface.
+
+ VALIDITY_TIME: |--------------------------|
+
+ L_time: |--------------------------|
+
+ L_HEARD_time: |--------------------------|
+
+ L_SYM_time: *-| (i.e., expired)
+
+ Time: ---*-------------------------------->
+ ^
+ |
+ HELLO () received
+
+ Figure 6: HELLO Message Processing: Network Address Not Present
+
+ Figure 7 illustrates the Link Set timers when, following the received
+ HELLO message illustrated in Figure 6, a router receives a HELLO
+ message including the network address (a) of the receiving interface
+ with link status = HEARD (or SYM).
+
+ VALIDITY_TIME: |--------------------------|
+ |--------------------------|
+
+ L_time: |--------------------------|
+ |--------------------------|
+
+ L_HEARD_time: |--------------------------|
+ |--------------------------|
+
+ L_SYM_time: *-| (i.e., expired)
+ L_SYM_time: |--------------------------|
+
+ Time: -*-----*--------------------------------->
+ ^ ^
+ | |
+ HELLO () received |
+ |
+ HELLO (a:HEARD) received
+
+ Figure 7: HELLO Message Processing: Network Address Present
+
+
+
+
+
+Clausen, et al. Standards Track [Page 76]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ Figure 8 illustrates the Link Set timers when, following the received
+ HELLO messages illustrated in Figure 7, a router receives a HELLO
+ message including the network address (a) of the receiving interface
+ with link status = LOST.
+
+ VALIDITY_TIME: |--------------------------|
+ |--------------------------|
+ |--------------------------|
+
+ L_time: |--------------------------|
+ |--------------------------|
+ |--------------------------|
+
+ L_HEARD_time: |--------------------------|
+ |--------------------------|
+ |--------------------------|
+
+ L_SYM_time: *-| (i.e., expired)
+ |--------------------------|
+ *-| (i.e., expired)
+
+ Time: -*-----*-----*--------------------------------->
+ ^ ^ ^
+ | | |
+ HELLO () received | |
+ | |
+ HELLO (a:HEARD) received |
+ |
+ HELLO (a:LOST) received
+
+ Figure 8: HELLO Message Processing: Network Address Lost
+
+E.3. Other HELLO Message Timing
+
+ There are three other timing parameters that are used by a router to
+ control HELLO message generation and processing.
+
+ Figure 9 illustrates the time, with duration L_HOLD_TIME, during
+ which the appropriate network addresses of a formerly, but no longer,
+ symmetric 1-hop neighbor, as connected by this MANET interface, are
+ advertised as LOST using a LINK_STATUS TLV in HELLO messages on this
+ MANET interface, thus allowing that 1-hop neighbor to update its Link
+ Set accordingly.
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 77]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ L_HOLD_TIME: |----------------------------|
+
+ Time: ---*---------------------------------->
+ ^ ^
+ | |
+ Formerly symmetric 1-hop neighbor |
+ ceases to be symmetric on this |
+ MANET interface |
+ |
+ Time up to which network addresses of
+ this neighbor connected using this MANET
+ interface are advertised in HELLO
+ messages on this MANET interface
+ using a LINK_STATUS TLV, Value = LOST
+
+ Figure 9: HELLO Message Generation: Advertisement of Formerly
+ Symmetric 1-Hop Neighbor on This MANET Interface as Lost
+
+ Figure 10 illustrates the time, with duration N_HOLD_TIME, during
+ which all network addresses of a formerly, but no longer, symmetric
+ 1-hop neighbor, are advertised as LOST in HELLO messages on all MANET
+ interfaces using an OTHER_NEIGHB TLV (if not also reported using a
+ LINK_STATUS TLV) thus allowing all other symmetric 1-hop neighbors to
+ update their 2-Hop Sets accordingly.
+
+ L_HOLD_TIME: |----------------------------|
+
+ Time: ---*---------------------------------->
+ ^ ^
+ | |
+ Formerly symmetric 1-hop neighbor |
+ ceases to be symmetric |
+ |
+ Time up to which network addresses of
+ this neighbor are advertised in HELLO
+ messages on all MANET interfaces
+ using an OTHER_NEIGHB TLV,
+ Value = LOST
+
+ Figure 10: HELLO Message Generation: Advertisement of Formerly
+ Symmetric 1-Hop Neighbor on Any MANET Interface as Lost
+
+ Figure 11 illustrates the time, with duration I_HOLD_TIME, during
+ which a formerly, but no longer, used local interface network address
+ is excluded from being considered as a 2-hop neighbor network address
+ (in order that a router is not recorded as its own 2-hop neighbor
+ during that period).
+
+
+
+
+Clausen, et al. Standards Track [Page 78]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ I_HOLD_TIME: |----------------------------|
+
+ Time: ---*----------------------------------->
+ ^ ^
+ | |
+ Formerly used local interface |
+ network address ceases to be |
+ assigned to a local interface |
+ |
+ Time up to which this network
+ address is excluded from being
+ included in this router's 2-Hop Set
+
+ Figure 11: Local Interface Removed Network Address
+
+Appendix F. Topology Pictures
+
+ This appendix illustrates various examples of physical topologies, as
+ well as how these are logically recorded by NHDP from the point of
+ view of the router A. This representation is a composite of
+ information that would be contained within A's various Information
+ Bases after NHDP has been running for sufficiently long time for the
+ state to converge.
+
+ Note that the examples given in this appendix are NOT exhaustive, but
+ are selected to be illustrative of NHDP neighborhood representations
+ of physical MANET topologies.
+
+ The example topologies presented contain 3 physical routers A, B, and
+ C. Each of these routers has one or two distinct interfaces,
+ denoted "top" and "bottom". Each interface has one or two addresses,
+ and symmetric connectivity between a pair of interfaces is
+ illustrated by these being connected by a line.
+
+ In all examples, the topology is described as it is recorded by NHDP
+ in router A.
+
+F.1. Example 1: Standard Single Interface Topology
+
+ In Figure 12, each router has a single interface, each with a single
+ IP address. This is the simplest possible network, and the resulting
+ representation is given to the right in Figure 12.
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 79]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ __________ __________
+ | | |
+ {1} {2} {3}
+ | | | {1}--------{2}--------{3}
+ +--'--+ +--'--+ +--'--+
+ | A | | B | | C |
+ +-----+ +-----+ +-----+
+
+ Figure 12: Standard Single Interface Topology (Left), and
+ Corresponding NHDP Representation (Right)
+
+ The Local Information Set in A contains a single Local Interface
+ Tuple that has an I_local_iface_addr_list of {1}. This value is
+ denoted with a {1} on the leftmost part of the resulting
+ representation.
+
+ The Interface Information Base has only one Link Set, which
+ represents the "top" interface of A, or {1}. This Link Set's only
+ Link Tuple has an L_neighbor_iface_addr_list containing {2}; this
+ corresponds to the dashed line from {1} to {2} to the right in
+ Figure 12. The 2-Hop Set contains a single 2-Hop Tuple, with
+ N2_neighbor_iface_addr_list being {2} and N2_2hop_addr being {3};
+ this corresponds to the dashed line from {2} to {3} to the right in
+ Figure 12.
+
+ The descriptions of the following examples in this appendix will be
+ derived similarly, and use the same notational conventions.
+
+F.2. Example 2: Dual Addressed Interface on 1-Hop Neighbor
+
+ In Figure 13, the network is identical to that in Example 1, except
+ that the middle router, B, has two IP addresses on its single
+ interface.
+
+ __________ __________
+ | | |
+ {1} {2,4} {3}
+ | | | {1}-------{2,4}-------{3}
+ +--'--+ +--'--+ +--'--+
+ | A | | B | | C |
+ +-----+ +-----+ +-----+
+
+ Figure 13: Single Interfaces, with 1-Hop Neighbor B Having Two
+ Addresses (Left), and Corresponding NHDP Representation (Right)
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 80]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ The content of the Interface Information Base is in this case
+ identical to Example 1, except that L_neighbor_iface_addr_list is
+ {2,4} and N2_neighbor_iface_addr_list is {2,4}.
+
+F.3. Example 3: Dual Addressed Interface on 2-Hop Neighbor
+
+ In Figure 14, the network is identical to that in Example 1, except
+ that the rightmost router, C, has two IP addresses on its interface.
+
+ __________ __________
+ | | |
+ {1} {2} {3,4} +----{3}
+ | | | {1}--------{2}---+
+ +--'--+ +--'--+ +--'--+ +----{4}
+ | A | | B | | C |
+ +-----+ +-----+ +-----+
+
+ Figure 14: Single Interfaces, with 2-Hop Neighbor C Having Two
+ Addresses (Left), and Corresponding NHDP Representation (Right)
+
+ The content of the Interface Information Base is in this case
+ identical to than in Example 1, except that the 2-Hop Set contains an
+ extra 2-Hop Tuple with N2_neighbor_iface_addr_list being {2} and
+ N2_2hop_addr being {4}. These two 2-Hop Tuples are illustrated by
+ the two lines from {2} to {3} and (2) to {4}, respectively.
+
+F.4. Example 4: Dual Addressed Interfaces
+
+ In Figure 15, the network is identical to that in Example 1, except
+ that all routers have two IP addresses on their interface. The Local
+ Information Base in router A is the same as in Example 1, except that
+ I_local_iface_addr_list is {1,5}.
+
+ __________ __________
+ | | |
+ {1,5} {2,6} {3,4} +----{3}
+ | | | {1,5}------{2,6}--+
+ +--'--+ +--'--+ +--'--+ +----{4}
+ | A | | B | | C |
+ +-----+ +-----+ +-----+
+
+ Figure 15: Single interfaces, all routers having two addresses
+ (left), and corresponding NHDP representation (right)
+
+ The content of the Interface Information Base is in this case a
+ combination of the Interface Information Bases from Examples 1, 2,
+ and 3.
+
+
+
+
+Clausen, et al. Standards Track [Page 81]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+F.5. Example 5: Dual Interface on 2-Hop Neighbor
+
+ In Figure 16, all routers have a single IP address on each interface,
+ and with the 2-hop neighbor having two interfaces.
+
+ __________ __________
+ | | |
+ {1} {2} {3} +----{3}
+ | | | {1}--------{2}---+
+ +--'--+ +--'--+ +-----+ +----{4}
+ | A | | B | | C |
+ +-----+ +-----+ +-----+
+ |
+ {4}
+
+ Figure 16: Single Addresses, with 2-Hop Neighbor C Having Two
+ Interfaces (Left), and Corresponding NHDP Representation (Right)
+
+ The Interface Information Base is identical to that in Example 3;
+ NHDP does not distinguish topologically between this example and
+ Example 3.
+
+F.6. Example 6: Dual interface on 1-Hop Neighbor
+
+ In Figure 17, all routers have a single IP address on each interface,
+ and with the 1-hop neighbor having two interfaces.
+
+ __________
+ | |
+ {1} {2} +-----+
+ | | {1}-------| {2} |------{4}
+ +--'--+ +--'--+ +-----+ | {5} |
+ | A | | B | | C | +-----+
+ +-----+ +-----+ +-----+
+ | |
+ {5} {4}
+ |__________|
+
+ Figure 17: Single Addresses, with 1-Hop Neighbor B Having Two
+ Interfaces (Left), and Corresponding NHDP Representation (Right)
+
+ The Local Information Base is identical to that in Example 1.
+
+ The Interface Information Base has only one Link Set containing one
+ Link Tuple with L_neighbor_iface_addr_list being {2}. The 2-Hop Set
+ contains a single 2-Hop Tuple, with N2_neighbor_iface_addr_list being
+ {2} and N2_2hop_addr being {4}.
+
+
+
+
+Clausen, et al. Standards Track [Page 82]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+ The Neighbor Information Base contains a Neighbor Set containing a
+ single Neighbor Tuple, which represents router B, with
+ N_neighbor_addr_list being {2,5}. This entry is represented on the
+ right of Figure 17 by boxing {2} with {5}.
+
+ Note that router A does not have information indicating which of
+ router B's interfaces is connected to router C. However, router A
+ knows that the address {4} (and thus router C) is reachable by using
+ {2} as next hop.
+
+F.7. Example 7: Dual Interface on 1-Hop and 2-Hop Neighbors
+
+ In Figure 18, all routers have a single IP address on each interface,
+ and both the 1-hop and 2-hop neighbors have two interfaces.
+ Furthermore, there are now two physical links between routers B and
+ C, over distinct interface pairs.
+
+ __________ __________
+ | | |
+ {1} {2} {3} +-----+ +----{3}
+ | | | {1}-------| {2} |---+
+ +--'--+ +--'--+ +-----+ | {5} | +----{4}
+ | A | | B | | C | +-----+
+ +-----+ +-----+ +-----+
+ | |
+ {5} {4}
+ |__________|
+
+ Figure 18: Single Addresses, with 1-Hop and 2-Hop Neighbors B and C
+ Having Two Interfaces (Left), and Corresponding NHDP Representation
+ (Right)
+
+ The Local Information Base is identical to that in Example 1.
+
+ The Link Set is identical to that in Example 6, and the 2-Hop Set
+ contains, as in Example 5 (and similarly to Examples 3 and 4), two
+ 2-Hop Tuples representing the two links between routers B and C.
+
+ Note that router A does not have information describing which of
+ router B's interfaces is connected to which interfaces of router C,
+ or even that the interfaces with addresses {3} and {4} are interfaces
+ of the same router. However, router A knows that the addresses {3}
+ and {4} (and thus router C) are reachable using {2} as next hop.
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 83]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+F.8. Example 8: Dual Interface Locally and on 1-Hop Neighbor
+
+ In Figure 19, all routers have a single IP address on each interface,
+ and both A and its the 1-hop neighbor B have two interfaces.
+ Furthermore, there are now two physical links between routers A and
+ B, over distinct interface pairs.
+
+ __________ __________
+ | | | +-----+
+ {1} {2} {3} {1}-------| {2} |--------{3}
+ | | | | {5} |
+ +--'--+ +--'--+ +-----+ +-----+
+ | A | | B | | C |
+ +-----+ +-----+ +-----+ +-----+
+ | | | {2} |
+ {6} {5} {6}-------| {5} |--------{3}
+ |__________| +-----+
+
+ Figure 19: Single Addresses, with Both A and 1-Hop Neighbor B Having
+ Two Interfaces (Left), and Corresponding NHDP Representation (Right)
+
+ The Local Information Set contains two Local Interface Tuples, with
+ I_local_iface_addr_list of {1} and {6}, respectively.
+
+ Each Interface Information Base's Link Set contains one Link Tuple,
+ representing the links between {1} and {2}, and between {6} and {5},
+ respectively. The 2-Hop Set for interface {1} contains a single
+ 2-Hop Tuple, with N2_neighbor_iface_addr_list being {2} and
+ N2_2hop_addr being {3}. The 2-Hop Set for interface {6} contains a
+ single 2-Hop Tuple, with N2_neighbor_iface_addr_list being {5} and
+ N2_2hop_addr being {3}.
+
+ The Neighbor Information Base contains a Neighbor Set containing a
+ single Neighbor Tuple, which represents router B, with
+ N_neighbor_addr_list being {2,5}. This entry is denoted by boxing
+ {2} with {5}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 84]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+F.9. Example 9: Dual Interface on All Routers
+
+ In Figure 20, all routers have a single IP address on each interface,
+ and all routers have two interfaces. Furthermore, there are now two
+ physical links between A and B, over distinct interface pairs, and
+ two physical links between B and C, also over distinct interface
+ pairs.
+
+ __________ __________
+ | | | +-----+ +----{3}
+ {1} {2} {3} {1}-------| {2} |---+
+ | | | | {5} | +----{4}
+ +--'--+ +--'--+ +-----+ +-----+
+ | A | | B | | C |
+ +-----+ +-----+ +-----+ +-----+
+ | | | | {2} | +----{3}
+ {6} {5} {4} {6}-------| {5} |---+
+ |__________|__________| +-----+ +----{4}
+
+ Figure 20: Single Addresses, with All Routers Having Two Interfaces
+ (Left), and Corresponding NHDP Representation (Right)
+
+ The Local Information Set is identical to that in Example 8. The
+ Interface Information Base for each interface in A is also identical
+ to that in Example 8, except that an additional 2-Hop Tuple is
+ present in each 2-Hop Set, each representing the link between router
+ B and the interface of router C with address {4}.
+
+ As in Example 7, router A does not have information describing which
+ of router B's interfaces is connected to which interface of C, or
+ even that the interfaces with addresses {3} and {4} are interfaces of
+ the same router. However, router A knows that the addresses {3} and
+ {4} (and router C) are reachable by using {2} or {5} (depending on
+ via which of its local interfaces) as next hop.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 85]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+F.10. Example 10: Dual Addressed Dual Interfaces on All Routers
+
+ In Figure 21, all routers have two IP addresses on each interface,
+ and all routers have two interfaces. Furthermore, there are now two
+ physical links between A and B, over distinct interface pairs, and
+ two physical links between B and C, also over distinct interface
+ pairs.
+
+ +--{9}
+ __________ __________ +------|
+ | | | +-----+ | +--{10}
+ {1,2} {5,6} {9,10} {1,2}--|{5,6}|---+
+ | | | |{7,8}| | +--{11}
+ +--'--+ +--'--+ +-----+ +-----+ +------|
+ | A | | B | | C | +--{12}
+ +-----+ +-----+ +-----+
+ | | | +--{9}
+ | | | +-----+ +------|
+ | | | |{5,6}| | +--{10}
+ {3,4} {7,8} {11,12} {3,4}--|{7,8}|---+
+ |__________|__________| +-----+ | +--{11}
+ +------|
+ +--{12}
+
+ Figure 21: Dual Addresses, with All Routers Having Two Interfaces
+ (Left) and Corresponding NHDP Representation (Right)
+
+ This example is the combination of all the preceding examples in this
+ appendix. The Local Information Set in A contains Local Information
+ Tuples for each of its interfaces, and each Interface Information
+ Base contains in its Link Set a representation of links {1,2}-{5,6}
+ or {3,4}-{7,8}, respectively. The Neighbor Set (in the Neighbor
+ Information Base) records the existence of router B and all of its
+ addresses on all its interfaces, i.e., {5,6,7,8}.
+
+ As in Example 9, each interface address of router C is represented in
+ the 2-Hop Set of each Interface Information Base as a link from
+ router B to each of these addresses. Router A does not have
+ information describing which of router B's interfaces is connected to
+ which interface of C, nor that the addresses {9}, {10}, {11}, and
+ {12} are addresses of the same router (or that some of these, such as
+ {9} and {10}, are addresses on the same interface of the router).
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 86]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+F.11. Example 11: Single Addressed Dual Interface Locally
+
+ In Figure 22, all routers have a single interface, except for router
+ A which has two. Each of A's two interfaces has a link with the
+ single interface of router B. All interfaces have a single address.
+
+ __________ __________
+ | _____| |
+ {1} | {2} {3} {1}--------{2}---------{3}
+ | | | |
+ +--'--+ | +--'--+ +-----+
+ | A | | | B | | C |
+ +-----+ | +-----+ +-----+
+ | |
+ {6} | {6}--------{2}---------{3}
+ |____|
+
+ Figure 22: Single Addresses, with A Having Two Interfaces, Both
+ Linked to the Single Interface of B (Left), and Corresponding NHDP
+ Representation (Right)
+
+ This is similar to Example 8, except that the single address {2} also
+ replaces the address {5}. In particular, both Link Tuples (one in
+ each Link Set, each in its corresponding Interface Information Base)
+ have L_neighbor_iface_addr_list being {2}, the Neighbor Set (in the
+ Neighbor Information Base) contains a single Neighbor Tuple with
+ N_neighbor_addr_list being {2}, and both 2-Hop Tuples (one in each
+ 2-Hop Set, each in its corresponding Interface Information Base) have
+ N2_neighbor_iface_addr_list being {2} and N2_2hop_addr being {3}.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 87]
+
+RFC 6130 MANET-NHDP April 2011
+
+
+Authors' Addresses
+
+ Thomas Heide Clausen
+ LIX, Ecole Polytechnique
+
+ Phone: +33 6 6058 9349
+ EMail: T.Clausen@computer.org
+ URI: http://www.ThomasClausen.org/
+
+
+ Christopher Dearlove
+ BAE Systems ATC
+
+ Phone: +44 1245 242194
+ EMail: chris.dearlove@baesystems.com
+ URI: http://www.baesystems.com/
+
+
+ Justin W. Dean
+ Naval Research Laboratory
+
+ Phone: +1 202 767 3397
+ EMail: jdean@itd.nrl.navy.mil
+ URI: http://pf.itd.nrl.navy.mil/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Clausen, et al. Standards Track [Page 88]
+