idnits 2.17.1 draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-06.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 : ---------------------------------------------------------------------------- ** There are 4 instances of too long lines in the document, the longest one being 7 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (24 November 2021) is 877 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) No issues found here. Summary: 1 error (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Work group N. Nainar, Ed. 3 Internet-Draft C. Pignataro, Ed. 4 Intended status: Standards Track Z. Ali 5 Expires: 28 May 2022 C. Filsfils 6 Cisco 7 T. Saad 8 Juniper 9 24 November 2021 11 Segment Routing Generic TLV for MPLS Label Switched Path (LSP) Ping/ 12 Traceroute 13 draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-06 15 Abstract 17 RFC8402 introduces Segment Routing architecture that leverages source 18 routing and tunneling paradigms and can be directly applied to the 19 Multi Protocol Label Switching (MPLS) data plane. A node steers a 20 packet through a controlled set of instructions called segments, by 21 prepending the packet with Segment Routing header. SR architecture 22 defines different types of segments with different forwarding 23 semantics associated. SR can be applied to the MPLS directly and to 24 IPv6 dataplane using a new routing header. 26 RFC8287 defines the extensions to MPLS LSP Ping and Traceroute for 27 Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifier 28 (SIDs) with an MPLS data plane. Various SIDs are proposed as part of 29 SR architecture with different associated instructions that raises a 30 need to come up with new Target FEC Stack Sub-TLV for each such SIDs. 32 This document defines a new Target FEC Stack Sub-TLV that is used to 33 validate the instruction associated with any SID. 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 28 May 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 (https://trustee.ietf.org/ 58 license-info) in effect on the date of publication of this document. 59 Please review these documents carefully, as they describe your rights 60 and restrictions with respect to this document. Code Components 61 extracted from this document must include Revised BSD License text as 62 described in Section 4.e of the Trust Legal Provisions and are 63 provided without warranty as described in the Revised BSD License. 65 Table of Contents 67 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 68 1.1. Challenges with Existing Mechanism . . . . . . . . . . . 3 69 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 4 70 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 71 4. Target FEC Stack sub-TLV for Segment Routing SID . . . . . . 4 72 4.1. Segment Routing Generic Label . . . . . . . . . . . . . . 4 73 4.2. FEC for Path validation . . . . . . . . . . . . . . . . . 4 74 5. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 5 75 5.1. SID to Interface Mapping . . . . . . . . . . . . . . . . 5 76 5.2. Initiator behavior . . . . . . . . . . . . . . . . . . . 6 77 5.2.1. SRGL in Target FEC Stack TLV . . . . . . . . . . . . 6 78 5.3. Responder behavior . . . . . . . . . . . . . . . . . . . 7 79 5.4. PHP flag behavior . . . . . . . . . . . . . . . . . . . . 7 80 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 81 6.1. New Target FEC Stack Sub-TLVs . . . . . . . . . . . . . . 8 82 6.2. Security Considerations . . . . . . . . . . . . . . . . . 8 83 7. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 8 84 8. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 85 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 86 9.1. Normative References . . . . . . . . . . . . . . . . . . 8 87 9.2. Informative References . . . . . . . . . . . . . . . . . 9 88 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 90 1. Introduction 92 [RFC8402] introduces and describes a Segment Routing architecture 93 that leverages the source routing and tunneling paradigms. A node 94 steers a packet through a controlled set of instructions called 95 segments, by prepending the packet with Segment Routing header. A 96 detailed definition of the Segment Routing architecture is available 97 in [RFC8402] 99 As described in [RFC8402] and [I-D.ietf-spring-segment-routing-mpls], 100 the Segment Routing architecture can be directly applied to an MPLS 101 data plane, the Segment identifier (Segment ID) will be of 20-bits 102 size and the Segment Routing header is the label stack. 104 1.1. Challenges with Existing Mechanism 106 [RFC8287] defines the mechanism to perform LSP Ping and Traceroute 107 for Segment Routing with MPLS data plane. [RFC8287] defines the 108 Target FEC Stack Sub-TLVs for IGP-Prefix Segment ID and IGP-Adjacency 109 Segment ID. 111 There are various other Segment IDs proposed by different documents 112 that are applicable for SR architecture. 113 [I-D.ietf-idr-bgp-prefix-sid] defines BGP Prefix Segment ID, 114 [I-D.ietf-idr-bgpls-segment-routing-epe] defines BGP Peering Segment 115 ID such as Peer Node SID, Peer Adj SID and Peer Set SID. 116 [I-D.sivabalan-pce-binding-label-sid] defines Path Binding Segment 117 ID. As SR evolves for different usecases, we may see more types of 118 SIDs defined in the future. This raises a need to propose new Target 119 FEC Stack Sub-TLV for each such Segment ID that may need specific or 120 network wide software upgrade to support such new Target FEC Stack 121 Sub-TLVs. 123 So instead of proposing different Target FEC Stack Sub-TLV for each 124 SID, this document attempt to propose a SR Generic Label Sub-TLV for 125 Target FEC Stack TLV with the procedure to validate the associated 126 instruction. 128 This document describes the new Target FEC Stack Sub-TLV that carries 129 the SID and the procedure to use LSP Ping and Traceroute using the 130 new sub-tlv to support path validation and fault isolation for any SR 131 Segment IDs. This document neither deprecates any existing Target 132 FEC Stack Sub-TLVs nor precludes defining new Sub-TLVs in the future. 134 2. Requirements notation 136 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 137 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 138 "OPTIONAL" in this document are to be interpreted as described in RFC 139 2119 [RFC2119] RFC 8174 [RFC8174] when and only when, they appear in 140 all capitals, as shown here. 142 3. Terminology 144 This document uses the terminologies defined in [RFC8402], [RFC8029], 145 readers are expected to be familiar with it. 147 4. Target FEC Stack sub-TLV for Segment Routing SID 149 Following the procedure defined in [RFC8029], below defined Target 150 FEC Stack Sub-TLV will be included for each labels in the stack. The 151 below Sub-TLV is defined for Target FEC Stack TLV (Type 1), the 152 Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path TLV 153 (Type 21). 155 sub-Type Value Field 156 -------- --------------- 157 TBD1 Segment Routing Generic Label (SRGL) 159 4.1. Segment Routing Generic Label 161 The format of the Sub-TLV is as specified below: 163 0 1 2 3 164 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 165 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 166 | SR SID | 167 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 169 SR SID 171 Carries 20 bits of Segment ID that is used for validating the 172 instruction. 174 4.2. FEC for Path validation 176 In SR architecture, any SID is associated with topology or service 177 instruction. While the topology instruction steers the packet over 178 best path or specific path, the service instruction instructs the 179 type of service to be applied on the packet. 181 R3-------R6 L1 182 / \ +-------+ 183 / \ | L2 | 184 R1----R2 R7------R8 185 \ / 186 \ / 187 R4-------R5 189 Figure 1: Segment Routing network 191 The Node Segment IDs for Rx for Algo 0 is 16000x. (Ex: For R1, it is 160001) 192 The Node Segment IDs for Rx for Algo 128 is 16128x. (Ex: For R1, it is 161281) 194 9178 --> Adjacency Segment ID from R7 to R8 over link L1. 195 9278 --> Adjacency Segment ID from R7 to R8 over link L2. 196 9378 --> Parallel Adjacency Segment ID from R7 to R8 over Link L1 or L2. 197 9187 --> Adjacency Segment ID from R8 to R7 over link L1. 198 9287 --> Adjacency Segment ID from R8 to R7 over link L2. 199 9387 --> Parallel Adjacency Segment ID from R8 to R7 over Link L1 or L2. 201 The instruction associated with any SID can be validated by verifying 202 if the segment is terminated on the correct node and optionally 203 received over the correct incoming interface. In Figure 1, inorder 204 to validate the SID 9178, R1 can use {(SID=9178)} as FEC in Target 205 FEC Stack Sub-TLV. 207 5. Procedures 209 This section describes the procedure to validate SR Generic Label 210 Sub-TLV. 212 5.1. SID to Interface Mapping 214 Any End point MAY maintain a SID to Interface mapping table that 215 maintains the below: 217 * All the local Prefix/Node SID with any SR enabled interface as 218 incoming interface. 220 * All the Adj-SIDs assigned by directly connected neighbor nodes 221 with the relevant interface incoming interface. 223 In Figure 1, R8 maintains 160008 and 161288 with Incoming interface 224 as any SR enabled interface. Similarly, R8 maintains 9178 with Link 225 L1 as incoming interface, 9278 with Link L2 as incoming interface and 226 9378 with Link L1 or L2 as incoming interface. 228 How this mapping is populated and maintained is a local 229 implementation matter. It can be populated based on the IGP database 230 or can be based on a query to Path Computation Element (PCE) 231 controller. The mapping can be persistent or on-demand triggered by 232 receiving LSP Ping Request. 234 5.2. Initiator behavior 236 This section defines the Target FEC Stack TLV construction mechanism 237 by an initiator when using SR Generic Label Sub-TLV. 239 Ping 241 - Initiator MUST include FEC(s) corresponding to the destination 242 segment. 244 - Initiator MAY include FECs corresponding to some or all of 245 segments imposed in the label stack by the initiator to 246 communicate the segments traversed. 248 Traceroute 250 - Initiator MUST initially include FECs corresponding to all of 251 segments imposed in the label stack. 253 - When a received echo reply contains FEC Stack Change TLV with 254 one or more of original segment(s) being popped, initiator MAY 255 remove corresponding FEC(s) from Target FEC Stack TLV in the 256 next (TTL+1) traceroute request as defined in section 4.6 of 257 [RFC8029]. 259 - When a received echo reply does not contain FEC Stack Change 260 TLV, initiator MUST NOT attempt to remove FEC(s) from Target 261 FEC Stack TLV in the next (TTL+1) traceroute request. 263 5.2.1. SRGL in Target FEC Stack TLV 265 When the last segment ID in the label stack is IGP Prefix SID, Adj- 266 SID, Binding SID, BGP Prefix SID or BGP Peering SID, set the SR SID 267 field to the Segment ID value advertised by the LSP End Point. When 268 the SID is advertised as index, the Segment ID value MUST be derived 269 based on the index and the SRGB advertised by the LSP End Point. 271 How the above values are derived is a local implementation matter. 272 It can be manually defined using CLI knob while triggering the LSP 273 Ping Request or can use other mechanisms like querying the local 274 database. 276 5.3. Responder behavior 278 Step 4a defined in Section 7.4 of [RFC8287] is updated as below: 280 If the Label-stack-depth is 0 and Target FEC Stack Sub-TLV at FEC- 281 stack-depth is TBD1 (SRGL) { 283 - Set the Best-return-code to 10 when the responding node is not 284 the LSP End Point for SR SID. 286 - Set the Best-return-code to 35, if Interface-I does not match 287 the SID to Interface mapping for the received SR SID. 289 - set FEC-Status to 1, and return. 291 } 293 If the Label-stack-depth is greater than 0 and Target FEC Stack 294 Sub-TLV at FEC-stack-depth is TBD1 (SRGL), { 296 - If the Label at Label-stack-depth is Imp-null { 298 o Set the Best-return-code to 10 when the responding node is 299 not the LSP End Point for the SR SID. 301 o Set the Best-return-code to 35, if Interface-I does not 302 match the SID to Interface mapping for the received SR SID. 304 o set FEC-Status to 1, and return. 306 } 308 - Else: 310 o Set the Best-return-code to 10 when the index derived from 311 the label at Label-stack-depth is not advertised by LSP End 312 Point. 314 o set FEC-Status to 1, and return. 316 } 318 5.4. PHP flag behavior 320 Section 7.2 of [RFC8287] explains the behavior for FEC stack change 321 for Adjacency Segment ID. The same procedure is applicable for BGP 322 Peering SID as well. 324 6. IANA Considerations 326 6.1. New Target FEC Stack Sub-TLVs 328 IANA is requested to assign three new Sub-TLVs from "Sub-TLVs for TLV 329 Types 1, 16 and 21" sub-registry from the "Multi-Protocol Label 330 Switching (MPLS) Label Switched Paths (LSPs) Ping Parameters" 331 [IANA-MPLS-LSP-PING] registry. 333 Sub-Type Sub-TLV Name Reference 334 -------- ----------------- ------------ 335 TBD1 Segment Routing Generic Label Section 4.1 of this document 337 6.2. Security Considerations 339 This document defines additional MPLS LSP Ping Sub-TLVs and follows 340 the mechanisms defined in [RFC8029]. All the security considerations 341 defined in [RFC8029] will be applicable for this document, and in 342 addition, they do not impose any additional security challenges to be 343 considered. 345 7. Acknowledgement 347 TBD 349 8. Contributors 351 Danial Johari, Cisco Systems 353 9. References 355 9.1. Normative References 357 [I-D.ietf-idr-bgp-prefix-sid] 358 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 359 and H. Gredler, "Segment Routing Prefix Segment Identifier 360 Extensions for BGP", Work in Progress, Internet-Draft, 361 draft-ietf-idr-bgp-prefix-sid-27, 26 June 2018, 362 . 365 [I-D.ietf-idr-bgpls-segment-routing-epe] 366 Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, 367 S., and J. Dong, "Border Gateway Protocol - Link State 368 (BGP-LS) Extensions for Segment Routing BGP Egress Peer 369 Engineering", Work in Progress, Internet-Draft, draft- 370 ietf-idr-bgpls-segment-routing-epe-19, 16 May 2019, 371 . 374 [I-D.sivabalan-pce-binding-label-sid] 375 Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J., 376 Previdi, S., and C. Li, "Carrying Binding Label/Segment-ID 377 in PCE-based Networks.", Work in Progress, Internet-Draft, 378 draft-sivabalan-pce-binding-label-sid-07, 8 July 2019, 379 . 382 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 383 Requirement Levels", BCP 14, RFC 2119, 384 DOI 10.17487/RFC2119, March 1997, 385 . 387 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 388 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 389 Switched (MPLS) Data-Plane Failures", RFC 8029, 390 DOI 10.17487/RFC8029, March 2017, 391 . 393 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 394 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 395 May 2017, . 397 [RFC8287] Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya, 398 N., Kini, S., and M. Chen, "Label Switched Path (LSP) 399 Ping/Traceroute for Segment Routing (SR) IGP-Prefix and 400 IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data 401 Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017, 402 . 404 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 405 Decraene, B., Litkowski, S., and R. Shakir, "Segment 406 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 407 July 2018, . 409 9.2. Informative References 411 [I-D.ietf-spring-segment-routing-mpls] 412 Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., 413 Litkowski, S., and R. Shakir, "Segment Routing with the 414 MPLS Data Plane", Work in Progress, Internet-Draft, draft- 415 ietf-spring-segment-routing-mpls-22, 1 May 2019, 416 . 419 [IANA-MPLS-LSP-PING] 420 IANA, "Multi-Protocol Label Switching (MPLS) Label 421 Switched Paths (LSPs) Ping Parameters", 422 . 425 Authors' Addresses 427 Nagendra Kumar Nainar (editor) 428 Cisco Systems, Inc. 429 7200-12 Kit Creek Road 430 Research Triangle Park, NC 27709-4987 431 United States of America 433 Email: naikumar@cisco.com 435 Carlos Pignataro (editor) 436 Cisco Systems, Inc. 437 7200-11 Kit Creek Road 438 Research Triangle Park, NC 27709-4987 439 United States of America 441 Email: cpignata@cisco.com 443 Zafar Ali 444 Cisco Systems, Inc. 446 Email: zali@cisco.com 448 Clarence Filsfils 449 Cisco Systems, Inc. 451 Email: cfilsfil@cisco.com 452 Tarek Saad 453 Juniper Networks 455 Email: tsaad@juniper.net