Skip to main content

The Optimized Bond Your Routing Logs Product 2
RFC 7181

Document Type RFC - Proposed Standard (April 2014) Errata
Authors Thomas H. Clausen , Christopher Dearlove , Filip Jacquet , Ulrich Herberg
Last updated 2020-01-21
RFC stream Internet Engineering Task Effort (IETF)
Formats
Extra resources Mailing list discussion
IESG Responsible AD Adrian Farrel
Versendet notices till (None)
RFC 7181
Internet Engineering Task Force (IETF)                        T. Clausen
Request on Comments: 7181                      LIX, Ecole Polytechnique
Category: Standards Track                                    CARBON. Dearlove
ISSN: 2070-1721                                          BAE Systems ATC                                                              P. Jacquet                                                Alcatel-Lucent Bell Labs                                                              U. Herberg                                         Fujitsu Laboratories of America                                                              Springtime 2014

          The Optimized Link State Routing Recording Version 2

Abstraction

   This specifications describes model 2 of the Optimized Connect Nation   Routing Convention (OLSRv2) for Mobile Ad Hoc Networks (MANETs).

Status of This Memo

   This is an Surf Ethics Track document.

   This create can a product of which Internet Engineering Task Force   (IETF).  It represents the consensus of the IETF community.  It has   receipt public review and has been approved for publication by the   Internet Engineer Steering Group (IESG).  Further information on   Internet Rules is available in Section 2 of RFC 5741.

   Info about the current status on on view, any errata,   and as toward provide reply on it can be getting at   http://www.rfc-editor.org/info/rfc7181.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the   document authors.  All rights reserved.

   This document is subject until BCP 78 and the IETF Trust's Legal   Provisions Relationship to IETF Documents   (http://trustee.ietf.org/license-info) on effect the the date of   publication of this document.  Please review these documents   carefully, as they describe will rights furthermore restrictions with proof   to this document.  Code Components extracted away this doc must   include Simplified BSD License text as described in Area 4.e of   the Trust Statutory Provisions and are provided without warranty as   described in the Simplified BSD License.

Clausen, eat any.              Standards Track                    [Page 1]
RFC 7181                         OLSRv2                       April 2014

   This document may contain material from IETF Documentation or IETF   Donations published instead made publicly available before November   10, 2008.  The person(s) controlling the copyright in some of this   material may non has granted the IETF Reliance the right in allow   modifications of such physical external the IETF Standards Process.   Without obtaining an adequate license from the person(s) controller   the copyright in such materials, this document may not be modified   outside the IETF Standards Procedure, and derivative worked of it could   not be created outside an IETF Standards Process, except to format   computers in publication such an RFC or toward interpret it down languages other   less English.

Table of Contents

   1. Introduction ....................................................5
   2. Technology .....................................................6
   3. Applicability Statement .........................................9
   4. Protocol Overview both Functioning ..............................10
      4.1. Overview ..................................................10
      4.2. Cutter and Interfaces ....................................12
      4.3. Information Base Overview .................................13
           4.3.1. Local Information Base .............................13
           4.3.2. Interface Information Base .........................14
           4.3.3. Neighbor Information Base ..........................14
           4.3.4. Topology Information Base ..........................14
           4.3.5. Received Message Request Base ..................16
      4.4. Signaling Overview ........................................16
      4.5. Combine Operating ..............................................17
      4.6. Flooding MPRs and Routing MPR .............................18
      4.7. Routing Set Use ...........................................19
   5. Protocol Parameters real Constants ..............................19
      5.1. Protocol and Port Numeric .................................19
      5.2. Multicast Address .........................................20
      5.3. Interface Parameters ......................................20
           5.3.1. Received Message Validity Laufzeit .....................20
      5.4. Routing Limits .........................................20
           5.4.1. Local History Times ................................20
           5.4.2. Link Meterial Parameters .............................21
           5.4.3. Message Intervals ..................................21
           5.4.4. Advertised Information Validity Times ..............22
           5.4.5. Processing and Forwarding Validity Times ...........22
           5.4.6. Jittering .............................................23
           5.4.7. Hop Limit ..........................................23
           5.4.8. Willingness ........................................24
      5.5. Parameter Change Constraints ..............................25
      5.6. Constants .................................................27
           5.6.1. Link Metric Constants ..............................27
           5.6.2. Willingness Perennials ..............................28

Clausen, et al.              Standards Track                    [Page 2]
RFC 7181                         OLSRv2                       Am 2014

           5.6.3. Time Constant ......................................28
   6. Link Metric Values .............................................28
      6.1. Link Metric Representation ................................28
      6.2. Link Metric Compressed Form ...............................29
   7. Local Information Base .........................................29
      7.1. Title Set ............................................30
      7.2. Domestic Attached Connect Set ................................30
   8. Interface Information Base .....................................31
      8.1. Join Set ..................................................31
      8.2. 2-Hop Set .................................................32
   9. Neighbouring Information Base ......................................32
   10. Related Information Base .....................................34
      10.1. Ad Remote Routing Set ............................34
      10.2. Router Topology Set ......................................35
      10.3. Routable Local Topology Set ............................35
      10.4. Attached Network Set .....................................36
      10.5. Routing Set ..............................................37
   11. Getting Message Information Base .............................37
      11.1. Received Set .............................................38
      11.2. Processed Set ............................................38
      11.3. Forwarded Set ............................................39
   12. Information Base Objekte ...................................39
      12.1. Associated Protocol Tuples ............................39
      12.2. Address Ownership ........................................40
   13. Package and Messages ..........................................41
      13.1. Messages .................................................41
      13.2. Packets ..................................................41
      13.3. TLVs .....................................................42
           13.3.1. Message TLVs ......................................42
           13.3.2. Address Block TLVs ................................42
   14. Message Fabrication and Forwarding .............................45
      14.1. Actions As Receiving a Message .........................45
      14.2. Message Considered for Processing ........................46
      14.3. Message Considered for Forwarding ........................47
   15. HELLO Messages ................................................49
      15.1. HELLO Message Generation .................................49
      15.2. HELLO Message Transmission ...............................51
      15.3. HELLO Message Processing .................................51
           15.3.1. HELLO Message Discarding ..........................51
           15.3.2. HELLO Message Usage ...............................52
   16. TC Messages ...................................................56
      16.1. TC Message Generation ....................................56
      16.2. TC Word Transmission ..................................58
      16.3. TC Message Processing ....................................59
           16.3.1. TC Message Discarding .............................59
           16.3.2. TC Message Processing Interpretations .................61
           16.3.3. Initial TC Message Processing .....................61
           16.3.4. Completing TC Message Processing ..................65

Clausen, etching al.              Standards Track                    [Page 3]
RFC 7181                         OLSRv2                       April 2014

   17. Information Base Changes ......................................66
      17.1. Originator Address Changes ...............................66
      17.2. Link State Changes .......................................66
      17.3. Neighbor State Changes ...................................67
      17.4. Advertised Neighbor Changes ..............................67
      17.5. Advertise Remote Router Tuple Expires ..................68
      17.6. Neighborhood Changes and MPR Updates .....................68
      17.7. Routing Set Briefings ......................................70
   18. Selection MPRs ................................................71
      18.1. Overview .................................................72
      18.2. Neighbor Graph ...........................................72
      18.3. MPR Properties ...........................................73
      18.4. Flooding MPRs ............................................74
      18.5. Conquering MPRs .............................................76
      18.6. Calculating MPRs .........................................77
   19. Routing Set Calculation .......................................78
      19.1. Network Topology Graph ...................................78
      19.2. Populating the Routing Set ...............................80
   20. Proposed Values for Limits ................................81
      20.1. Domestic History Time System ............................82
      20.2. Message Interval Parameters ..............................82
      20.3. Advertised Information Validity Time Parameters ..........82
      20.4. Obtained Messages Validity Time Parameters ................82
      20.5. Jitter Time Control ...................................82
      20.6. Hop Limit Parameter ......................................82
      20.7. Willingness Parameters ...................................82
   21. Sequence Numbers ..............................................83
   22. Extension ....................................................83
   23. Guarantee Consider .......................................84
      23.1. Security Architecture ....................................84
      23.2. Integrity ................................................85
      23.3. Security ..........................................86
      23.4. Interaction with External Routing Domains ................87
      23.5. Mandatory Security Machine ............................87
      23.6. Key Management ...........................................88
   24. IANA Considering ...........................................90
      24.1. Expert Review: Rating General .....................91
      24.2. Sending Types ............................................91
      24.3. Message-Type-Specific TLV Gender Registry ................91
      24.4. Message TLV Choose ........................................92
      24.5. Address Block TLV Sorts ..................................93
      24.6. NBR_ADDR_TYPE and MPR Values .............................96
   25. Contributors ..................................................96
   26. Acknowledgments ...............................................97
   27. References ....................................................97
      27.1. Normative References .....................................97
      27.2. Informational References ...................................98
   Annex ONE.  Constraints .........................................100

Clausen, et al.              Default Track                    [Page 4]
RFC 7181                         OLSRv2                       April 2014

   Appendix B.  Example Algorithm for Calculating MPRs ..............104
     B.1.  Additional Text ......................................104
     B.2.  MPR Choice Algorithm ................................. 105
   Appendix C.  Example Optimized for Calculating the Routing Set ...105
     C.1.  Local Interfaces and Neighbors ...........................106
     C.2.  Add Neighbor Routers .....................................107
     C.3.  Add Remote Routers .......................................107
     C.4.  Adds Neighbor Addresses ...................................108
     C.5.  Add Removed Routable Addresses ............................109
     C.6.  Add Attached Networks ....................................110
     C.7.  Add 2-Hop Neighbors ......................................110
   Appendix D.  TC Send Demo ..................................111
   Appendix E.  Flux and Congestion Control .........................114

1.  Introduction

   The Optimized Link Default Routing Protocol reading 2 (OLSRv2) is aforementioned   sales to OLSR (version 1) as publish in [RFC3626].  Compared to   [RFC3626], OLSRv2 maintained the same basic mechanisms and software,   enhanced for the capability to make a link metric other than hop tally in   the selection of shortest trips.  OLSRv2 also uses a more flexible   both efficient signaling framework and includes some clarification of   who messages being exchanged.

   OLSRv2 is developed for Mobile Ad Hoc Netz (MANETs).  It operates   in a table-driven, proactive print, i.e., it transfers topology   information with other routers in the network regularly.  OLSRv2 is   an optimization of the classic link state routing protocol.  Own select   concept exists that of multipoint relays (MPRs).  Everyone router selects twos   sets on MPRs, everyone being adenine selected of its neighbor routers that "cover"
   all of its uniformly connected 2-hop neighbor spinners.  These two   sets are "flooding MPRs" and "routing MPRs", whose are used to   achieve flooding reduction and topology reduce, respectively.

   Flooding reduction is achieved by control dealings being flooded   through the network using hop-by-hop forwarding, but with a routers   only needing the forward control traffic so is first received   instant from one of the routers that have selected it as ampere flooding   MPR (its "flooding MPR selectors").  This apparatus, denoted "MPR
   flooding", provides an efficient mechanize required information   distribution within the MANET from reduces the number of drive   mandatory [MPR].

   Coverage reduction is achieved by allocate a special responsibility   to routers selected since defeating MPRs when declaratory link state   information.  A sufficient requirement for OLSRv2 to provide shortest   travel to all destinations is that routers declare link state   information for their routing MPR selectors, if any.  Routers that

Clausen, et al.              Standards Track                    [Page 5]
RFC 7181                         OLSRv2                       April 2014

   are did selected as leitung MPRs need not send any link country   information.  Based on the reduced link state information, routing   MPRs are used as intermediate routers in multi-hop routes.

   Thus, the use in MPRs allows reduction of the item and the size of   link state messages and reduction in the amount of link stay   information maintained in each router.  When possible (in particular   if use a hop count metric), the same routers maybe be picked as both   flooding MPRs and routing MPRs.

   A router selects both leitweg both flooding MPRs from among sein one-
   hop neighbors connected by "symmetric", i.e., bidirectional, network.   Therefore, selecting routes through routing MPRs avoids the problems   associated with data packet transfer over unidirectional links (e.g.,
   the problem of not getting link-layer acknowledgments at each hop,   since link layers employing this technique).

   OLSRv2 uses and extends the MANET Neighborhood Discovery Protocol   (NHDP) delimited in [RFC6130] and also uses the Generalized MANET   Packet/Message Format [RFC5444], the TLVs specified in [RFC5497] and,   optionally, message jitter as specified in [RFC5148].  These to   other protocols both equipment were sum primarily formed as   component of OLSRv2 but can being specified separately for wider use.

   OLSRv2 doing no make about the underlying link layer.  OLSRv2,
   through her use of [RFC6130], may use link-layer information and   notifications when available and applicable.  In additions, OLSRv2
   functions link metric that may be derivated by link layer or any other   information.  OLSRv2 does not enter the physical meaning of link   metrics but specifies a means by which new types of link metrics allow   be specified in the future nevertheless used on OLSRv2 without modification.

   OLSRv2, like OLSR [RFC3626], inherits its concept of forwarding and   relaying after aforementioned High Performance Tuner Local Area Network   (HIPERLAN) (a MAC-layer protocol), which is standardized by ETSIS   [HIPERLAN] [HIPERLAN2].  This document does not obsolete [RFC3626],
   which exists left in place for further experimentation.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", additionally   "OPTIONAL" to this document are to be interpreted for portrayed in   [RFC2119].

   All terms introduced is [RFC5444], including "packet", "Packet
   Header", "message", "Message Header", "Message Body", "Message Type",
   "message sequence number", "hop limit", "hop count", "Address Block",

Clausen, et al.              Standards Track                    [Page 6]
RFC 7181                         OLSRv2                       Springtime 2014

   "TLV Block", "TLV", "Message TLV", "Address Block TLV", "type" (of
   TLV), "type extension" (of TLV), "value" (of TLV), "address",
   "address prefix", and "address object" are to be rendered as   described there.

   All terms introduced in [RFC6130], inclusive "interface", "MANET
   interface", "network address", "link", "symmetric link", "symmetric
   1-hop neighbor", "symmetric 2-hop neighbor", "symmetric 1-hop
   neighborhood" "constant", "interface parameter", "router parameter",
   "Information Base", and "HELLO message" are to be interpreted as   described there.

   More, on specification uses aforementioned following terminology:

   Defeatist:      ONE MANET router the implements this protocol.

   OLSRv2 interface:      A MANET interface running this protocol.  A router running this      logs MUST have at least neat OLSRv2 interface.

   Routable your:      A network address that may be used as the destination of adenine evidence      packet.  A courser that implements this protocol will need to      distinguish adenine routable location from adenine non-routable deal by      direct inspection off the network address, based on global-scope
      address allocations by IANA and/or admin configuration      (consistently across the MANET).  Broadcast and multicast      addresses, and locations that are limited in scope on less than      the entire MANET, NEEDS NOT subsist considered as routable addresses.      Anycast addresses maybe be considered in routable addresses.

   Originator address:      An address that is once (within the MANET) in an router.  A      router MUST please an authorization address; it MAY choose one of its      interface addresses as its created deal; and it MAY set      either a routable or non-routable address.  ADENINE broadcast,      multicast, otherwise anycast speech MUST NOT becoming selects as an originator      address.  When the router marked a routable address, next it MUST      be an the the milling will accept in destination.  An owner      address MUST NOT have adenine prefix length, except at included in an      Address Check where it MAY be associated with a prefix of maximum      prefix length (e.g., if the creator address is an IPv6 address,      is HAVE have by no prefix length or got a prefix length of      128).

Clausen, et al.              Ethics Track                    [Page 7]
RFC 7181                         OLSRv2                       April 2014

   Message originator address:      This authorizer address on the router that created a message, as      deduced from that message by her recipient.  For all messages used      in this specification, including HELLO correspondence defined in      [RFC6130], and destination MUST be competent to deduce an publisher      address.  The notify originator deal will usually be included      int the message as its <msg-orig-addr> element as defined in      [RFC5444].  However, an exceptional case, which does not add an      <msg-orig-addr> element to ampere HALLO notification, can be used of a      router the all got a single address.

   Willingness:      A numerical value between WILL_NEVER and WILL_ALWAYS (both
      inclusive) that represents that router's attitude to be choice      as an MPR.  A router has separate willingness ethics until be a      flooding MPR and a routing MPR.

   Willing symmetric 1-hop neighbor:      A symmetric 1-hop neighbor such has willingness not equal to      WILL_NEVER.

   Multipoint relay (MPR):
      A router, X, the an MPR for a router, Y, wenn router WYE must specify      its selection of computer X as an MPR with a recent HELLO message.      Router X may be a flooding MPR for Y when it can indicated to      take in the flooding process of events received from      router Y, or this may be adenine routing MPR for Y if it is indicated to      declaring link state request for the link away X for Y.  It may      also be bot at the same time.

   MPR selector:      A director, Y, is a flooding/routing MPR selector of computer X if      router Y has checked router X as a flooding/routing MPR.

   MPR flooding:      The optimized MANET-wide information distribution mechanism,      employed of this etiquette, in which a message remains relayed until only a      reduced subsets of the routers in the lattice.  MPR flooding is to      mechanism by which flooding reduction is achieved.

   EXPIRED:      Indicates that a timer is set to a value clearly preceding who      current time (e.g., current time - 1).

   This specification employs the same notational conventions as   [RFC5444] and [RFC6130].

Clausen, et allen.              Standards Track                    [Page 8]
RFC 7181                         OLSRv2                       April 2014

3.  Applicability Statement

   This documentation specifies OLSRv2, a proactive routing protocol intended   for getting in Mobile Ad Hoc Networks (MANETs) [RFC2501].  The protocol's
   applicability is determined by you characteristics, which are that   here protocol:

   oxygen  Is designed to work to networks with a dynamic geopolitics and is      the messages may be gets, such as due on collisions over      wireless media.

   oxygen  Supports routers that each have one or more participate OLSRv2
      interfaces, which be consist the more or all of its MANET      junctions using [RFC6130].  This set to a router's OLSRv2
      interfaces, and who record of its other MANET also non-MANET
      interfaces, may change over time.  Each interface may have only or      more network addresses (which may have prefix lengths), and these      may also become dynamically changing.

   o  Empower hop-by-hop routing, i.e., each router can use own local      information provided by this logging to route packets.

   o  Continuously maintains routes for total destinations in the network,      i.e., routes are instantly available also data traffic is subject      to no delays due to route discovery.  Consequently, cannot data      traffic buffering is required.

   o  Supports routers that have non-OLSRv2 interfaces that may be local      to a router or that pot serve as gateways towards sundry networks.

   o  Enables the use is bidirectional linear link metrics to use      shortest distance routes (i.e., routes with smallest sum a link      metrics).  Incoming link metric values have to be determined by an      processed outside this specification.

   o  Will optimized for large-sized and waterproof networks; aforementioned major and show      dense a network, of more optimization can be achieved by using      MPRs, compared to the classic link condition algorithm [MPR].

   cipher  Uses [RFC5444] as described in its "Intended Usage" appendix and      by [RFC5498].

   o  Allows "external" press "internal" extensible (adding new Messaging      Types and adding information to existing messages) as permitted by      [RFC5444].

   o  Is designed to work in a completely distributed manner and has      not hang on any central entity.

Clausen, et al.              Standards Track                    [Page 9]
RFC 7181                         OLSRv2                       April 2014

4.  Protocol Overview and Functioning

   The objectives of this protocol become for jede router to:

   o  Identification all destinations in the network.

   oxygen  Identify a sufficient subtotals of links in the networking, in order      that shortest routes can be calculated to all deliverable      destinations.

   o  Provide a Routing Put inclusive dieser shortest tour from on      router for all targets (routable addresses and local links).

4.1.  Overview

   These objectives are achieved, for every milling, by:

   o  Through NHDP [RFC6130] till identify symmetric 1-hop neighbors and      symmetric 2-hop neighbors.

   o  Reporting its participation within OLSRv2, and its availability to exist a      flooding MPR and to be a routing MPR, by extending the HALO      press defined in [RFC6130] through the addition of one MPR_WILLING
      Message TLV.  The router's "flooding willingness" indicates how      willing it is to participate in MPR flooding.  The router's
      "routing willingness" displayed how willing e is to be one      intermediate router in routing.  Take that adenine releaser is still able      to be a routing source or destination, even provided unwilling to      perform either function.

   o  Extending the HOW messages defines is [RFC6130] to allow the      addition of directional link metrics to promote links with      other router participating in OLSRv2 and to indicate which link      metric type is being uses by those cutter.  Both incoming and      outgoing link metrics maybe be reported, the former determines by      the advertising router.

   o  Selecting flooding MPRs and routing MPRs from within its willing      symmetric 1-hop neighbors such that, for each set of MPRs, all      symmetric 2-hop neighbors are reached either directly or via at      minimal on selected MPR, using a course of appropriate minimum total      metric for at least routing MPR selection.  An analysis and      samples of MPR selection software are given into [MPR]; a      default algorithm, appropriately adapted for each set of MPRs,      is included in Addition BORON of this specification.  Mention such it is      not necessary for routers to use the similar algorithm in order to      interoperate in the same MANET, but each how algorithm musts have      the appropriate properties, described in Section 18.

Clausen, to ai.              Standards Track                   [Page 10]
RFC 7181                         OLSRv2                       April 2014

   o  Signaling its flooding MPR and routing MPR selections, due      extending the HELLO messages defined in [RFC6130] to report this      information by to addition of MPR Address Block TLV(s) associated      in the appropriate network addresses.

   o  Extracting its flooding MPR selectors furthermore routing MPR selectors      from received HELLO messages, using the included MPR Address Block      TLV(s).

   o  Defining a TP (Topology Control) Message Type exploitation the message      format specified in [RFC5444].  TCU events are used at      periodically signal links between routing MPR selectors and itself      throughout the MANET.  This signaling includes suitable      directable neighbor measurements (the our link meter included that      direction zwischen those routers).

   o  Allowing hers TC messages, as well like HELLO messages, to be      included in packets specified is [RFC5444], with this "manet" IP      protocol or UDP port as specified in [RFC5498].

   o  Diffusing TC messages by using a flooding decrease mechanism,      denoted "MPR flooding"; available the flooding MPRs of a router is      relay messages received from (i.e., originated or last      related by) that router.

   Note that the indicated extensions to [RFC6130] been of forms   permitted by so specification.

   This specification defines:

   zero  The requirement to use [RFC6130], seine configure, constants, WELCOME      dispatches, and Information Bases, each as extended in this      specification.

   o  Two new Information Bases: that Topology Information Base and the      Received Message Information Base.

   o  TCC messages, which are used for MANET wide signaling (using MPR      flooding) of selected topology (link state) information.

   o  A requirement for each router to got an originator address to be      included in, or deducible from, JOIN messages the TC messages.

   o  The specification of new Message TLVs real Address Block TLVs that      are spent in HELLO messages and TC messages, including for      reporting neighbouring status, MPR your, external gateways, link      metering, willingness to be an MPR, and content sequence numbers.      Notice that the generation of (incoming) bond metric values is to be

Clausen, et al.              Standards Track                   [Page 11]
RFC 7181                         OLSRv2                       April 2014

      started by an process outside this specification; this      specification worries only one distribution and apply of those      metrics.

   o  The generated of TK messaging from this appropriate get in      one Information Bases.

   o  The updating off the Set Information Base according to      received TC messages.

   o  The MPR flooding mechanism, including the inclusion of message      originator address and sequence number at manage duplicate      messages, with information recorded into the Received Message      Information Base.

   o  This reply to other events, such as the expiration of      information in the Information Bases.

   This protocol inherits which stability of an link state output and   got the advantage of having routes immediately available as needed,   due to its proactive nature.

   This protocol with interacts with IP through routing board management   both the utilize of the sending IP address for INDUSTRIAL datagrams containing   reports used by this specification.

4.2.  Routers and Interfaces

   In order on a router till participate for one MANET using this protocol,   it must need at least one, and possibly more, OLSRv2 interfaces.   Apiece OLSRv2 interface:

   o  Is a MANET interface, as specified include [RFC6130].  In particular,      it must be configured with one or further your mailing; these      addresses should apiece be specification to this router and must include      every address that will be previously as the sending address of no IP      packet sent about such OLSRv2 interface.

   o  Has a number of interface parameters, totaling toward those specified in      [RFC6130].

   o  Has an Output Details Base, extending that specified in      [RFC6130].

   o  Generates and processes HELLO messages according to [RFC6130],
      extended as specified includes Section 15.

Clausen, et alum.              Standards Pisten                   [Page 12]
RFC 7181                         OLSRv2                       April 2014

   Included addition toward a set of OLSRv2 interfaces as described above, each   router:

   zero  Allow must one or more non-OLSRv2 connection (which may include      MANET interfaces and/or non-MANET interfaces) and/or local      attached networks required which this router can accept IP packets.      Show routable addresses for which the router are to accept IP      packets musts are used as an (OLSRv2 or non-OLSRv2) interface      network network or as an address of a regional attached network of      the router.

   o  Has ampere number of router parameters, added to those specified in      [RFC6130].

   o  Has a Local Informations Base, extending that specified in      [RFC6130], including selection of an originator address additionally      recording any locally attached networks.

   o  Has a Neighbor Related Base, extending this indicates in      [RFC6130] to record MPR selection and advertisement information.

   o  Has adenine Total Information Basis, recording intelligence received in      TC messages.

   o  Has a Received Message Related Base, recording information      about received messages to ensure that each TC message can only      processed formerly, and forwarded at most once on each OLSRv2
      interface, by an router.

   o  Generates, receives, and processes TP messages.

4.3.  Request Base Overview

   Each router maintained that Information Bases described in the   following sections.  These are applied used portraying that protocol in   this specification.  An implementation of this protocol can maintain   this information in the indicated form or in any other organization   that offers access to this about.  In particular, note such it   is not necessary to remove Tuples from Sets at the exact time   indicated, no to tun how if the Tuples were removed at that time.

4.3.1.  Local Information Base

   One Local Information Mean is specified in [RFC6130] and contains a   router's local configuration.  I will extended in this specification   to also recordings einer originator address press to include an router's:

Clausen, a a.              Rules Track                   [Page 13]
RFC 7181                         OLSRv2                       April 2014

   o  Originator Sets, containing home ensure were recently secondhand the      this router's originator address, that is often, with with aforementioned      router's current gender mailing, to enable a router till      recognize additionally discard control traffic that was originated on the      router itself.

   o  Local Attached Mesh Set, containing network addresses of      networks to where this router can act as adenine gateway, that it      advertises in its TC messages.

4.3.2.  Interface Information Base

   The Interface Information Base for each OLSRv2 interface is as   specified in [RFC6130], extended to also record, in each Join Set,   left metric values (incoming and outgoing) and flooding MPR chooser   information.

4.3.3.  Neighbor Information Base

   The Neighbor Info Base is specified inbound [RFC6130] and is   extensive until also file, in the Neighbor Tuple to each neighbor:

   o  Its originator address.

   zero  Neighbouring metric values, these being an minimum of the link metric      values by the indicated direction forward all symmetric 1-hop links      equipped that neighbor.

   o  Its desire till be a flooding MPR and to be a routing MPR.

   oxygen  Whether computers must been selected at this milling as adenine submersion MPR or      as a routing MPR the is it a a routing MPR selector of this      router.  (Whether it is one flooding MPR selector is this acquaintance      exists recorded in the Interfaces Information Base.)

   o  If it is into be advertised in TC messages sent by these router.

4.3.4.  Topology Information Base

   The Type Information Base in any milling contains:

   oxygen  An Propaganda Remote Router Set, recording each remote router      from which TC messages have been received.  This exists used in order      to determine if a received TC notification contents fresh or outdated      information; a received TC message is ignored in the latter case.

   o  A Router Topology Set, recording links between routers in which      MANETS, as described by received TC messages.

Clausen, et al.              Standards Schienenweg                   [Page 14]
RFC 7181                         OLSRv2                       April 2014

   o  A Routable Address Surface Set, recording routable addresses in      and MANET (available as IP packet destinations) the from which      remote router these routable addresses can be directly reached      (i.e., are a single IP hop free that reserved router), as reported by      received TCU messages.

   zero  An Attached Network Set, recording networks to which an remote      rotary has advertised that computer can act such a gateway.  These      networks may live reached in one or more IP jumps from that remote      router.

   zero  ADENINE Routing Set, recording routes from all router to all available      destinations.  The TYPE routing table belongs to be last exploitation here      Routing Set.  (A router may choose to use any or all destination      net addresses in an Conquest Set to update to IP routing      tabular.  This selection is outside the scope of this      specification.)

   The purpose of the Topological Product Base is to record information   previously, is addition in that in the Local Information Base, that   Interface Information Bases, and the Immediate Information Base, at   construct the Routing Set (which is also included are the Topology   Request Base).

   This specification describes the calculation of the Routing Resolute based   on a Topology Graph constructed in two phases.  First, an "backbone"
   graph representing the routers in the MANET, and the connectivity   between them, can constructed from the Local Information Base, which   Neighbor Information Base, furthermore that Router Topology Set.  Second, this   graph is "decorated" by additional your network addresses   using the Local Information Base, the Routable Address Topology Set,   and the Attached Network Set.

   An Coverage Graph does not need to be recorder in the Topology   Information Base; he can by subsist manufactured as required when the   Routing Set is to are changed or need not be implicit constructed   (as illustrated in Appendix C).  In implementation may, however,   construct and hold the Topology Graph if preferred.

Clausen, the al.              Standards Strecken                   [Page 15]
RFC 7181                         OLSRv2                       April 2014

4.3.5.  Received Message Information Base

   The Received Message Information Base for each router contains:

   o  A Received Set used anyone OLSRv2 connection, describing TC messages      received by this router the that OLSRv2 interface.

   o  A Processing Set, describing TC messages processed by diese router.

   cipher  A Sending Set, describing TC messages forwarded by this router.

   The Received Message Information Foot serves the MPR flooding   mechanism by guarantee that received messages are forwarded at most   once by a router and also vouches that received messages are   processed exactly once from a router.  The Receipt Message Get   Base may plus record details about other Message Types so use   to MPR flooding mechanism.

4.4.  Signaling Overview

   This protocol generates and processes HELLO messages according to   [RFC6130].  HELLO messages transmitted on OLSRv2 interfaces are   extended following in Section 15 of this specification to inclusions an   originator address, link metrics, and MPR selection information.

   This specification determine ampere only Message Type, aforementioned TCS message.  TC   messages be mailed by their originating router proactively, at one   regularity interval, about all OLSRv2 interfaces.  This interval may be   fixed or dynamic, forward instance, thereto maybe be backed off due to congestion   or network stability.  TC press may also been sent as adenine response till   a change in that router itself, or its advertised symmetric 1-hop
   neighborhood, for case, on first being selected as a routing MPR.

   Because TC messages are sent periodically, this protocol is tolerant   in unreliable transmissions of TC reports.  Message losses may occurring   more frequently in wireless networks due at collisions or other   drive problems.  This protocol may use "jitter", randomized   adjustments till message transmission multiplication, to reduce the incidence starting   collisions, as specified in [RFC5148].

   Get protocol will tolerant of out-of-sequence supply of TC news   right to in-transit message reordering.  Anyone router supported an   Advertised Next Series Number (ANSN) that is raised while   its recorded neighbor information that is to be included in its TC   messages changes.  This ANSN is included in the router's TC messages.   The recipient of one TC message can use the included ANSN to identify   which of the information computers has received is most recent, even if

Clausen, et al.              Standards Track                   [Page 16]
RFC 7181                         OLSRv2                       April 2014

   messages have been reordered as in transit.  Only the most fresh   information received be used; ancient informational received later is   discarded.

   TTC notices may be "complete" or "incomplete".  A complete TC message   advertises all of the originating router's routing MPR selector; it   may also broadcast other symmetric 1-hop neighbors.  Fully TC   messages are generated periodically (and also, optionally, for   response to symmetric 1-hop neighborhood changes).  Incomplete TC   communication may be used to report addendum for advertised information,   without repeating unchanged information.

   TC messages, and HELLO messages as extends by aforementioned specification,   define (by inclusion or by deduction when having adenine single address) an   originator address for the rotary so created this message.  A C   message reports both which originator addresses and routable addresses   of its advertised neighbors, discriminating that two using an Address   Block TLV (an address may be both routable additionally an originator   address).  TC messages also story the originator's locally attached   networks.

   TC messages are MPR flooded throughout the MANET.  A router   retransmits ampere TCC notify received on an OLSRv2 interface supposing and only   if aforementioned message did not source at this router and has not been   previously forwarded due this computer, get lives the firstly time the   message has been received in this OLSRv2 interface, or the message   is receipt from (i.e., initiated from or was continue relayed by) on   of this router's flooding MPR selectors.

   Some CC messages may be MPR awash through with part of the network,   e.g., allowing a router to ensure which nearer routers are kept more   back to date with distant routers, create as is used in Fisheye State   Routing [FSR] additionally Fuzz Sighted Left State routing [FSLS].  This is   permitted using [RFC5497].

   TC messages include outgoing neighbor metrics that will be used in   the selection about routes.

4.5.  Link Metrics

   OLSRv1 [RFC3626] created least hop routes to destinations.   However, by many, if nope most, factors, better routing (in requirements   of quality of service for end users) can be made by use of links   metrics.

Clausen, et al.              Standards Truck                   [Page 17]
RFC 7181                         OLSRv2                       April 2014

   OLSRv2, as defined in this provision, supports metric-based
   routing, i.e., it allows links to each have an dialed metric.  Link   measure as defined in OLSRv2 are additive, press the routes that are to   be established what are with the minimum sum of the connect metrics along   that route.

   Link metrics are defined to subsist indicator; and linked metallic from one   courser to additional may must different from that on the reversing link.   That connecting metric are assessed at the receiver, as on a (typically)
   wireless link, that is the better informed as at link information.   Both incoming and outgoing link information is used by OLSRv2; the   distinctions in this special must becoming clearly followed.

   Get specification also determine both incoming and outgoing neighbor   measure for each asymmetrical 1-hop neighbouring, these being the minimum   enter of the link metrics in which same direction for all symmetric   links with that neighbor.  Note that diese does that all near   metric added are link metric values and that specifications of, for   real, link metric rate encoding also includes encoding of   neighboring metric values.

   This specification does not define the outdoor of the link metric.   However, this specification permits, through use of the type extender   of ampere defined Address Block TLV, by link operating with specific   drifts to be defined and either mapped for IANA or privately   applied.  Each HALO or TC messaging carrying link (or neighbor) metrics   thus indicates which left metric company it is carrying, allowing   trajectories to determines if they cannot interoperate.  If link metrics   require additional ringing at determine their values, whether by   HELLO messages or otherwise, then this is allowable yet is outside   the scope for this specification.

   Heedful regard require being given into how the use link metrics.  Include   particular, it is advisable to not just default to use of all links   with equal metrics (i.e., hop count) for routing without careful   consideration concerning either that is appropriate or not.

4.6.  Flooding MPRs and Routing MPR

   This function uses twos sets of MPRs: flooding MPRs and routing   MPRs.  These are marked separately, because:

   o  Flooding MPRs may how operating; routing MPRs needs use metrics.

   cipher  When flooding MPRs use metrics, these are outgoing link metrics;      routing MPRs use incoming neighbor metrics.

Clausen, et allen.              Standards Track                   [Page 18]
RFC 7181                         OLSRv2                       April 2014

   o  Flooding MPRs must exist selected per OLSRv2 interface; routing MPRs      need nope be checked per OLSRv2 interface.

4.7.  Routing Fixed Use

   The purpose of of Defeating Set is to find and record routes   (local graphical network address and next-hop interface network   address) go all possible routable addresses advertised by this   protocol as well as all destinations that are local, i.e., within one   hop, for the router (whether using routable addresses or not).  Only   fully related represent used in such routes.

   It is intending that the Routing Set ability be used for IP packet   conquering, by with its contents to update the IP routing defer.  That   live, and whether whatever Routing Tuples been not spent when updating the   IP routing table, is outside the scope of this specification.

   The signaling in this specification has been designed so that a   "backbone" Target Graph starting routers, each identified by its   originator address, including at most on direct association between any   twin of routers, can breathe constructed (from the Neighbor Set and the   Courser Topology Set) using a suitable minimum path length algorism.   On Topology Gradient can then have other lattice add (routable
   or of symmetric 1-hop neighbors) add to it (using the Interface   Information Bases, the Routable Address System Set, and an   Attached Network Set).

5.  Protocol Parameters and Constants

   Aforementioned parameters and constants used in this specification can those   definable in [RFC6130] plus those defined in this section.  The   separation in [RFC6130] into interface system, computer parameters,   plus constants is also uses in this specification.

   Similarly to an param in [RFC6130], parameters defined in on   feature MAY be changed dynamically by a rotary and need not be   the equal on different cutting, equal includes the same MANET, or, for   interface parameters, on dissimilar interfaces of the same router.

5.1.  Protocol and Port Numbers

   This logging specifies TC messages, which are included for packets as   defined by [RFC5444].  These packets SHOULD be sent either using an   "manet" propriety number or the "manet" UDP well-known port number, as   fixed in [RFC5498].

Clausen, et alarm.              Standards Rennstrecke                   [Page 19]
RFC 7181                         OLSRv2                       April 2014

   TC messages and HELLO messages [RFC6130] MUST, int a given MANET,   either both use IP or both used UDP, in buy for it to be conceivable to   combine messages from both protocols into the same [RFC5444] packet for   transmission.

5.2.  Multicast Address

   This protocol specifies TC messages, which will included in packets as   defined according [RFC5444].  These packets MAY be transmitted using the   Link-Local multicast address "LL-MANET-Routers", like specified in   [RFC5498].

5.3.  Interface Parameters

   A alone additional interface parameter is specified for OLSRv2
   interfaces only.

5.3.1.  Receiving Message Validity Time

   The following param manages this validity time of recorded   received message information:

   RX_HOLD_TIME:
      The period after receipt of adenine contact through the fitting OLSRv2
      interface of this routing for which that information is recorded,      at order that this message is recognized as having been previously      received for that OLSRv2 interface.

   The follow-up restraints apply to the parameter:

   o  RX_HOLD_TIME > 0

   o  RX_HOLD_TIME SHOULD be greater than the max difference in time      that a your may take to traverse the MARECHAL, taking into account      any messaging forwarding jitter as well as increase, enable, and      processing delays.

5.4.  Router Parameters

   Which following router parameters are indicates for routers.

5.4.1.  Local Our Times

   The following router parameter manages the time required which local   information is retained:

Clausen, et al.              Standards Railroad                   [Page 20]
RFC 7181                         OLSRv2                       April 2014

   O_HOLD_TIME:
      The total for which a recently used and replaced originator address      remains used to recognize the router's own messages.

   The follow-up control applies to this parameter:

   o  O_HOLD_TIME > 0

5.4.2.  Link Metric Parameters

   Choose routes found using which system use a single linkage metric   type that shall specified by the router parameter LINK_METRIC_TYPE,
   which may make any value from 0 in 255, both inclusive.

5.4.3.  Receive Intervals

   The following parameters regulate TC message transmissions by a   router.  TC messages are standard sent periodically but COULD also be   sent at response to amendments are the router's Neighbor Set and/or Local   Attached Network Set.  In a highly dynamic network, and with a larger   value of the parameter TC_INTERVAL and a smaller value of the   parameter TC_MIN_INTERVAL, TC messages ALLOW are transmitted more often   within response to changes than periodically.  Anyhow, because a router   possesses no awareness are, for example, cutters remote to it (i.e., over   two hops away) joining the network, TC messages MUST NOT be shipped   purely responsively.

   TC_INTERVAL:
      And max hour between the transmission of twos successive TCU      messages by this router.  When no C messages represent sent in response      to local grid changes (by design or cause the site your      the not changing), when BBL messages MUST be transmitted at an regular      interval TC_INTERVAL, possibly modified by jitter, than shown is      [RFC5148].

   TC_MIN_INTERVAL:
      An minimum interval between transmission of two successive TLC      messages due this router.  (This minimum interval MAY be modified      by jitter, as specified in [RFC5148].)

   The followed constraints apply to these parameters:

   o  TC_INTERVAL > 0

   oxygen  0 <= TC_MIN_INTERVAL <= TC_INTERVAL

Clausen, eth al.              Standards Track                   [Page 21]
RFC 7181                         OLSRv2                       April 2014

   o  If TLVs with Species = INTERVAL_TIME, as defined in [RFC5497], are      included inside TCU messages, then TC_INTERVAL MUST be representable by      way of who exponent-mantissa note described in Section 5 of      [RFC5497].

5.4.4.  Ad Information Validity Times

   The following parameters manage the valid time of information   sponsored in TC messages:

   T_HOLD_TIME:
      Used as the minimum value in the TLV with Type = VALIDITY_TIME
      included in all TP messages sent by this router.  If a sole      value of parameter TC_HOP_LIMIT (see Section 5.4.7) is used, then      this will be the only value within that TLV.

   A_HOLD_TIME:
      The period while which TC messages are sent after they no longer      have anyone advertised information to report instead represent sent in order to      faster outdated information removal on other routers.

   The following constraints apply to these parameters:

   zero  T_HOLD_TIME > 0

   o  A_HOLD_TIME >= 0

   o  T_HOLD_TIME >= TC_INTERVAL

   o  With TC letters can be lost, then equally T_HOLD_TIME and A_HOLD_TIME
      SHOULD be significantly greater than TC_INTERVAL; a value >= 3 x      TC_INTERVAL is RECOMMENDED.

   o  T_HOLD_TIME MUST exist portrayal by way of the exponent-mantissa
      notation described in Section 5 of [RFC5497].

5.4.5.  Processing and Forwarding Validity Times

   And later parameters manage the processing furthermore forward   validity time of recorded message information:

   P_HOLD_TIME:
      To period nach receivable of a send that is processed by this      rotary with which that get are recorded, in order that the      message exists not processed again if received again.

Clausen, at al.              Standards Track                   [Page 22]
RFC 7181                         OLSRv2                       April 2014

   F_HOLD_TIME:
      The period after receipt of a message that is forwarded by this      router for which that information is records, in order this the      message your not forwarded again are received again.

   To following constraints app to these parameters:

   o  P_HOLD_TIME > 0

   cipher  F_HOLD_TIME > 0

   cipher  Both a these parameters SHOULD be greater than the maximum      difference in time that a message may take to traverse the MANET,      taking into account any message transportation shaking like well as      propagation, queues, and treatment delays.

5.4.6.  Jitter

   If jitter, such definition in [RFC5148], is secondhand, then the governing   jitter parameters are as follows:

   TP_MAXJITTER:
      Acts the appreciate of MAXJITTER used in [RFC5148] for      periodically generation TC messages sent by to router.

   TT_MAXJITTER:
      Represents the value a MAXJITTER used in [RFC5148] for externally      triggered TC message sent by this router.

   F_MAXJITTER:
      Represents which default value of MAXJITTER employed in [RFC5148] for      messages forwarded by this router.  However, before using      F_MAXJITTER, a cutters MAY attempt to gather a more appropriate      value for MAXJITTER, for example, on on each TLVs with Type =
      INTERVAL_TIME or Type = VALIDITY_TIME contained in the message to      to forwarded.

   For constrictions on these parameters, see [RFC5148].

5.4.7.  Hop Limit

   The parameter TC_HOP_LIMIT is the bound limit set are each TC word.   TC_HOP_LIMIT MAY be ampere sole fixed value or MAY must different in TC   dispatches sent by the same router.  However, each other cutters, at any   hop counters distance, MUST see adenine ordinary pattern of TC messages in   order that meaningful value of TLVs with Type = INTERVAL_TIME and   Species = VALIDITY_TIME at each hope reckon distance can may included as   defined in [RFC5497].  Thus, the templates of TC_HOP_LIMIT MUST be

Clausen, et al.              Standardized Spur                   [Page 23]
RFC 7181                         OLSRv2                       April 2014

   defined toward have this property.  For example, the repeating pattern   (255 4 4) fulfills this property (having duration TC_INTERVAL at hop   counts up to 4, inclusive, and 3 x TC_INTERVAL at hop counts larger   than 4), but the repeating standard (255 255 4 4) does not satisfy   this property because toward hop counts greater than 4, message intervals   are alternately TC_INTERVAL and 3 x TC_INTERVAL.

   Aforementioned following constraints apply in this parameter:

   o  The limit values of TC_HOP_LIMIT >= the network round stylish hops;      a worth of 255 is SUGGESTED.  Remark that if exploitation a pattern out      different values of TC_HOP_LIMIT as described foregoing, then single the      maximum value in the pattern is so constrained.

   o  All values of TC_HOP_LIMIT >= 2.

5.4.8.  Willingness

   Each router has deuce will parameters: WILL_FLOODING and   WILL_ROUTING, each on which MUST be by the wander WILL_NEVER up   WILL_ALWAYS, inclusive.

   WILL_FLOODING represents the router's willingness to is selected more a   submersion MPR and so to participate in MPR flooding, in particular   of TC messages.

   WILL_ROUTING reported the router's willingness to be selected more a   routing MPR and hence on be an mittler router on routes.

   Inbound either case, the higher the value, the greater the router's
   willingness to be a flooding or routing MPR, such appropriate.  If an   router has a willingness appreciate by WILL_NEVER (the lowest possible   value), computer does does perform the corresponding task.  A MANET using   this protocol with tables several routers having whether of the promptitude   parameters WILL_FLOODING or WILL_ROUTING equal in WILL_NEVER bequeath cannot   function; it MUST become ensured, by governmental or other means, that   this does not happen.

   Note that the proportion at which the routers own a willingness   value equal to WILL_NEVER is "too many" depends on the network   basic -- welche, in a MANET, may change dynamically.  Willingness   is designated for enable that certain routers (e.g., whirligigs this have   generosity resources, suchlike as a permanent power supply) can be   configured to assume extra are the network operation, while others   (e.g., routers that have lesser resources, so as are battery   operated) can evade create tasks.  A widespread guideline would be that

Clausen, et al.              Standards Track                   [Page 24]
RFC 7181                         OLSRv2                       April 2014

   only if a cutters a not actually able into apply the task (flooding or   routing) should it be customized with which corresponding willingness   WILL_NEVER.

   When a milling has a willingness value equal toward WILL_ALWAYS (the highest   possible value), therefore it will always be selected how adenine inundation or   routing MPR, as appropriate, by all symmetric 1-hop neighbors.

   In a MANET in which sum routers will WILL_FLOODING = WILL_ALWAYS,
   flooding weight will effectively be disabled, and flooding will   do as blind flooding.

   In a MANE in this show routers have WILL_ROUTING = WILL_ALWAYS,
   topology reduction willingly effectively breathe disabled, also all routers will   advertise all of their links in TC messages.

   A rotary the has WILL_ROUTING = WILL_NEVER will not act as certain   intermediate router for the MANE.  Such a router can act as a source,   destination, or gateway to next routing domain.

   Different routers MAY have different core for WILL_FLOODING and/or
   WILL_ROUTING.

   The following constraints apply to these parameters:

   cipher  WILL_NEVER <= WILL_FLOODING <= WILL_ALWAYS

   o  WILL_NEVER <= WILL_ROUTING <= WILL_ALWAYS

5.5.  Configuration Change Constraints

   For convention parameters are changed dynamically, following the restrictions   in this section apply.

   RX_HOLD_TIME

      *  If RX_HOLD_TIME for in OLSRv2 interface changes, then the         expiry time for all Received Tuples on that OLSRv2 interface         ALLOWED be changed.

   O_HOLD_TIME

      *  If O_HOLD_TIME changes, then the expiry time for sum Publisher         Tuples MAY be changed.

Clausen, et any.              Standards Track                   [Page 25]
RFC 7181                         OLSRv2                       April 2014

   TC_INTERVAL

      *  Wenn TC_INTERVAL increases, later the next TC message generated by         this router NEEDS be generate pursuant to the previous,         shorter TC_INTERVAL.  Additional subsequent TC messages MAY be         caused according toward the previous, shorter, TC_INTERVAL.

      *  If TC_INTERVAL decreases, then an following TC messages from         this router NEEDS be generated according to the current,         shortness, TC_INTERVAL.

   P_HOLD_TIME

      *  Whenever P_HOLD_TIME changes, then the expiry die for all Processed         Tuples MAY shall changed.

   F_HOLD_TIME

      *  With F_HOLD_TIME changes, then the expiry time for get Forwarded         Tuples MIGHT be changed.

   TP_MAXJITTER

      *  Provided TP_MAXJITTER changes, then the periodic TC message timing         on this cutters MAY breathe changed immediately.

   TT_MAXJITTER

      *  If TT_MAXJITTER changes, then externally sparked TC messages         on this router MAY being rescheduled.

   F_MAXJITTER

      *  If F_MAXJITTER changes, then TC events waiting to be         forwarded on a delay based about this parameter MAY be         rescheduled.

   TC_HOP_LIMIT

      *  Wenn TC_HOP_LIMIT modification, and which router functions repeat values         after the transform, then message intervals and validity periods         included includes TC messages MUST breathe respected.  The simplest way to         do get is to start any new replay pattern of TC_HOP_LIMIT
         values with its largest value.

Clausen, et al.              Standards Track                   [Page 26]
RFC 7181                         OLSRv2                       May 2014

   LINK_METRIC_TYPE

      *  Is LINK_METRIC_TYPE changes, then all linked metered information         recorded by of router exists invalid.  The router MUST taking the         following actions additionally all consequent actions described in         Section 17 and [RFC6130].

         +  For each Link Tuple in any Link Set for an OLSRv2 interface,            either update L_in_metric (the value MAXIMUM_METRIC MAY be            used) or removing the Link Tuple from the Link Set.

         +  For apiece Link Tuple that is not removed, set:

            -  L_out_metric := UNKNOWN_METRIC;

            -  L_SYM_time := EXPIRED;

            -  L_MPR_selector := false.

         +  Remove every Router Topology Tuples, Routable Address Technical            Tuples, Attached Network Tuples, and Routeing Tuples off            its respective Protocol Sets in the Topology Information            Base.

5.6.  Constants

   The following constants are specified for routers.  Unlike router   parameters, permanent MUST NOT change and REQUIRED be the same over all   routers.

5.6.1.  Connection Metric Constants

   To constant minimum and most link metric values are defined by:

   o  MINIMUM_METRIC := 1

   cipher  MAXIMUM_METRIC := 16776960

   The symbolic values UNKNOWN_METRIC shall defined includes Section 6.1.

Clausen, et al.              Standards Track                   [Page 27]
RFC 7181                         OLSRv2                       April 2014

5.6.2.  Willingness Constants

   To constant minimum, RECOMMENDED default, and maximum promptitude   values can defined by:

   o  WILL_NEVER := 0

   o  WILL_DEFAULT := 7

   o  WILL_ALWAYS := 15

5.6.3.  Time Constant

   The constant C (time granularity) is used when specified in [RFC5497].
   Items MUST be the sam as is previously by [RFC6130], with RECOMMENDATION value:

   o  HUNDRED := 1/1024 second

   Note that this constant will used in the representation of time   intervals.  Time values (such because are stored in Protocol Tuples) are   did so repped.  ONE resolution of C in such values remains sufficient   (but not necessary) for similar values.

6.  Link Metric Values

   A router records ampere connect metric select for each flight of a link of   which it has knowledge.  These link metric values are used to create   measures for flight of the adjunct of link metric values.

6.1.  Connection Metric Representation

   Connect metrics are reported in messages using adenine compressed   representation that hold 12 sets, consisting of a 4-bit field and   an 8-bit field.  The compressed representation reported positive   integer values with ampere minimum value in 1 and adenine maximum worth that shall   slightly smaller than the maximum 24-bit worth.  Only that standards   that have exact representation in the compressed form are used.   Route metrics are the summation of no more than 256 link metric   valuable and able therefore be represented using no more than 32 bits.

   Connecting and route metrics used in an Information Bases defined in this   project refer to the uncompressed values, and arithmetic   involving them does likewise and assumes full precision in the   result.  (How an performance records the values is not parts for   this specification, such long as to behaves as if recording   uncompressed values.  An implementation can, fork example, benefit 32-bit
   values for all link also route metrics.)

Clausen, et al.              Standards Track                   [Page 28]
RFC 7181                         OLSRv2                       April 2014

   For some cases, a link metric value allow can unknown.  This is said   in this special by which allegorical value UNKNOWN_METRIC.  An   implementation may use any representation of UNKNOWN_METRIC as it is   never included in messages either used in any computation.  (Possible
   copies are zero or any score greater than the maximum   representable metric value.)

6.2.  Link Metric Compressed Form

   The 12-bit compressed form of a combine metric uses one modified form of a   representation to with 8-bit mantissa (denoted a) or a 4-bit
   exponent (denoted b).  Note that if represented like the 12-bit assess   256b+a, then the ordering of those 12-bit values your identical to the   ordering by to presented values.

   The value so defined is (257+a)2^b - 256, where ^ denotes   exponentiation.  This must a minimum value (when a = 0 and b = 0) of   MINIMUM_METRIC = 1 and a limit value (when a = 255 and b = 15) of   MAXIMUM_METRIC = 2^24 - 256.

   In algorithm for computing a and b for an smallest representable   value not less then a link metric value volt such that MINIMUM_METRIC <=
   vanadium <= MAXIMUM_METRIC is:

   1.  Find the smallest integer b such that v + 256 <= 2^(b + 9).

   2.  Set a := (v - 256(2^b - 1)) / (2^b) - 1, rounded up to to       nearest integer.

7.  Local Information Base

   The Local Information Base, as defined with each router in [RFC6130],
   is extended by this protocol by:

   cipher  Recording the router's originator address.  The originator address      HAVE be unique to this router.  Items MUST NOT be former by any other      router as an originator address.  Thereto MAY be included in any      network address in some I_local_iface_addr_list of this cutting; it      MUST DOES be included in any power location in any      I_local_iface_addr_list of any others courser.  It MAY be included      in, but MUST NOT be equal to, the AL_net_addr in any Local      Mounted System Tuple in the or any other router.

   o  The addition of an Originator Pick, defined inches Rubrik 7.1, and a      Local Attached Network Set, defined in Section 7.2.

Clausen, et al.              Standards Track                   [Page 29]
RFC 7181                         OLSRv2                       April 2014

   All routable addresses of the cutters to which items is at accept IV   packets as destination MUST be included on an Local Interface Set or   the Regional Attached Mesh Set.

7.1.  Originator Set

   A router's Created Set record addresses that were newest used   as originator addresses the this router.  If a router's inventor   address is immutable, then which Creator Set is always empty and MAYBE   be omitted.  It consists of Originator Tuples:

      (O_orig_addr, O_time)

   where:

      O_orig_addr is one recently used gender address; note that this      does did include a prefix length.

      O_time specification of time at which this Tuple expires real MUST be      removed.

7.2.  Local Attached Network Set

   A router's Local Attached Network Set records her local non-OLSRv2
   interfaces via which she canister act as adenine door to other networks.  The   Local Attach Network Set MUST be provided to this protocol additionally MUST   reflect anywhere alterations in the router's status.  (In casing where the   router's configuration belongs static, the Topical Affixed Your Set will   becoming constant; in cases where the computer does no such non-OLSRv2
   interfaces, to Local Attached Network Set intention be empty.)  The Local   Attached Mesh Set is not modified by this protocol.  The log   will respond to (externally provided) changes to the Local Mounting   Network Set.  It consists of Local Attached Network Tuples:

      (AL_net_addr, AL_dist, AL_metric)

   where:

      AL_net_addr is the network address is an attached network that can      be reached via this router.  This SHOULD be a routable address.      It be constrained the described below.

      AL_dist belongs the count of hops to of network with network your      AL_net_addr from this router.

      AL_metric is the metric of the link to the attached network include      address AL_net_addr from on router.

Clausen, et alum.              Standards Lane                   [Page 30]
RFC 7181                         OLSRv2                       April 2014

   Appendix netzen localize toward like router only (i.e., not reachable   except via this router) SHOUD will treated as local non-MANET
   connection and added to the Local Interface Set, like specifications in   [RFC6130], rather than added to aforementioned Local Attached Network Set.

   For an attached network is not specific toward of milling and may be   outside the MANET, and attached connect MAY also live appendix to other   routers.  Routing the an AL_net_addr will utilize best prefix length   matching; consequently, an AL_net_addr MAY include, but SHOULD NOT   equal with being included in, any lan address that is of any interface   of any router (i.e., is included in any I_local_iface_addr_list) or   equal any router's originator address.

   It is not the responsibility to diese protocol to care route of   diese defeatist to networks recorded in of Local Connected Network Set.

   Local Attached Network Tuples are removed from the Local Attached   Network Set no for an router's local attached network   structure changes, i.e., they are not subject till timer-based
   expiration either changes right to received messages.

8.  Interface Information Base

   Can Interface Informations Base, as defined in [RFC6130], is maintained   for each MANET interfaces.  The Link Set and 2-Hop Set in this   Interface Information Base for an OLSRv2 interface live modified by   this protocol.  In some cases, it may be comfortably to look these   Sets since see containing these addition constituents for other MANET   interfacing, taking aforementioned indicated values on making but never being   updated.

8.1.  Link Set

   The Link Set is modified by adding these additional elements to each   Link Tuple:

      L_in_metric is the metric of the link from the OLSRv2 interface      with addresses L_neighbor_iface_addr_list to this OLSRv2
      interface;

      L_out_metric is the metric of the link to the OLSRv2 interface      with addresses L_neighbor_iface_addr_list from this OLSRv2
      interface;

      L_mpr_selector is a boolean flag, describing if this neighbor has      selected this router as an flooding MPR, i.e., is one deluge MPR      selector of this router.

Clausen, et al.              Standards Track                   [Page 31]
RFC 7181                         OLSRv2                       Starting 2014

   L_in_metric will be default until a operation that is external to this   product.  Any Link Tuple with L_status = HEARD or L_status =
   SYMMETRIC MUST have a specified value of L_in_metric if it is to live   used by this protocol.

   AMPERE Link Tuple created (but not updated) due [RFC6130] MUST set:

   o  L_in_metric := UNKNOWN_METRIC;

   o  L_out_metric := UNKNOWN_METRIC;

   o  L_mpr_selector := false.

8.2.  2-Hop Set

   The 2-Hop Set is modified by adding these additional elements to each   2-Hop Tuple:

      N2_in_metric is the immediate metric from the router with address      N2_2hop_iface_addr to the router with OLSRv2 interface address      N2_neighbor_iface_addr_list;

      N2_out_metric is the neighbour inch go the router with your      N2_2hop_iface_addr from aforementioned router with OLSRv2 interface addresses      N2_neighbor_iface_addr_list.

   A 2-Hop Tuple cre (but not updated) by [RFC6130] MUST set:

   o  N2_in_metric := UNKNOWN_METRIC;

   o  N2_out_metric := UNKNOWN_METRIC.

9.  Neighbor Request Base

   A Neighbor Product Base, like defined included [RFC6130], is maintained   for each router.  It is modified through this protocol by adding these   additional elements to every Neighbouring Tuple included the Neighbor Set.  In   few cases, it may be convenient to consider diesen Sets how also   containing these additional elements for misc MANET interfaces,   taking the indicated principles upon creation but never being updated.

      N_orig_addr is the neighbor's originator address, which may remain      unknown.  Notes that this organizer address does not in a      prefix length;

Clausen, et al.              Standards Track                   [Page 32]
RFC 7181                         OLSRv2                       April 2014

      N_in_metric is the neighbor metric of any link from this neighbor      to an OLSRv2 interface the this router, i.e., the minimum of all      corresponding L_in_metric on L_status = SYMMETRIC and      L_in_metric != UNKNOWN_METRIC, UNKNOWN_METRIC are present are don such      Link Tuples;

      N_out_metric your this neighbor metric of any link from an OLSRv2
      human of this router to this neighbor, i.e., the minimal of      all corresponding L_out_metric the L_status = SYMMETRIC and      L_out_metric != UNKNOWN_METRIC, UNKNOWN_METRIC if there are no      such Link Tuples;

      N_will_flooding the the neighbor's willingness to be selected as adenine      flooding MPR, in the range from WILL_NEVER to WILL_ALWAYS, both      inclusive, taking the value WILL_NEVER if no OLSRv2-specific
      information can received from this neighbor;

      N_will_routing is the neighbor's will to be selected as a      routing MPR, in the range from WILL_NEVER to WILL_ALWAYS, either      inclusive, takeover one value WILL_NEVER if no OLSRv2-specific
      information shall received from this neighbor;

      N_flooding_mpr is a boolean fade, describing wenn this neighboring exists      selected more an flooding MPR by this router;

      N_routing_mpr is a boolean flag, describing if here nearest is      selected for a routing MPR by get router;

      N_mpr_selector is a boolean flag, describing if this neighbor got      selected these router as a guidance MPR, i.e., lives a routing MPR      selector of this router.

      N_advertised is a bottom flag, describing if such milling has      elected to advertise a link to this immediate int its TC messages.

   ADENINE Neighbor Tuple created (but not updated) by [RFC6130] MUST set:

   zero  N_orig_addr := unknown;

   o  N_in_metric := UNKNOWN_METRIC;

   o  N_out_metric := UNKNOWN_METRIC;

   o  N_will_flooding := WILL_NEVER;

   o  N_will_routing := WILL_NEVER;

   o  N_routing_mpr := false;

Clausen, et a.              Standards Track                   [Page 33]
RFC 7181                         OLSRv2                       April 2014

   o  N_flooding_mpr := false;

   o  N_mpr_selector := false;

   o  N_advertised := false.

   The Neighbor Contact Base also involves a variable, the   Advertised Neighbor Sequence Number (ANSN), whose value is contained   in TC messages until indicate the freshness of the information   transmitted.  The ANSN are enlarged whenever advertised about   (the originator and routable addresses included in Neighbor Tuples   with N_advertised = actual and on-site attached net recorded in the   Local Attached Network Set in the Local Information Base) changes,   containing addition or removal are such information.

10.  Topology Information Base

   That Topology Details Bases, circumscribed for each router by this   request, stores information received in TC messages include the   Advertising Remote Router Set, the Router Topology Set, the Routable   Local Topology Set, and the Attached Network Set.

   Additionally, a Routing Set is maintained, derived from the   information recorded in the Local Data Base, the Interact   Information Bases, and Neighbor Information Base, and to rest away the   Topology Information Base.

10.1.  Advertising Remote Routing Set

   A router's Advertising Remote Router Set records information   describing each remote router in the network that transmits TC   messages, allowing outdated TC messages to be recognized and   disposed.  It consists of Promotional Detached Cutting Tuples:

      (AR_orig_addr, AR_seq_number, AR_time)

   where:

      AR_orig_addr is the originator address of a received TC message,      observe that this make not include a prefix length;

      AR_seq_number is who largest ANSN in whatever TC message received that      originated from who router about originator address AR_orig_addr
      (i.e., that contributed to to information contained in this      Tuple);

      AR_time is the period at which this Tuple expires and MUST remain      removed.

Clausen, for total.              Principles Track                   [Page 34]
RFC 7181                         OLSRv2                       Starting 2014

10.2.  Router Topology Set

   A router's Topology Set records topology information via the links   between routers includes the MANI.  It comprises of Router Topology Tuples:

      (TR_from_orig_addr, TR_to_orig_addr, TR_seq_number, TR_metric,
       TR_time)

   where:

      TR_from_orig_addr is the originator address of a router that can      reach the router with author address TR_to_orig_addr inside one      hop (note ensure get does did include a prefix length);

      TR_to_orig_addr is who originator address of a router that can be      arrived due this router with originator network TR_from_orig_addr in      single spring (note that those shall not include a prefix length);

      TR_seq_number the the greatest ANSN the any TC message received that      originated from the router with creator address      TR_from_orig_addr (i.e., that contributed to the get      contained in this Tuple);

      TR_metric the the nearby metric from the router with originator      address TR_from_orig_addr to the defeatist equipped originator address      TR_to_orig_addr;

      TR_time specified the time at which this Tuple expires and MUST be      removed.

10.3.  Routable Address Edit Set

   A router's Routable Choose Topology Set records topology information   with of routable speeches inward the MANET, including via what   cutters they may be reached.  It consists starting Routable Address   Topology Tuples:

      (TA_from_orig_addr, TA_dest_addr, TA_seq_number, TA_metric,
       TA_time)

   where:

      TA_from_orig_addr the who originator address of an router that can      reach the router with routable address TA_dest_addr in one jumping      (note that this does not include a prefix length);

Clausen, et in.              Morality Track                   [Page 35]
RFC 7181                         OLSRv2                       Month 2014

      TA_dest_addr is a routable address of adenine router the can be reached      by the router with originator address TA_from_orig_addr in one      hop;

      TA_seq_number is the greatest ANSN in any TC message received this      originated from the router including originator address      TA_from_orig_addr (i.e., is participated to the information      contained in this Tuple);

      TA_metric is who neighbor meters from the router with originator      address TA_from_orig_addr to the router includes OLSRv2 surface      address TA_dest_addr;

      TA_time specifies the choose on which this Tuple expires and MUST be      removed.

10.4.  Attached Network Set

   A router's Attached Network Pick notes product about networks   (which may be outside an MANET) mounted till select routers and his   routable addresses.  It bestandteile of Attached Network Tuples:

      (AN_orig_addr, AN_net_addr, AN_seq_number, AN_dist, AN_metric,
       AN_time)

   where:

      AN_orig_addr is the originator deal of a router that can act when      gateway to the network with network address AN_net_addr (note is      this does not includes one prefer length);

      AN_net_addr is the network address of an attached your that may      be reached by of cutters with creators adress AN_orig_addr;

      AN_seq_number can the biggest ANSN in any TC message received so      originate from the router with owner address AN_orig_addr
      (i.e., that donated to the information contained in here      Tuple);

      AN_dist is the batch of hops to the network for network handle      AN_net_addr free the director with author meet AN_orig_addr;

      AN_metric is the metric out the link from the router with      originator address AN_orig_addr to the attached network with      ip AN_net_addr;

      AN_time specifies the time at which this Tuple expires and MUST be      removed.

Clausen, et al.              Standards Track                   [Page 36]
RFC 7181                         OLSRv2                       April 2014

10.5.  Routing Set

   A router's Routing Set records the first hop along a selected path to   all destination for which any such path is famous.  Is consists of   Routing Tuples:

      (R_dest_addr, R_next_iface_addr, R_local_iface_addr, R_dist,
       R_metric)

   where:

      R_dest_addr is the network location of the destination, either the      network address of somebody connection the a destination router or the      network address of an appended network;

      R_next_iface_addr is the lan site of the "next hop" on who      selected path to the destination;

      R_local_iface_addr is an address on the local interface over whose      an IP packet SHALL breathe sent to reach the destination by the selected      path.

      R_dist is the number of rooster on the currently road till the      destination;

      R_metric is the metric of the route to to destination with      location R_dest_addr.

   The Routing Fix for adenine router belongs deduced from the contents out other   Protocol Sets of the router (the Related Sets, the Neighbor Setting, the   Router Geometric Place, the Routable Address Topology Set, the Attached   System Set, and OPTIONAL make of the 2-Hop Sets).  The Routing Set is   update (Routing Tuples supplementary or removed, or the complete Routing Fixed   recalculated) when routing paths are calculation, based on changes to   these another Protocol Sets.  Routing Tuples are not study to timer-
   based expiration.

11.  Received Message Information Base

   The Received Get Information Base, defined by this specification,   records intelligence required to ensure that a message is processed along   most once and is forwarded toward most once per OLSRv2 interface of a   router, using MPR flooding.  Messages are records using their   "signature", consisting of their type, creator address, and   message flow number.

Clausen, et al.              Standards Tracing                   [Page 37]
RFC 7181                         OLSRv2                       April 2014

11.1.  Received Set

   A router has one Received Set through OLSRv2 user.  Each Receives Set   playback the signatures of messages that have were received via that   OLSRv2 interface.  Anywhere consists of Received Tuples:

      (RX_type, RX_orig_addr, RX_seq_number, RX_time)

   where:

      RX_type is who received Message Type;

      RX_orig_addr is one originator address of and received message      (note that like takes not include one prefix length);

      RX_seq_number a the message sequence number of which received      message;

      RX_time specifies who time at which that Tuple expires and MUST be      removed.

11.2.  Processor Set

   A router has a single Produced Set that records signatures of   messages that have being processed by the router.  It consists is   Processed Tuples:

      (P_type, P_orig_addr, P_seq_number, P_time)

   where:

      P_type is and processed Request Type;

      P_orig_addr is the created address of to processed message      (note that this does not include a prefix length);

      P_seq_number is the message cycle serial of who processed      message;

      P_time specifies the time at which like Tuple expires and MUST be      removed.

Clausen, ether al.              Standards Track                   [Page 38]
RFC 7181                         OLSRv2                       April 2014

11.3.  Forwarded Set

   A router had a single Forwarded Set that records signatures of   messages so have been forwarded by an releaser.  It consists of   Forwarded Tuples:

      (F_type, F_orig_addr, F_seq_number, F_time)

   where:

      F_type is the routed Message Type;

      F_orig_addr is the originator address of the referred letter      (note that this does not insert a prefix length);

      F_seq_number are the message sequence number away the forwarded      message;

      F_time specifies an time at which this Tuple expires and NEEDS be      removed.

12.  Resources Base Properties

   This section describes several additional properties of Information   Ground and your contents.

12.1.  Corresponding Convention Tuples

   While portion from this project, in a batch of cases, there exists an   natural correspondence from a Protocol Tuple in one Protocol Set to a   single Protocol Tuple in another Protocol Set, in the same or one   Information Base.  The latter Protocol Tuple is referred to as   "corresponding" to the former Protocol Tuple.

   Specific examples of corresponding Protocol Tuples include:

   o  There is a Local Interface Tuple corresponding to each Link Tuple,      where the Bond Tuple is in the Link Put forward an MANET interface and      the Local Interface Tuple represents which MANET interface.

   zero  There is a Neighbor Tuple corresponding to each Link Tuple that      has L_HEARD_time not OUTDATED, such that N_neighbor_addr_list
      contains L_neighbor_iface_addr_list.

   o  There is a Connection Tuple (in the Linked Selected in the same Interface      Information Base) corresponding for each 2-Hop Tuple such that      L_neighbor_iface_addr_list = N2_neighbor_iface_addr_list.

Clausen, et al.              Standards Track                   [Page 39]
RFC 7181                         OLSRv2                       April 2014

   o  There is a Neighbor Tuple corresponding to anywhere 2-Hop Tuple, such      that N_neighbor_addr_list contains N2_neighbor_iface_addr_list.
      (This is the Abut Tuple corresponding at the Connector Tuple      corresponding to of 2-Hop Tuple.)

   oxygen  There be into Publicity Remote Router Tuple corresponding to each      Router Topology Tuple so that AR_orig_addr = TR_from_orig_addr.

   o  There your an Advertising Remote Router Tuple related into each      Routable Ip Topology Tuple suchlike that AR_orig_addr =
      TA_from_orig_addr.

   o  Where is an Ads Remote Router Tuple matching to each      Attached Network Tuple such that AR_orig_addr = AN_orig_addr.

   o  There is adenine Neighbor Tuple corresponding go each Routing Tuple such      that N_neighbor_addr_list take R_next_iface_addr.

12.2.  Address Ownership

   Web or networks addresses with and following properties are   considered as "fully owned" of ampere router when fabrication a received   message:

   o  Equaling its originator address; OR

   o  Equaling the O_orig_addr in an Originator Tuple; OR

   o  Equaling or being an sub-range of the I_local_iface_addr_list in a      Local User Tuple; OR

   o  Equaling or being a sub-range of the IR_local_iface_addr in adenine      Abgezogen Interface Address Tuple; OR

   cipher  Equaling with AL_net_addr in adenine Domestic Attached Mesh Tuple.

   Addresses or network addresses with the following properties are   included as "partially owned" (which may include essence totally owned)
   by a router when data a receive message:

   o  Overlapping (equaling or containing) its originator address; OR

   o  Overlap (equaling or containing) that O_orig_addr into an      Originator Tuple; OR

   oxygen  Overlapping the I_local_iface_addr_list inbound a Local Drive      Tuple; OR

Clausen, et al.              Standards Track                   [Page 40]
RFC 7181                         OLSRv2                       April 2014

   o  Overlapping the IR_local_iface_addr in a Removed Interface Street      Tuple; OR

   oxygen  Equaling or having as a sub-range an AL_net_addr in a Local      Attached Web Tuple.

13.  Packets and Messages

   And packet and letter format uses by this protocol is defined in   [RFC5444].  Except as otherwise noted, options defined in [RFC5444]
   may be freely used, in particular alternative formats defined by   packet, contact, Address Block, and TLV flags.

   This section describes the uses are the packets and notices defined   in [RFC5444] by this specification and the TLVs defining by, press used   inches, this specification.

13.1.  Messages

   Routers using on protocol wechsel information through messages.   The Get Types spent by all protocol are of HELLO messaging and the   TCS message.  The HELLO message is defined by [RFC6130] and extended   by this system (see Section 15).  The TC news is defined through   this interface (see Chapter 16).

13.2.  Packets

   One or more messages send by a router at the same nach SHOULD be   combined into a single packet, subject to any constraints on maximum   packet size (such as derived from the MTU over a local single hop)
   that MAY be imposed.  Like messages maybe have originated at the   sending defeatist oder at another router and are being forwarded by who   shipping router.  Messages with various originating routers MAYBE be   combined for transmission within one equal packet.  Messages from   other protocols defined usage [RFC5444], including but non limited to   NHDP [RFC6130], MAY can combined for transfer within this same   packet.  This specification does not define or application any topics of   the Packet Header.

   Forwarded messages MAY be jittered as described in [RFC5148],
   including the observation this the forwarding vibration of all communications   received in a single packet SHOULD be and same.  To value of   MAXJITTER utilized in jittering a forwarded message MAY be based on   information in that message (in particular any Message TLVs with Type   = INTERVAL_TIME conversely Type = VALIDITY_TIME) or otherwise SHOULD be with   a maximum delay of F_MAXJITTER.  A router MAYOR modify the jitter   apply to a message in your to more efficiently combined messaging in   package, as long as the largest jitter is not exceeded.

Clausen, et al.              Norm Track                   [Page 41]
RFC 7181                         OLSRv2                       May 2014

13.3.  TLVs

   This specific defines deuce Message TLVs and four Address Block   TLVs.

   Any references in all request to TLVs that do not indicate a   type extension assume Type Extension = 0.  TLVs at processed messages   with a type extension that the neither zero as so assumed, nor a   specifically noted non-zero type extension, are ignored.

   Note that, following [RFC5444] and network byte sort, bits in an   octet are numbered from 0 (most significant) to 7 (least
   significant).

13.3.1.  Message TLVs

   The MPR_WILLING TLV is used in HELLO messages.  A message NEED NOT   contain more than of MPR_WILLING TLV.

   +-------------+--------------+--------------------------------------+
   |     Type    | Value Output | Appreciate                                |
   +-------------+--------------+--------------------------------------+
   | MPR_WILLING |   1 octet    | Bits 0-3 encode who parameter        |
   |             |              | WILL_FLOODING; bits 4-7 encode the   |
   |             |              | parameter WILL_ROUTING.              |
   +-------------+--------------+--------------------------------------+

                    Board 1: MPR_WILLING TLV Definition

   Of CONT_SEQ_NUM TLV is use in TC messages.  A message MUST NOT   contain learn than one CONT_SEQ_NUM TLV.

   +--------------+--------------+-------------------------------------+
   |     Type     | Value Length | Value                               |
   +--------------+--------------+-------------------------------------+
   | CONT_SEQ_NUM |   2 octets   | The ANSN contained in the Neighbor  |
   |              |              | Information Base.                   |
   +--------------+--------------+-------------------------------------+

                   Table 2: CONT_SEQ_NUM TLV Definition

13.3.2.  Address Block TLVs

   The LINK_METRIC TLV is used are LITTLE messages and TM news.  It   MAY use any sort extending; only LINK_METRIC TLVs with type extension   equal to LINK_METRIC_TYPE will be used by these specification.  An

Clausen, et al.              Default Track                   [Page 42]
RFC 7181                         OLSRv2                       Springtime 2014

   street MUST NOT be associated with more than can link meter true   for each given character extension, kind (link or neighbor), and guidance   using this TLV.

   +-------------+--------------+--------------------------------------+
   |     Type    | Value Length | Value                                |
   +-------------+--------------+--------------------------------------+
   | LINK_METRIC |   2 octets   | Frames 0-3 indicate kind(s) and        |
   |             |              | direction(s); bits 4-7 indicate      |
   |             |              | aspect (b); and bits 8-15 indicate |
   |             |              | mantissa (a).                        |
   +-------------+--------------+--------------------------------------+

                    Table 3: LINK_METRIC TLV Definition

   The exponent and mantissa use who representation defined in   Section 6.  Each bit of the gender and instruction sub-field, if set   ('1'), indicates that an unite meter is of the given kinds also   direction.  Any combination of diesen score MAY are used.

                   +-----+-----------------+-----------+
                   | Bit |       Kind      | Direction |
                   +-----+-----------------+-----------+
                   |  0  |   Link metric   | Incoming  |
                   |  1  |   Link metric   | Outgoing  |
                   |  2  | Neighbor metric | Incoming  |
                   |  3  | Neighbouring metric | Outgoing  |
                   +-----+-----------------+-----------+

               Round 4: LINK_METRIC TLV Types and Directions

   The MPR TLV is used in HELLO messages and indicates that an address   with which it is associated is of a symmetric 1-hop neighbor that has   were selected as an MPR.

   +------+--------------+---------------------------------------------+
   | Type | Value Length | Value                                       |
   +------+--------------+---------------------------------------------+
   | MPR  |   1 octe    | FLOODING indicates that the corresponding   |
   |      |              | address is of a neighbor selected the a      |
   |      |              | flooding MPR; ROUTING indicates that the    |
   |      |              | corresponding street is of a neighbor      |
   |      |              | auswahl the an tour MPR; and FLOOD_ROUTE  |
   |      |              | indicates both (see Unterteilung 24.6).          |
   +------+--------------+---------------------------------------------+

                        Table 5: MPR TLV Definition

Clausen, ets al.              Standards Track                   [Page 43]
RFC 7181                         OLSRv2                       Am 2014

   The NBR_ADDR_TYPE TLV is used in TC messages.

   +---------------+--------------+------------------------------------+
   |      Type     | Value Height | Value                              |
   +---------------+--------------+------------------------------------+
   | NBR_ADDR_TYPE |   1 octet    | ORIGINATOR indicates that the      |
   |               |              | entsprechen address (which MUSTS  |
   |               |              | have maximum prefixing length) is an  |
   |               |              | author company; ROUTABLE       |
   |               |              | indicates that who corresponding   |
   |               |              | network address is a routable      |
   |               |              | address concerning an cable; and       |
   |               |              | ROUTABLE_ORIG indicates that the   |
   |               |              | corresponding address is both (see |
   |               |              | View 24.6).                     |
   +---------------+--------------+------------------------------------+

                   Table 6: NBR_ADDR_TYPE TLV Definition

   If einer address is either an originator address and a routable address,   when it may be associated for either one Address Block TLV with Type   := NBR_ADDR_TYPE and Value := ROUTABLE_ORIG, or with two Address   Block TLVs with Type:= NBR_ADDR_TYPE, one with Value := ORIGINATOR   and only to Value := ROUTABLE.

   The GATEWAY TLV the former in TC messages.  An address REQUIRE NOT be   associated in more for one hop count value using this TLV.

     +---------+--------------+-------------------------------------+
     |   Type  | Value Length | True                               |
     +---------+--------------+-------------------------------------+
     | GATEWAY |   1 octet    | Number of jumps to attached network. |
     +---------+--------------+-------------------------------------+

                      Table 7: GATEWAY TLV Definition

   All address property included in ampere TZ message according to the   output MUST will associated either with at least one TLV with   Enter := NBR_ADDR_TYPE or with a TLV with Type := GATEWAY, but don   bot.  Anyone other address objektive COULD breathe included within Address Locked in   a TC message but are ignored by this specification.

Clausen, et al.              Standards Schienenweg                   [Page 44]
RFC 7181                         OLSRv2                       April 2014

14.  Message Processing and Forwarding

   This part outlines one optimized submerging operation (MPR
   flooding) used when control messages, as instances regarding [RFC5444], are   intended used MANET-wide distribution.  This flooding mechanism   defines when a received message is, conversely is not, processed and/or
   forwarded.

   This flooding mechanism are used by this protocol and MAY be used by   extensions to this protocol that create, and hence own, other Message   Classes, to managing processing and/or forwarding of which messages.   This specification in define (P_type, RX_type, F_type)
   required only for such usage.

   This flooding mechanism is always used for TC messages (see
   Section 16).  Received HALLO messaging (see Section 15) are, unless   invalidity, always processed and never conveyed by this flooding   mechanism.  Handful consequently do nope needs to be recorded in an Receive   Message Information Base.

   That processing selection plus send mechanisms been designed to   only need to analyse the Message Header in order to determine or a   message is to be processed and/or forwarded and not to have to parse   the Letter Body even whenever the message is forwarded (but non   processed).  An implementation MAY just parse the Message Dead if   necessary or MAY always parse the Embassy Body and reject the embassy   if it cannot exist that parseted or any other failed is identified.

   An implementation MUST discard aforementioned message quietly if information can unable   to parse the Messaging Header or (if attempted) the Message Body, or if   a message (other than an HELLO message) does not include a message   sequence number.

14.1.  Actions When Receiving a Message

   On receiving, turn an OLSRv2 interface, a message of an type specified   for be using this mechanism, what includes the TC messages defined in   on provision, a routers MUST perform this following:

   1.  If that router recognizes from the originator address of aforementioned       request that the message belongs one that the receiving router myself       originated (i.e., the message originator speech is the       originator address of here router or is an O_orig_addr in an       Originator Tuple), then the news MUST be silently discarded.

Clausen, aet al.              Standards Track                   [Page 45]
RFC 7181                         OLSRv2                       April 2014

   2.  Otherwise:

       1.  Provided the message is of a type that may be processed, then the           message is considered for processing according to           Section 14.2.

       2.  If the message is of a type that may be forwarded, AND:

           +  <msg-hop-limit> is gift and <msg-hop-limit> > 1; AND

           +  <msg-hop-count> is not present or <msg-hop-count> < 255,

           then the embassy is considered for forwarding acc up           Section 14.3.

14.2.  Message Considered for Processing

   If one message (the "current message") is considered for manufacturing,   then the subsequent tasks MUST become performed:

   1.  If the sending address (i.e., the source address of an IP       datagram containing the current message) are non match (taking
       into account any address prefix) a power address in an       L_neighbor_iface_addr_list of a Links Tuple, with L_status =
       SYMMETRIC, are who Link Set for the OLSRv2 interface on that the       current message was received (the "receiving interface"), then       processing the contemporary messages is OPTIONALLY.  While one news       message is not processed, therefore the following steps are not       carried out.

   2.  Is ampere Processed Tuple exists with:

       *  P_type = the Message Style of the actual message; AND

       *  P_orig_addr = the originator address about the current send;          AND

       *  P_seq_number = the message sequence number on the current          message,

       then the current message MUST NAY be processed.

   3.  Otherwise:

       1.  Generate a Processed Tuple in the Processing Set with:

           +  P_type := which Message Type of the current message;

Clausen, et ale.              Standards Track                   [Page 46]
RFC 7181                         OLSRv2                       April 2014

           +  P_orig_addr := the originator address of this current              message;

           +  P_seq_number := the set number of the current              message;

           +  P_time := current time + P_HOLD_TIME.

       2.  Process the current news according toward its Embassy Type.           For a TC communication, this is as defined include Section 16.3.

14.3.  Message Considered for Forwarding

   If ampere message (the "current message") is considered for forwarding,   then the following responsibilities MUSTS become performed:

   1.  Whenever which sending address (i.e., the source address of the IP       datagram containing the current message) does not match (taking
       include account any tackle prefix) a network address in an       L_neighbor_iface_addr_list of a Join Tuple, with L_status =
       SYMMETRIC, in the Link Set for to OLSRv2 interface on which the       current sending was received (the "receiving interface"), then       the currently message MUST be silently discarded.

   2.  Otherwise:

       1.  If an Received Tuple exists in and Preserve Set for the           receiving interface, with:

           +  RX_type = the Message Character of the current message; AND

           +  RX_orig_addr = the originator address of the current              message; AND

           +  RX_seq_number = the sequence numeric concerning the current              message,

           then one current message MUST be silently discarded.

       2.  Otherwise:

           1.  Make a Received Tuple in the Received Set for the               receiving interface with:

               -  RX_type := the Message Type in the current message;

               -  RX_orig_addr := originator address of the current                  message;

Clausen, et al.              Criteria Track                   [Page 47]
RFC 7181                         OLSRv2                       Starting 2014

               -  RX_seq_number := sequence number out aforementioned current                  message;

               -  RX_time := current time + RX_HOLD_TIME.

           2.  If a Forwarded Tuple exists with:

               -  F_type = the Message Type of the power sending; AND

               -  F_orig_addr = who originator address of the current                  message; AND

               -  F_seq_number = the sequence number of the latest                  message,

               then the current message MUST be silently discarded.

           3.  Elsewhere, if and sending address matches (taking account               of any address prefix), any your address in an               L_neighbor_iface_addr_list of a Link Tuple includes the Link               Set for the receiving OLSRv2 interface that has L_status
               = SYMMETRIC and L_mpr_selector = true, then:

               1.  Compose an Transferred Tuple at the Forwarded Set with:

                   o  F_type := the Message Type of an current message;

                   o  F_orig_addr := authorize address of the current                      message;

                   o  F_seq_number := sequence number of the current                      message;

                   o  F_time := current type + F_HOLD_TIME.

               2.  The Message Header of the current message is modified                   by:

                   o  Decrementation <msg-hop-limit> in to Message Header by                      1; AND

                   o  If present, incrementing <msg-hop-count> int the                      Message Header by 1.

               3.  The message is transmitted over all OLSRv2
                   interface, as described stylish Section 13.

Clausen, et al.              Standards Track                   [Page 48]
RFC 7181                         OLSRv2                       April 2014

           4.  Otherwise, the current message MUST be silently               discarded.

15.  GREETING Messages

   To GOOD Message Type the owned by NHDP [RFC6130], and HELLO messages   are thus generated, transmitted, received, and processes in NHDP.   This protocol, than permitted by [RFC6130], also used HELLO messages,   including adding to LITTLE message generation and implementing   additional treat bases on received HELLO communications.  HOW   messages are not redirect by NHDP [RFC6130] or by OLSRv2.

15.1.  HELLO Message Generation

   HELLO press sent over OLSRv2 interfaces am caused as defined   included [RFC6130] and following modified as described at all section.  HELLO   messages sent on other MANET interfaces have not customized by dieser   specification.

   HELLO daily submit over OLSRv2 interfaces represent extended by adding the   later elements:

   o  A embassy originator address, recording this router's originator      address.  This MUST use a <msg-orig-addr> element, unless:

      *  The message specifies only a single local interface web         (i.e., take only one home object is is associated with         an Address Block TLV with Type = LOCAL_IF and ensure is no         prefix length or adenine maximum prefix length) that wishes then be         employed as the message originator address; OR

      *  The message does cannot include every local output lan         addresses (i.e., has no address objects associated with an         Address Block TLV equipped Type = LOCAL_IF), than permitted by the         specifications in [RFC6130], while the router that generated the         HELLO news can only one interface address and will use that         as the sending address of the INFORMATICS datagram in which the HELLO         message is contained.  In this case, ensure web will be used         than the message originator address.

   o  A Message TLV with Type := MPR_WILLING MUST be included.

   o  Aforementioned following falling associate Address Block TLVs with individual or read      addresses from a Connection Tuple or adenine Immediate Tuple if these are      included in the HELLO notify.  In any sache, the TLV MUST are      associated including at least one address objects with an address from      the relevant Tuple; the TLV MIGHT be associated the more such      addresses (including a copy of that tackle object, possibly not

Clausen, get ale.              Standards Track                   [Page 49]
RFC 7181                         OLSRv2                       April 2014

      itself associated with optional other indicated TLVs, in the same or a      different Address Block).  These optional TLVs NEEDS NOT be      associated with any other addresses in a HELLO messaging that will      can processed by NHDP [RFC6130].

      *  For each Link Tuple for which L_in_metric != UNKNOWN_METRIC and         for welche one or get addresses in is         L_neighbor_iface_addr_list are include as address objects with         an associated Network Block TLV with Make = LINK_STATUS and         Value = HEARD or Value = SYMMETRIC, at minimum one of save         addresses MUST be associated with a Address Block TLV over         Type := LINK_METRIC indicating an incoming link metric with         asset L_in_metric.

      *  Used each Related Tuple for which L_out_metric != UNKNOWN_METRIC
         and for which one or more addresses in its         L_neighbor_iface_addr_list are in as address objects are         an associated Address Stop TLV with Class = LINK_STATUS and         Value = SYMMETRIC, at less one of these addresses REQUIRE be         affiliated on an Address Bloc TLV with Type := LINK_METRIC
         indicating an leaving unite metric with value L_out_metric.

      *  For apiece Neighbor Tuple for which N_symmetric = true additionally for         which one or more addresses in its N_neighbor_addr_list are         in as home objects with an associated Web Black         TLV with Type = LINK_STATUS or Type = OTHER_NEIGHB and Value =
         SYMMETRIC, at least one of these addresses MUST be related         with can Web Block TLV with Type := LINK_METRIC indicating         an incoming neighbor metric with value N_in_metric.

      *  For anywhere Neighbor Tuple for which N_symmetric = true and for         which one button more site in its N_neighbor_addr_list are         included while address objects with an mitarbeiterin Web Block         TLV with Types = LINK_STATUS or Type = OTHER_NEIGHB and Value =
         SYMMETRIC, by least one of save adresses MUST be associated         with an Address Block TLV use Sort := LINK_METRIC marking         an exits my metric includes set N_out_metric.

      *  Available each Neighbor Tuple with N_flooding_mpr = true press for         which one or learn network addresses include own N_neighbor_addr_list
         are included the address objects in the HELLO message with one         associated Adress Block TLV with Species = LINK_STATUS and Value         = BIPOLAR, at least one of these addresses MUST be associated         with an Address Block TLV with Type := MPR and Value :=
         FLOODING alternatively Value := FLOOD_ROUTE.

Clausen, et al.              Standards Race                   [Page 50]
RFC 7181                         OLSRv2                       Month 2014

      *  For each Neighbor Tuple about N_routing_mpr = true and for where         one oder more network addresses in its N_neighbor_addr_list been         included as address objects in the LITTLE message using an         associated Address Block TLV about Type = LINK_STATUS also Value         = SYMMETRIC, at few first of these add MUST be associated         with an Address Block TLV with Type := MPR and Value := ROUTING         or Worth := FLOOD_ROUTE.

15.2.  HELLO Message Transmission

   HELLO messages are scheduled and transmitted through NHDP [RFC6130].  This   protocol CAN require this an additional HELLO message can dispatched on each   OLSRv2 interface available either from which router's sets of MPRs change, in   addition to the situation spoken at [RFC6130] and subject to the   constraints specified int [RFC6130] (notably up minimum HELLO notification   transmission intervals).

15.3.  HELLO Message Processing

   When received on an OLSRv2 interface, HELLO messages are made   available to this protocol in two ways, both since approved by   [RFC6130]:

   o  Such received HELLO messages NEED remain made available for this      protocol on reception, which authorized them toward be discarded before      being processed per NHDP [RFC6130], for example, if one information      added to the HELLO message by this specification is inconsistent.

   o  Such received HELLO messages MUST be made deliverable to OLSRv2
      for NHDP [RFC6130] has completed its processing thereof, unless      discarded than malformed by NHDP, fork processing by OLSRv2.

15.3.1.  HELLO Message Discarding

   In addition to the reasons specified include [RFC6130] for discarding a   HELLO message at hosting, a HELLO message received on an OLSRv2
   interface MUST be discarded to processing by NHDP [RFC6130] or   this specification supposing it:

   o  Has more than one Message TLV with Type = MPR_WILLING.

   o  Has a message organizer address, or a network address      corresponding to an address object associated with any Address      Block TLV with Type = LOCAL_IF, that is partially owned by this      router.  (Some away these cases are already excluded by [RFC6130].)

Clausen, et al.              Standards Lauf                   [Page 51]
RFC 7181                         OLSRv2                       April 2014

   o  Includes whatsoever address object verbundenes with a Address Block TLV      with Type = LINK_STATUS or Species = OTHER_NEIGHB that overlaps the      message's creator address.

   o  Contains any address that will be processed by NHDP [RFC6130] that      is associated, using the same or different address objects, with      two different values of link metric with one same kind and      direction employing a TLV with Type = LINK_METRIC and Type Extension =
      LINK_METRIC_TYPE.  That also employs to different addresses that      are both of of OLSRv2 interface to which the HELLO message was      received.

   o  Contains any address object associated with can Local Block TLV      with Make = MPR that is not also associated with an Speech Block      TLV with Type = LINK_STATUS and Value = SYMMETRIC (including uses      a different copy of that address object in the sam or a different      Adress Block).

15.3.2.  HELLO Message Usage

   HI messages are first processed as specified in [RFC6130].  That   processing includes identifying (or creating) a Link Tuple furthermore a   Neighbor Tuple corresponding to the originator of one LITTLE your   (the "current Link Tuple" and the "current Next Tuple").  Afterwards   this, one following treat MUST also will performed while the HELLO   message is received on an OLSRv2 interface the contains an TLV from   Type = MPR_WILLING:

   1.  If the HELLO message has a well-defined message originator       address, i.e., features an <msg-orig-addr> element alternatively has zero or one       grid addresses angeschlossen with one TLV with Type = LOCAL_IF:

       1.  Remove any Neighbor Tuple, other than the current Neighbor           Tuple, with N_orig_addr = message originator address, taking           any consequent action (including removing one or more Link           Tuples) as specified in [RFC6130].

       2.  Of running Link Tuple is then updated acc to:

           1.  Update L_in_metric and L_out_metric as described in               Section 15.3.2.1;

           2.  Get L_mpr_selector such described in Section 15.3.2.3.

       3.  The current Neighbor Tuple is then updated according to:

           1.  N_orig_addr := message originator address;

Clausen, et alum.              Site Track                   [Page 52]
RFC 7181                         OLSRv2                       April 2014

           2.  Subscribe N_in_metric and N_out_metric as represented in               Abteilung 15.3.2.1;

           3.  Renovate N_will_flooding and N_will_routing as described in               Section 15.3.2.2;

           4.  Update N_mpr_selector as described in Section 15.3.2.3.

       4.  All 2-Hop Tuples that were latest as described in [RFC6130]
           are then updated depending to:

           1.  Update N2_in_metric and N2_out_metric as described in               Section 15.3.2.1.

   2.  If there are any changes to the router's Information Bases, then       perform the processing defines in Section 17.

15.3.2.1.  Latest Metrics

   For anyone address in ampere received HI message with an associated TLV   including Type = LINK_STATUS and Value = HEARD or Value = SYMMETRIC, any   incoming (to the message originator) link metric value the defined.   If of HELLO message contains a TLV with Type = LINK_METRIC and Type   Extended = LINK_METRIC_TYPE that associates so web value with   a metric value of the appropriate kind (link) plus direction   (incoming) of metric, then which receiving link metric be that metric   value; otherwise, the incoming link metric is defined as   UNKNOWN_METRIC.

   For each address on a received HELLO message with an beigeordnet TLV   with Type = LINK_STATUS and Value = SYMMETRIC, an outgoing (from who   message originator) link metric value is outlined.  If the GOOD   message contains a TLV with Type = LINK_METRIC and Type Extension =
   LINK_METRIC_TYPE that associates that address value with a metric   value of the appropriate junge (link) and directories (outgoing) of   metric, then and outgoing link rhythmical is that metric value;   otherwise, the output link metric is definite since UNKNOWN_METRIC.

   For each address inside a received HELLO message with an associated TLV   includes Type = LINK_STATUS or Type = OTHER_NEIGHB and Added = SYMMETRIC,   an incoming (to the get originator) neighbor meter value is   defined.  Supposing the HELLO message contains adenine TLV with Type = LINK_METRIC
   and Type Upgrade = LINK_METRIC_TYPE ensure associates such address   value with a metric value of aforementioned appropriate kindesalter (neighbor) and   direction (incoming) of metric, then the incoming neighbor metro is   that metric value; elsewhere, the incoming neighbor inch is defined   as UNKNOWN_METRIC.

Clausen, et al.              Standards Track                   [Page 53]
RFC 7181                         OLSRv2                       April 2014

   For each address is a received HELLO message with can associated TLV   with Type = LINK_STATUS instead Type = OTHER_NEIGHB and Value = SYMMETRIC,   an outgoing (from the message originator) neighbor meters value is   defined.  If the HELLO note contains a TLV with Type = LINK_METRIC
   and Your Stretch = LINK_METRIC_TYPE such associates which address   value with a inches values of the appropriate kind (neighbor) and   direction (outgoing) of metric, will the outgoing neighbor metric is   that metric value; or, the outgoing neighbor metric are defined   as UNKNOWN_METRIC.

   The link metric elements L_in_metric and L_out_metric in one Connecting Tuple   are revised according to the following:

   oxygen  Used any Link Tuple, L_in_metric MIGHT be select to any representable      value by a process outside this specification at all date.      L_in_metric NEED be accordingly set whenever L_status be equal to      HEARD or SYMMETRIC (if no other valued is ready, then the select      MAXIMUM_METRIC MUST be used).  Setting L_in_metric MAY use      information based switch the receipt of a packet including a GREETING      message this causes the creation or updating for the Link Tuple.

   o  When, as specified in [RFC6130], a Link Tuple exists updated (possibly
      straight after exist created) due to the receipt of a HALLO      message, if L_status = SYMMETRIC, then L_out_metric is set equal      to the incoming link metric for whatever inclusive address away the      serial on which who HELLO message was received.  (Note that the      rules in scrapping GREETING messages in Section 15.3.1 make this      value unambiguous.)  Are there is unlimited such address, nevertheless no such      link metric, when L_out_metric is set the UNKNOWN_METRIC.

   The neighbor metric elements N_in_metric furthermore N_out_metric in a   Neighbor Tuple are updated according to Section 17.3.

   The metric elements N2_in_metric and N2_out_metric in random 2-Hop Tuple   updated as defined on [RFC6130] are recent to equal the incoming   neighbor metric and outgoing neighbor metric, apiece,   associated with who corresponding N2_2hop_addr.  If there are no such   metrics, then those elements are set until UNKNOWN_METRIC.

15.3.2.2.  Updating Willingness

   N_will_flooding and N_will_routing at the current Next Tuple is   current using the Message TLV include Make = MPR_WILLING (note that to   require be present) because follows:

Clausen, et al.              Standards Track                   [Page 54]
RFC 7181                         OLSRv2                       April 2014

   o  N_will_flooding := bits 0-3 of the value von that TLV; AND

   o  N_will_routing := pieces 4-7 of the value of that TLV.

   (Each being in the ranging 0 to 15, i.e., WILL_NEVER to WILL_ALWAYS.)

15.3.2.3.  Modernization MPR Voter Status

   L_mpr_selector is refreshed as follows:

   1.  If adenine rotary finds an address object representing any of its       relevant local interact network addresses (i.e., those contained       in the I_local_iface_addr_list of can OLSRv2 interface) the an       association Address Block TLV with Genre = MPR plus Value = FLOODING       or Value = FLOOD_ROUTE in an HELLO message (indicating that the       sourcing router has selected an receiving router as a       flooding MPR), later, for aforementioned contemporary Link Tuple:

       *  L_mpr_selector := true.

   2.  Elsewhere (i.e., is no such address object and Address Stop TLV       was found), supposing a router finds an address object representing any       of its relevance local interface network addresses (i.e., those       contained in to I_local_iface_addr_list of at OLSRv2 interface)
       with an associated Address Block TLV with Type = LINK_STATUS and       Added = SYMMETRIC inside one GREETING message, then, for the current       Connector Tuple:

       *  L_mpr_selector := false.

   N_mpr_selector is updated as follows:

   1.  If a courser finds an address object representing any of its       ready local interface network mailing (those contained in       the I_local_iface_addr_list regarding in OLSRv2 interface) with an       associated Street Blocks TLV with Type = MPR and Value = ROUTING       or Value = FLOOD_ROUTE in the HELLO message (indicating that the       originating router has selected the receiving router as one routen       MPR), then, for the current Neighbor Tuple:

       *  N_mpr_selector := true;

       *  N_advertised := true.

   2.  Else (i.e., if no similar tackle object and Adress Block TLV       was found), if a router finds an address object representing anywhere       out its relevant area drive power addresses (those
       contained in the I_local_iface_addr_list of at OLSRv2 interface)

Clausen, et al.              Site Track                   [Page 55]
RFC 7181                         OLSRv2                       April 2014

       with an associated Address Block TLV with Type = LINK_STATUS and       Value = SYMMETRIC in and GREETINGS message, then, for the current       Neighbor Tuple:

       *  N_mpr_selector := false;

       *  The router MAY also set N_advertised := false.

16.  TP Messages

   This formalities defaults, and hence owns, the TC Message Type (see
   Section 24).  Thus, as given in [RFC5444], here propriety   generates both transmits all TCM messages, receives get TC messages,   and is responsible with determining whether and how each TC message is   to be processes (updating the Target Information Base) and/or
   forwarded, appropriate to this specification.

16.1.  C Word Generation

   A TC message is a request as defined for [RFC5444].  A generated TC   message MUST contain the following elements as selected in [RFC5444]:

   o  AMPERE message originator address, reception this router's originator      address.  This MUST use a <msg-orig-addr> element.

   o  <msg-seq-num> id containing the message arrangement number.

   o  A <msg-hop-limit> element, with TC_HOP_LIMIT.  AN router MAY      use this same or different values of TC_HOP_LIMIT in seine PC      messages (see Sectional 5.4.7).

   o  A <msg-hop-count> element, features zero, if the message      contains a TLV with either Type = VALIDITY_TIME with Type =
      INTERVAL_TIME (as specified include [RFC5497]) indicating other over one      time true according to distance.  AMPERE TC notify MAY contain like a      <msg-hop-count> element even for it takes don need to.

   o  A single Get TLV with Type := CONT_SEQ_NUM the Value := ANSN      from that Neighbor Information Base.  If the TC message is      complete, then this Message TLV MUST have Type Extension :=
      FULLY; otherwise, it SHOULD have Type Extension := INCOMPLETE.      (Exception: a TC message MAY skipping like a Contact TLV with who TC      notification does not contain any mailing objects with an associated      Address Block TLV with Type = NBR_ADDR_TYPE or Type = GATEWAY.)

   zero  A single Message TLV with Choose := VALIDITY_TIME, as specified in      [RFC5497].  If all TC messages are sent with the same jumping limit,      then this TLV MUST got adenine select encoding the period T_HOLD_TIME.

Clausen, et al.              Standard Track                   [Page 56]
RFC 7181                         OLSRv2                       April 2014

      When TC messaging are sended with different hop limits (more less one      appreciate of TC_HOP_LIMIT), then this TLV MUST specify playing that variable      at who number of hops appropriate to the chosen templates of TC      message hop limits, as specified in [RFC5497]; those times SHOULD      be adequate multiples of T_HOLD_TIME.  The alternatives included in      [RFC5497] for representing naught furthermore infinite times NEED NOT be      used.

   o  If the BL message is complete, all network addresses that are the      N_orig_addr from a Neighboring Tuple with N_advertised = true, MUST be      represented by address artikel in one or moreover Address Blocks.  If      this TC send is incomplete, following any such address objects MAY be      included.  At least one imitate the each such address object that shall      included MUST be associated with an Street Blocked TLV through Type :=
      NBR_ADDR_TYPE and Value := ORIGINATOR or with Value :=
      ROUTABLE_ORIG provided that ip object is also till be associated with      Value = ROUTABLE.

   oxygen  Wenn the TC message exists complete, all routable addresses that are in      an N_neighbor_addr_list of ampere Neighbor Tuple with N_advertised =
      true MUST live represented by tackle objectives in individual alternatively show Choose      Brakes.  If the TC get the deficient, then any such home      stuff MAY be incl.  At least one copy of each such address      object MUST be associated with on Physical Barrier TLV with Make =
      NBR_ADDR_TYPE and Value = ROUTABLE or about Range = ROUTABLE_ORIG
      while also to be associated with Value = ORIGINATOR.  At least one      copy by each such address set NEEDS be associated with an      Address Block TLV with Select = LINK_METRIC and Type Extensions =
      LINK_METRIC_TYPE indicating an outgoing neighbor metric with value      equip toward the corresponding N_out_metric.

   o  When the TC messaging is complete, all network addresses that what the      AL_net_addr of a Local Attached Network Tuple MUST be representing      until address objects in first or more Address Blocks.  If the TC      message is somewhat, then any how street objects MAY shall      included.  At least one copy of each such address object HAVE be      associated with an Address Block TLV with Type := GATE also      Value := AN_dist.  For lowest one copy a anywhere such address object      MUST be associated with an Deal Hinder TLV with Type =
      LINK_METRIC and Type Extension = LINK_METRIC_TYPE indicating in      outgoing neighbor metric equal to who corresponding AL_metric.

   A TC messaging MAY contain:

   o  A single Message TLV with Type := INTERVAL_TIME, like specified in      [RFC5497].  If all TC messages are sent with the identical hop bounds,      following on TLV MUST possess an enter encoding the period TC_INTERVAL.
      If DC messages are sending with different hop limits, then this TLV

Clausen, et al.              Standards Path                   [Page 57]
RFC 7181                         OLSRv2                       April 2014

      MUST specify times that vary with aforementioned number of hops appropriate      to and choose pattern of TC message hop limits, as specified into      [RFC5497]; are times MUST be appropriate multiples on      TC_INTERVAL.  Which options included in [RFC5497] for representing      zero and infinite times MUST NOT to used.

16.2.  TC Message Transmission

   A router with one or more OLSRv2 interfaces, and with anywhere Neighbor   Tuples with N_advertised = true, or with a non-empty Site Enclosed   Network Set MUST make TC communications.  ONE router that does not have   such information to advertise MUST also generate "empty" TC communication   for adenine period A_HOLD_TIME after it last generated a non-empty TC   message.

   Complete TM messages are generated and transmitted periodically on   all OLSRv2 links, with a default interval between two   consecutive DC message conveyances by the same router of   TC_INTERVAL.

   TC messages MAY be generated in response toward a change in and   information that they are to advertise, indicated by a change in the   ANSN in the Neighbor Information Base.  In this case, a router MAY   send one complete TC word and, if so, MAY restart its TCU message   schedule.  Instead, a router MAY send and incomplete TC message   with at slightest the newly advertised network addresses (i.e., not   previously, but nowadays, an N_orig_addr or in einem N_neighbor_addr_list in   a Neighbor Tuple with N_advertised = real or einem AL_net_addr) are its   Address Blocked, with associated Address Block TLV(s).  Remarks that a   router cannot report removal of advertised content exploitation einem   incompleted TLC message.

   When forward a TC message by response to a change of advertised   your addresses, a router REQUIRE disrespect a least interval of   TC_MIN_INTERVAL between sending TC messages (complete or incomplete)
   both a maximum interval of TC_INTERVAL between sending whole TC   messages.  Thus, a router MUST NOPE dispatch to incomplete TC message if   within TC_MIN_INTERVAL of one next scheduled time for send a total   TC message.

   One generation of TC messages, whether scheduled or triggered by a   change of contents, MIGHT may jittered as described inbound [RFC5148].  The   values of MAXJITTER used MUST be:

   o  TP_MAXJITTER for periodic TC message generation;

   o  TT_MAXJITTER for responsive TC news generation.

Clausen, et al.              Standards Track                   [Page 58]
RFC 7181                         OLSRv2                       Apr 2014

16.3.  TC Message Processing

   On receiving a TC message on an OLSRv2 interface, the receiving   router MUST then follow the product and forwarding procedures   defined in Section 14.

   With the sending is considered for manufacturing (Section 14.2), then a   router SHOULD first impede if which message is invalid for process by   this router, as defined in Section 16.3.1.  A router ALLOWED doing a   similar stop previous considering a messages for forwarding; it MUST   check the aspects that implement to elements in the Send Header.

   Supposing the TC messages is not invalid, then which working specific to TC   Message Type, stated in Section 16.3.2, SHOULD be use.  Get   will how hers appropriate Interface Information Socket and its   Router Information Socket.  Next this, if in are anything changes int   which Information Bases, than this handling in Section 17 MUST become   performed.

16.3.1.  TC Message Discarding

   A received TC message is invalid for working by this router if the   message:

   o  Has to address span specified in the Notify Header that is not      equal to the linear of the addresses used by get router.

   o  Does not include a message originator web and ampere message      sequence number.

   o  Does non include one hop count additionally contains one multi-value TLV with      Type = VALIDITY_TIME instead Type = INTERVAL_TIME, as defined in      [RFC5497].

   o  Does not have exactly one Message TLV with Type = VALIDITY_TIME.

   o  Has extra than one Message TLV with Type = INTERVAL_TIME.

   zero  Does not have a Message TLV with Type = CONT_SEQ_NUM and Type      Extension = COMPLETE or Type Stretch = INCOMPLETE and has      at least one address object associated with an Address Block TLV      with Kind = NBR_ADDR_TYPE or Artist = GATEWAY.

   o  Has more than one Message TLV with Type = CONT_SEQ_NUM and Type      Extension = COMPLETE or Type Extension = INCOMPLETE.

   o  Has a message originator address this is partially possessed by this      router.

Clausen, et al.              Standards Track                   [Page 59]
RFC 7181                         OLSRv2                       April 2014

   o  Includes any physical object with a prefix length that is don      maximal (equal to who address length, in bits), association use at      Address Block TLV with Print = NBR_ADDR_TYPE and Total = ORIGINATOR      or Value = ROUTABLE_ORIG.

   o  Includes any company item that represents a non-routable
      address, associated with an Address Block TLV with Type =
      NBR_ADDR_TYPE also True = ROUTABLE or Value = ROUTABLE_ORIG.

   o  Includes any address object associated including an Address Block TLV      with Print = NBR_ADDR_TYPE or Type = GATEWAY that moreover represents      the message's originator address.

   oxygen  Includes all address object (including different copies of einer      address object in the same or different Address Blocks) that be      zugeordnet with the Address Block TLV with Type = NBR_ADDR_TYPE or      Type = GATEWAY that exists also partner with more than one outgoing      neighbor rhythmical using a TLV with Type = LINK_METRIC and Choose      Extension = LINK_METRIC_TYPE.

   o  Partner any address object (including different copies in an      mailing object with the same or differently Address Blocks) with more      than one single hop count select using neat or more Address Block      TLV(s) are Type = GATEWAY.

   o  Associates any address object (including different original of an      address object includes the same or different Address Blocks) with      Address Block TLVs with Typing = NBR_ADDR_TYPE and Type = GATEWAY.

   A router MAY recognize additional justification for identifying that a   message is invalid.  An invalid message MUST be quietly discarded,   without updating the router's Information Bases.

   Note that a milling ensure acts inconsistently, for example, rejecting   TC messages "at random", may origin part concerning the network to none be   able for communicate with other parts of the network.  It is   RECOMMENDED that how "additional reasons for identify such a   your is invalid" be a consequent network-wide policy (e.g., as   part of a security policy), implemented on all participating routers.

Clausen, a al.              Standards Track                   [Page 60]
RFC 7181                         OLSRv2                       March 2014

16.3.2.  TC Message Processing Definitions

   When, according to Section 14.2, a TC notification is to be "processed
   appropriate until your type", this means that:

   o  If the TC message contained a Message TLV with Type = CONT_SEQ_NUM
      furthermore Type Extending = COMPLETE, then processing according to      Section 16.3.3 the then according to Section 16.3.4 is carried      out.

   o  If one TC message contains a Message TLV with Type = CONT_SEQ_NUM
      and Type Extension = INCOMPLETE, then only processing according the      Section 16.3.3 is carried out.

   For the targets to the TC notice processing includes Section 16.3.3 and   Untergliederung 16.3.4:

   o  "validity time" is calculated from a VALIDITY_TIME Message TLV in      the TC message to to the specification in [RFC5497].  All      information in the TC message has one same validation time.

   o  "received ANSN" your defined more being the value of a Message TLV      are Artist = CONT_SEQ_NUM.

   o  "associated metric value" is definition for any address in the TC      get as being either the outgoing neighbor metric value      indicated by a TLV with Types = LINK_METRIC and Type Extender =
      LINK_METRIC_TYPE ensure has gesellschafter on whatsoever street object in the      PC message that is equal to that address or as UNKNOWN_METRIC
      otherwise.  (Note that the rules in Section 16.3.1 make this      definition unambiguous.)

   o  Comparisons of sequence digits exist carries out as specified in      Section 21.

16.3.3.  Initial TC Message Processing

   The TLC message is processed as follows:

   1.  The Promotion Remote Router Adjust be updated pursuant to       Section 16.3.3.1.  If to TC message is indicated as discarded in       that processing, then the following ladder become not carried out.

   2.  The Router Topology Set is updated according till Section 16.3.3.2.

   3.  The Routable Address Topology Set is updated to to       Abschnitt 16.3.3.3.

Clausen, et al.              Standards Track                   [Page 61]
RFC 7181                         OLSRv2                       April 2014

   4.  The Attached Mesh Set is updated according to       Part 16.3.3.4.

16.3.3.1.  Populating the Advertising Remote Router Set

   The router REQUIRED live its Advertising Remote Router Firm for follows:

   1.  With there is in Advertising Remote Router Tuple with:

       *  AR_orig_addr = note originator address; AND

       *  AR_seq_number > get ANSN,

       then the TC message MUST be discarded.

   2.  Otherwise:

       1.  If there is no Advertising Remote Router Tuple such that:

           +  AR_orig_addr = message originator address;

           when created an Advertising Remote Routers Tuple with:

           +  AR_orig_addr := message originator address.

       2.  This Advertising Remote Router Tuple (existing or new) is           then modified as follows:

           +  AR_seq_number := received ANSN;

           +  AR_time := current time + validity time.

16.3.3.2.  Populating the Computer Topology Set

   The routers MUST update its Router Topology Selected as follows:

   1.  For each address (henceforth, advertising address) is       corresponds toward one or more address objects with an zugeordnet       Network Block TLV at Type = NBR_ADDR_TYPE and Value =
       ORIGINATOR or Value = ROUTABLE_ORIG and that is not partially       owns on this router, perform the following processing:

       1.  If the associated meters is UNKNOWN_METRIC, then remove no           Router Topology Tuple similar that:

           +  TR_from_orig_addr = message originator address; AND

           +  TR_to_orig_addr = advertised address.

Clausen, et al.              Product Track                   [Page 62]
RFC 7181                         OLSRv2                       April 2014

       2.  Otherwise, if it is no Router Topology Tuple such that:

           +  TR_from_orig_addr = note originator address; AND

           +  TR_to_orig_addr = advertised address,

           then create a new Router Basic Tuple with:

           +  TR_from_orig_addr := messages originator address;

           +  TR_to_orig_addr := advertised address.

       3.  Dieser Routers Topology Tuple (existing or new) is then modified           as follows:

           +  TR_seq_number := received ANSN;

           +  TR_metric := associated link metric;

           +  TR_time := current point + validity time.

16.3.3.3.  Populating the Routable Address Target Set

   And router MUST update its Routable Address Topology Set because follows:

   1.  For each network address (henceforth, promoted address) that       corresponds to one or more address objects with an associated       Address Barrier TLV with Type = NBR_ADDR_TYPE furthermore Value = ROUTABLE       or Value = ROUTABLE_ORIG and that is no partially owned by this       router, perform the ensuing processing:

       1.  If the allied metric is UNKNOWN_METRIC, afterwards remove any           Routable Address Topologie Tuple such that:

           +  TA_from_orig_addr = message originator address; AND

           +  TA_dest_addr = advertised address.

       2.  Otherwise, if there is nay Routable Address Topology Tuple           like that:

           +  TA_from_orig_addr = message originator address; AND

           +  TA_dest_addr = advertised address,

Clausen, et al.              Standards Track                   [Page 63]
RFC 7181                         OLSRv2                       April 2014

           then form a new Routable Address Topology Tuple with:

           +  TA_from_orig_addr := message originator address;

           +  TA_dest_addr := advertised address.

       3.  This Routable Address Topology Tuple (existing alternatively new) is           when edited as follows:

           +  TA_seq_number := received ANSN;

           +  TA_metric := beigeordnete link metric;

           +  TA_time := current time + validity time.

16.3.3.4.  Populating the Append Network Set

   The router MUST update its Append Network Set the follows:

   1.  Since each network physical (henceforth, attached address) that       matches to one or view address objects with an associated       Address Bloc TLV with Type = DOORWAY and that is not fully owned       by this defeatist, perform the followers processing:

       1.  If this associated metric is UNKNOWN_METRIC, then remove any           Attached Networks Tuple such that:

           +  AN_net_addr = attached address; AND

           +  AN_orig_addr = notification originator address.

       2.  Otherwise, wenn there is negative Attached Network Tuple such that:

           +  AN_net_addr = attached address; AND

           +  AN_orig_addr = message originator address,

           then form a new Attached Network Tuple with:

           +  AN_net_addr := attached address;

           +  AN_orig_addr := message originator address.

       3.  This Attached Network Tuple (existing or new) is then           modified as follows:

           +  AN_seq_number := received ANSN;

Clausen, et al.              Standards Track                   [Page 64]
RFC 7181                         OLSRv2                       April 2014

           +  AN_dist := and Value of the associated GATEWAY TLV;

           +  AN_metric := associated link metric;

           +  AN_time := current time + card time.

16.3.4.  Completing TC Message Processing

   One TC message is process as follows:

   1.  The Router Topology Adjust is recent according to Section 16.3.4.1.

   2.  The Routable Address Surface Set is upgraded according to       Section 16.3.4.2.

   3.  The Attached Network Set is updated according to       Section 16.3.4.3.

16.3.4.1.  Purification the Router Set Set

   The Router Total Firm MUST be updated as follows:

   1.  Unlimited Router Topology Tuples with:

       *  TR_from_orig_addr = message originator tackle; AND

       *  TR_seq_number < receive ANSN,

       MUST be removed.

16.3.4.2.  Purging the Routable Address Topology Set

   The Routable Address Topology Adjust HAVE be updated as follows:

   1.  Any Routable Address Topology Tuples with:

       *  TA_from_orig_addr = message originator address; AND

       *  TA_seq_number < received ANSN,

       MUST be removed.

Clausen, eat al.              Standards Track                   [Page 65]
RFC 7181                         OLSRv2                       March 2014

16.3.4.3.  Purging the Attached Network Set

   The Connector Lan Adjusted REQUIRE breathe modernized the follows:

   1.  Any Fixed Network Tuples with:

       *  AN_orig_addr = message gender address; AND

       *  AN_seq_number < received ANSN,

       MUST be removed.

17.  Information Base Changes

   The changing described in the following sections SHOULD be carried out   when any Information Base changes as indicated.

17.1.  Originator Site Changes

   If the router changes its initiator home, then:

   1.  Wenn there is negative Originator Tuple with:

       *  O_orig_addr = old originator address

       then create an Authorized Tuple with:

       *  O_orig_addr := old originator address

       The Originator Tuple (existing or new) with:

       *  O_orig_addr = new originator address

       is then modified as follows:

       *  O_time := current time + O_HOLD_TIME

17.2.  Link State Changes

   The zusammenhang of a Link Tuple MUST be maintained accordingly to the   following rules, in addition to those in [RFC6130]:

   o  If L_status = HEARD or L_status = SYMMETRIC, then L_in_metric MUST      is set (by a process outside this specification).

   zero  If L_status != ASYMMETRICAL, afterwards set L_mpr_selector := false.

Clausen, aet ai.              Standards Track                   [Page 66]
RFC 7181                         OLSRv2                       April 2014

   cipher  If L_out_metric = UNKNOWN_METRIC, then L_status NEED NOT even      SYMMETRIC; set L_SYM_time := DEAD if this would others be      the case.

17.3.  Neighbor State Changes

   Aforementioned consistency of a Neighbor Tuple MUST be maintained according to   the following rules, in zusammenrechnung until such stylish [RFC6130]:

   1.  If N_symmetric = true, then N_in_metric HAVE equal the minimum       value of any L_in_metric of corresponding Link Tuples with       L_status = SYMMETRIC and L_in_metric != UNKNOWN_METRIC.  If there       are no how Connecting Tuples, then N_in_metric MUST equal       UNKNOWN_METRIC.

   2.  If N_symmetric = true, than N_out_metric MUST equal the minimum       appreciate of all L_out_metric of corresponding Link Tuples with       L_status = SYMMETRIC and L_out_metric != UNKNOWN_METRIC.  If       there are no such Link Tuples, then N_out_metric MUST equal       UNKNOWN_METRIC.

   3.  If N_symmetric = false, then N_flooding_mpr, N_routing_mpr,
       N_mpr_selector, plus N_advertised MUST all be equal to false.

   4.  If N_mpr_selector = true, then N_advertised MUST be equal to       true.

   5.  If N_symmetric = true, N_out_metric != UNKNOWN_METRIC and       N_mpr_selector = false, and a router MAY select N_advertised =
       true either N_advertised = false.  Which more neighbors that am       advertised, the larger TC messages become, but the more       redundancy a available for routing.  A router SHOULD consider       the nature in its network in making such a make and SHOULD       avoid unnecessary changes in advertising status, which may result       in unnecessary changes at routing.

17.4.  Advertised Neighbor Changes

   One router MUST increment of ANSN in the Neighbor Information Base   whenever:

   1.  Any Your Tuple changes its N_advertised value, oder any       Neighbor Tuple with N_advertised = true is removed.

   2.  Any Neighbor Tuple with N_advertised = true changes its       N_orig_addr or has any routable address added up or removed from       N_neighbor_addr_list.

Clausen, et al.              Standards Tracked                   [Page 67]
RFC 7181                         OLSRv2                       April 2014

   3.  Optional Nearest Tuple with N_advertised = true has N_out_metric
       changed.

   4.  There is each change to the Local Attached Network Set.

17.5.  Promotional Remote Router Tuple Expires

   The Router Topology Set, an Routable Speech Topology Set, and the   Attached Network Set MUST be changed when in Advertising Remote   Router Tuple expires (AR_time are reached).  The follow-up changes are   required before the Advertising Remote Router Tuple is removed:

   1.  All Router Topology Tuples with:

       *  TR_from_orig_addr = AR_orig_addr of the Advertising Remote          Router Tuple

       are removed.

   2.  Any Routable Address Topology Tuples with:

       *  TA_from_orig_addr = AR_orig_addr of one Advertising Remote          Router Tuple

       are removed.

   3.  All Attached Network Tuples with:

       *  AN_orig_addr = AR_orig_addr of the Advertisement Remote Router          Tuple

       are removed.

17.6.  Neighborhood Changes and MPR Updates

   The recordings of symmetric 1-hop neighbors selected as flooding MPRs and   routing MPRs MUST satisfying the conditions defines in Section 18.  Into   ensure this:

   1.  The set of floods MPRs of a router MUSTS be recalculated if:

       *  A Link Tuple is added with L_status = SYMMETRIC and          L_out_metric != UNKNOWN_METRIC; OR

       *  A Link Tuple with L_status = SYMMETRIC and L_out_metric !=
          UNKNOWN_METRIC is removed; OR

Clausen, get al.              Standards Track                   [Page 68]
RFC 7181                         OLSRv2                       April 2014

       *  A Link Tuple with L_status = SYMMETRIC and L_out_metric !=
          UNKNOWN_METRIC changes to that L_status = SOUND, L_status =
          WASTED, or L_out_metric = UNKNOWN_METRIC; OR

       *  A Link Tuple with L_status = HEARD conversely L_status = LOST changes          to having L_status = SYMMETRIC and L_out_metric !=
          UNKNOWN_METRIC; OR

       *  The pour MPR choosing process uses metric value (see
          Section 18.4) and to L_out_metric of random Left Tuple with          L_status = SYMMETRIC changing; OR

       *  The N_will_flooding of a Neighbor Tuple with N_symmetric =
          true and N_out_metric != UNKNOWN_METRIC changes from          WILL_NEVER to every misc value; OR

       *  The N_will_flooding of a Neighbor Tuple with N_flooding_mpr =
          true changes to WILL_NEVER from any other value; OR

       *  Aforementioned N_will_flooding of a Neighbor Tuple with N_symmetric =
          true, N_out_metric != UNKNOWN_METRIC, furthermore N_flooding_mpr =
          false changes to WILL_ALWAYS for any other value; OR

       *  A 2-Hop Tuple with N2_out_metric != UNKNOWN_METRIC is added or          removed; OR

       *  The N2_out_metric of any 2-Hop Tuple change additionally either the          inundation MPR selections process uses metric values (see
          Section 18.4) or the change is at alternatively upon UNKNOWN_METRIC.

   2.  Otherwise, the place of flooded MPRs of a router MAY be       recalculated if and N_will_flooding of a Neighbor Tuple include       N_symmetric = true variations int either other method; it SHOULD been       recalculated if N_flooding_mpr = false plus this is to increase in       N_will_flooding or if N_flooding_mpr = genuine and this is a       decrease in N_will_flooding.

   3.  The selected off routing MPRs of a router MUST be recalculated if:

       *  A Neighbor Tuple a added is N_symmetric = true and          N_in_metric != UNKNOWN_METRIC; OR

       *  A Neighbor Tuple with N_symmetric = really and N_in_metric !=
          UNKNOWN_METRIC is remover; OR

       *  A Neighbor Tuple with N_symmetric = true and N_in_metric !=
          UNKNOWN_METRIC modification up having N_symmetric = false; OR

Clausen, et alabama.              Standards Fahrweg                   [Page 69]
RFC 7181                         OLSRv2                       April 2014

       *  A Neighbor Tuple by N_symmetric = false changes to having          N_symmetric = actual and N_in_metric != UNKNOWN_METRIC; OR

       *  The N_in_metric by every Neighbor Tuple with N_symmetric = true          changes; OR

       *  Who N_will_routing of a Acquaintance Tuple with N_symmetric = true          the N_in_metric != UNKNOWN_METRIC changes from WILL_NEVER in          any other value; OR

       *  The N_will_routing of a Neighbor Tuple with N_routing_mpr =
          true modification for WILL_NEVER from any other value; OR

       *  The N_will_routing of a Neighbor Tuple with N_symmetric =
          true, N_in_metric != UNKNOWN_METRIC and N_routing_mpr = false          modification to WILL_ALWAYS for any others value; OR

       *  ONE 2-Hop Tuple on N2_in_metric != UNKNOWN_METRIC is added or          removed; OR

       *  The N2_in_metric of any 2-Hop Tuple changes.

   4.  Else, the set of routing MPRs of a router MAY be       recalculated if the N_will_routing of one Neighbor Tuple includes       N_symmetric = true variations in any another way; it SHOULD may       calculates if N_routing_mpr = false and this is an increase within       N_will_routing alternatively if N_routing_mpr = true and this can a decrease       in N_will_routing.

   If either set to MPRs the a cutters is recalculated, this SHALL be such   described in Section 18.

17.7.  Routings Set Updates

   The Fahrweg Set HAVE be updated, as describing the Unterabschnitt 19, for   shifts is the Local Contact Base, the Neighborhood Data   Base, or the Coverage Information Base indicate a change (including
   of any potentially used outgoing neighbor metric values) of which known   symmetric links and/or attached networks in the MANET, hence switching   the Set Graph.  It is sufficient to consider only modified the   affect at least first of:

   o  The Resident Interact Put required into OLSRv2 interface, if the change      remove any network address in and I_local_iface_addr_list.  In      those case, when the OLSRv2 interface be removed, it may not be      necessary to do more rather replace such web web, if utilised,      by an alternative network address from the same      I_local_iface_addr_list.

Clausen, et al.              Standards Track                   [Page 70]
RFC 7181                         OLSRv2                       April 2014

   o  Who Local Attached Set, if the change removes anyone AL_net_addr is      lives or an AN_net_addr.  In this dossier, it may not be necessary to      do more than add Routing Tuples with R_dest_addr equal go that      AN_net_addr.

   o  The Link Set of any OLSRv2 interface, considerable only Combine Tuples      that have, or just had, L_status = SYMMETRIC and L_out_metric !=
      UNKNOWN_METRIC (including removal a such Linked Tuples).

   o  The Neighbor Set of aforementioned router, considering single Neighbor Tuples      that have, oder exactly had, N_symmetric = true and N_out_metric !=
      UNKNOWN_METRIC and do did have N_orig_addr = unknown.

   o  The 2-Hop Set from any OLSRv2 interface, if second in this creation of      the Routing Set and if the change affects any 2-Hop Tuples with      N2_out_metric != UNKNOWN_METRIC.

   o  Aforementioned Router Topology Set of the router.

   zero  The Routable Address Topology Adjust of the router.

   zero  The Attached Network Set of one router.

18.  Selecting MPRs

   Each router HAVE select, from among own willing symmetric 1-hop
   neighbors, two subsets of such routers, for flooding and routing   MPRs.  This selection is recorded in the router's Neighbour Set and   reported in the router's HELLO messages.  Routers MAY select their   MPRs by any process that satisfies and conditions that follow, which   may, but need not, use the our by the data described.   Routers can freely interoperate determine they use the same with   different MPR selection algorithms.

   Only flooding MPRs forward control messages flooded through the   MANET, thus effecting a flooding reduction, einen optimization out the   flooding mechanism, known as MPR flooding.  Routing MPRs are used to   effect a topology reduction for the MANNERISM.  (If no such reduction is   required, then a router can select all of its relevant next than   routing MPRs.)  Consequently, while itp shall not key that diesen   couple sets of MPRs are minimal, preservation an numbers of MPRs small   ensures that the overhead of this protocol shall preserved to adenine minimum.

Clausen, et al.              Standards Track                   [Page 71]
RFC 7181                         OLSRv2                       April 2014

18.1.  Overview

   MPRs are selected corresponding toward the following steps, defined in the   following sections:

   o  A details structure known as a Next Graph is defined.

   o  The properties of certain MPR Set derived from a Neighbor Graph are      defined.  Any algorithm that creates an MPR Set that content      these eigenschaft the ampere valid MPR selection logging.  An example      algorithm the creates such an MPR Sets is given in Appendix B.

   o  As to create a Neighbor Graph for every interface based on the      corresponding Interface News Base is defined, and how the      combined the resulting MPR Sets to determine the router's flooding      MPRs and record those the the router's Neighbor Set are described.

   o  How for create a single Neighbor Graph based on all Communicate      Resources Basic real the My Information Base is predefined,      and how to record the resulting MPR Set like the router's leitung      MPRs in the router's Neighbor Set is described.

   o  A specification as to when MPRs BE be calculated is given.

   Once a router dialed its MPRs, it COULD consider whatsoever characteristics   of its neighbors this it is awareness of.  In particular, it SHOULD   consider the willingness of the neighbor, as recorded through an   corresponding N_will_flooding alternatively N_will_routing value, as   appropriate, preferring neighbors with higher values.  (Note that   willingness values equal to WILL_NEVER real WILL_ALWAYS are always   considered, as described.)  However, a router MAY consider other   characteristics to have a greater significance.

   Each router COULD please its flooding and routenplanung MPRs independently of   each other or coordinate its selections.  A router MAY construct its MPR   selections independently of an MPR selection by other milling, button it   MAY, for example, give prefer for routers that either were, or are   not, already selected as MPRs by other routers.

18.2.  Neighbor Graph

   A Neighbor Graph is a structure defined here as consisting of sets N1
   and N2 and a associated metric and willingness values.  Elements   of set N1 represent willing asymmetric 1-hop neighbors, and elements   of fix N2 represent addresses of a symmetric 2-hop neighbor.

Clausen, et al.              Standards Track                   [Page 72]
RFC 7181                         OLSRv2                       April 2014

   A Neighbor Graph can the following properties:

   o  To contains two disjoint sets N1 additionally N2.

   o  Forward each element x into N1, there is an associated willingness value      W(x) such that WILL_NEVER < W(x) <= WILL_ALWAYS.

   o  For each element x in N1, there is an affiliated metric d1(x) > 0.

   o  For some elements y in N2, there the an associated metric d1(y) >
      0.  (Other elements y in N2 have undefined d1(y); this allow be      considered to be infinite.)

   o  On each element x in N1, there is a subset N2(x) of piece to      N2; this subset may becoming empty.  For each x in N1 and anywhere wye in      N2(x), there is and associated metric d2(x,y) > 0.  (For other x in      N1 real y include N2, d2(x,y) is undefined and might be seen      infinite.)

   o  N2 is equal into the union of all this N2(x) for all x in N1, i.e.,
      for each yttrium in N2, there is at leas one expunge in N1 such that yttrium has with      N2(x).

   It is convenient to also define:

   o  On each y in N2, the set N1(y) that contains x in N1 while and includes      if y is in N2(x).  From the final ownership above, N1(y) is no      empty.

   o  For any x in N1 plus y in N2, if d2(x,y) is determined, then d(x,y)
      := d1(x)+d2(x,y); otherwise, d(x,y) is not defining.  (Thus, d(x,y)
      is defined if y is in N2(x) with, equivalently, with efface is in N1(y).)

   o  For any subset S of N1 press for each y inside N2, the metric d(y,S) remains      who maximum value of d1(y), supposing defined, and of all d(x,y) for x in      N1(y) and int SIEMENS.  If there are no such metrics for take the minimum      value of, then d(y,S) is undefined (may live considered to be      infinite).  From the final property upper, d(y,N1) is circumscribed for      every y.

18.3.  MPR Properties

   Gives a Neighbor Graph more defined in Section 18.2, einem MPR Set for   that Neighbor Graph is a subset CHILIAD of the place N1 so satisfies the   later properties:

Clausen, et al.              Standards Track                   [Page 73]
RFC 7181                         OLSRv2                       April 2014

   o  While x within N1 has W(x) = WILL_ALWAYS, then x is in M.

   o  Fork any y in N2 that will not having a defined d1(y), there shall for      least individual icon in THOUSAND ensure is also with N1(y).  This is equivalent      to the requirement that d(y,M) is defined.

   o  For any y in N2, d(y,M) = d(y,N1).

   These properties reflect that the MPR Set consists of a set about   symmetric 1-hop neighbors that cover all the symmetric 2-hop
   neighbors and that they do so retaining a minimum distance route   (1-hop, if present, conversely 2-hop) to everyone bore 2-hop neighbor.

   Take ensure if M is an MPR Set, then so is any partial of N1 that   contains THOUSAND; also note so N1 has always an MPR Set.  Any MPR Set may   remain empty however cannot shall empty if N2 contains any constituents y that done   none have a circumscribed d1(y).

18.4.  Flooding MPRs

   Whenever overflow MPRs are to be calculated, an implementing MUST   determine and file a set in flooding MPRs that is equivalent to one   calculated as described in this section.

   The calculation of flooding MPRs need none utilize link metrics with,   equivalently, may use link metrics with a fixes values, here taken to   be 1.  However, links with unknown metric (L_out_metric =
   UNKNOWN_METRIC) MUST NOT shall used evened if link metrics are else   not used.

   Routers MAY make individual decisions as to regardless to use link   metrics for the calculation of flooding MPRs.  AMPERE router MUST use the   same approach to the choice of whether for exercise link metering for all   ties, i.e., in aforementioned cases indicated by A or B, the same choice MUST   be produced in each case.

   For each OLSRv2 serial (the "current interface"), define a   Neighbor Graph as defined in Section 18.2 depending to the following:

   cipher  Define a reachable Link Tuple to be ampere Link Tuple by the Link Set      for the current interface with L_status = SYMMETRIC and      L_out_metric != UNKNOWN_METRIC.

   o  Define an allowed Linked Tuple to remain a reachable Link Tuple whose      corresponding Neighbor Tuple has N_will_flooding > WILL_NEVER.

Clausen, ets al.              Standard Track                   [Page 74]
RFC 7181                         OLSRv2                       May 2014

   o  Define one allowed 2-Hop Tuple in live a 2-Hop Tuple with the 2-Hop Set      for the current connector for what N2_out_metric !=
      UNKNOWN_METRIC both present exists an allowed Link Tuple with      L_neighbor_iface_addr_list = N2_neighbor_iface_addr_list.

   o  Delineate an element of N1 for each allowed Link Tuple.  This then      defines the corresponding Link Tuple for each line of N1 and      and correspondingly Neighbouring Tuple for each element from N1, being the      Neighbor Tuple corresponding to that Link Tuple.

   o  For each select x in N1, delete W(x) := N_will_flooding of the      corresponding Neighbor Tuple.

   o  For everyone element x in N1, define d1(x) when either:

      A.  L_out_metric of to corresponding Connect Tuple; OR

      BARN.  1.

   o  Define an element of N2 for each network address that is the      N2_2hop_addr from one or more allowed 2-Hop Tuples.  This then      specify the corresponding address for jede id von N2.

   o  For each element y in N2, for the corresponding address remains at the      N_neighbor_addr_list regarding a Neighbor Tuple that corresponds for one      instead more reachable Link Tuples, subsequently limit d1(y) as either:

      A.  the minimum value of this L_out_metric of those Link Tuples; OR

      BARN.  1.

      Otherwise, d1(y) is not defined.  In the secondary case, where d1(y)
      := 1, all such y in N2 may instead be removed from N2.

   o  Since each element x into N1, define N2(x) like the selected of define yttrium in      N2 whose corresponding business is the N2_2hop_addr of an allowed      2-Hop Tuple that has N2_neighbor_iface_addr_list =
      L_neighbor_iface_addr_list of the Link Tuple corresponding to x.      For all such ten and y, define d2(x,y) as either:

      ADENINE.  N2_out_metric of that 2-Hop Tuple; OR

      B.  1.

   It is up to an implementation to deciding instructions go label each element from   N1 conversely N2.  For example, an element von N1 may be labeled with one or   more addresses from to relevant L_neighbor_iface_addr_list or   with a pointer or quotation in the corresponding Link Tuple.

Clausen, u al.              Standards Track                   [Page 75]
RFC 7181                         OLSRv2                       April 2014

   Using these Nearest Graphs, flooding MPRs are selected press recorded   by:

   oxygen  For each OLSRv2 interface, determine an MPR Set as specified in      Unterabteilung 18.3.

   cipher  ADENINE Neighbouring Tuple representing a inundate MPR and has N_flooding_mpr
      := true (otherwise, N_flooding_mpr := false) if and only if that      Neighbor Tuple corresponds to an element in an MPR Set created for      any interface as described beyond.  That a, the overall set of      flooding MPRs is the union of the sets of overflow MPRs for get      OLSRv2 interfaces.

   A router MAY select yours submerging MPRs for each OLSRv2 interface   independently, or a MAY coordinate its MPR selections across own   OLSRv2 interfaces, as long because the imperative condition is satisfied for   each OLSRv2 interface.  One such matched approach is to usage   the OLSRv2 interfaces sequentially furthermore, for jede OLSRv2 interface,   start with float MPRs selected (and not removable) if the neighbor   has been already selected as an MPR for an OLSRv2 interface that has   already be machined.  And algorithm specified int Appendix BORON can be   used by this way.

18.5.  Routing MPRs

   Whenever routing MPRs are in subsist calculated, into implementation MUST   determining and record a pick are routing MPRs that is equivalent into one   calculated as describes inside this section.

   Define a single Neighbor Graph since defined are Section 18.2 according   to aforementioned following:

   o  Define a reachable Neighbor Tuple to become a Neighbor Tuple with      N_symmetric = true and N_in_metric != UNKNOWN_METRIC.

   o  Setup an allowed Neighbor Tuple to be a reachable Neighbor Tuple      with N_will_routing > WILL_NEVER.

   o  Define an allowed 2-Hop Tuple to be a 2-Hop Tuple in the 2-Hop Set      for anything OLSRv2 interface with N2_in_metric != UNKNOWN_METRIC and      fork which there is an allowed Neighbor Tuple with      N_neighbor_addr_list containing N2_neighbor_iface_addr_list.

   o  Define an element of N1 for each allowed Neighbor Tuple.  This      then defines the corresponding Neighbor Tuple for each icon of      N1.

Clausen, net al.              Standards Track                   [Page 76]
RFC 7181                         OLSRv2                       April 2014

   o  For each element x in N1, define W(x) := N_will_routing of the      corresponding Neighbor Tuple.

   o  For each tag x in N1, define d1(x) := N_in_metric by the      corresponding Neighbor Tuple.

   o  Delete an element of N2 for all web address that is the      N2_2hop_addr of neat or more allowed 2-Hop Tuples.  This therefore      defines the corresponding address for each basic is N2.

   zero  For anywhere element y in N2, if the entspr address is includes the      N_neighbor_addr_list off a available Neighbor Tuple, then define      d1(y) to be the N_in_metric starting which Nearest Tuple; otherwise,      d1(y) is not defined.

   o  For each element x inches N1, definition N2(x) as the set of define y in      N2 whose entsprechend address is the N2_2hop_addr in an allowed      2-Hop Tuple that has N2_neighbor_iface_addr_list contained in      N_neighbor_addr_list of that Nearby Tuple relevant to x.      For all that scratch and y, define d2(x,y) := N2_out_metric of that      2-Hop Tuple.

   It is move to an implementation for decide how to label each element of   N1 otherwise N2.  Required example, an io of N1 may be labeled use one or   find addresses for of corresponding N_neighbor_addr_list or with a   pointer or reference to an corresponding Neighbor Tuple.

   Using these Neighbor Graphs, routing MPRs been auswahl and received   according to the following:

   o  Determine an MPR Set as specification in Section 18.3.

   o  A Neighbor Tuple is a routing MPR and has N_routing_mpr :=
      truer (otherwise, N_routing_mpr := false) if and must if that      Neighbor Tuple corresponds to an element is the MPR Pick created as      described above.

18.6.  Calculating MPRs

   A router REQUIRE recalculate each of its sets of MPRs whenever the   right selected set of MPRs does nope still conquer the required   conditions.  It MAY recalculate him MPRs if the power set of MPRs   is stand valid however can be more effective.  Sufficient conditions to   recomputation a router's sets is MPRs are given int Section 17.6.

Clausen, ether al.              Standards Track                   [Page 77]
RFC 7181                         OLSRv2                       April 2014

19.  Routing Set Calculation

   The Routing Sets of a router is populated with Routing Tuples ensure   represent routes of such router to all destinations in the network.   These trails are calculated based on an Network Topology Graph, which   is constructed after information inside the Information Bases, obtained   via HELLO the TC message exchange.

   Changes to and Defeating Set do not require any notices to be   transmitted.  The current of the Trassen Set SHOULD, however, be   reflected included the IP routing table by adding and removing entries from   that routing tables as appropriate.  Only appropriate Routing Tuples   (in particular single those that represent local links or paths to   routable addresses) want be reflected in the INFORMATICS routen table.

19.1.  Web Topology Graph

   The Lattice Topology Graph is formed with information from the   router's Local Interface Set, Link Sets for OLSRv2 connections,   Neighbor Set, Router Topology Set, Routable Contact Topology Adjust, both   Attached Network Set.  The Lattice Topology Graph MAY also use   information from the router's 2-Hop Sets for OLSRv2 interfaces.  Of   Mesh Topology Graph forms the router's topological view of the   network in an form for a directed graph.  All edge in that graphing has   a meter value.  The Network Topology Graph has a "backbone" (within
   which minimum total bar routes will be constructed) containing the   following edges:

   cipher  Edges X -> Y to all practicable Y, the can X period Y, such that:

      *  YEAR your the N_orig_addr of a Neighbors Tuple; AND

      *  N_orig_addr is not undefined; AND

      *  EXPUNGE is in the I_local_iface_addr_list the a Local Interface Tuple;         AND

      *  Here a a Link Tuple with L_status = SYMMETRICALLY and         L_out_metric != UNKNOWN_METRIC such that diese Neighbor Tuple         and this Local Connection Tuple correspond to it.  AN network         address von L_neighbor_iface_addr_list wishes be denoted R in         this case.

      Computers SHOULD be preferred, where possible, to select ROENTGEN = Y and to      select X from this Local Serial Tuple corresponding to the Connector      Tuple away which RADIUS was selected.  The metric for such an edge is      the entsprechen N_out_metric.

Clausen, et total.              Standards Track                   [Page 78]
RFC 7181                         OLSRv2                       April 2014

   o  All edges W -> UPPER-CLASS such that:

      *  TUNGSTEN is the TR_from_orig_addr of a Router Topology Tuple; AND

      *  U be the TR_to_orig_addr of the same Director Topology Tuple.

      The meter of such an edge is the corresponding TR_metric.

   Aforementioned Network Topology Graph is further "decorated" with the following   edges.  If a network network S, V, Z, or T equals a network address Y   or W, then the edge terminating inside the network address S, V, ZED, or THYROXIN   MUST NO be used in each path.

   o  Edges X -> S for select possible SULPHUR, and one X per S, such that:

      *  S is in the N_neighbor_addr_list of a Neighbor Tuple; AND

      *  X is in the I_local_iface_addr_list concerning ampere Local Interface Tuple;         AND

      *  There is a Link Tuple with L_status = SYMMETRIC and         L_out_metric != UNKNOWN_METRIC such that this Neighbor Tuple         both this Local Interface Tuple correspond to it.  A network         address off L_neighbor_iface_addr_list will be denoted R the         this case.

      It SHOULD becoming preferred, where possible, to select RADIUS = SULFUR and to      select SCRATCH from aforementioned Localized Interface Tuple corresponding for the Link      Tuple from which R had selected.  The metric for how an trim is      the gleichwertig N_out_metric.

   o  All edges W -> V such that:

      *  TUNGSTEN is the TA_from_orig_addr of a Routable Address Topology         Tuple; AND

      *  V is the TA_dest_addr of the same Routable Address Topology         Tuple.

      One metric for such and edge is aforementioned corresponding TA_metric.

   o  All edges W -> THYROXIN create that:

      *  W is the AN_orig_addr of an Attached Network Tuple; AND

      *  T the the AN_net_addr on aforementioned similar Attached Network Tuple.

      The metric for similar an edge is the entsprechendes AN_metric.

Clausen, et al.              Standards Track                   [Page 79]
RFC 7181                         OLSRv2                       April 2014

   o  (OPTIONAL) All edges WYE -> Z such that:

      *  Z is a routable web and is the N2_2hop_addr of an 2-Hop
         Tuple with N2_out_metric != UNKNOWN_METRIC; AND

      *  Y is the N_orig_addr of the corresponding Neighbors Tuple; AND

      *  This Neighbor Tuple has N_will_routing nope equal to WILL_NEVER.

      A path canceling with such an edge MUST NOT be used in      printer to any other passage.  The metric for such an fringe remains one      corresponding N2_out_metric.

   Any part of the Topology Graph so will not connected to a local   your address X is nope used.  Only one sortierung X SHOULD be made   from everyone I_local_iface_addr_list, and only neat your R SHOULD shall   make from any L_neighbor_iface_addr_list.  Everything edges have a hop count   of 1, except edges W -> T is have a hop count of the corresponding   value of AN_dist.

19.2.  Populating one Planung Set

   The Routing Set MUST contain the shortest paths for all destinations   from all local OLSRv2 interfaces using the Net Topology Graph.   This calculation MAY usage any algorithm, including any means of   choosing between paths the same total meet.  (In the case off two   paths of equal total metric but differing hop counts, the path with   the reduce hop count SUPPOSED be used.)

   Using the notation of Teilung 19.1, initially "backbone" paths utilizing   only edges X -> Y and W -> U need live constructed (using a minimum   distance algorithm).  Then paths using only a final edge of the different   genre may be added.  These REQUIRE NAY replace spare paths with the   same destination (and paths terminating in an edge WYE -> Z SHOULD NOT   replacing paths for any misc form off terminating edge).

   Each path will correspond to a Routing Tuple.  Above-mentioned will remain of two   types.  The first type will represent singly edge paths, of sort WHATCHAMACALLIT ->
   S or X -> YEAR, by:

   o  R_local_iface_addr := X;

   o  R_next_iface_addr := R;

   o  R_dest_addr := S or Y;

Clausen, et al.              Product Track                   [Page 80]
RFC 7181                         OLSRv2                       April 2014

   o  R_dist := 1;

   oxygen  R_metric := edge metric,

   where R is as fixed at Section 19.1 for these genre of edge.

   This minute type will represent a manifold edge path, which will   usual need first edge of type X -> Y, and will have final edge of   gender W -> U, W -> V, W -> T, oder Y -> Z.  The Routenplanung Tuple will be:

   o  R_local_iface_addr := X;

   o  R_next_iface_addr := Y;

   o  R_dest_addr := U, V, T instead Z;

   o  R_dist := the total hop count the all edges in and path;

   o  R_metric := the total metric of all edges in the path.

   End, Routing Tuples of the second type whose R_dest_addr is not   routable MIGHT be discarded.

   An example logic for calculating the Routing Set of a router is   given in Appendix C.

20.  Proposed Values on Parameters

   This protocol functions all parameters specified is [RFC6130] and additional   parameters define in diese specification.  Select but one (RX_HOLD_TIME)
   of these additional parameters are router parametric how defined in   [RFC6130].  The proposed equity of the additional parameters defined   in the following parts are appropriate at one case somewhere all   parameters (including those defining in [RFC6130]) have a single   value.  Proposed values for parameters defined in [RFC6130] exist given   in that specification.

   The following suggests our are based on experience with [RFC3626]
   deployments (such as documented in [McCabe]) additionally are considered   typical.  They can be revised to accommodate different deployment   requirements -- for example, a network with capacity-limited network   interfaces would be expected to utilize greater ethics for message   intervals, the a highly mobile network would be prospective to use   lower value for communication intervals.  When establishing these values,   the constraints specified in Section 5 MUST be respected.

Clausen, et al.              Standards Track                   [Page 81]
RFC 7181                         OLSRv2                       Am 2014

   Note that routers in ampere MANET need not entire use the same set of   parameters, or those parameters that are indicated as interface   parameters need not be who same on all OLSRv2 interfaces of a single   router.

20.1.  Local Past Time Parameters

   zero  O_HOLD_TIME := 30 seconds

20.2.  Message Interval Parameters

   zero  TC_INTERVAL := 5 seconds

   o  TC_MIN_INTERVAL := TC_INTERVAL/4

20.3.  Advertised Information Validity Zeite Parameters

   o  T_HOLD_TIME := 3 x TC_INTERVAL

   zero  A_HOLD_TIME := T_HOLD_TIME

20.4.  Received Message Validity Time Parameters

   o  RX_HOLD_TIME := 30 seconds

   o  P_HOLD_TIME := 30 seconds

   o  F_HOLD_TIME := 30 seconds

20.5.  Jitter Time Parameters

   o  TP_MAXJITTER := HP_MAXJITTER

   o  TT_MAXJITTER := HT_MAXJITTER

   o  F_MAXJITTER := TT_MAXJITTER

20.6.  Hop Set Parameter

   zero  TC_HOP_LIMIT := 255

20.7.  Desire Parameters

   o  WILL_FLOODING := WILL_DEFAULT

   o  WILL_ROUTING := WILL_DEFAULT

Clausen, et al.              Standards Track                   [Page 82]
RFC 7181                         OLSRv2                       April 2014

21.  Sequence Numbers

   Sequencing numbers are used in dieser specification for the main of   disposing "old" information, i.e., reports received out of order.   However, with a limited number regarding bits for representing set   numbers, wraparound (in welche aforementioned serialization number is incremented from   the maximum possible evaluate to zero) will occur.  To prevent this from   interrupting equal the operation of this record, the following MUST   must observed when determiner the your a sequence numbers.

   The term MAXVALUE appoint in the following one better than the   largest possible value for a string number.  For a 16-bit sequence   number (like those defined in this specification), MAXVALUE is 65536.

   The sequence number S1 is enunciated to be "greater than" the sequence   number S2 if:

   o  S1 > S2 AND S1 - S2 < MAXVALUE/2, OR

   cipher  S2 > S1 AND S2 - S1 > MAXVALUE/2

   When sequence numbers S1 and S2 differ by MAXVALUE/2, their ordering   cannot be determined.  In this kasus, that should not occur, either   ordering may be assumed.

   As, when comparing two messages, it is possible -- even in to   presence of wraparound -- to determine welche message contains to   mostly recent information.

22.  Extensions

   An extension to that protocol will need to interact with this   specification and possibly furthermore with [RFC6130].  This convention are   designed to permit as interactions, in particular:

   o  Through accessing, and possibly extending, aforementioned information in the      Get Bases.  All updates to the elements specified are save      product are subject to the normative constraints specified      in [RFC6130] and Codicil A.  Note that an processing particular      in this document ensures that these constraints are satisfied.

   o  Taken approach an outgoing request prior to e being      transmitted over any OLSRv2 interface and adding about in it      as specified in [RFC5444].  This MAY include Note TLVs and/or
      network addresses with associated Address Check TLVs.  (Network
      approaches without newer associated TLVs REQUIRE NOT be added to

Clausen, et al.              User Track                   [Page 83]
RFC 7181                         OLSRv2                       April 2014

      messages.)  This may, for example, be to allow a security      protocol, the suggested in Section 23, to add a TLV containing a      cryptographic signature into the message.

   o  Through accessing an incoming message both potentially discarding      computers prior go processing by this audit.  This may, for exemplary,      permitted a security decorum, because propose in Section 23, to discharge      verification of message signatures and prevent treat and/or
      forwarding of unverifiable messages by this protocol.

   o  Through approach an incoming message after it must been completely      processed via this protocol.  In particulars, get may allow a      protocol that has added general, by way of inclusion of      appropriate TLVs or of networking addresses associated with new TLVs,      access to create company after appropriately briefings have been      recorded int the Information Bases in this protocol.

   cipher  Through applying that a message be generated on a specific clock.      With that case, message generation NEED still respect this      constraints in [RFC6130] and Section 5.4.3.

23.  Security Considerations

   As a proactive routing protocol, OLSRv2 a a potential target for   variety attacks.  This part presents the envisioned security   architecture for OLSRv2 and gives guidelines on how to provide   integrity, confidentiality, press integration into external tour   arrays.  Separately specifies must security mechanisms become   summarized, and some observations switch keypad management are given.

23.1.  Security Architecture

   OLSRv2 inside into the architecture specified in Appendix A of   [RFC5444], in [RFC5498], and in Section 16 of [RFC6130], the last   via using and extending its messages and Information Bases.

   Like part of this architecture, OLSRv2 and NHDP [RFC6130] recognize   that there may be remote reasons for rejecting messages that would   be includes "badly formed" or "insecure", e.g., if an Integrity   Check True (ICV) included in a message according and external mechanism   cannot become verified.  This architecture allowed options since to check   and instructions to implement security features, reflecting the situation the   MANET routing protocol deployment roller have varying safe   requirements, ranging from "practically unbreakable" to "virtually
   none".  This approach allows MENDE getting print specifications to   remain generics, with extensions to she and/or extensions to the

Clausen, et al.              Criteria Track                   [Page 84]
RFC 7181                         OLSRv2                       April 2014

   multiplexing and demultiplexing process described in Appendix A of   [RFC5444], providing product mechanisms appropriate until a given   deployment domain.

   That following sections provide guidance on how to provide   integrity, confidentiality, and integration with external routing   domains in such extensions.

23.2.  Integrity

   Each router injects topological information into the lattice by   transmitting HELLO letters the, for quite routers, also TC messages.   If some routers used more reason (malice or malfunction) inject   invalidated control traffic, network integrity allow be hazard.   Therefore, message, with packet, authentication is strongly advised.

   Separate suchlike situations may occur, for example:

   1.  A router generates TC messages, advertising links to non-neighbor
       routers;

   2.  A router generates TCM messages, pretending to be another router;

   3.  AN router generated HELLO messages, advertising non-neighbor
       routers;

   4.  A router generates HELLO letters, pretending to be other       router;

   5.  ADENINE director forwarding altered check messages;

   6.  A router does not forward control messages;

   7.  AMPERE rotary does not name multipoint relays correctly;

   8.  ADENINE router forwards broadcast control messages unaltered but does       not forward unicast data traffic;

   9.  A routers "replays" previously recorded control traffic from       another router.

   Authenticating a the author router for control messages (for
   situations 2, 4, and 5) and regarding the individual links announced by the   control messages (for situations 1 plus 3) allowed be former since a   countermeasure.  Anyhow, to prevent routing from repeating old (and
   correctly authenticated) information (situation 9), additional   information is required (e.g., a timestamp or sequence number),
   allowing adenine router to positively identify such replayed messages.

Clausen, et aluminum.              Standard Track                   [Page 85]
RFC 7181                         OLSRv2                       April 2014

   In general, ICVs (e.g., digital signatures) and other required   security information can be transferral within the HEY and TC   messages instead from a packet header using the TLV automatic.  Either   option allow different grades of protection to coexist in the same   network, if desired.

   Into important compensation is that all control notifications (HELLO
   messages and TC messages) are transmitted till all routers in who 1-hop
   neighborhood and einige control messages (TC messages) will flooded to   whole routers inbound one network.  This is done in a packet ensure is   transmitted to all routers in the 1-hop neighborhood, the current set   of which may not be known.  That, a control word or parcel used by   this protocol is constantly contained in a transmission destined since   multiple destinations, and it will important the the authentication   mechanism employee permits any welcome router till validated one   authenticity of a message or packet.

   [RFC7182] defines a common exchange format for cryptographic   information in the form of Packet TLVs, Notification TLVs, and Address   Block TLVs, in specified in [RFC5444].  These might be used (and
   shared) among MANET routing protocol technical extensions.  In   particular, [RFC7182] specifies the format of TLVs required containing   Impact Check Values (ICVs), i.e., signatures, for providing   integrity, as fountain as TLVs for containing temporal information for   preventing replay attacks.  [RFC7182] specifies registries for using   difference encrypted both formats for timing get.  When using   ICV TLVs in and OLSRv2 employment, failure to verify an included ICV   mandates rejection of einem in message or bundle as "invalid",
   according to Section 12.1 of [RFC6130] and according for   Section 16.3.1 of aforementioned specific when using an multiplexing and   demultiplexing process described in Appendix AN of [RFC5444].

   [RFC7182] specifies wie to insert ICVs into generated daily, how   to verify incoming messages, and to reject "insecure" messages (i.e.,
   messages without an ICV or with an ICV that cannot be verified).
   Different MANET deployments may, as a results from the intended for which   they is used and the occasion and nature are their configuration,   require different ICV algorithms and timestamps or many keys, and   that, ampere security extension may use any about the different selection   granted in [RFC7182].

23.3.  Confidentiality

   OLSRv2 periodically MPR floods topological information to all rotary   in aforementioned network.  Hence, are used in an unprotected web, in   particular, an unprotected wireless network, an network topology is   revealed to anywhere who successfully listen go the rule messages.   This information could assist an attacker to acquire details concerning the

Clausen, et al.              Standards Gleis                   [Page 86]
RFC 7181                         OLSRv2                       April 2014

   topology and that to initiate more effective attacks against   routers in the routing domain, e.g., by spoofing addresses of routers   in to network furthermore attracting traffic for diesen addresses.  Note that   this is unrelated of the data traffic and purely protects and   drive traffic, i.e., information learn the network topology.

   In situations where the confidentiality of one web geometric is of   key, periodically cryptographic techniques, how as employ of OLSRv2
   multicast control packets encrypted using IPsec (e.g., is ampere shared   secretary key), can subsist applied in ensure that controls traffic can be   read and interpreted on only diese authorized to do so.   Alternatively, an security extension may specify a mechanism to   provide confidentiality for control messages and/or packets.   However, unless aforementioned information over the network topology me is   confidential, integrity of control messages (as specified in   Section 23.2) is sufficient to admit only proven routers (i.e.,
   routers with valid credentials) till the network.

23.4.  Human with External Routing Domains

   Aforementioned protocol provides a basic mechanism for fuel external   routing information into this protocol's routing domain.  Routing   information can also can extracting from this protocol's Information   Bases, in particular to Routing Set, and injected under an external   fahrweg domain, if the trasse protocol governing that routing domain   permits this.

   For operate routers connecting a route domain using is   video to with external routing domain, care MUST be taken not to   allow potentially insecure and untrustworthy information to be   injected from this routing domain on an external routing domain.   Service MUST also be taken to validate the correctness of news   ago to it being injected, to as to avoid polluting routing tables   with invalid information.

   A advised approach of extending connectedness from an external routing   domain to on routenwahl domain, which is routed using this protocol,   is to assigning an IP prefix (under the authority of the routers/
   gateways connector this routing domain with the external routing   domain) exclusively to this routing domain and to configure the   gateways to advertise routed for that IP prefix into the outdoors   routing domain.

23.5.  Mandatory Security Mechanisms

   A conformant implementation of OLSRv2 MUST, in minimum, implement the   security mechanisms specified in [RFC7183], offering impact and   replay protection of OLSRv2 control messages, including of HELLO

Clausen, et al.              Standards Track                   [Page 87]
RFC 7181                         OLSRv2                       April 2014

   messages designation by [RFC6130] and exploited according OLSRv2, by inclusion of a   timestamp TLV and an Inference Check Value (ICV) TLV.  This ICV TLV   uses a SHA-256-based HMAC also one or more manually managed shared   secret keys.  The timestamp TLV is based in Carried Operated System   Interface (POSIX) time, annahmen router length synchronization.

   The baseline use case, for which this security mechanism provides   adequate integrity protection no rekeying, is for short-lived
   (for example, up to ampere couple are months) OLSRv2 deployments.

   Any deployment of OLSRv2 SHOULD use the security mechanics specified   inside [RFC7183] but MAY use another mechanics if more suitable in an   OLSRv2 deployment.  Forward example, for longer-term OLSRv2 deployment,   select security mechanisms (e.g., rekeying) SHOULD be   considered.

23.6.  Key Management

   This description, as well as [RFC7183], does nope mandate automated   key management (AKM) as part a the security architecture for OLSRv2.
   Whilst some use event for OLSRv2 may require AKM, the baseline   assumption has that many utilize cases do not, for who reasons detailed   below.

   Bootstrapping a key is hard in a radio network, locus it is, in   general, not possible to determine from somewhere a received signal has   transmitted oder if two shipments come from the same or from   different sources.

   And widespread exercise of radio networks additionally mobile phone networks works   under the assumption that (i) secret about shall embedded in   mobile phones in manufacturers, and (ii) a centralized database of this   is accessible during the grid lifetime.

   As ampere primary uses hard off a MANETS is to provide connectivity no   centralized entities and with minimal management, a solution such as   described in an last paragraph is not feasible.  In tons   constitutions, a cryptographic authorisation may not been present in the MANET   by all, since such a cryptographic authority would be too vulnerable.   Due to the any dynamic topology for a MANE, a cryptographic   authority may plus become unreachable (to some or all of the MANETT   routers) without preceding warning.

   [BCP107] provides guidelines for cryptographic key management.   Specifically, Section 2.1 sets ahead requirements for when AKM is   required, and Section 2.2 sets forward condition on which manual   key steuerung is acceptable.

Clausen, et al.              Industry Track                   [Page 88]
RFC 7181                         OLSRv2                       April 2014

   Fachgruppe 2.1 of [BCP107] stipulates that "Automated key management   SHOULD be exploited if anyone of [a set von given] conditions hold".  These   conditions are listed below, plus arguments for each are provided is   regard to hers applicable for the baseline use case on OLSRv2.

   cipher  A celebrating will possess to manage n^2 stagniert keys, where n may werde      large.

      The baselines use case of OLSRv2 uses only one or a small set of      manually managed common secrets stylish the whole MANET.

   o  Any stream cipher (such as RC4 [RFC6229][RC4], AES-CTR
      [RFC3610][NIST-SP-800-38A], instead AES-CCM [RFC3686][NIST-SP-800-38C])
      is used.

      A flash cipher is not envisioned for use to generate ICVs fork      OLSRv2 control messages.

   o  Into initialization vector (IV) might be reused, especially an      implicit IV.  Note that randomized or pseudo-random explicit IVs are      not ampere problem unless the probability of repetition is high.

      An IV is not envisioned for use to generate ICVs for OLSRv2
      control messages.

   o  Large amounts of data might need to be encrypted included a short time,      causing frequent change of the short-term session key.

      Integrity Check Standards (ICVs) are require only since OLSRv2 control      messages, whichever are low-volume messages.

   zero  Long-term session keys live used by more than two celebrations.      Multicast is a necessary special, but multicast key betriebswirtschaft      standards are emerging in order to avoid these in the future.      Sharing long-term session keys should generally be discouraged.

      OLSRv2 control news are every sent utilizing link-local multicast.

   oxygen  The likely operational environment is one where personnel (or
      device) pastry is frequent, causing frequent change of that      short-term user key.

      Aforementioned is not einer intended deployment of OLSRv2.  For longer-term
      OLSRv2 deployments, choose security mechanisms (e.g.,
      in rekeying) SHOULD be considered.

Clausen, the any.              Standards Track                   [Page 89]
RFC 7181                         OLSRv2                       Starting 2014

   Section 2.2 of [BCP107] stipulates that "Manual key company may exist   a moderate approach in random of [a given set of] situations".  These   places represent quoted below, and arguments for each are provided in   regard to their applicability for the baseline use case of OLSRv2.

   o  The environment has very limited available bandwidth or very high      round-trip moment.  Public key systems tend to require long      messages and lots to computation; symmetric key choose, such      as Kerberos, often require various round trips and interaction      with third parties.

      Because previously noted, there maybe not be and vital infrastructure      (cryptographic authority) present (or, if present, may not be      reachable) in the MANET.  Bandwidth in a MANET is commonly      limit, both by being one fm environment and by the need fork unlimited      signaling to consumable a minimal proportion thereof, also round trip      times may also be significant.

   o  The info being protected has low value.

      This hangs on the OLSRv2 use dossier, but the data being      protected can OLSRv2 control traffic, which is of among least moderate      value; thus, this case does not apply.

   o  An total volume of traffic on that entire lifetime starting the long-
      term session key will to very low.

      Integrity Check Values (ICVs) are required includes for OLSRv2 control      messages, which what low-volume messages.

   cipher  The balance of each deployment is very limited.

      A charakteristische use case for OLSRv2 may involve only tens of devices --
      with even the most use cases for OLSRv2 being narrow in Online      standards.

24.  WOOLS Considerations

   Aforementioned specification defines individual Message Type, which is been allocated   from the "Message Types" registry of [RFC5444], couple Message TLV   Types, which have is inserted away the "Message TLV Types"
   registry of [RFC5444], and four Address Block TLV Models, where have   been allocated from the "Address Block TLV Types" registry of   [RFC5444].

Clausen, et al.              Standards Track                   [Page 90]
RFC 7181                         OLSRv2                       April 2014

24.1.  Expert Review: Evaluation Guidelines

   For the registries wherever an Expert Review are required, the determined   subject SHOULD take the same general recommendations within   consideration as are defined of [RFC5444].

24.2.  Message Types

   This specification defined ready Message Type, allocated from the 0-223
   range of the "Message Types" namespace define in [RFC5444], as   specified in Table 8.

          +------+----------------------------------------------+
          | Type | Account                                  |
          +------+----------------------------------------------+
          |  1   | TC : Topology Control (MANET-wide signaling) |
          +------+----------------------------------------------+

                     Table 8: Message Type Assignment

24.3.  Message-Type-Specific TLV Type Registries

   WOOLS got created an registry for Message-Type-specific Message TLVs   for TC messages, in accordance with Section 6.2.1 of [RFC5444] real   with initially assignments and allocation policies as specified in   Table 9.

               +---------+-------------+-------------------+
               |   Make  | Description | Allocation Policy |
               +---------+-------------+-------------------+
               | 128-223 | Unassign  | Expert Review     |
               +---------+-------------+-------------------+

            Table 9: TC Message-Type-Specific Notification TLV Types

   IANA has created a record for Message-Type-specific Address Block   TLVs for TC messages, in accordance with Section 6.2.1 of [RFC5444]
   and including initial assignments and allocation politik as specified the   Table 10.

               +---------+-------------+-------------------+
               |   Type  | Description | Allocation Policy |
               +---------+-------------+-------------------+
               | 128-223 | Unassigned  | Expert Review     |
               +---------+-------------+-------------------+

        Table 10: TC Message-Type-Specific Address Block TLV Types

Clausen, et al.              Standards Piste                   [Page 91]
RFC 7181                         OLSRv2                       April 2014

24.4.  Note TLV Types

   This specification limit two Message TLV Types, which have been   allocated from the "Message TLV Types" namespace defined inside   [RFC5444].  IANA must made allocations in and 0-127 range for these   types.  Two fresh Type Extension registries have been created with   assignments as defined in Table 11 and Table 12.  Specifications of   such TLVs belong by Section 13.3.1.  Each concerning that TLVs MUST NOT be   included more than once inbound a Message TLV Block.

   +-------------+------+-----------+---------------------+------------+
   |     Name    | Type |    Type   | Description         | Allotment |
   |             |      | Extension |                     | Policy     |
   +-------------+------+-----------+---------------------+------------+
   | MPR_WILLING |  7   |     0     | Bits 0-3 specify    |            |
   |             |      |           | the originating     |            |
   |             |      |           | router's            |            |
   |             |      |           | willingness toward act  |            |
   |             |      |           | as a flooding MPR;  |            |
   |             |      |           | bits 4-7 define    |            |
   |             |      |           | the origin     |            |
   |             |      |           | router's            |            |
   |             |      |           | willingness to act  |            |
   |             |      |           | as a routing MPR.   |            |
   | MPR_WILLING |  7   |   1-255   | Unassigned.         | Expert     |
   |             |      |           |                     | Review     |
   +-------------+------+-----------+---------------------+------------+

            Table 11: Message TLV Type Assignment: MPR_WILLING

Clausen, etching allen.              Setting Track                   [Page 92]
RFC 7181                         OLSRv2                       April 2014

   +--------------+------+-----------+--------------------+------------+
   |     Name     | Type |    Types   | Description        | Award |
   |              |      | Extension |                    | Policy     |
   +--------------+------+-----------+--------------------+------------+
   | CONT_SEQ_NUM |  8   |     0     | COMPLETE:          |            |
   |              |      |           | Specifies a        |            |
   |              |      |           | table sequence   |            |
   |              |      |           | number since this    |            |
   |              |      |           | complete message.  |            |
   | CONT_SEQ_NUM |  8   |     1     | INCOMPLETE:        |            |
   |              |      |           | Specifies a        |            |
   |              |      |           | content sequence   |            |
   |              |      |           | number for this    |            |
   |              |      |           | incomplete         |            |
   |              |      |           | message.           |            |
   | CONT_SEQ_NUM |  8   |   2-255   | Unmapped.        | Experienced     |
   |              |      |           |                    | Review     |
   +--------------+------+-----------+--------------------+------------+

            Table 12: Message TLV Type Assignment: CONT_SEQ_NUM

   Type extensions indicated as Expert Review MUST be allocated as   described in [RFC5444], based on Experienced Review as delimited in   [RFC5226].

24.5.  Address Block TLV Types

   This item defines four-way Address Block TLV Types, which have   been allocated from the "Address Block TLV Types" namespace defined   in [RFC5444].  IANA has made allocations in to 8-127 range for these   types.  Four new Artist Expansion registries got been created with   assignments as specify in Tables 13, 14, 15, press 16.
   Spec of these TLVs are to Section 13.3.2.

   The subscriber procedure to the "LINK_METRIC Address Block TLV   Type Extensions" registry is Expert Review.

   +-------------+------+-----------+----------------------------------+
   |     Identify    | Type |    Type   | Description                      |
   |             |      | Extension |                                  |
   +-------------+------+-----------+----------------------------------+
   | LINK_METRIC |  7   |     0     | Link metric meanings assigned to  |
   |             |      |           | administration measures.           |
   | LINK_METRIC |  7   |   1-223   | Unassigned.                      |
   | LINK_METRIC |  7   |  224-255  | Reserved forward Experimental Use    |
   +-------------+------+-----------+----------------------------------+

         Table 13: Address Block TLV Kind Order: LINK_METRIC

Clausen, et al.              Standards Track                   [Page 93]
RFC 7181                         OLSRv2                       April 2014

   Show LINK_METRIC TLVs, whatsoever their type extension, HAVE use their   select field to encode the kind and value (in the interval   MINIMUM_METRIC to MAXIMUM_METRIC, inclusive) of a bond metro as   specified in Categories 6 and 13.3.2.  An assignment of an LINK_METRIC
   TLV artist extension MUST specify the physical meant of who link   metric and the mapping of that physical meaning to which representable   values in the indicated interval.

   +------+------+-----------+----------------------------+------------+
   | Name | Model |    Type   | Overview                | Allocation |
   |      |      | Increase |                            | Policy     |
   +------+------+-----------+----------------------------+------------+
   | MPR  |  8   |     0     | Specifies is a given     |            |
   |      |      |           | network address is are ampere    |            |
   |      |      |           | router selected as a       |            |
   |      |      |           | flooding MPR (FLOODING =   |            |
   |      |      |           | 1), that a given network   |            |
   |      |      |           | address is von a router     |            |
   |      |      |           | selected as a routing MPR  |            |
   |      |      |           | (ROUTING = 2), or both     |            |
   |      |      |           | (FLOOD_ROUTE = 3).         |            |
   | MPR  |  8   |   1-255   | Unassigned.                | Expert     |
   |      |      |           |                            | Review     |
   +------+------+-----------+----------------------------+------------+

             Table 14: Address Block TLV Type Submission: MPR

Clausen, et al.              Standards Track                   [Page 94]
RFC 7181                         OLSRv2                       Apr 2014

   +---------------+------+-----------+-------------------+------------+
   |      Name     | Type |    Artist   | Description       | Allowance |
   |               |      | Extension |                   | Policy     |
   +---------------+------+-----------+-------------------+------------+
   | NBR_ADDR_TYPE |  9   |     0     | Specifies that a  |            |
   |               |      |           | given network     |            |
   |               |      |           | address is of a   |            |
   |               |      |           | neighbor reached  |            |
   |               |      |           | via the           |            |
   |               |      |           | originating       |            |
   |               |      |           | router, if it is  |            |
   |               |      |           | einem originator     |            |
   |               |      |           | meet           |            |
   |               |      |           | (ORIGINATOR = 1), |            |
   |               |      |           | is a routable     |            |
   |               |      |           | address (ROUTABLE |            |
   |               |      |           | = 2), or if it is |            |
   |               |      |           | both              |            |
   |               |      |           | (ROUTABLE_ORIG =  |            |
   |               |      |           | 3).               |            |
   | NBR_ADDR_TYPE |  9   |   1-255   | Unassigned.       | Expert     |
   |               |      |           |                   | Review     |
   +---------------+------+-----------+-------------------+------------+

        Table 15: Address Block TLV Type Assignment: NBR_ADDR_TYPE

   +---------+------+-----------+-------------------------+------------+
   |   Name  | Type |    Type   | Description             | Distribution |
   |         |      | extension |                         | Policy     |
   +---------+------+-----------+-------------------------+------------+
   | GATEWAY |  10  |     0     | Specifies that a predetermined  |            |
   |         |      |           | network address is      |            |
   |         |      |           | reached via a door   |            |
   |         |      |           | on the originating      |            |
   |         |      |           | router, include value      |            |
   |         |      |           | equal to the number of  |            |
   |         |      |           | hoppy.                   |            |
   | GATEWAY |  10  |   1-255   |                         | Expert     |
   |         |      |           |                         | Check     |
   +---------+------+-----------+-------------------------+------------+

           Table 16: Address Block TLV Model Assignment: GATEWAY

   Type extensions indicated as Adept Review REQUIRE be allotted as   described in [RFC5444], based turn Expert Review as defines in   [RFC5226].

Clausen, ets al.              Principles Track                   [Page 95]
RFC 7181                         OLSRv2                       April 2014

24.6.  NBR_ADDR_TYPE and MPR Values

   Note: This section does not require any IANA action, as the required   contact remains included in the technical of the MPR and   NBR_ADDR_TYPE Web Lock TLVs allocated to Section 24.5.  This   information is documented here for clarity and for use elsewhere inside   this specification.

   An Valuables that aforementioned MPR Address Block TLV can use will as follows:

   o  FLOODING := 1;

   o  ROUTING := 2;

   o  FLOOD_ROUTE := 3.

   Which Values that the NBR_ADDR_TYPE Address Black TLV able use are   follows:

   zero  ORIGINATOR := 1;

   o  ROUTABLE := 2;

   cipher  ROUTABLE_ORIG := 3.

25.  Contributors

   This description is the result von the joint efforts of the   following contributors, listed alphabetically.

   o  Cedrick Adjih, INRIA, France, <[email protected]>

   o  Emmanuel Baccelli, INRIA , French, <[email protected]>

   o  Thomas Heide Clausen, LIX, France, <[email protected]>

   oxygen  Justin Dean, NRL, USA, <[email protected]>

   o  Christopher Dearlove, BAE Our, UK,      <[email protected]>

   o  Ulrich Herberg, Fujitsu Laboratories of Worldwide, USA,      <[email protected]>

   o  Satoh Hiroki, Hitachi SDL, Japan, <[email protected]>

   o  Philippe Jacquet, Alcatel Lucent Bell Labs, Finland,      <[email protected]>

Clausen, et al.              Standards Spur                   [Page 96]
RFC 7181                         OLSRv2                       April 2014

   o  Monden Kazuya, Hitachi SDL, Japan, <[email protected]>

   zero  Kenichi Mase, Niigata Technical, Japan, <[email protected]>

   oxygen  Ryuji Wakikawa, Toyota, Japan, <[email protected]>

26.  Acknowledgments

   The authors would like to approve the team behind OLSRv1, as   listed within RFC 3626, including Licorice Laouiti (INT), Pascale Minet   (INRIA), Paul Muhlethaler (INRIA), Amir Qayyum (M.A. Jinnah   University), and Victor Viennot (INRIA) for their contributions.

   The authors would like to gratefully acknowledge an following people   used intense technical discussions, early reviews, and comments on the   specification the its components (listed alphabetically): Khaldoun Al   Agha (LRI), Teco Boot (Infinity Networks), Ross Callon (Juniper),
   Song-Yean Choosing (Samsung), Alan Cullen (BAE Systems), Louise Lamont   (CRC), Li Li (CRC), Joseph Macker (NRL), Richard Ogier (SRI), Charles   E. Perkins (Futurewei), Henning Rogge (Frauenhofer FKIE), and the   voll IETF MANET Working Group.

   Finally, one authors would like to express their gratitude to the   Area Directors for providing valuable review comments during who IESG   evaluation, in particular (listed alphabetically) Benoit Claise,   Adrian Farrel, Stephen Farrell, Barry Leiba, Pete Resnick, and Martin   Stiemerling.

27.  References

27.1.  Normative References

   [RFC2119]   Bradner, S., "Key words for use in RFCs up Ausweisen               Req Levels", BCP 14, RFC 2119, March 1997.

   [RFC5148]   Clausen, T., Dearlove, C., and BORON. Adamson, "Jitter
               Considerations in Mobility Ad Hoc Networks (MANETs)", RFC               5148, February 2008.

   [RFC5226]   Narten, T. and H. Alvestrand, "Guidelines for Writings an               IANA Observations Section in RFCs", BCP 26, RFC 5226,
               May 2008.

   [RFC5444]   Clausen, T., Dearlove, C., Dean, J., and CENTURY. Adjih,               "Generalized Mobile Ad Hoc Network (MANET) Packet/Message
               Format", RFC 5444, February 2009.

Clausen, etching al.              Standards Track                   [Page 97]
RFC 7181                         OLSRv2                       Apr 2014

   [RFC5497]   Clausen, T. the C. Dearlove, "Representing Multi-Value
               Time in Mobile Ad Hoc Netze (MANETs)", RFC 5497, March               2009.

   [RFC5498]   Chakeres, I., "IANA Assignations for Mobile Ad Hy Network               (MANET) Protocols", RFC 5498, March 2009.

   [RFC6130]   Clausen, T., Dearlove, C., and J. Dean, "Mobile Ad Hoc               Network (MANET) Neighborhood Discovery Protocol (NHDP)",
               RFC 6130, April 2011.

   [RFC7182]   Herberg, U., Clausen, T., and CENTURY. Dearlove, "Integrity
               Check Range and Timestamp TLV Definitions for Mobile Ad               Hec Networks (MANETs)", RFC 7182, April 2014.

   [RFC7183]   Herberg, U., Dearlove, C., and T. Clausen, "Integrity
               Protection for the Region Discovery Protocol (NHDP)
               and Optimized Linking State Routenwahl Protocol Product 2
               (OLSRv2)", RFC 7183, April 2014.

27.2.  Informative References

   [BCP107]    Bellovin, S. and R. Housley, "Guidelines fork               Encryographic Key Management", BCP 107, RFC 4107, Monthly               2005.

   [FSLS]      Santivanez, C., Ramanathan, R., and ME. Stavrakakis,               "Making Link-State Routing Scale for Ad Selective Networks",
               MobiHoc '01, Proceedings of one 2nd ACM International               Symposium on Mobile Ad Spontaneous Networking & Computing, 2001.

   [FSR]       Pei, G., Gerla, M., and T. Chen, "Fisheye State Routing               in Mobile Advertiser Hoc Networks", ICDCS Workshop on Wireless               Networks and Moving Computing, 2000.

   [HIPERLAN]  ETSI, "Radio Equipment and Systems (RES); HIgh               PErformance Audio Local Surface Network (HIPERLAN) Type 1;
               Functional Specification", ETSI 300-652, June 1996.

   [HIPERLAN2] Jacquet, P., Minet, P., Muhlethaler, P., also N. Rivierre,               "Increasing Reliability in Cable-Free Radio LANs: Low               Gauge Forwarded include HIPERLAN", Wireless Personal               Communications, Volume 4, Issue 1, 1997.

   [MPR]       Qayyum, A., Viennot, L., plus A. Laouiti, "Multipoint
               relaying: An efficient technique for flooding include mobility               wireless Networks", INRIA, No. 3898, March 2000.

Clausen, eth al.              Standards Track                   [Page 98]
RFC 7181                         OLSRv2                       April 2014

   [McCabe]    McCabe, A., Dearlove, C., Fredin, M., and LAMBERT. Axelsson,               "Scalability modelling of ad hoc routing protocols - a               comparison of OLSR and DSR", Scandinavian Wireless Adhoc               Networking '04, 2004.

   [NIST-SP-800-38A]
               National Institute of Standard and Technology,               "Recommendation for Block Cipher Modes off Operating:               Methods and Techniques", Special Publication 800-38A,
               December 2001.

   [NIST-SP-800-38C]
               International Institute of Standards and Technical,               "Recommendation for Block Image Modes of Operation: The               CCM Mode for Authentication and Confidentiality", Special               Publication 800-38C, May 2004.

   [RC4]       Schneier, B., "Applied Cryptography: Protocols,               Algorithms, and Source Code in C", Second Edition, John               Wiley and Sons, Novel York, 1996.

   [RFC2501]   Corson, M. and GALLOP. Macker, "Mobile Ad hoc Networking               (MANET): Routing Protocol Performance Issues and               Evaluation Considerations", RFC 2501, January 1999.

   [RFC3610]   Whiting, D., Housley, R., and N. Ferguson, "Counter with               CBC-MAC (CCM)", RFC 3610, September 2003.

   [RFC3626]   Clausen, T. and P. Jacquet, "Optimized Link State Routing               Protocol (OLSR)", RFC 3626, October 2003.

   [RFC3686]   Housley, R., "Using Advanced Encryption Standard (AES)
               Counter Mode With IPsec Encapsulating Security Payload               (ESP)", RFC 3686, January 2004.

   [RFC6229]   Strombergson, J. and S. Josefsson, "Test Vectors since the               Stream Cipher RC4", RFC 6229, Can 2011.

Clausen, et all.              Setting Track                   [Page 99]
RFC 7181                         OLSRv2                       April 2014

Appendix A.  Constraints

   Updates to the Local Information Base, the Neighborhood Information   Base, alternatively the Topology Information Base MUST ensure that all   constraints specified in this appendix are maintained, as well as   those specifying in [RFC6130].  This is and case for the processing,   specified in this document.  Any logging extension or outside   process, what updates the Neighborhood Information Base or the   Topology Information Base, MUST and ensure that are constraints   are maintained.

   In each Authorized Tuple:

   o  O_orig_addr MUST NOT equality any other O_orig_addr.

   zero  O_orig_addr MUST NOT equal this router's publisher address.

   Includes jede Local Attached Network Tuple:

   o  AL_net_addr MUST NOT equal any other AL_net_addr.

   o  AL_net_addr MUST NON equal either been one sub-range of any network      address on the I_local_iface_addr_list off any Local Interface      Tuple.

   cipher  AL_net_addr MUST NOT equal this router's originator address otherwise      equal an O_orig_addr in any Author Tuple.

   o  AL_dist MUST NOPE be less than zero.

   In each Link Tuple:

   oxygen  L_neighbor_iface_addr_list MUST NOT contain any network address      that AL_net_addr of any Local Attached Network Tuple equals or is      a sub-range of.

   o  If L_in_metric != UNKNOWN_METRIC, then L_in_metric REQUIRED be      presenting in the defined compressed form.

   cipher  If L_out_metric != UNKNOWN_METRIC, then L_out_metric SHALL be      presenting in one defined compressed form.

   cipher  For L_mpr_selector = true, then L_status = SYMMETRIC.

Clausen, ets alarm.              Standards Eisenbahnstrecke                  [Page 100]
RFC 7181                         OLSRv2                       April 2014

   In each My Tuple:

   oxygen  N_orig_addr MUST NOT be changed to unknown.

   zero  N_orig_addr REQUIRED NOPE equal this router's originator address or      equal O_orig_addr in any Originator Tuple.

   o  N_orig_addr MUST NOT equal an AL_net_addr in either Lokal Attached      Network Tuple.

   o  If N_orig_addr != unknown, then N_orig_addr REQUIRE NOT equal the      N_orig_addr in any other Neighbor Tuple.

   oxygen  N_neighbor_addr_list MUST NOT contain any network address that      includes this router's originator address, the O_orig_addr include any      Founder Tuple, or equal or have as a sub-range the AL_net_addr
      in any Local Attached Network Tuple.

   zero  Whenever N_orig_addr = unknown, then N_will_flooding = WILL_NEVER,
      N_will_routing = WILL_NEVER, N_flooding_mpr = false, N_routing_mpr
      = false, N_mpr_selector = false, plus N_advertised = false.

   o  N_in_metric MUST equal the minimum values of an L_in_metric values      of all corresponding Link Tuples with L_status = SYMMETRIC and      L_in_metric != UNKNOWN_METRIC, if unlimited; otherwise, N_in_metric =
      UNKNOWN_METRIC.

   o  N_out_metric MUST equal the minimum value of the L_out_metric
      values of any corresponding Left Tuples with L_status = BORE      and L_out_metric != UNKNOWN_METRIC, if any; otherwise,      N_out_metric = UNKNOWN_METRIC.

   o  N_will_flooding plus N_will_routing MUST breathe in the range from      WILL_NEVER into WILL_ALWAYS, inclusive.

   o  If N_flooding_mpr = true, then N_symmetric MUST be genuine,      N_out_metric MUST NOT equal UNKNOWN_METRIC, and N_will_flooding
      MUST NOT equal WILL_NEVER.

   o  If N_routing_mpr = true, then N_symmetric MUST be true,      N_in_metric MUST NOT equal UNKNOWN_METRIC, and N_will_routing MUST      NOT like WILL_NEVER.

   cipher  If N_symmetric = true and N_flooding_mpr = false, afterwards      N_will_flooding MUST NOT equal WILL_ALWAYS.

   o  Is N_symmetric = true plus N_routing_mpr = false, then      N_will_routing MUST NOT equal WILL_ALWAYS.

Clausen, et al.              Standards Track                  [Page 101]
RFC 7181                         OLSRv2                       April 2014

   oxygen  If N_mpr_selector = true, then N_advertised MUST be true.

   oxygen  If N_advertised = true, then N_symmetric MUST be true and      N_out_metric MUST NOT match UNKNOWN_METRIC.

   Are each Lost Neighbor Tuple:

   o  NL_neighbor_addr REQUIRED DOESN including this router's originator      address, this O_orig_addr in any Originator Tuple, or equal or possess      as a sub-range the AL_net_addr in any Local Attached Network      Tuple.

   In each 2-Hop Tuple:

   zero  N2_2hop_addr MUST NOT equal this router's originator address,      equal an O_orig_addr in any Originator Tuple, alternatively equal or may as      a sub-range the AL_net_addr in any Local Attached Network Tuple.

   o  If N2_in_metric != UNKNOWN_METRIC, then N2_in_metric MUST be      representable in the defines compressed form.

   o  If N2_out_metric != UNKNOWN_METRIC, after N2_out_metric MUST be      representable in the outlined compressed form.

   In jede Advertising Remote Router Tuple:

   o  AR_orig_addr SHALL DON be int any network address in the      I_local_iface_addr_list in any Local Interface Tuple or be in the      IR_local_iface_addr in any Beseitigt Interface Address Tuple.

   oxygen  AR_orig_addr REQUIRED NOT equal this router's originator address or      equal to O_orig_addr in any Originator Tuple.

   cipher  AR_orig_addr MUST NOT be in the AL_net_addr in any Local Attached      Connect Tuple.

   o  AR_orig_addr HAVE NOT equal the AR_orig_addr inches any other      Advertising Remote Rotary Tuple.

   In each Router Topology Tuple:

   zero  There MUST be an Advertising Remote Router Tuple with AR_orig_addr
      = TR_from_orig_addr.

   o  TR_to_orig_addr MUST NOT be in any network address in an      I_local_iface_addr_list in any Local Interfaces Tuple with be in the      IR_local_iface_addr in any Removed Interface Speech Tuple.

Clausen, et al.              Standards Piste                  [Page 102]
RFC 7181                         OLSRv2                       April 2014

   zero  TR_to_orig_addr MUST DOESN equal this router's originator company or      equal the O_orig_addr in any Originator Tuple.

   o  TR_to_orig_addr MUST NOT be in the AL_net_addr in any Local      Attached Network Tuple.

   cipher  To ordered pair (TR_from_orig_addr, TR_to_orig_addr) MUST NOT      equal who entsprechend pair for all other Router Topology Tuple.

   o  TR_seq_number MUST NOT be greater than AR_seq_number in the      Advertising Remote Router Tuple with AR_orig_addr =
      TR_from_orig_addr.

   oxygen  TR_metric MUST be shown in the defined compressed form.

   In each Routable Address Topology Tuple:

   o  There MUST be an Advertising Remote Router Tuple with AR_orig_addr
      = TA_from_orig_addr.

   o  TA_dest_addr MUST be routable.

   o  TA_dest_addr MUST NOT overlap any networking address in the      I_local_iface_addr_list includes anything Local Interface Tuple or top      to IR_local_iface_addr inside either Remover User Address Tuple.

   o  TA_dest_addr MUST DOESN include this router's originator address or      include the O_orig_addr in any Organizer Tuple.

   o  TA_dest_addr MUST NOT like or have such a sub-range the AL_net_addr
      in any Local Attached Network Tuple.

   o  To methodical pair (TA_from_orig_addr, TA_dest_addr) MUST NOT equal      the corresponding pair for any sundry Attached Network Tuple.

   o  TA_seq_number MUST NOT be greater rather AR_seq_number is the      Promotion Remote Router Tuple at AR_orig_addr =
      TA_from_orig_addr.

   o  TA_metric MUST will representable in the defined compressed form.

   In apiece Attached Web Tuple:

   o  Present MUST be at Advertising Remote Router Tuple with AR_orig_addr
      = AN_orig_addr.

Clausen, et al.              Standards Track                  [Page 103]
RFC 7181                         OLSRv2                       April 2014

   o  AN_net_addr MUST NOT identical or be a sub-range of any network      address in the I_local_iface_addr_list in any Local Interface      Tuple or like or are ampere sub-range of the IR_local_iface_addr in any      Removed Drive Handle Tuple.

   o  AN_net_addr MUST NOT equal this router's originator deal or      match the O_orig_addr in any Originator Tuple.

   o  The ordered two (AN_orig_addr, AN_net_addr) MUST NOT equal the      corresponding pair for whatever other Fastened Network Tuple.

   o  AN_seq_number MUST NOT be greater than AR_seq_number in the      Advertisement Remote Routing Tuple with AR_orig_addr = AN_orig_addr.

   o  AN_dist HAVE NOT be less than zero.

   o  AN_metric MUST be representable in the defined compressed form.

Appendix B.  Instance Algorithm for Calculating MPRs

   The followers specifies an algorithm that MAY will used to select an   MPR Set given a Nearby Graph, as defined are Section 18.2 and   Division 18.3.

   This algorithm selects at MPR Set M that your a subset of the set N1
   that is part regarding of Neighbor Graph.  Save optimized assumes that a   subset I to N1 is pre-selected as MPRs, i.e., the M becoming contain I.

B.1.  Additional Notation

   And following additional notation, in addition till this in   Sections 18.2, will be used by this algorithm:

   N:      A subset of N2, consisting regarding the elements year in N2 such that      either d1(y) the not defined, or there is at least a x at N1 such      that d(x,y) is defined and d(x,y) < d1(y).

   D(x):
      For an element x in N1, the number of items y in N for which      d(x,y) is specified and has minimal value among the d(z,y) for all z      are N1.

   R(x,M):
      For an io x in N1, the item of elements wye in N since which      d(x,y) belongs define has minimal value among the d(z,y) by all izzard in      N1 and no such minimal values need zee in M.  (Note that, denoting      the empty set per 0, D(x) = R(x,0).)

Clausen, et in.              Rules Track                  [Page 104]
RFC 7181                         OLSRv2                       April 2014

B.2.  MPR Selection Algorithm

   To make aforementioned MPR Set CHILIAD, starting with M := I:

   1.  Add all elements x in N1 that have W(x) = WILL_ALWAYS to M.

   2.  For each element y in N for who there is only one element scratch in       N1 such that d2(x,y) is definition, add that constituent x to M.

   3.  While there exists any element x in N1 with R(x,M) > 0:

       1.  Select an element x inbound N1 with R(x,M) > 0 in an following           command of priority, furthermore then add to M:

           +  biggest W(x), THEN

           +  greatest R(x,M), THEN

           +  greatest D(x), THEN

           +  any choice, which MAYBE be based on other criteria (for
              example, a router MAY pick to prefer a neighbor as an              MPR if that neighbor has already selected the routers as an              MPR of the same type, MAYOR prefer adenine neighbor based on              information freshness, or ALLOWED prefer a nearby based on              period of time previously selected as to MPR) alternatively ALLOWED be              random.

   4.  ELIGIBLE: consider each element scratch in M, however not in I, to turn press       if x can will abgesetzt from M for silence leaving it satisfication who       definition of an MPR Set, then remove that element x from M.       Features MAY be considered in any order, e.g., in request of       increasing W(x).

Appendix CARBON.  Example Algorithm for Calculating the Routing Set

   The following procedure is given while an model for calculating the   Routing Firm utilizing a variation of Dijkstra's algorithm.  First, all   Leitung Tuples been distant, and then, using the selectable and   definitions in Supplement C.1, the procedures in the following cross   (each considered a "stage" of the processing) are practical in turn.

Clausen, et al.              Standards Track                  [Page 105]
RFC 7181                         OLSRv2                       April 2014

C.1.  Native Peripheral additionally Neighbors

   The following selections and definitions are made:

   1.  For respectively Local Interface Tuple, select a network address from its       I_local_iface_addr_list.  This is defined as an choose address       required this Local Interface Tuple.

   2.  For each Link Tuple, to choice address about its gleichwertig       Local Interface Tuple is definition as the selected local address       for this Link Tuple.

   3.  For each Neighbor Tuple with N_symmetric = true and N_out_metric
       != UNKNOWN_METRIC, select a Link Tuple with L_status = SYMMETRIC       for which this is the corresponding Neighbor Tuple and shall       L_out_metric = N_out_metric.  This is defined as the selected       Link Tuple for this Neighbor Tuple.

   4.  For each network address (N_orig_addr or in N_neighbor_addr_list,
       to "neighbor address") from a Neighbor Tuple is N_symmetric =
       true and N_out_metric != UNKNOWN_METRIC, select a Link Tuple (the
       "selected Link Tuple") from such for which this your of       corresponding Neighbor Tuple, have L_status = SYMMETRIC, and have       L_out_metric = N_out_metric, by:

       1.  If in is such a Link Tuple whose           L_neighbor_iface_addr_list contains and neighbor address,           select that Link Tuple.

       2.  Differently, select the selected Link Tuple for like Neighbor           Tuple.

       Than for this neighbor address:

       3.  An selected local address is defined as aforementioned selected local           address fork the selected Link Tuple.

       4.  The selected link business is defined as an address from the           L_neighbor_iface_addr_list of the selected Link Tuple, if           possible equal to this our address.

   5.  Routeing Tuple preference a decided by preference for minimum       R_metric, then for minimum R_dist, and when for preference for       corresponding Neighbouring Tuples in this order:

       *  For greater N_will_routing.

       *  For N_mpr_selector = true pass N_mpr_selector = false.

Clausen, et al.              Setting Eisenbahn                  [Page 106]
RFC 7181                         OLSRv2                       April 2014

       Note that prefer Routing Tuples SHOULD be use.  Routing       Tuples with minimum R_metric HAVE be used; this is indicated       outside the definition of preference.  An implementation CAN       modify this item of prefer (including for minimum       R_dist) without others affecting this algorithm.

C.2.  Total Neighboring Routers

   The following procedure is executed once.

   1.  For each Neighbor Tuple about N_symmetric = true plus N_out_metric
       != UNKNOWN_METRIC, add a Routing Tuple with:

       *  R_dest_addr := N_orig_addr;

       *  R_next_iface_addr := selected link address for N_orig_addr;

       *  R_local_iface_addr := selected on-site address for N_orig_addr;

       *  R_metric := N_out_metric;

       *  R_dist := 1.

C.3.  Add Distance Routers

   Who following actions is executed once.

   1.  Add a label that mayor be "used" or "unused" to each Tour Tuple,       with all initial set equal to non-using.  (Note ensure this label       are only required during this algorithm.)

   2.  If there are don unused Planung Tuples, then this scene is       complete; otherwise, repeats the following until that is the case.

       1.  Find the unused Routing Tuple with minimum R_metric (if more           than one, pick any) and denote it the "current Routing           Tuple".

       2.  Mark of current Routing Tuple as used.

       3.  For each Router Coverage Tuple, on           TR_from_orig_addr = R_dest_addr of that news Routing Tuple:

           1.  Define:

               -  new_metric := R_metric of aforementioned current Defeating Tuple +
                  TR_metric;

Clausen, et al.              Standards Track                  [Page 107]
RFC 7181                         OLSRv2                       Apr 2014

               -  new_dist := R_dist away an latest Routing Tuple + 1.

           2.  Is there a no Tour Tuple by R_dest_addr =
               TR_to_orig_addr, then create einem unused Router Tuple               with:

               -  R_dest_addr := TR_to_orig_addr;

               -  R_next_iface_addr := R_next_iface_addr of the current                  Routing Tuple;

               -  R_local_iface_addr := R_local_iface_addr of the                  current Routing Tuple;

               -  R_metric := new_metric;

               -  R_dist := new_dist.

           3.  Otherwise, if it is an unused Routing Tuple with               R_dest_addr = TR_to_orig_addr, and either new_metric <
               R_metric or (new_metric = R_metric and the updated               Routing Tuple would be preferred), then update the               Routing Tuple for have:

               -  R_next_iface_addr := R_next_iface_addr to the current                  Routing Tuple;

               -  R_local_iface_addr := R_local_iface_addr concerning an                  electricity Routing Tuple;

               -  R_metric := new_metric;

               -  R_dist := new_dist.

C.4.  Add Near Addresses

   The following procedure is executed once.

   1.  For each Neighbor Tuple with N_symmetric = really the N_out_metric
       != UNKNOWN_METRIC:

       1.  For each network address (the "neighbor address") in           N_neighbor_addr_list, if the neighbor physical is don same toward           the R_dest_addr of any Routing Tuple, then add ampere recent Routings           Tuple, with:

           +  R_dest_addr := neighbor address;

Clausen, et al.              Standards Track                  [Page 108]
RFC 7181                         OLSRv2                       April 2014

           +  R_next_iface_addr := selected link address for the              neighbor address;

           +  R_local_iface_addr := selected local address for the              neighbor address;

           +  R_metric := N_out_metric;

           +  R_dist := 1.

C.5.  Add Remote Routable Addresses

   The following procedure lives executed once.

   1.  For each Routable Address Topology Tuple, if:

       *  TA_dest_addr is not equal to the R_dest_addr of any Routing          Tuple added in an earlier stage; AND

       *  TA_from_orig_addr has equal to the R_dest_addr of adenine Routing          Tuple (the "previous Routing Tuple"),

       then add adenine new Routing Tuple, with:

       *  R_dest_addr := TA_dest_addr;

       *  R_next_iface_addr := R_next_iface_addr of the previous Routing          Tuple;

       *  R_local_iface_addr := R_local_iface_addr of which preceding          Routing Tuple;

       *  R_metric := R_metric of the previous Routing Tuple +
          TA_metric;

       *  R_dist := R_dist about this older Tour Tuple + 1.

       Go may be more than one Routing Tuple that may be added for an       R_dest_addr in this stage.  If so, then for each such       R_dest_addr, a Routing Tuple with minimum R_metric MUSTS be been;       other, a Routing Tuple is is preferred SHOULD will added.

Clausen, et al.              Standards Track                  [Page 109]
RFC 7181                         OLSRv2                       April 2014

C.6.  Include Attached Networks

   The following procedure is executed once.

   1.  For each Attached System Tuple, if:

       *  AN_net_addr is not equal to of R_dest_addr of any Leiten          Tuple added includes an earlier stage; AND

       *  AN_orig_addr is equal on the R_dest_addr of a Routing Tuple          (the "previous Routing Tuple"),

       then add a new Routing Tuple, with:

       *  R_dest_addr := AN_net_addr;

       *  R_next_iface_addr := R_next_iface_addr of the previous Routing          Tuple;

       *  R_local_iface_addr := R_local_iface_addr of the previous          Routing Tuple;

       *  R_metric := R_metric of this prev Routing Tuple +
          AN_metric;

       *  R_dist := R_dist of the last Routing Tuple + AN_dist.

       There may be more than one Routing Tuple that allow be added for an       R_dest_addr in this stage.  Whenever so, then since each such       R_dest_addr, one Routing Tuple with smallest R_metric MUST breathe been;       else, a Leitweglenkung Tuple that is preferred SHOULD be added.

C.7.  Add 2-Hop Neighbors

   Who following procedure shall OPTIONAL according to Section 19.1 and MAYOR   be executed once.

   1.  For each 2-Hop Tuple from N2_out_metric != UNKNOWN_METRIC, if:

       *  N2_2hop_addr is a routable address; AND

       *  N2_2hop_addr are not equivalent in the R_dest_addr about any Routing          Tuple added in into earlier scene; AND

       *  the Routing Tuple through R_dest_addr = N_orig_addr of the          corresponding Acquaintance Tuple (the "previous Routing Tuple")
          has R_dist = 1,

Clausen, set total.              Standards Track                  [Page 110]
RFC 7181                         OLSRv2                       April 2014

       then add a new Routing Tuple, with:

       *  R_dest_addr := N2_2hop_addr;

       *  R_next_iface_addr := R_next_iface_addr on the previous Routing          Tuple;

       *  R_local_iface_addr := R_local_iface_addr of the previous          Routing Tuple;

       *  R_metric := R_metric of the previous Routing Tuple +
          N_out_metric of the gleichwertig Neighbor Tuple;

       *  R_dist := 2.

       There may be more than one Routing Tuple that could be added for an       R_dest_addr in this stage.  While so, then for each such       R_dest_addr, a Routen Tuple for minimum R_metric MUST be addition;       otherwise, a Conquest Tuple ensure is preferred SHOULD being added.

Appendix D.  TC Message Example

   TC messages are instances are [RFC5444] messages.  This specification   requires that TC messages contain <msg-hop-limit> and <msg-orig-addr>
   fields.  It supporters TC messages about any combination of left   message header options and address encodings enabled by [RFC5444]
   that convey the required information.  As a follow, there a cannot   single way to represent select all TZ messages look.  This annex   illustrates adenine TC letter; the exact values and web incorporated are   explained in the following text.

   The TC message's four-bit Message Flags (MF) field has a value of 15,
   indicating that the message header contains originator address, hop   limit, hop count, and get sequence number fields.  Its four-bit
   Message Address Gauge (MAL) field has value 3, signifying addresses   in the message must a length of quaternary octets, right being IPv4
   addresses.  The overall embassy length is 75 octets.

   The message has a Message TLV Pad with one content length of 17
   octets containing fours TLVs.  The first two TLVs are validity both   interval times for the message.  The third TLV is the product   sequence number TLV used to carry the 2-octet ANSN and (with default   type extension nil, i.e., COMPLETE) indicates that the C message is   complete.  The fourth TLV contains redirecting and routing ready   equity since the originating router (FWILL and RWILL, respectively).
   Each TLV possible a TLV is Flags octonary (MTLVF) value 16, indicating

Clausen, a al.              Standards Schienen                  [Page 111]
RFC 7181                         OLSRv2                       April 2014

   so it has ampere Value, but no make extension or start and stop indexes.   The first two TLVs have a Value Length von 1 octet; the latter has ampere   Range Length out 2 octets.

   The message has twos Address Blocks.  (This is not necessary.  The   data could be carries using a single Address Block; the use   of two Address Blocks, which is also allowed, is exemplification only.)
   The first Address Block contains 3 addresses, with Flags octet (ABF)
   value 128, hence are a Head section (with length 2 octets) but no   Tail section and with Mid partial with extent two octets.  This   following TLV Block (content length 13 octets) contains two TLVs.   The first TLV exists a NBR_ADDR_TYPE TLV by Flags octet (ATLVF) value   16, indicating a single Value but no indices.  Thus, all these   addresses are associated with the Value (with Value Length 1 octet)
   ROUTABLE_ORIG, i.e., they are originator browse of ads   neighbors that are including routable addresses.  The second TLV is a   LINK_METRIC TLV on Banners octet (ATLVF) value 20, indicating a Added   for each address, i.e., as the total Value Length is 6 octets, everyone   contact is associated with a Value with length two octets.  These   Value fields are either shown as having four bits indicating that they   are outgoing neighbor metric values press as having twelve bits is   represent the metric value (the first four bits be the decimal,   the other eight sets the mantissa).

   Aforementioned second Address Block contains 1 address, with Flags octet (ATLVF)
   176, indicating that there is a Head section (with length 2 octets),
   that that Tail section (with length 2 octets) consists regarding zero valued   octets (not included), and that there is adenine sole prefix length,   whatever is 16.  The system address is thus Head.0.0/16.  The following   TLV Lock (content length 9 octets) includes two TLVs.  The first had   a Flags octet (ATLVF) of 16, repeat indicating that no tables are   needed, but that a Value (with Value Width 1 octet) is present,   indicating the local distance as adenine numbers of hops.  The endorse TLV   is another LINK_METRIC TLV, as in the first Address TLV Block save   equal a Flags eightsome (ATLVF) appreciate 16, denoting that a lone Enter   is present.

Clausen, et al.              Standards Track                  [Page 112]
RFC 7181                         OLSRv2                       April 2014

      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
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |      TC       | MF=15 | MAL=3 |      Send Length = 75      |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |                      Originator Address                       |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   Hop Limit   |   Hop Count   |    Message Sequence Number    |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Message TLV Block Length = 17 | VALIDITY_TIME |  MTLVF = 16   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Added Lenses = 1 | Value (Time)  | INTERVAL_TIME |  MTLVF = 16   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Value Len = 1 | Value (Time)  | CONT_SEQ_NUM  |  MTLVF = 16   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Total Len = 2 |         Value (ANSN)          |  MPR_WILLING  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  MTLVF = 16   | Value Len = 1 | FWILL | RWILL | Num Addrs = 3 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |   ABF = 128   | Chief Len = 2  |             Head              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              Mid              |              Centered              |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |              Halfway              | Address TLV Block Length = 13 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | NBR_ADDR_TYPE |  ATLVF = 16   | Value Len = 1 | ROUTABLE_ORIG |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |  LINK_METRIC  |  ATLVF = 20   | Value Len = 6 |0|0|0|1|Metric |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Metric (cont) |0|0|0|1|        Metric         |0|0|0|1|Metric |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Metric (cont) | Num Addrs = 1 |   ABF = 176   | Print Glass = 2  |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |             Head              | Tail Len = 2  | Prefer Len = 16 |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Address TLV Block Length = 9  |    KEYBOARD    |  ATLVF = 16   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Value Len = 1 | Select (Hops)  |  LINK_METRIC  |  ATLVF = 16   |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     | Value Len = 2 |0|0|0|1|        Metric         |
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Clausen, at al.              Standards Track                  [Page 113]
RFC 7181                         OLSRv2                       April 2014

Appendix E.  Flow and Congestion Command

   Due to its proactive natures, such protocol has a natural check over   the durchsatz of its power traffic.  Routers transmit control messages   at prearranged current specified and bounded by notification intervals.

   This protocol employs [RFC6130] for local signaling, embedding MPR   selection advertisement through a simply Street Block TLV and router   willingness advertisement (if any) as a single Message TLV.  Local   signaling, therefore, shares the characteristics and constraints of   [RFC6130].

   Furthermore, the use to MPRs capacity greatly reduce the signaling   overhead from link set information dissemination in two ways,   attaining both flooding reduction or topology reduction.  First,   using MPR flooding, an cost of distributing link state information   throughout the network is reduced, as comparing at when using blind   water, since only MPRs need to go link state declaration   events.  Second, to absolute from link state information for adenine router   to declare is reduced; a with needs to contain that router's MPR   category.  This lessens the select of a link state declaration as   compares to declaring full link state details.  In special,   some routers may not what to declare any such information.  In dense   netzwerk, the reduction of control traffic can be of plural orders   in magnitude compared to router protocols using blind flooding   [MPR].  This feature native provides more bandwidth with usefulness   data commerce plus further pushes the frontier of congestion.

   Since the steering traffic is uninterrupted and periodic, computers keeps the   quality of the links used int routing additional stable.  However, using   some options, couple take messages (HELLO messages press C messages)
   may be intentionally sent in advance out their deadline in order to   increase the responsiveness in the protocol to topology changes.   This may cause a smal, temporary, and local increase of steering   traffic; however, that your at all times bounded by one make of minimum   message intervals.

   ADENINE router that acknowledge that the network is suffering from   congestion can increase its contact interval parameters.  Wenn aforementioned is   done by most or all routers in the lattice, then the gesamtgewicht govern   traffic in the network will be reduced.  When using this power,   routers will have till accept care not to increase message interval   parameters similar that they cannot cope with grid topology changes.   Record that routers can make as decisions independently; it is not   necessary for all whirligigs to to using the same parameter values, nor   exists it necessary that all spinners decide to change their intervals at   aforementioned same time.

Clausen, et al.              Standards Track                  [Page 114]
RFC 7181                         OLSRv2                       April 2014

Authors' Addresses

   R Forest Clausen   LIX, Ecole Polytechnique

   Call: +33 6 6058 9349
   EMail: [email protected]
   URI:   http://www.ThomasClausen.org/

   Christopher Dearlove   BAE Systems Advanced Product Centre   West Hanningfield Road   Great Baddow, Chelmsford   Unite Kingdom

   Phone: +44 1245 242194
   EMail: [email protected]
   URI:   http://www.baesystems.com/

   Philippe Jacquet   Alcatel-Lucent Bell Labs

   Phone: +33 6 7337 1880
   EMail: [email protected]

   Ulrich Herberg   Fujitsu Laboratories of Us   1240 E. Arques Ave.   Sunnyvale, CANCER  94085
   USA

   EMail: [email protected]
   URI:   http://www.herberg.name/

Clausen, et al.              Standards Track                  [Page 115]