Internet Engineering Task Force (IETF) Khaled Omar Internet-Draft The Road Intended status: Experimental L. Camara Expires: August 3, 2018 January 30, 2018 Numbering Exchange Protocol (NEP) Specification draft-omar-nep-06 Abstract This document specifies the Numbering Exchange Protocol (NEP), an Interior Gateway Protocol (IGP) that combines three metrics: delay, bandwidth and number of hops. Status of this Memo This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." This Internet-Draft will expire on August 3, 2018. Copyright Notice Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved. This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License. Omar & Camara Expires August 3, 2018 [Page 1] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 Table of Contents 1. Introduction ...................................................2 2. Numbering Exchange Protocol (NEP) ..............................3 2.1. RIDs and their Advertising ...................................5 2.1.1. Advertising Beyond a Router's Neighbours ...................6 2.2. Echo Mechanism ...............................................6 2.2.1. Detecting Routers that Leaved a NEP Network ................6 2.3. Topology Advertisement .......................................7 2.3.1. The NEP Metric .............................................8 3. NEP Loop Prevention ............................................8 4. Subnet Advertisement ...........................................9 4.1. Specification ...............................................11 4.2. Routing Packets within a NEP AS .............................12 5. IANA Considerations ...........................................12 6. Security Considerations .......................................13 7. References ....................................................13 7.1. Normative References ........................................13 7.2. Informative References ......................................13 8. Authors' Addresses ............................................14 Appendix A. NEP Advertisement Format .............................14 A.1. NEP Header ..................................................14 A.2. Topology Advertisement ......................................15 A.3. Subnet Advertisements .......................................15 A.3.1. Mask-Based Subnet Advertisements ..........................16 A.3.2. Prefix-Based Subnet Advertisements ........................16 A.4. Echo Mechanism ..............................................17 A.4.1. Echo Messages .............................................17 A.4.2. Delay Calculated Message ..................................17 A.5. Hello Messages ..............................................17 A.6. Router Left Message .........................................18 1. Introduction The Numbering Exchange Protocol (NEP) is an Interior Gateway Protocol (IGP), delivering IP packets between routers in the same Autonomous System (AS). Many routing protocols, such as RIP, OSPF, IS-IS, and EIGRP, use normally one or even zero metrics each: a. RIP uses only the number of hops. b. OSPF uses only the cost (bandwidth). c. IS-IS uses only a default metric of 10 for all links. d. EIGRP uses the least bandwidth and delay. NEP differs from other IGPs as it chooses its best path based on a composite metric of: a. Highest total bandwidth (for faster transmission). b. Number of hops (for less processing). Omar & Camara Expires August 3, 2018 [Page 2] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 c. Lowest total delay (for faster delivery). NEP uses a numbering method between routers that provides a fast topology exchange and learning process, and builds a routing table shorter than those that other IGPs build. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119, RFC8174] when, and only when, they appear in all capitals, as shown here. 2. Numbering Exchange Protocol (NEP) This section provides an abstract specification of NEP. The concrete specification is in the subsections of this section. The following figure shows 6 interconnected routers within an AS as follows: 3: 22, 2500, 15 3: 12, 3000, 30 3: 31, 2000, 10 3: 22, 1500, 25 3: 42, 3000, 30 3: 31, 1000, 20 3: 63, 8000, 100 <----- * -----> +-------------------(3)-------------------+ | 20 | * 10 | | 1000 | | 2000 | | v | | | | | 4: 22, 4000, 60 | | 5 | 4: 41, 1000, 20 | | 500 | 4: 52, 1100,220 ^ | ^ | | 4: 62, 6000, 90 | | 32,41, 12, | | 31, | ^ | | 52,62 21,32 | | 41,51 31,51 | | see <---- * ----> <---- * ----> <---- * | below (6)--------------(4)------------------(2)------------------(1) 70 * 40 | * 10 * | see 5000 | 3000 | | 1000 | | below | | v | | v 4: 22, 3100, 240 | | | 40 | 4: 32, 1100, 220 v | ^ | 2000 | 4: 41, 100, 200 | | | | 4: 62, 5100, 270 | | | | | 200 | 10 | | 100 * 3000 | +-------------------(5)-------------------+ <----- * -----> 5: 12, 3100, 210 5: 22, 5000, 50 5: 22, 2100, 240 5: 42, 3100, 210 5: 51, 100, 200 5: 51, 3000, 10 5: 63, 8100, 280 Omar & Camara Expires August 3, 2018 [Page 3] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 Router 1's topology advertisements cannot be represented in the figure because of the 72-column limit. Here they are: To router 3: 1: 11, 2000, 10 1: 22, 3000, 20 1: 52, 5000, 20 To router 5: 1: 11, 3000, 10 1: 22, 4000, 20 1: 32, 5000, 20 1: 43, 6000, 40 1: 64, 11000, 110 Links have two numeric values: the upper value represents the link delay, and the lower value represents the link bandwidth. Each NEP router advertises the topology information as follows (the over-the-wire format is described in Appendix A.1 and A.2): a: rh, b, d a - advertising router RID. r - destination router RID. h - number of hops. b - total bandwidth. d - total delay. Each router within an Autonomous System (AS) must be configured with a unique number called Router ID (RID). The RID is a 32-bit decimal number that uniquely identifies a router within an AS. Each router advertises its RID first to its neighboring routers using Hello messages (a complete specification of this mechanism is in Section 2.1). Each router advertises all the interconnected RIDs, total bandwidth, number of hops, and total delay to the neighboring router. Each router calculates the best path to each router using the following values: a. Total bandwidth. b. Number of hops. c. Total delay. Omar & Camara Expires August 3, 2018 [Page 4] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 The best NEP path from the local router to every other router from the collected advertised information has the following: a. Highest total bandwidth. b. Lowest number of hops that corresponds to the highest total bandwidth. c. Lowest total delay. The NEP metric (Section 2.3.1) is calculated using the following formula: **************************************************** * (No. of Hops * Total-Delay) * * Metric = [-----------------------------] x 10^7 * * Total-BW * **************************************************** The best metric has the lowest value. Each NEP router sends an Echo message of each of its interface to the neighboring router, the time taken by the message to be sent and received over the link divided by 2 determines the link delay. This Echo mechanism is specified in Section 2.2. The Echo message is sent by every router every 10 seconds (by default). The link delay value is updated every 10 seconds on every advertised message that contains the 3 values that can be used to determine the best path from the NEP router to other routers. 2.1. RIDs and their Advertising Each NEP router in an Autonomous System (AS) must be configured with a Router ID (RID) unique within the AS. RIDs are 32-bit unsigned numbers. To integrate NEP, an Hello message is sent to all NEP routers the router wanting to integrate has a direct link to. The Advertising Router RID is set to the RID of the advertising router and the Upper Layer Address is set to the upper layer address of the advertising router. The upper layer can be a link or internetwork protocol. The advertising router MUST send Hello messages to every router it has a direct link to. Omar & Camara Expires August 3, 2018 [Page 5] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 2.1.1. Advertising Beyond a Router's Neighbours A router may want to advertise itself to a router it does not have access to. For this, the message may be forwarded by other routers to the intended target, or the router may multicast to the "all NEP routers" group, that is the site-local group ff05::TBD2 in IPv6. 2.2. Echo Mechanism To calculate a link's delay, NEP uses Echo messages, that are also used by NEP to detect the absence of a router. By default, a NEP router uses the Echo Mechanism every router every 10 seconds. The Echo Mechanism is as follows: A. NEP router X sends to router Y an Echo message with Advertising Router RID = X, Destination Router RID = Y, and NEP type = 3 (Appendix A.4.1). NEP router X keeps track of a timer T starting at X's time of sending of the message. B. As soon as message A is received, NEP router Y sends to router X an Echo message with Advertising Router RID = RID(Y), Destination Router RID = RID(X), and NEP type = 4 (Appendix A.4.1). C. As soon as message B is received, T's value is read and T is destroyed. The read value divided by 2 is the link delay. NEP router X sends to router Y a Delay Calculated message with Advertising Router RID = X, Destination Router RID = Y, Delay equal to the calculated delay [[LC to Khaled Omar: What is the unit of the delay?]], and NEP type = 5 (Appendix A.4.2). This mechanism allows both routers to know the delay of the link and avoids inconsistencies in the calculated Delay values that would be caused if only the Echo messages were used. 2.2.1. Detecting Routers that Leaved a NEP Network When a NEP router X uses the Echo mechanism, if the router at the other side of the link (Y) has left the network, there might be several possible outcomes: A. Y does not respond in 65535 Delay units (by default) or before the next Echo Mechanism activation, whichever comes first. B. A control message (for example, ICMPv4 or ICMPv6) is sent by the router. C. A NEP Router Left message is explicitly sent by Y to X. D. A NEP Router Left message is explicitly sent by Y to the "all NEP routers" group. Omar & Camara Expires August 3, 2018 [Page 6] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 In case D, there is nothing to do: Y already sent a message indicating Y left to all NEP routers in its AS. In all other cases, a Router Left message is sent to the "all NEP routers" group. The over-the-wire format of Router Left messages is described in Appendix A.6. In Router Left messages, The Advertising Router RID is set to the RID of the advertising router and the Upper Layer Address is set to the upper layer address of the advertising router. The upper layer can be a link or internetwork protocol. 2.3. Topology Advertisement The third phase in NEP is to every router to know the topology. There can be several routes between two routers. A choice mechanism using the NEP metric is described in Section 3. All NEP topology advertisements MUST have the advertising router as one of the endpoints. NEP topology advertisements where the destination's RID is the same as the destination router RID MUST NOT be sent. First, each router calculates the 3 NEP values for itself to itself: the number of hops MUST be equal to 1. These values MUST be advertised to all NEP routers the advertising router has direct links to. [[This is the most tricky part of NEP. Question: What does the bandwidth of a router to itself mean? A router advertising a giant bandwidth of itself to itself can force all traffic through it.]] When a NEP router P receives a NEP topology advertisement from Q for a Q<-->R route, P MUST do the following: o If R is in P's routing table and the NEP metric for the route is larger than the NEP metric of the stored route (Metric), ignore the route. The Destination Router field is used as the key in the table. o Otherwise: * Add the route to the routing table: Destination Router = R, Next-Hop Router = Q, Metric = the NEP metric of the route (Section 2.3.1). * Advertise the route to each of the NEP routers P has direct links to, S: send a NEP topology advertisement to S with Advertising Router RID = P, Destination Router RID = S, and the 3 NEP values set as follows: Omar & Camara Expires August 3, 2018 [Page 7] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 # of hops = Hops(Q<-->R) + 1, bandwidth = BW(P) + BW(P<=>Q) + BW(Q<-->R), delay = Delay(P) + Delay(P<=>Q) + Delay(Q<=>R). Hops(Q<-->R) = the number of hops advertised by Q of its route to R BW(P) = the bandwidth advertised by P of its route to itself Delay(P) = the delay advertised by P of its route to itself BW(P<=>Q) = the bandwidth of the link between P and Q Delay(P<=>Q) = the delay of the link between P and Q BW(Q<-->R) = the bandwidth advertised by Q of its route to R Delay(Q<-->R) = the delay advertised by Q of its route to R 2.3.1. The NEP Metric NEP uses a metric that combines total bandwidth, number of hops, and total delay. The NEP metric of a route is the product of the number of hops and the total delay of the route, multiplied by 10**7 (10000000) and divided by the total bandwidth of the route. The units of the bandwidth and delay, and the constant 10**7, are arbitrary, provided that the entire AS agrees about the units and about the constant. 3. NEP Loop Prevention This section provides an abstract specification of NEP's use of metrics to select the best routes and to which routes to use. The concrete specification is in Sections 2.3 and 4.2. NEP uses a loop free mechanism by discarding the advertised topology information that has a higher metric than the existing stored entry for the same RID to prevent looping. When an NEP router receives an advertised topology information to a specific router, it checks its own topology table, if there is no entry listed for that RID contained in the advertised message, it adds it to its own topology table. If more than one message received to the same RID, the NEP router calculates the metric for each one of them and store the one with the lowest metric for that router. For example: a. Router 1 will have 3 messages to the destination router 4 as follows: 2: 42, 4000, 50 ==> Metric = 250,000 (discarded) 3: 42, 3000, 30 ==> Metric = 200,000 (added) 5: 42, 3100, 210 ==> Metric = 1,354,839 (discarded) Omar & Camara Expires August 3, 2018 [Page 8] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 The message from router 3 has the lowest metric to the destination router 4 so this route through router 3 will be added to the routing table and other routes will be discarded. b. Router 1 will have 3 messages to the destination router 6 as follows: 2: 63, 9000, 120 ==> Metric = 400,000 (discarded) 3: 63, 8000, 100 ==> Metric = 375,000 (added) 5: 63, 8100, 280 ==> Metric = 1,037,037 (discarded) The message from router 2 has the lowest metric to the destination router 6 so this route through router 2 will be added to the routing table and other routes will be discarded. Router 1 Routing Table: *************************************************************** * Destination Router * Metric * Next-hop Router * *************************************************************** * 2 * 100,000 * 2 * *************************************************************** * 3 * 50,000 * 3 * *************************************************************** * 4 * 200,000 * 3 * *************************************************************** * 5 * 33,333.33 * 5 * *************************************************************** * 6 * 375,000 * 3 * *************************************************************** Note: In case of two or more equal metrics for the same destination, the routes are added to the routing table and traffic is balanced between these routes. 4. Subnet Advertisement This section provides an abstract specification of NEP's subnet advertisements and where to route packets received by a NEP router. The concrete specification is in the subsections of this section and in Section 2.3. After learning the best routes from each router to other routers, every router advertises the directly connected subnet(s) to other routers. Then, each router adds the learned subnet to the IP routing table. Consider the following example: Omar & Camara Expires August 3, 2018 [Page 9] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 Three routers are connected and every router is connected directly to one subnet. 3: 10.1.3.0/24 1: 10.1.1.0/24 ------------ 2: 10.1.2.0/24 -----------+ | -------------- | | 2: 21, 3000, 10 | 2: 21, 1000, 20 | | 2: 12, 4000, 30 | 2: 32, 4000, 30 | V <---- * ----> V +--------------(2)--------------+ | 10 * 20 | | 3000 1000 | | | | | ^ | | ^ 1: 11, 1000, 20 3: 31, 3000, 10 | | 3: 31, 500,50 1: 11, 500,50 | | 1: 32, 1500, 70 3: 12, 3500, 60 | | 3: 22,3500,60 1: 22,1500,70 | | * ----> <---- * (3)-----------------------------(1) ^ * 50 * ^ | | 500 | | | -------------- --------------- | \ 3: 10.1.3.0/24 ---> <--- 1: 10.1.1.0/24 --+ 1: 10.1.1.0/24 2: 10.1.2.0/24 2: 10.1.2.0/24 3: 10.1.3.0/24 For router number 1, the following topology information are received: 2: 21, 1000, 20 ==> Metric = 200,000 (Added) 2: 32, 4000, 30 ==> Metric = 150,000 (Added) 3: 31, 500, 50 ==> Metric = 1,000,000 (Discarded) 3: 22, 3500, 60 ==> Metric = 342,857.1 (Discarded) Once every router learns the best route to every other router, each router learns the advertised subnets. The subnet information is advertised as follows (the exact over-the- wire format is specified in Appendix A.3.1 and A.3.2): a: subnet-number/mask (for IPv4 [RFC791]) a: prefix/length (for IPv6 [RFC8200]) Where "a" represents the advertised router RID that has the directly connected subnet or prefix. Omar & Camara Expires August 3, 2018 [Page 10] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 Then, each router builds its own IP routing table: For router number 1, the IP routing table will be as follows: ***************************************************************** * Dest. Router * Destination Subnet * Metric * Next-hop Router * ***************************************************************** * 2 * 10.1.2.0/24 * 200,000 * 2 * ***************************************************************** * 3 * 10.1.3.0/24 * 150,000 * 2 * ***************************************************************** If more than one subnet is directly connected to a router, another entry will be added to the IP routing table for that subnet with the same destination router, metric and next-hop router. For loop prevention, each received subnet information through a specific interface is not advertised again through this interface, but out of other interfaces. 4.1. Specification [[This specification does not allow for multiple subnets to be directly connected to the same NEP router, but Section 4.2 allows. As a combined result, the NEP specification does not allow for multiple subnets to be directly connected to the same NEP router.]] The subnet advertisement phase is the final phase of the NEP routing table construction process. In the subnet advertisement phase, all NEP routers send to each other Subnet Advertisements advertising their respective subnets, adding to their routing tables Destination Subnet values equal to those specified by the received Subnet Advertisements. Each NEP router sends a Subnet Advertisement with the Advertising Router RID set to its RID, and the remaining fields to describe its subnet. Subnet advertisements are sent in a similar way of the sending of Hello messages, specified in Section 2.1. There are two types of subnet advertisements: mask-based and prefix-based. For mask-based subnet advertisements (Appendix A.3.1), the Subnet Mask field has bits set to 1 with the same positions as the bits in the Subnet Prefix that are all equal to the bits of an address with the same positions if and only if the address belongs to one of the subnets the advertising router is directly connected to. Omar & Camara Expires August 3, 2018 [Page 11] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 For prefix-based subnet advertisements, the Prefix Length field contains the number of most-significant bits in the Subnet Prefix field that are all equal to the bits of an address with the same positions if and only if the address belongs to one of the subnets the advertising router is directly connected to. A router receiving a Subnet Advertisement adds to the entry of its routing table with Destination Router equal to the received Subnet Advertisement's Advertising Router RID the Destination Subnet specified in the remaining fields of the received Subnet Advertisement. 4.2. Routing Packets within a NEP AS When a NEP router receives a packet, it checks the packet's destination address. * If the address is not in any of the subnets in the receiving router's NEP routing table, routing is done to outside of the AS and is therefore out of scope for this document. This inter-AS routing may be done by selecting a NEP router in the AS that has also enabled an exterior gateway protocol, that may be the receiving router. This selection may be done by selecting the NEP router in the AS with the lowest metric in the route to it. * If the address is in the receiving router's subnet, routing is also out of scope of this document, as it has already reached its destination's link. * Otherwise, find the entry(ies) in the routing table with a Destination Subnet containing the destination address of the received packet and forward the packet to one of the Next-Hop Routers of the entry(ies), balancing traffic between them. 5. IANA Considerations IANA is requested to allocate a single value from the Protocol Numbers registry, to replace TBD1 in Appendix A.1. IANA is also requested to allocate an address to replace TBD2 in this document from the IPv6 Site-Local Scope Multicast Address Registry to replace TBD2 in this document, such that ff05::TBD2 is the assigned address. Omar & Camara Expires August 3, 2018 [Page 12] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 6. Security Considerations Like any other routing protocol, NEP can be subject to several attacks. Routers could falsely advertise values. This can be prevented via the use of IPsec or of NEP authentication, that is out of scope of this document. A router could leave a NEP network. This can be detected by the neighbouring routers via the use of Echo messages, and makes one of the neighbouring routers send a Router Left message to the "all NEP routers" multicast group. 7. References 7.1. Normative References [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, May 2017. 7.2. Informative References [RFC791] Postel, J., "Internet Protocol", STD 5, RFC 791, September 1981. [RFC8200] Deering, S., and R. Hinden, "Internet Protocol Version 6 (IPv6) Specification", STD 86, RFC 8200, July 2017. [[LC to Khaled Omar: You can add your native name according to RFC 7997, I will then add the substitutions. This notice is to be removed once the non-ASCII characters are added.]] [[RFC-Editor: This document will contain non-ASCII characters when published as RFC, or when xml2rfc is used. This notice is to be removed when the non-ASCII characters are added.]] s/Luis/Lu\u{00ED}s/ s/Camara/C\u{00E2}mara]] Omar & Camara Expires August 3, 2018 [Page 13] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 8. Authors' Addresses Khaled Omar Ibrahim Omar The Road 6th of October City, Giza Egypt Phone: +2 01003620284 E-mail: eng.khaled.omar@hotmail.com National ID No.: 28611262102992 Luis Camara Portugal E-mail: luis.camara@live.com.pt A. NEP Advertisement Format NEP routers advertise topology and subnet information. This appendix describes exactly how they are advertised. Appendix A.1. NEP Header NEP operates directly on top of IP, with protocol number TBD1. Advertisements are communicated using the NEP header followed by the specific advertisement structure. The structure of the NEP header is as follows: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Version # = 1 | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Pre-Data Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The version of NEP described in this document is number 1. The Length field contains the length of the NEP data (not including the header). The Checksum field is the one's complement of the one's complement sum of all 16-bit words of the NEP header and of the NEP data, excluding the checksum itself (or setting it to 0). If NEP is being used directly over a protocol providing other means of addressing (link/network and internetwork protocols), a pseudo-header is prepended to the NEP data. Omar & Camara Expires August 3, 2018 [Page 14] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 The Reserved field is reserved for future extensibility and MUST be set to 0 by implementations not using it. [[Question: Should receivers not using the field ignore or discard packets with values of the Reserved field different from 0?]] The pseudo-header is the concatentation of the over-the-wire representations, in the following order, of: o the source and destination addresses (including the lengths, if the upper protocol supports addresses of variable lengths), and o the protocol number for NEP in the upper protocol, padded to 32 bits, encoded as a big-endian number (in the sample captures, 143 for IP). This algorithm is the same as used in TCP and UDP over IPv6 [RFC8200], except that it omits the length in the pseudo-header, as NEP already includes it in the NEP header. A.2. Topology Advertisement In Sections 2, 3 and 4, topology advertisements of the form "a: rh, b, d" appear. These advertisements have Type 0. Their structure is as follows: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | # of hops | Bandwidth | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Bandwidth | Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The structure formed by the bottom three lines may be repeated as many times as desired, to allow NEP topology advertisements to advertise topology of multiple routes. A.3. Subnet Advertisements In Section 4, subnet advertisements are described. Below is their structure. Omar & Camara Expires August 3, 2018 [Page 15] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 A.3.1. Mask-Based Subnet Advertisement NEP mask-based subnet advertisements, used for IPv4 [RFC791] have the following structure and Type 1: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subnet prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Subnet mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ This structure is generic and can be adapted to NEP over any other link/network or internetwork protocol, provided that the number of octets excluding the NEP header and the advertising router RID is even: the first half of these octets are the subnet prefix and the second half are the subnet mask. A.3.2. Prefix-Based Subnet Advertisement NEP IPv6 [RFC8200] subnet advertisements have the following structure and Type 2: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | + + | | + Subnet prefix + | | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The structure is generic and can be adapted to NEP over any other link/network or internetwork protocol: the subnet prefix is as many octets as an address of the link/network or internetwork protocol, and the prefix length is the number of bits in the prefix. Omar & Camara Expires August 3, 2018 [Page 16] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 A.4. Echo Mechanism Section 2 specifies a mechanism using Echo messages to calculate the delay of a link between two routers, but does not specify their structure. This section specifies their structure. The mechanism was updated to use 3 messages instead of 2 to allow both routers to learn the link delay. A.4.1. Echo Messages 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The first two messages used in the delay calculation in this version of NEP have NEP types 3 and 4, respectively. A.4.2. Delay Calculated Message 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Delay | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The final message used in the delay calculation in this version of NEP has NEP type 5. A.5. Hello Messages Section 2.1 specifies a mechanism to NEP routers to advertise their RIDs using Hello messages. This section specifies their structure. Hello messages have NEP type 6. 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Upper Layer Address / | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Omar & Camara Expires August 3, 2018 [Page 17] Internet-Draft Numbering Exchange Protocol (NEP) January 2018 A.6. Router Left Message Section 2.2.2 allows a router to remove itself from a NEP network using a Router Left message. This section specifies their structure. Router Left messages have NEP type 7. 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router RID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | / Upper Layer Address / | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Omar & Camara Expires August 3, 2018 [Page 18]