idnits 2.17.00 (12 Aug 2021) /tmp/idnits59826/draft-chunduri-lsr-ospf-preferred-path-routing-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (June 19, 2018) is 1432 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'I-D.chunduri-isis-preferred-path-routing' is mentioned on line 798, but not defined == Outdated reference: A later version (-07) exists of draft-chunduri-lsr-isis-preferred-path-routing-00 == Outdated reference: draft-ietf-6man-segment-routing-header has been published as RFC 8754 == Outdated reference: draft-ietf-ospf-ospfv3-lsa-extend has been published as RFC 8362 == Outdated reference: draft-ietf-ospf-ospfv3-segment-routing-extensions has been published as RFC 8666 == Outdated reference: draft-ietf-ospf-segment-routing-extensions has been published as RFC 8665 == Outdated reference: draft-ietf-spring-segment-routing has been published as RFC 8402 == Outdated reference: A later version (-07) exists of draft-li-ospf-ospfv3-srv6-extensions-01 Summary: 0 errors (**), 0 flaws (~~), 9 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 LSR Working Group U. Chunduri 3 Internet-Draft Y. Qu 4 Intended status: Standards Track Huawei USA 5 Expires: December 21, 2018 R. White 6 LinkedIn 7 J. Tantsura 8 Nuage Networks 9 L. Contreras 10 Telefonica 11 June 19, 2018 13 Preferred Path Routing (PPR) in OSPF 14 draft-chunduri-lsr-ospf-preferred-path-routing-00 16 Abstract 18 This document specifies a Preferred Path Routing (PPR) mechanism to 19 simplify the path description of data plane traffic in Segment 20 Routing (SR) deployments with OSPFv2 and OSPFv3 protocols. PPR aims 21 to mitigate the MTU and data plane processing issues that may result 22 from SR packet overheads; and also supports traffic measurement, 23 accounting statistics and further attribute extensions along the 24 paths. Preferred Path Routing is achieved through the addition of 25 descriptions to OSPF advertised prefixes, and mapping those to a PPR 26 data-plane identifier. 28 Requirements Language 30 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 31 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 32 document are to be interpreted as described in RFC2119 [RFC2119]. 34 Status of This Memo 36 This Internet-Draft is submitted in full conformance with the 37 provisions of BCP 78 and BCP 79. 39 Internet-Drafts are working documents of the Internet Engineering 40 Task Force (IETF). Note that other groups may also distribute 41 working documents as Internet-Drafts. The list of current Internet- 42 Drafts is at https://datatracker.ietf.org/drafts/current/. 44 Internet-Drafts are draft documents valid for a maximum of six months 45 and may be updated, replaced, or obsoleted by other documents at any 46 time. It is inappropriate to use Internet-Drafts as reference 47 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on December 21, 2018. 50 Copyright Notice 52 Copyright (c) 2018 IETF Trust and the persons identified as the 53 document authors. All rights reserved. 55 This document is subject to BCP 78 and the IETF Trust's Legal 56 Provisions Relating to IETF Documents 57 (https://trustee.ietf.org/license-info) in effect on the date of 58 publication of this document. Please review these documents 59 carefully, as they describe your rights and restrictions with respect 60 to this document. Code Components extracted from this document must 61 include Simplified BSD License text as described in Section 4.e of 62 the Trust Legal Provisions and are provided without warranty as 63 described in the Simplified BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 68 1.1. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . 3 69 2. OSPFv2 PPR TLV . . . . . . . . . . . . . . . . . . . . . . . 4 70 2.1. PPR-Flags . . . . . . . . . . . . . . . . . . . . . . . . 5 71 2.2. PPR-Prefix Sub-TLV . . . . . . . . . . . . . . . . . . . 6 72 2.3. PPR-ID Sub-TLV . . . . . . . . . . . . . . . . . . . . . 7 73 2.4. PPR-PDE Sub-TLV . . . . . . . . . . . . . . . . . . . . . 8 74 2.5. PPR-Attributes Sub-TLV . . . . . . . . . . . . . . . . . 10 75 3. OSPFv3 PPR TLV . . . . . . . . . . . . . . . . . . . . . . . 11 76 3.1. OSPFv3 PPR-Prefix Sub-TLV . . . . . . . . . . . . . . . . 12 77 3.2. OSPFv3 PPR-ID Sub-TLVs . . . . . . . . . . . . . . . . . 13 78 3.3. OSPFv3 PPR-PDE Sub-TLV . . . . . . . . . . . . . . . . . 15 79 3.4. OSPFv3 PPR-Attributes Sub-TLV . . . . . . . . . . . . . . 17 80 4. Other Considerations . . . . . . . . . . . . . . . . . . . . 18 81 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 18 82 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 83 7. Security Considerations . . . . . . . . . . . . . . . . . . . 19 84 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 85 8.1. Normative References . . . . . . . . . . . . . . . . . . 19 86 8.2. Informative References . . . . . . . . . . . . . . . . . 19 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 89 1. Introduction 91 In a network implementing Segment Routing (SR), packets are steered 92 through the network using Segment Identifiers (SIDs) carried in the 93 packet header. Each SID uniquely identifies a segment as defined in 94 [I-D.ietf-spring-segment-routing]. SR capabilities are defined for 95 MPLS and IPv6 data planes called SR-MPLS and SRv6 respectively. 97 In SR-MPLS, a segment is encoded as a label and an ordered list of 98 segments is encoded as a stack of labels on the data packet. In 99 SRv6, a segment is encoded as an IPv6 address, with in a new type of 100 IPv6 hop-by-hop routing header/extension header (EH) called SRH 101 [I-D.ietf-6man-segment-routing-header], where an ordered list of IPv6 102 addresses/segments is encoded in SRH. 104 The issues caused by the large SID depth, and existing methods for 105 mitigation are introduced in 106 [I-D.chunduri-lsr-isis-preferred-path-routing] section 1.2 and 1.3. 107 To mitigate these issues , and also to facilitate forwarding plane a 108 mechanism to identify the path with a corresponding data plane 109 identifier for accounting of traffic for SR paths, this draft 110 proposes a new OSPFv2 PPR TLV (Section 2), OSPFv3 PPR TLV (Section 3) 111 to use the path with a corresponding data plane identifier. 113 Preferred Path Routing means enabling route computation based on the 114 specific path described along with the prefix as opposed to shortest 115 path towards the prefix. This also further described in Section 2 of 116 [I-D.chunduri-lsr-isis-preferred-path-routing]. 118 Any prefix advertised with a path description from any node in the 119 network is called Preferred Path Route. A PPR could be an SR path, 120 an explicitly provisioned Fast Re-Route (FRR) path or a service 121 chained path. A PPR can be signaled by any node, which receives the 122 SR path computed by a central controller, or by operator by 123 statically configuring the same on a node in the network. 125 With corresponding data plane, Section 4 mechanism as in [I- 126 D.chunduri-isis-preferred-path-routing], reduces the SID stack in the 127 data plane with a single PPR ID. 129 1.1. Acronyms 131 EL - Entropy Label 133 ELI - Entropy Label Indicator 135 MPLS - Multi Protocol Label Switching 137 MSD - Maximum SID Depth 139 MTU - Maximum Transferrable Unit 141 NSP - Non Shortest Path 143 SID - Segment Identifier 144 SPF - Shortest Path First 146 SR - Segment Routing 148 SRH - Segment Routing Header 150 SR-MPLS - Segment Routing with MPLS data plane 152 SRv6 - Segment Routing with Ipv6 data plane with SRH 154 SRH - IPv6 Segment Routing Header 156 TE - Traffic Engineering 158 2. OSPFv2 PPR TLV 160 Extended Prefix Opaque LSAs defined in [RFC7684] are used for 161 advertisements of PPRs. This section describes the encoding of PPR 162 TLV. This TLV can be seen as having 4 logical section viz., encoding 163 of the OSPFv2 Prefix, encoding of PPR-ID, encoding of path 164 description with an ordered PDE Sub-TLVs and a set of optional PPR 165 attribute Sub-TLVs, which can be used to describe one or more 166 parameters of the path. Multiple OSPF PPR TLVs MAY be advertised in 167 each OSPF Extended Prefix Opaque LSA, but all TLVs included in a 168 single OSPF Extended Prefix Opaque LSA MUST have the same flooding 169 scope. 171 The PPR TLV has Type TBD (suggested value xxx), and has the following 172 format: 174 0 1 2 3 175 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 176 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 177 | Type | Length | 178 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 179 | PPR-Flags | AF | Reserved | 180 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 181 | PPR-Prefix Sub-TLV (variable size) | 182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 183 | PPR-ID Sub-TLV (variable size) | 184 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 185 | PPR-PDE Sub-TLVs (variable) | 186 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 187 | PPR-Attribute Sub-TLVs(variable) | 188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 190 Figure 1: OSPFV2 PPR TLV Format 192 o Type - TBD (IANA)from OSPF Extended Prefix Opaque LSA registry. 194 o Length - Total length of the value field in bytes (variable). 196 o PPR-Flags - 2 Octet flags for this TLV are described below. 198 o AF - Address family for the prefix. Currently, the only supported 199 value is 0 for IPv4 unicast. The inclusion of address family in 200 this TLV allows for future extension. 202 o Reserved - 1 Octet reserved bits for future use. Reserved bits 203 MUST be reset on transmission and ignored on receive. 205 o PPR-Prefix - This is a variable size Sub-TLV, which represents the 206 prefix for which path description is being attached to. This is 207 defined in Section 2.2. 209 o PPR-ID - This is a variable size Sub-TLV, which represents the 210 data plane or forwarding identifier of the PPR. This is defined 211 in Section 2.3. 213 o PPR-PDEs - Variable number of ordered PDE Sub-TLVs which 214 represents the path. This is defined in Section 2.4. 216 o PPR-Attributes - Variable number of PPR-Attribute Sub-TLVs which 217 represent the path attributes. These are defined in Section 2.5. 219 2.1. PPR-Flags 221 Flags: 2 octet field of PPR TLV has following flags defined: 223 NSPF ID Flags Format 224 0 1 2 3 4 5 6 7 15 225 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 226 |IA|A | Reserved | 227 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 229 w=Where: 231 IA-Flag: Inter-Area flag. If set, advertisement is of inter-area 232 type. An Area Boarder Router (ABR) that is advertising the OSPF 233 PPR TLV between areas MUST set this bit. 235 A: The originator of the PPR TLV MUST set the A bit in order to 236 signal that the prefixes and PPR-IDs advertised in the PPR TLV are 237 directly connected to the originators. If this bit is not set, 238 this allows any other node in the network advertise this TLV on 239 behalf of the originating node of the "OSPF Prefix". If PPR TLV 240 is propagated to other areas the A-flag MUST be cleared. In case 241 if the originating node of the prefix has to be disambiguated for 242 any reason including, if it is a Multi Homed Prefix (MHP) or 243 propagated to a different OSPF area, then PPR-Attribute Sub-TLV 244 Source Router ID SHOULD be included. 246 Reserved: Reserved bits for future use. Reserved bits MUST be 247 reset on transmission and ignored on receive. 249 2.2. PPR-Prefix Sub-TLV 251 The structure of PPR-Prefix, for which path description is attached 252 to is as follows: 254 0 1 2 3 255 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 256 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 257 | Type | Length | 258 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 259 | MT-ID | Prefix Length | Mask Length | Reserved | 260 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 261 // OSPFv2 Prefix (variable) // 262 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 263 | PPR-Prefix Sub-TLVs (variable) | 264 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 266 Figure 2: PPR-Prefix Sub-TLV Format 268 o Type - TBD (See IANA for suggested value) from OSPFv2 PPR TLV 269 Section 2 Sub-TLV registry. 271 o Length - Total length of the value field in bytes (variable). 273 o MT-ID - Multi-Topology ID (as defined in [RFC4915]). 275 o Prefix Len - contains the length of the prefix in bits. Only the 276 most significant octets of the Prefix are encoded. 278 o Mask Length - The length of the prefix in bits. Only the most 279 significant octets of the Prefix are encoded. 281 o OSPFv2 Prefix - represents the OSPFv2 prefix at the tail-end of 282 the advertised PPR. For the address family IPv4 unicast, the 283 prefix itself is encoded as a 32-bit value. The default route is 284 represented by a prefix of length 0. 286 o PPR-Prefix Sub-TLVs - TBD. It has 2 octet type, 2 octet length 287 and value field is defined per type. 289 2.3. PPR-ID Sub-TLV 291 This represents the actual data plane identifier in the packet and 292 could be of any data plane as defined in PPR-ID-type field. Both 293 OSPF Prefix and PPR-ID MUST belong to a same node in the network. 295 0 1 2 3 296 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 297 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 298 | Type | Length | 299 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 300 | PPR-ID Flags | PPR-ID Type | PPR-ID Length | 301 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 302 |PPR-ID Mask Len| Algo | PPR-ID // 303 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 304 // PPR-ID (cont., variable size) // 305 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 307 Figure 3: PPR-ID Sub-TLV Format 309 o Type - TBD (See IANA for suggested value) from OSPFv2 PPR TLV 310 Section 2 Sub-TLV registry. 312 o Length - Total length of the value field in bytes (variable). 314 o PPR-ID Type - Data plane type of PPR-ID. This is a new registry 315 (TBD IANA) for this Sub-TLV and the defined types are as follows: 317 a. Type: 1 MPLS SID/Label 319 b. Type: 2 Native IPv4 Address/Prefix 321 o PPR-ID Flags - 2 Octet field for PPR-ID flags: 323 PPR-ID Flags Format 325 0 1 2 3 4 5 6 7 15 326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 327 |L|A| Reserved | 328 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 330 1. L - If set, the PPR path is a Loose-PPR. If the flag is unset, 331 then the path described is a Strict-PPR. A Strict-PPR lists 332 every single node or adjacency in the path description from 333 source to the destination. 335 2. A - If set, all non-PPR path nodes in the OSPF area MUST add a 336 FIB entry for the PPR-ID with NH set to the shortest path NH for 337 the prefix being advertised. The use of this is TBD. By default 338 this MUST be unset. 340 3. Reserved - Reserved bits for future use. Reserved bits MUST be 341 reset on transmission and ignored on receive. 343 o PPR-ID Length - Length of the PPR-ID field in octets and this 344 depends on the PPR-ID type. See PPR-ID below for the length of 345 this field and other considerations. 347 o PPR-ID Mask Len - It is applicable for only for PPR-ID Type 2. 348 For Type 1 this value MUST be set to zero. It contains the length 349 of the PPR-ID Prefix in bits. Only the most significant octets of 350 the Prefix are encoded. This is needed, if PPR-ID followed is an 351 IPv4 Prefix instead of 4 octet Address respectively. 353 o Algo - 1 octet value represents the SPF algorithm. Algorithm 354 registry is as defined in 355 [I-D.ietf-ospf-segment-routing-extensions]. 357 o PPR-ID - This is the Preferred Path forwarding identifier that 358 would be on the data packet. The value of this field is variable 359 and it depends on the PPR-ID Type - for Type 1, this is and MPLS 360 SID/Label. For Type 2 this is a 4 byte IPv4 address. 362 2.4. PPR-PDE Sub-TLV 364 This is a new Sub-TLV type in PPR TLV Section 2 and is called as PPR 365 Path Description Element (PDE). PPR-PDEs are used to describe the 366 path in the form of set of contiguous and ordered Sub-TLVs, where 367 first Sub-TLV represents (the top of the stack in MPLS data plane or) 368 first node/segment of the path. These set of ordered Sub-TLVs can 369 have both topological SIDs and non-topological SIDs (e.g., service 370 segments). 372 0 1 2 3 373 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 374 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 375 | Type | Length | 376 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 377 | PPR-PDE Type | PDE-ID Type | PDE-ID Len | Reserved | 378 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 379 | PPR-PDE Flags | PDE-ID Value // 380 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 381 // PDE-ID Value (Contd., Variable size) // 382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 383 | PPR-PDE Sub-TLVs (variable) | 384 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 386 Figure 4: PPR-PDE Sub-TLV Format 388 o Type - TBD (See IANA for suggested value) from OSPFv2 PPR TLV 389 Section 2 Sub-TLV registry. 391 o Length - Total length of the value field in bytes (variable). 393 o PPR-PDE Type - This is a new registry (TBD IANA) for this Sub-TLV 394 and the defined types are as follows: 396 a. Type: 1 Topological 398 b. Type: 2 Non-Topological 400 o PDE-ID Type - 1 Octet PDE-forwarding IDentifier Type. This is a 401 new registry (TBD IANA) for this Sub-TLV and the defined types and 402 corresponding PDE-ID Len, PDE-ID Value are as follows: 404 a. Type 1: SID/Label Sub-TLV as defined in 405 [I-D.ietf-ospf-segment-routing-extensions]. PDE-ID Len and PDE- 406 ID Value fields are per Section 2.1 of the referenced document. 408 b. Type 2: SR-MPLS Prefix SID. PDE-ID Len and PDE-ID Value are same 409 as Type 1. 411 c. Type 3: SR-MPLS Adjacency SID. PDE-ID Len and PDE-ID Value are 412 same as Type 1. 414 d. Type 4: IPv4 Address. PDE-ID Len is 4 bytes and PDE-ID Value is 415 4 bytes IPv4 address encoded similar to IPv4 Prefix described in 416 Section 2.2. 418 o PDE-ID Len - 1 Octet. Length of PDE-ID field. 420 o Reserved - 1 Octet reserved bits for future use. Reserved bits 421 MUST be reset on transmission and ignored on receive. 423 o PPR-PDE Flags - 2 Octet flags for this TLV are described below: 425 PPR-PDE Flags Format 427 0 1 2 3 4 5 6 7... 15 428 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 429 |L|D| Reserved | 430 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 432 1. L: This bit indicates the type of next "Topological PDE-ID" in 433 the path description and overrides the L bit in Section 2.3. If 434 set, the next PDE is Loose. If this flag is unset, the next 435 Topological PDE is Strict Type. 437 2. D: By default this bit MUST be unset. This bit MUST be set only 438 for PPR-PDE Type is Topological and this PDE represents the PDE- 439 ID corresponding to the PPR-Prefix Section 2.2. 441 3. Reserved: Reserved bits for future use. Reserved bits MUST be 442 reset on transmission and ignored on receive. 444 o PPR-PDE Sub-TLVs - TBD. It has 2 octet type, 2 octet length and 445 value field is defined per type. 447 2.5. PPR-Attributes Sub-TLV 449 PPR-Attribute Sub-TLVs describe the attributes of the path. The 450 following Sub-TLVs draw from a new registry for Sub-TLV numbers; this 451 registry is to be created by IANA, and administered using the first 452 come first serve process: 454 o Type 1 (Suggested Value - IANA TBD): This is Packet Traffic 455 accounting Sub-TLV. Length 0 No value field. Specifies to create 456 a counter to count number of packets forwarded on this PPR-ID on 457 each node in the path description. 459 o Type 2 (Suggested Value - IANA TBD): This is Traffic statistics in 460 Bytes Sub-TLV. Length 0 No value field. Specifies to create a 461 counter to count number of bytes forwarded on this PPR-ID 462 specified in the network header (e.g. IPv4, IPv6) on each node in 463 the path description. 465 o Type 3 (Suggested Value - IANA TBD): PPR-Metric Sub-TLV. Length 4 466 bytes, and Value is metric of this path represented through the 467 PPR-ID. Different nodes can advertise the same PPR-ID for the 468 same Prefix with a different set of PPR-PDE Sub-TLVs and the 469 receiving node MUST consider the lowest metric value (TBD more, on 470 what happens when metric is same for two different set of PPR-PDE 471 Sub-TLVs). 473 3. OSPFv3 PPR TLV 475 The OSPFv3 PPR TLV s a top level TLV of the following LSAs defined in 476 [I-D.ietf-ospf-ospfv3-lsa-extend]. 478 E-Intra-Area-Prefix-LSA 480 E-Inter-Area-Prefix-LSA 482 E-AS-External-LSA 484 E-Type-7-LSA 486 Multiple OSPFv3 PPR TLVs MAY be advertised in each LSA mentioned 487 above. The OSPFv3 PPR TLV has the following format: 489 0 1 2 3 490 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 491 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 492 | Type | Length | 493 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 494 | PPR-Flags | AF | Reserved | 495 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 496 | OSPFv3 PPR-Prefix Sub-TLV (variable size) | 497 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 498 | PPR-ID Sub-TLV (variable size) | 499 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 500 | PPR-PDE Sub-TLVs (variable) | 501 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 502 | PPR-Attribute Sub-TLVs(variable) | 503 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 505 Figure 5: OSPFv3 PPR TLV Format 507 o Type - TBD (IANA)from OSPF Extended Prefix Opaque LSA registry. 509 o Length - Total length of the value field in bytes (variable). 511 o PPR-Flags - 2 Octet flags for this TLV are described below. 513 o AF: Address family for the prefix. 515 o 517 AF: 0 - IPv4 unicast 519 AF: 1 - IPv6 unicast 521 o Reserved - 1 Octet reserved bits for future use. Reserved bits 522 MUST be reset on transmission and ignored on receive. 524 Flags: 2 octet field. The following flags are defined: 526 OSPFv3 PPR Flags Format 528 0 1 2 3 4 5 6 7 15 529 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 530 |IA|A | Rsrvd | 531 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ 533 IA-Flag: Inter-Area flag. If set, advertisement is of inter-area 534 type. An ABR that is advertising the OSPF PPR TLV between areas 535 MUST set this bit. 536 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] 538 A: The originator of the PPR TLV MUST set the A bit in order to 539 signal that the prefixes and PPR-IDs advertised in the PPR TLV are 540 directly connected to the originators. If this bit is not set, 541 this allows any other node in the network advertise this TLV on 542 behalf of the originating node of the "OSPF Prefix". If PPR TLV 543 is propagated to other areas the A-flag MUST be cleared. In case 544 if the originating node of the prefix has to be disambiguated for 545 any reason including, if it is a Multi Homed Prefix (MHP) or 546 propagated to a different OSPF area, then PPR-Attribute Sub-TLV 547 Source Router ID SHOULD be included. 549 Rsrvd - reserved bits for future use. Reserved bits MUST be reset 550 on transmission and ignored on receive. 552 3.1. OSPFv3 PPR-Prefix Sub-TLV 554 The structure of OSPFv3 PPR-Prefix, for which path description is 555 attached to is as follows: 557 0 1 2 3 558 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 559 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 560 | Type | Length | 561 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 562 | Prefix Length | Mask Length | Reserved | 563 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 564 // OSPFv3 Prefix (variable) // 565 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 566 | PPR-Prefix Sub-TLVs (variable) | 567 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 569 Figure 6: OSPFv3 PPR-Prefix Sub-TLV Format 571 o Type - TBD (See IANA for suggested value) from OSPFv3 PPR TLV 572 Section 3 Sub-TLV registry. 574 o Length - Total length of the value field in bytes (variable). 576 o Prefix Len - contains the length of the prefix in bits. Only the 577 most significant octets of the Prefix are encoded. 579 o Mask Length - The length of the prefix in bits. Only the most 580 significant octets of the Prefix are encoded. 582 o OSPFv3 Prefix - represents the OSPFv3 prefix at the tail-end of 583 the advertised PPR. For the address family IPv4 unicast, the 584 prefix itself is encoded as a 32-bit value. The default route is 585 represented by a prefix of length 0. For the address family (AF 586 in OSPFv3 PPR TLV) in IPv6 unicast, the prefix, encoded as an even 587 multiple of 32-bit words, padded with zeroed bits as necessary. 588 This encoding consumes ((PrefixLength + 31) / 32) 32-bit words. 590 o PPR-Prefix Sub-TLVs - TBD. It has 2 octet type, 2 octet length 591 and value field is defined per type. 593 3.2. OSPFv3 PPR-ID Sub-TLVs 595 This represents the actual data plane identifier in the packet and 596 could be of any data plane as defined in PPR-ID-type field. Both 597 OSPF Prefix and PPR-ID MUST belong to a same node in the network. 599 0 1 2 3 600 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 601 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 602 | Type | Length | 603 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 604 | PPR-ID Flags | PPR-ID Type | PPR-ID Length | 605 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 606 |PPR-ID Mask Len| Algo | PPR-ID // 607 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 608 // PPR-ID (cont, variable size) // 609 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 611 Figure 7: OSPFv3 PPR-ID Sub-TLV Format 613 o Type - TBD (See IANA for suggested value) from OSPFv3 PPR TLV 614 Section 3 Sub-TLV registry. 616 o Length - Total length of the value field in bytes (variable). 618 o PPR-ID Type - Data plane type of PPR-ID. This is a new registry 619 (TBD IANA) for this Sub-TLV and the defined types are as follows: 621 a. Type: 1 MPLS SID/Label 623 b. Type: 2 Native IPv4 Address/Prefix 625 c. Type: 3 Native IPv6 Address/Prefix 627 d. Type: 4 IPv6 SID in SRv6 with SRH 629 o PPR-ID Flags - 2 Octet field for PPR-ID flags: 631 PPR-ID Flags Format 633 0 1 2 3 4 5 6 7 15 634 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 635 |L|A| Rsrvd | 636 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 638 1. L - If set, the PPR path is a Loose-PPR. If the flag is unset, 639 then the path described is a Strict-PPR. A Strict-PPR lists 640 every single node or adjacency in the path description from 641 source to the destination. 643 2. A - If set, all non-PPR path nodes in the OSPF area MUST add a 644 FIB entry for the PPR-ID with NH set to the shortest path NH for 645 the prefix being advertised. The use of this is TBD. By default 646 this MUST be unset. 648 3. Reserved - Reserved bits for future use. Reserved bits MUST be 649 reset on transmission and ignored on receive. 651 o PPR-ID Length - Length of the PPR-ID field in octets and this 652 depends on the PPR-ID type. See PPR-ID below for the length of 653 this field and other considerations. 655 o PPR-ID Mask Len - It is applicable for only for PPR-ID Type 2, 3 656 and 4. For Type 1 this value MUST be set to zero. It contains 657 the length of the PPR-ID Prefix in bits. Only the most 658 significant octets of the Prefix are encoded. This is needed, if 659 PPR-ID followed is an IPv4/IPv6 Prefix instead of 4/16 octet 660 Address respectively. 662 o Algo - 1 octet value represents the SPF algorithm. Algorithm 663 registry is as defined in 664 [I-D.ietf-ospf-ospfv3-segment-routing-extensions]. 666 o PPR-ID - This is the Preferred Path forwarding identifier that 667 would be on the data packet. The value of this field is variable 668 and it depends on the PPR-ID Type - for Type 1, this is and MPLS 669 SID/Label. For Type 2 this is a 4 byte IPv4 address. For Type 3 670 this is a 16 byte IPv6 address. For Type 2 and Type 3 encoding is 671 similar to OSPF Prefix as specified in Section 2.2. For Type 4, 672 it is a 16 byte IPv6 SID. 674 3.3. OSPFv3 PPR-PDE Sub-TLV 676 This is a new Sub-TLV type in PPR TLV Section 3 and is called as PPR 677 Path Description Element (PDE). PPR-PDEs are used to describe the 678 path in the form of set of contiguous and ordered Sub-TLVs, where 679 first Sub-TLV represents (the top of the stack in MPLS data plane or) 680 first node/segment of the path. These set of ordered Sub-TLVs can 681 have both topological SIDs and non-topological SIDs (e.g., service 682 segments). 684 0 1 2 3 685 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 686 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 687 | Type | Length | 688 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 689 | PPR-PDE Type | PDE-ID Type | PDE-ID Len | Reserved | 690 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 691 | PPR-PDE Flags | PDE-ID Value // 692 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 693 // PDE-ID Value (Contd., Variable size) // 694 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 695 | PPR-PDE Sub-TLVs (variable) | 696 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 698 Figure 8: OSPFv3 PPR-PDE Sub-TLV Format 700 o Type - TBD (See IANA for suggested value) from OSPFv3 PPR TLV 701 Section 3 Sub-TLV registry. 703 o Length - Total length of the value field in bytes (variable). 705 o PPR-PDE Type - This is a new registry (TBD IANA) for this Sub-TLV 706 and the defined types are as follows: 708 a. Type: 1 Topological 710 b. Type: 2 Non-Topological 712 o PDE-ID Type - 1 Octet PDE-forwarding IDentifier Type. This is a 713 new registry (TBD IANA) for this Sub-TLV and the defined types and 714 corresponding PDE-ID Len, PDE-ID Value are as follows: 716 a. Type 1: SID/Label Sub-TLV as defined in 717 [I-D.ietf-ospf-segment-routing-extensions]. PED-ID Len and PDE- 718 ID Value fields are per Section 2.1 of the referenced document. 720 b. Type 2: SR-MPLS Prefix SID. PDE-ID Len and PDE-ID Value are same 721 as Type 1. 723 c. Type 3: SR-MPLS Adjacency SID. PDE-ID Len and PDE-ID Value are 724 same as Type 1. 726 d. Type 4: IPv4 Address. PDE-ID Len is 4 bytes and PDE-ID Value is 727 4 bytes IPv4 address encoded similar to IPv4 Prefix described in 728 Section 2.2. 730 e. Type 5: IPv6 Address. PDE-ID Len is 16 bytes and PDE-ID Value is 731 16 bytes IPv6 address encoded similar to IPv6 Prefix described in 732 Section 2.2. 734 f. Type 6: SRv6 Node SID as defined in 735 [I-D.li-ospf-ospfv3-srv6-extensions]. PDE-ID Len and PDE-ID 736 Value are as defined in SRv6 SID. 738 g. Type 7: SRv6 Adjacency-SID. PDE-ID Len and PDE-ID Value are as 739 defined in Type 6. 741 o PDE-ID Len - 1 Octet. Length of PDE-ID field. 743 o Reserved - 1 Octet reserved bits for future use. Reserved bits 744 MUST be reset on transmission and ignored on receive. 746 o PPR-PDE Flags - 2 Octet flags for this TLV are described below: 748 PPR-PDE Flags Format 750 0 1 2 3 4 5 6 7... 15 751 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 752 |L|D| Rsrvd | 753 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 755 1. L - This bit indicates the type of next "Topological PDE-ID" in 756 the path description and overrides the L bit in Section 3.2. If 757 set, the next PDE is Loose. If this flag is unset, the next 758 Topological PDE is Strict Type. 760 2. D - By default this bit MUST be unset. This bit MUST be set only 761 for PPR-PDE Type is Topological and this PDE represents the PDE- 762 ID corresponding to the PPR-Prefix Section 3.1. 764 3. Rsrvd - Reserved bits for future use. Reserved bits MUST be 765 reset on transmission and ignored on receive. 767 o PPR-PDE Sub-TLVs - TBD. It has 2 octet type, 2 octet length and 768 value field is defined per type. 770 3.4. OSPFv3 PPR-Attributes Sub-TLV 772 PPR-Attribute Sub-TLVs describe the attributes of the path. The 773 following Sub-TLVs draw from a new registry for Sub-TLV numbers; this 774 registry is to be created by IANA, and administered using the first 775 come first serve process: 777 o Type 1 (Suggested Value - IANA TBD): This is Packet Traffic 778 accounting Sub-TLV. Length 0 No value field. Specifies to create 779 a counter to count number of packets forwarded on this PPR-ID on 780 each node in the path description. 782 o Type 2 (Suggested Value - IANA TBD): This is Traffic statistics in 783 Bytes Sub-TLV. Length 0 No value field. Specifies to create a 784 counter to count number of bytes forwarded on this PPR-ID 785 specified in the network header (e.g. IPv4, IPv6) on each node in 786 the path description. 788 o Type 3 (Suggested Value - IANA TBD): PPR-Metric Sub-TLV. Length 4 789 bytes, and Value is metric of this path represented through the 790 PPR-ID. Different nodes can advertise the same PPR-ID for the 791 same Prefix with a different set of PPR-PDE Sub-TLVs and the 792 receiving node MUST consider the lowest metric value (TBD more, on 793 what happens when metric is same for two different set of PPR-PDE 794 Sub-TLVs). 796 4. Other Considerations 798 Please refer to [I-D.chunduri-isis-preferred-path-routing] section 3, 799 4 and 5. 801 5. Acknowledgements 803 Thanks to Richard Li, Alex Clemm, Padma Pillay-Esnault, Toerless 804 Eckert, Kiran Makhijani and Lin Han for initial discussions on this 805 topic. Thanks to Kevin Smith and Stephen Johnson for various 806 deployment scenarios applicability from ETSI WGs perspective. 807 Authors also acknowledge Alexander Vainshtein for detailed 808 discussions and suggestions on this topic. 810 Earlier versions of draft-ietf-ospf-segment-routing-extensions have a 811 mechanism to advertise EROs through Binding SID. 813 6. IANA Considerations 815 This document requests the following new TLV in IANA OSPFv2 and 816 OSPFv3 TLV code-point registry as specified in Section 2 Section 3 817 respectively . 819 TLV # Name 820 ----- -------------- 821 TBD PPR TLV 823 This document also requests IANA to create new registries for PPR TLV 824 Flags field, PPR Flags, and PPR Sub-TLVs in PPR TLV as described in 825 Section 2 and Section 3. 827 7. Security Considerations 829 Existing security extensions as described in [RFC2328] and [RFC7684] 830 apply to these segment routing extensions. While OSPF is under a 831 single administrative domain, there can be deployments where 832 potential attackers have access to one or more networks in the OSPF 833 routing domain. In these deployments, stronger authentication 834 mechanisms such as those specified in [RFC7474] SHOULD be used. 836 Advertisement of the additional information defined in this document 837 introduces no new security concerns in OSPF protocol. However as 838 this extension is related to SR-MPLS and SRH data planes as defined 839 in [I-D.ietf-spring-segment-routing], those particular data plane 840 security considerations does apply here. 842 8. References 844 8.1. Normative References 846 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 847 Requirement Levels", BCP 14, RFC 2119, 848 DOI 10.17487/RFC2119, March 1997, 849 . 851 [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, 852 DOI 10.17487/RFC2328, April 1998, 853 . 855 8.2. Informative References 857 [I-D.chunduri-lsr-isis-preferred-path-routing] 858 Chunduri, U., Li, R., White, R., Tantsura, J., Contreras, 859 L., and Y. Qu, "Preferred Path Routing (PPR) in IS-IS", 860 draft-chunduri-lsr-isis-preferred-path-routing-00 (work in 861 progress), June 2018. 863 [I-D.ietf-6man-segment-routing-header] 864 Previdi, S., Filsfils, C., Leddy, J., Matsushima, S., and 865 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 866 (SRH)", draft-ietf-6man-segment-routing-header-13 (work in 867 progress), May 2018. 869 [I-D.ietf-ospf-ospfv3-lsa-extend] 870 Lindem, A., Roy, A., Goethals, D., Vallem, V., and F. 871 Baker, "OSPFv3 LSA Extendibility", draft-ietf-ospf-ospfv3- 872 lsa-extend-23 (work in progress), January 2018. 874 [I-D.ietf-ospf-ospfv3-segment-routing-extensions] 875 Psenak, P., Filsfils, C., Previdi, S., Gredler, H., 876 Shakir, R., Henderickx, W., and J. Tantsura, "OSPFv3 877 Extensions for Segment Routing", draft-ietf-ospf-ospfv3- 878 segment-routing-extensions-13 (work in progress), May 879 2018. 881 [I-D.ietf-ospf-segment-routing-extensions] 882 Psenak, P., Previdi, S., Filsfils, C., Gredler, H., 883 Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 884 Extensions for Segment Routing", draft-ietf-ospf-segment- 885 routing-extensions-25 (work in progress), April 2018. 887 [I-D.ietf-spring-segment-routing] 888 Filsfils, C., Previdi, S., Ginsberg, L., Decraene, B., 889 Litkowski, S., and R. Shakir, "Segment Routing 890 Architecture", draft-ietf-spring-segment-routing-15 (work 891 in progress), January 2018. 893 [I-D.li-ospf-ospfv3-srv6-extensions] 894 Li, Z., Hu, Z., Cheng, D., Talaulikar, K., and P. Psenak, 895 "OSPFv3 Extensions for SRv6", draft-li-ospf- 896 ospfv3-srv6-extensions-01 (work in progress), March 2018. 898 [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. 899 Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", 900 RFC 4915, DOI 10.17487/RFC4915, June 2007, 901 . 903 [RFC7474] Bhatia, M., Hartman, S., Zhang, D., and A. Lindem, Ed., 904 "Security Extension for OSPFv2 When Using Manual Key 905 Management", RFC 7474, DOI 10.17487/RFC7474, April 2015, 906 . 908 [RFC7684] Psenak, P., Gredler, H., Shakir, R., Henderickx, W., 909 Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute 910 Advertisement", RFC 7684, DOI 10.17487/RFC7684, November 911 2015, . 913 Authors' Addresses 915 Uma Chunduri 916 Huawei USA 917 2330 Central Expressway 918 Santa Clara, CA 95050 919 USA 921 Email: uma.chunduri@huawei.com 923 Yingzhen Qu 924 Huawei USA 925 2330 Central Expressway 926 Santa Clara, CA 95050 927 USA 929 Email: yingzhen.qu@huawei.com 931 Russ White 932 LinkedIn 933 Oak Island, NC 28465 934 USA 936 Email: russ@riw.us 938 Jeff Tantsura 939 Nuage Networks 940 755 Ravendale Drive 941 Mountain View, CA 94043 942 USA 944 Email: jefftant.ietf@gmail.com 946 Luis M. Contreras 947 Telefonica 948 Sur-3 building, 3rd floor 949 Madrid 28050 950 Spain 952 Email: luismiguel.contrerasmurillo@telefonica.com