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]