idnits 2.17.1 draft-tokar-pce-sid-algo-04.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 (July 12, 2021) is 1018 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) == Outdated reference: A later version (-25) exists of draft-ietf-pce-segment-routing-ipv6-09 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 PCE Working Group A. Tokar 3 Internet-Draft S. Sidor 4 Intended status: Standards Track Cisco Systems, Inc. 5 Expires: January 13, 2022 S. Sivabalan 6 Ciena 7 S. Peng 8 Huawei Technologies 9 M. Negi 10 RtBrick Inc 11 July 12, 2021 13 Carrying SID Algorithm information in PCE-based Networks. 14 draft-tokar-pce-sid-algo-04 16 Abstract 18 The Algorithm associated with a prefix Segment-ID (SID) defines the 19 path computation Algorithm used by Interior Gateway Protocols (IGPs). 20 This information is available to controllers such as the Path 21 Computation Element (PCE) via topology learning. This document 22 proposes an approach for informing headend routers regarding the 23 Algorithm associated with each prefix SID used in PCE-computed paths, 24 as well as signalling a specific SID algorithm as a constraint to the 25 PCE. 27 Requirements Language 29 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 30 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 31 "OPTIONAL" in this document are to be interpreted as described in BCP 32 14 [RFC2119] [RFC8174] when, and only when, they appear in all 33 capitals, as shown here. 35 Status of This Memo 37 This Internet-Draft is submitted in full conformance with the 38 provisions of BCP 78 and BCP 79. 40 Internet-Drafts are working documents of the Internet Engineering 41 Task Force (IETF). Note that other groups may also distribute 42 working documents as Internet-Drafts. The list of current Internet- 43 Drafts is at https://datatracker.ietf.org/drafts/current/. 45 Internet-Drafts are draft documents valid for a maximum of six months 46 and may be updated, replaced, or obsoleted by other documents at any 47 time. It is inappropriate to use Internet-Drafts as reference 48 material or to cite them other than as "work in progress." 49 This Internet-Draft will expire on January 13, 2022. 51 Copyright Notice 53 Copyright (c) 2021 IETF Trust and the persons identified as the 54 document authors. All rights reserved. 56 This document is subject to BCP 78 and the IETF Trust's Legal 57 Provisions Relating to IETF Documents 58 (https://trustee.ietf.org/license-info) in effect on the date of 59 publication of this document. Please review these documents 60 carefully, as they describe your rights and restrictions with respect 61 to this document. Code Components extracted from this document must 62 include Simplified BSD License text as described in Section 4.e of 63 the Trust Legal Provisions and are provided without warranty as 64 described in the Simplified BSD License. 66 Table of Contents 68 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 69 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 70 3. Object Formats . . . . . . . . . . . . . . . . . . . . . . . 4 71 3.1. OPEN Object . . . . . . . . . . . . . . . . . . . . . . . 4 72 3.1.1. SR PCE Capability Sub-TLV . . . . . . . . . . . . . . 4 73 3.1.2. SRv6 PCE Capability sub-TLV . . . . . . . . . . . . . 4 74 3.2. SR-ERO Subobject . . . . . . . . . . . . . . . . . . . . 5 75 3.3. SRv6-ERO Subobject . . . . . . . . . . . . . . . . . . . 5 76 3.4. LSPA Object . . . . . . . . . . . . . . . . . . . . . . . 5 77 4. Operation . . . . . . . . . . . . . . . . . . . . . . . . . . 6 78 4.1. SR-ERO and SRv6-ERO Encoding . . . . . . . . . . . . . . 6 79 4.2. SID Algorithm Constraint . . . . . . . . . . . . . . . . 7 80 5. Security Considerations . . . . . . . . . . . . . . . . . . . 7 81 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 7 82 6.1. SR Capability Flag . . . . . . . . . . . . . . . . . . . 7 83 6.2. SRv6 PCE Capability Flag . . . . . . . . . . . . . . . . 7 84 6.3. SR-ERO Flag . . . . . . . . . . . . . . . . . . . . . . . 8 85 6.4. SRv6-ERO Flag . . . . . . . . . . . . . . . . . . . . . . 8 86 6.5. PCEP TLV Types . . . . . . . . . . . . . . . . . . . . . 8 87 7. Normative References . . . . . . . . . . . . . . . . . . . . 8 88 Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 9 89 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 91 1. Introduction 93 A PCE can compute SR-TE paths using SIDs with different Algorithms 94 depending on the use-case, constraints, etc. While this information 95 is available on the PCE, there is no method of conveying this 96 information to the headend router. 98 Similarly, the headend can also compute SR-TE paths using different 99 Algorithms, and this information also needs to be conveyed to the PCE 100 for collection or troubleshooting purposes. In addition, in the case 101 of multiple (redundant) PCEs, when the headend receives a path from 102 the primary PCE, it needs to be able to report the complete path 103 information - including the Algorithm - to the backup PCE so that in 104 HA scenarios, the backup PCE can verify the prefix SIDs 105 appropriately. 107 An operator may also want to constrain the path computed by the PCE 108 to a specific SID Algorithm, for example, in order to only use SID 109 Algorithms for a low-latency path. A new TLV is introduced for this 110 purpose. 112 Refer to [RFC8665] and [RFC8667] for details about the prefix SID 113 Algorithm. 115 This document is extending: 117 o the SR PCE Capability Sub-TLV and the SR-ERO subobject - defined 118 in [RFC8664] 120 o the SRv6 PCE Capability sub-TLV and the SRv6-ERO subobject - 121 defined in [I-D.ietf-pce-segment-routing-ipv6] 123 A new TLV for signalling SID Algorithm constraint to the PCE is also 124 introduced, to be carried inside the LSPA object, which is defined in 125 [RFC5440]. 127 The mechanisms described in this document are equally applicable to 128 both SR-MPLS and SRv6. 130 2. Terminology 132 The following terminologies are used in this document: 134 ERO: Explicit Route Object 136 IGP: Interior Gateway Protocol 138 NAI: Node or Adjacency Identifier. 140 PCE: Path Computation Element 142 PCEP: Path Computation Element Protocol. 144 SID: Segment Identifier. 146 SR: Segment Routing. 148 SR-TE: Segment Routing Traffic Engineering. 150 LSP: Label Switched Path. 152 LSPA: Label Switched Path Attributes. 154 3. Object Formats 156 3.1. OPEN Object 158 3.1.1. SR PCE Capability Sub-TLV 160 A new flag S is proposed in the SR PCE Capability Sub-TLV introduced 161 in Section 4.1.2 of [RFC8664] in Path Computation Element 162 Communication Protocol (PCEP) to indicate support for SID Algorithm 163 field in the SR-ERO subobject. 165 0 1 2 3 166 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 167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 168 | Type=26 | Length=4 | 169 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 170 | Reserved | Flags |S|N|X| MSD | 171 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 173 3.1.2. SRv6 PCE Capability sub-TLV 175 A new flag S is proposed in the SRv6 PCE Capability sub-TLV 176 introduced in 4.1.1 of [I-D.ietf-pce-segment-routing-ipv6] in Path 177 Computation Element Communication Protocol (PCEP) to indicate support 178 for SID Algorithm field in the SRv6-ERO subobject. 180 0 1 2 3 181 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 182 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 183 | Type=TBD1 | Length | 184 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 185 | Reserved | Flags |S|N|X| 186 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 187 | MSD-Type | MSD-Value | MSD-Type | MSD-Value | 188 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 189 // ... // 190 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 191 | MSD-Type | MSD-Value | Padding | 192 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 194 3.2. SR-ERO Subobject 196 The SR-ERO subobject encoding is extended with new flag "A" to 197 indicate if the Algorithm field is included after other optional 198 fields. 200 0 1 2 3 201 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 202 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 203 |L| Type=36 | Length | NT | Flags |A|V|F|S|C|M| 204 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 205 | SID (optional) | 206 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 207 // NAI (variable, optional) // 208 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 209 | Reserved | Algorithm | 210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 3.3. SRv6-ERO Subobject 214 The SRv6-ERO subobject encoding is extended with new flag "A" to 215 indicate if the Algorithm field is included after other optional 216 fields. 218 0 1 2 3 219 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 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 |L| Type=TBD3 | Length | NT | Flags |A|V|T|F|S| 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | Reserved | Endpoint Behavior | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 | | 226 | SRv6 SID (optional) | 227 | (128-bit) | 228 | | 229 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 230 // NAI (variable, optional) // 231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 | SID Structure (optional) | 233 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 | Reserved | Algorithm | 235 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 237 3.4. LSPA Object 239 A new TLV for the LSPA Object with TLV type=TBD3 is introduced to 240 carry the SID Algorithm constraint. This TLV SHOULD only be used 241 when PST (Path Setup type) = SR or SRv6. 243 The format of the SID Algorithm TLV is as follows: 245 0 1 2 3 246 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 247 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 248 | Type=TBD3 | Length=4 | 249 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 250 | Reserved | Flags |L| Algorithm | 251 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 253 Figure 1: SID Algorithm TLV Format 255 The code point for the TLV type is TBD3. The TLV length is 4 octets. 257 The 32-bit value is formatted as follows. 259 Reserved: MUST be set to zero by the sender and MUST be ignored by 260 the receiver. 262 Flags: This document defines the following flag bits. The other 263 bits MUST be set to zero by the sender and MUST be ignored by the 264 receiver. 266 * L (Loose): If set to 1, the PCE MAY insert SIDs with a 267 different Algorithm, but it MUST prefer the specified Algorithm 268 whenever possible. 270 Algorithm: SID Algorithm the PCE MUST take into acount while 271 computing a path for the LSP. 273 4. Operation 275 4.1. SR-ERO and SRv6-ERO Encoding 277 PCEP speaker MAY set the A flag and include the Algorithm field in 278 SR-ERO or SRv6-ERO subobject if the S flag was advertised by both 279 PCEP speakers. 281 If PCEP peer receives SR-ERO subobject with the A flag set or with 282 the SID Algorithm included, but the S flag was not advertised, then 283 such PCEP message must be rejected with PCError as described in 284 Section 7.2 of [RFC5440] 286 The Algorithm field MUST be included after optional SID, NAI or SID 287 structure and length of SR-ERO or SRv6-ERO subobject MUST be 288 increased with additional 4 bytes for Reserved and Algorithm field. 290 4.2. SID Algorithm Constraint 292 In order to signal a specific SID Algorithm constraint to the PCE, 293 the headend MUST encode the SID ALGORITHM TLV inside the LSPA object. 295 When the PCE receives a SID Algorithm constraint, it MUST only take 296 prefix SIDs with the specified Algorithm into account during path 297 computation. However, if the L flag is set in the SID Algorithm TLV, 298 the PCE MAY insert prefix SIDs with a different Algorithm in order to 299 successfully compute a path. 301 If the PCE is unable to find a path with the given SID Algorithm 302 constraint, it MUST bring the LSP down. 304 SID Algorithm does not replace the Objective Function defined in 305 [RFC5541]. The SID Algorithm constraint acts as a filter, 306 restricting which SIDs may be used as a result of the path 307 computation function. 309 5. Security Considerations 311 No additional security measure is required. 313 6. IANA Considerations 315 6.1. SR Capability Flag 317 IANA maintains a sub-registry, named "SR Capability Flag Field", 318 within the "Path Computation Element Protocol (PCEP) Numbers" 319 registry to manage the Flags field of the SR-PCE-CAPABILITY TLV. 320 IANA is requested to make the following assignment: 322 Value Description Reference 324 TBD1 SID Algorithm This document 325 Capability 327 6.2. SRv6 PCE Capability Flag 329 IANA was requested in [I-D.ietf-pce-segment-routing-ipv6] to create a 330 sub-registry, named "SRv6 PCE Capability Flags", within the "Path 331 Computation Element Protocol (PCEP) Numbers" registry to manage the 332 Flags field of SRv6-PCE-CAPABILITY sub-TLV. IANA is requested to 333 make the following assignment: 335 Value Description Reference 337 TBD2 SID Algorithm This document 338 Capability 340 6.3. SR-ERO Flag 342 IANA maintains a sub-registry, named "SR-ERO Flag Field", within the 343 "Path Computation Element Protocol (PCEP) Numbers" registry to manage 344 the Flags field of the SR-ERO Subobject. IANA is requested to make 345 the following assignment: 347 Value Description Reference 349 TBD3 SID Algorithm Flag This document 351 6.4. SRv6-ERO Flag 353 IANA was requested in [I-D.ietf-pce-segment-routing-ipv6], named 354 "SRv6-ERO Flag Field", within the "Path Computation Element Protocol 355 (PCEP) Numbers" registry to manage the Flags field of the SRv6-ERO 356 subobject. IANA is requested to make the following assignment: 358 Value Description Reference 360 TBD4 SID Algorithm Flag This document 362 6.5. PCEP TLV Types 364 IANA is requested to allocate a new TLV type for the new LSPA TLV 365 specified in this document. 367 Value Description Reference 369 TBD5 SID Algorithm This document 371 7. Normative References 373 [I-D.ietf-pce-segment-routing-ipv6] 374 Li, C., Negi, M., Sivabalan, S., Koldychev, M., 375 Kaladharan, P., and Y. Zhu, "PCEP Extensions for Segment 376 Routing leveraging the IPv6 data plane", draft-ietf-pce- 377 segment-routing-ipv6-09 (work in progress), May 2021. 379 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 380 Requirement Levels", BCP 14, RFC 2119, 381 DOI 10.17487/RFC2119, March 1997, 382 . 384 [RFC5440] Vasseur, JP., Ed. and JL. Le Roux, Ed., "Path Computation 385 Element (PCE) Communication Protocol (PCEP)", RFC 5440, 386 DOI 10.17487/RFC5440, March 2009, 387 . 389 [RFC5541] Le Roux, JL., Vasseur, JP., and Y. Lee, "Encoding of 390 Objective Functions in the Path Computation Element 391 Communication Protocol (PCEP)", RFC 5541, 392 DOI 10.17487/RFC5541, June 2009, 393 . 395 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 396 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 397 May 2017, . 399 [RFC8664] Sivabalan, S., Filsfils, C., Tantsura, J., Henderickx, W., 400 and J. Hardwick, "Path Computation Element Communication 401 Protocol (PCEP) Extensions for Segment Routing", RFC 8664, 402 DOI 10.17487/RFC8664, December 2019, 403 . 405 [RFC8665] Psenak, P., Ed., Previdi, S., Ed., Filsfils, C., Gredler, 406 H., Shakir, R., Henderickx, W., and J. Tantsura, "OSPF 407 Extensions for Segment Routing", RFC 8665, 408 DOI 10.17487/RFC8665, December 2019, 409 . 411 [RFC8667] Previdi, S., Ed., Ginsberg, L., Ed., Filsfils, C., 412 Bashandy, A., Gredler, H., and B. Decraene, "IS-IS 413 Extensions for Segment Routing", RFC 8667, 414 DOI 10.17487/RFC8667, December 2019, 415 . 417 Appendix A. Contributors 419 Mike Koldychev 420 Cisco Systems 421 Kanata, Ontario 422 Canada 424 Email: mkoldych@cisco.com 426 Authors' Addresses 427 Alex Tokar 428 Cisco Systems, Inc. 429 Eurovea Central 3. 430 Pribinova 10 431 Bratislava 811 09 432 Slovakia 434 Email: atokar@cisco.com 436 Samuel Sidor 437 Cisco Systems, Inc. 438 Eurovea Central 3. 439 Pribinova 10 440 Bratislava 811 09 441 Slovakia 443 Email: ssidor@cisco.com 445 Siva Sivabalan 446 Ciena 447 385 Terry Fox Drive 448 Kanata, Ontario K2K 0L1 449 Canada 451 Email: msiva282@gmail.com 453 Shuping Peng 454 Huawei Technologies 455 Huawei Campus, No. 156 Beiqing Rd. 456 Beijing 100095 457 China 459 Email: pengshuping@huawei.com 461 Mahendra Singh Negi 462 RtBrick Inc 463 Bangalore, Karnataka 464 India 466 Email: mahend.ietf@gmail.com