idnits 2.17.1 draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-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 : ---------------------------------------------------------------------------- ** 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 (July 8, 2019) is 1753 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: January 9, 2020 C. Filsfils 6 Cisco 7 July 8, 2019 9 Segment Routing Generic TLV for MPLS Label Switched Path (LSP) Ping/ 10 Traceroute 11 draft-nainar-mpls-spring-lsp-ping-sr-generic-sid-00 13 Abstract 15 RFC8402 introduces Segment Routing architecture that leverages source 16 routing and tunneling paradigms and can be directly applied to the 17 Multi Protocol Label Switching (MPLS) data plane. A node steers a 18 packet through a controlled set of instructions called segments, by 19 prepending the packet with Segment Routing header. SR architecture 20 defines different types of segments with different forwarding 21 semantics associated. SR can be applied to the MPLS directly and to 22 IPv6 dataplane using a new routing header. 24 RFC8287 defines the extensions to MPLS LSP Ping and Traceroute for 25 Segment Routing IGP-Prefix and IGP-Adjacency Segment Identifier 26 (SIDs) with an MPLS data plane. Various SIDs are proposed as part of 27 SR architecture with different associated instructions that raises a 28 need to come up with new Target FEC Stack Sub-TLV for each such SIDs. 30 This document defines a new Target FEC Stack Sub-TLV that is used to 31 validate the instruction associated with any SID. 33 Status of This Memo 35 This Internet-Draft is submitted in full conformance with the 36 provisions of BCP 78 and BCP 79. 38 Internet-Drafts are working documents of the Internet Engineering 39 Task Force (IETF). Note that other groups may also distribute 40 working documents as Internet-Drafts. The list of current Internet- 41 Drafts is at https://datatracker.ietf.org/drafts/current/. 43 Internet-Drafts are draft documents valid for a maximum of six months 44 and may be updated, replaced, or obsoleted by other documents at any 45 time. It is inappropriate to use Internet-Drafts as reference 46 material or to cite them other than as "work in progress." 48 This Internet-Draft will expire on January 9, 2020. 50 Copyright Notice 52 Copyright (c) 2019 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. Challenges with Existing Mechanism . . . . . . . . . . . 3 69 2. Requirements notation . . . . . . . . . . . . . . . . . . . . 3 70 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 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 . . . . . . . . . . . . . . . . . . . . 8 80 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 81 7. Security Considerations . . . . . . . . . . . . . . . . . . . 8 82 8. Acknowledgement . . . . . . . . . . . . . . . . . . . . . . . 8 83 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 84 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 8 85 10.1. Normative References . . . . . . . . . . . . . . . . . . 8 86 10.2. Informative References . . . . . . . . . . . . . . . . . 9 87 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 9 89 1. Introduction 91 [RFC8402] introduces and describes a Segment Routing architecture 92 that leverages the source routing and tunneling paradigms. A node 93 steers a packet through a controlled set of instructions called 94 segments, by prepending the packet with Segment Routing header. A 95 detailed definition of the Segment Routing architecture is available 96 in [RFC8402] 97 As described in [RFC8402] and [I-D.ietf-spring-segment-routing-mpls], 98 the Segment Routing architecture can be directly applied to an MPLS 99 data plane, the Segment identifier (Segment ID) will be of 20-bits 100 size and the Segment Routing header is the label stack. 102 1.1. Challenges with Existing Mechanism 104 [RFC8287] defines the mechanism to perform LSP Ping and Traceroute 105 for Segment Routing with MPLS data plane. [RFC8287] defines the 106 Target FEC Stack Sub-TLVs for IGP-Prefix Segment ID and IGP-Adjacency 107 Segment ID. 109 There are various other Segment IDs proposed by different documents 110 that are applicable for SR architecture. 111 [I-D.ietf-idr-bgp-prefix-sid] defines BGP Prefix Segment ID, 112 [I-D.ietf-idr-bgpls-segment-routing-epe] defines BGP Peering Segment 113 ID such as Peer Node SID, Peer Adj SID and Peer Set SID. 114 [I-D.sivabalan-pce-binding-label-sid] defines Path Binding Segment 115 ID. As SR evolves for different usecases, we may see more types of 116 SIDs defined in the future. This raises a need to propose new Target 117 FEC Stack Sub-TLV for each such Segment ID that may need specific or 118 network wide software upgrade to support such new Target FEC Stack 119 Sub-TLVs. 121 So instead of proposing different Target FEC Stack Sub-TLV for each 122 SID, this document attempt to propose a SR Generic Label Sub-TLV for 123 Target FEC Stack TLV with the procedure to validate the associated 124 instruction. 126 This document describes the new Target FEC Stack Sub-TLV that carries 127 the SID and the assigner node information and the procedure to use 128 LSP Ping and Traceroute using the new sub-tlv to support path 129 validation and fault isolation for any SR Segment IDs. 131 2. Requirements notation 133 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 134 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 135 "OPTIONAL" in this document are to be interpreted as described in RFC 136 2119 [RFC2119] RFC 8174 [RFC8174] when and only when, they appear in 137 all capitals, as shown here. 139 3. Terminology 141 This document uses the terminologies defined in [RFC8402], [RFC8029], 142 readers are expected to be familiar with it. 144 4. Target FEC Stack sub-TLV for Segment Routing SID 146 Following the procedure defined in [RFC8029], below defined Target 147 FEC Stack Sub-TLV will be included for each labels in the stack. The 148 below Sub-TLV is defined for Target FEC Stack TLV (Type 1), the 149 Reverse-Path Target FEC Stack TLV (Type 16), and the Reply Path TLV 150 (Type 21). 152 sub-Type Value Field 153 -------- --------------- 154 TBD1 Segment Routing Generic Label (SRGL) 156 4.1. Segment Routing Generic Label 158 The format of the Sub-TLV is as specified below: 160 0 1 2 3 161 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 162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 163 | SR SID | 164 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 165 | LSP End Point (4 or 16 octets) | 166 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 168 SR SID 170 Carries 20 bits of Segment ID that is used for validating the 171 instruction. 173 LSP End Point 175 This field carries the node address of the end point that 176 terminates the LSP. 178 4.2. FEC for Path validation 180 In SR architecture, any SID is associated with topology or service 181 instruction. While the topology instruction steers the packet over 182 best path or specific path, the service instruction instructs the 183 type of service to be applied on the packet. 185 R3-------R6 L1 186 / \ +-------+ 187 / \ | L2 | 188 R1----R2 R7------R8 189 \ / 190 \ / 191 R4-------R5 193 Figure 1: Segment Routing network 195 The Node Segment IDs for Rx for Algo 0 is 16000x. (Ex: For R1, it is 160001) 196 The Node Segment IDs for Rx for Algo 128 is 16128x. (Ex: For R1, it is 161281) 198 9178 --> Adjacency Segment ID from R7 to R8 over link L1. 199 9278 --> Adjacency Segment ID from R7 to R8 over link L2. 200 9378 --> Parallel Adjacency Segment ID from R7 to R8 over Link L1 or L2. 201 9187 --> Adjacency Segment ID from R8 to R7 over link L1. 202 9287 --> Adjacency Segment ID from R8 to R7 over link L2. 203 9387 --> Parallel Adjacency Segment ID from R8 to R7 over Link L1 or L2. 205 The instruction associated with any SID can be validated by verifying 206 if the segment is terminated on the correct node and optionally 207 received over the correct incoming interface. In Figure 1, inorder 208 to validate the SID 9178, R1 can use {(SID=9178);(EndPoint=R8} as FEC 209 in Target FEC Stack Sub-TLV. 211 5. Procedures 213 This section describes the procedure to validate SR Generic Label 214 Sub-TLV. 216 5.1. SID to Interface Mapping 218 Any End point MAY maintain a SID to Interface mapping table that 219 maintains the below: 221 o All the local Prefix/Node SID with any SR enabled interface as 222 incoming interface. 224 o All the Adj-SIDs assigned by directly connected remote nodes with 225 the relevant interface incoming interface. 227 In Figure 1, R8 maintains 160008 and 161288 with Incoming interface 228 as any SR enabled interface. Similarly, R8 maintains 9178 with Link 229 L1 as incoming interface, 9278 with Link L2 as incoming interface and 230 9378 with Link L1 or L2 as incoming interface. 232 How this mapping is populated and maintained is a local 233 implementation matter. It can be populated based on the IGP database 234 or can be based on a query to Path Computation Element (PCE) 235 controller. The mapping can be persistent or on-demand triggered by 236 receiving LSP Ping Request. 238 5.2. Initiator behavior 240 This section defines the Target FEC Stack TLV construction mechanism 241 by an initiator when using SR Generic Label Sub-TLV. 243 Ping 245 Initiator MUST include FEC(s) corresponding to the destination 246 segment. 248 Initiator MAY include FECs corresponding to some or all of 249 segments imposed in the label stack by the initiator to 250 communicate the segments traversed. 252 Traceroute 254 Initiator MUST initially include FECs corresponding to all of 255 segments imposed in the label stack. 257 When a received echo reply contains FEC Stack Change TLV with 258 one or more of original segment(s) being popped, initiator MAY 259 remove corresponding FEC(s) from Target FEC Stack TLV in the 260 next (TTL+1) traceroute request as defined in section 4.6 of 261 [RFC8029]. 263 When a received echo reply does not contain FEC Stack Change 264 TLV, initiator MUST NOT attempt to remove FEC(s) from Target 265 FEC Stack TLV in the next (TTL+1) traceroute request. 267 5.2.1. SRGL in Target FEC Stack TLV 269 When the last segment ID in the label stack is IGP Prefix SID, 270 Binding SID or BGP Prefix SID, set the LSP End Point field to the 271 address of the Node that assigns the Prefix SID. The SR SID field is 272 set to the value derived based on the index and the SRGB advertised 273 by the LSP End Point. 275 When the last segment ID in the label stack is IGP Adj-SID or BGP 276 Peering SID, set the LSP End Point field to the address of the 277 adjacency node for which the SID is assigned to. The SR field is set 278 to the Segment ID value. 280 How the above values are derived is a local implementation matter. 281 It can be manually defined using CLI knob while triggering the LSP 282 Ping Request or can use other mechanisms like querying the local 283 database. 285 5.3. Responder behavior 287 Step 4a defined in Section 7.4 of [RFC8287] is updated as below: 289 If the Label-stack-depth is 0 and Target FEC Stack Sub-TLV at FEC- 290 stack-depth is TBD1 (SRGL) { 292 * Set the Best-return-code to 10 when LSP End Point Address does 293 not match the local node address. 295 * Set the Best-return-code to 35, if Interface-I does not match 296 the SID to Interface mapping for the received SR SID. 298 * set FEC-Status to 1, and return. 300 } 302 If the Label-stack-depth is greater than 0 and Target FEC Stack 303 Sub-TLV at FEC-stack-depth is TBD1 (SRGL), { 305 * If the Label at Label-stack-depth is Imp-null { 307 + Set the Best-return-code to 10 when LSP End Point Address 308 does not match the local node address. 310 + Set the Best-return-code to 35, if Interface-I does not 311 match the SID to Interface mapping for the received SR SID. 313 + set FEC-Status to 1, and return. 315 } 317 * Else: 319 + Set the Best-return-code to 10 when the index derived from 320 the label at Label-stack-depth is not advertised by LSP End 321 Point. 323 + set FEC-Status to 1, and return. 325 } 327 5.4. PHP flag behavior 329 To be Updated 331 6. IANA Considerations 333 To be Updated. 335 7. Security Considerations 337 To be Updated 339 8. Acknowledgement 341 TBD 343 9. Contributors 345 Danial Johari, Cisco Systems 347 10. References 349 10.1. Normative References 351 [I-D.ietf-idr-bgp-prefix-sid] 352 Previdi, S., Filsfils, C., Lindem, A., Sreekantiah, A., 353 and H. Gredler, "Segment Routing Prefix SID extensions for 354 BGP", draft-ietf-idr-bgp-prefix-sid-27 (work in progress), 355 June 2018. 357 [I-D.ietf-idr-bgpls-segment-routing-epe] 358 Previdi, S., Talaulikar, K., Filsfils, C., Patel, K., Ray, 359 S., and J. Dong, "BGP-LS extensions for Segment Routing 360 BGP Egress Peer Engineering", draft-ietf-idr-bgpls- 361 segment-routing-epe-19 (work in progress), May 2019. 363 [I-D.sivabalan-pce-binding-label-sid] 364 Sivabalan, S., Filsfils, C., Tantsura, J., Hardwick, J., 365 Previdi, S., and C. Li, "Carrying Binding Label/Segment-ID 366 in PCE-based Networks.", draft-sivabalan-pce-binding- 367 label-sid-07 (work in progress), July 2019. 369 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 370 Requirement Levels", BCP 14, RFC 2119, 371 DOI 10.17487/RFC2119, March 1997, 372 . 374 [RFC8029] Kompella, K., Swallow, G., Pignataro, C., Ed., Kumar, N., 375 Aldrin, S., and M. Chen, "Detecting Multiprotocol Label 376 Switched (MPLS) Data-Plane Failures", RFC 8029, 377 DOI 10.17487/RFC8029, March 2017, 378 . 380 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 381 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 382 May 2017, . 384 [RFC8287] Kumar, N., Ed., Pignataro, C., Ed., Swallow, G., Akiya, 385 N., Kini, S., and M. Chen, "Label Switched Path (LSP) 386 Ping/Traceroute for Segment Routing (SR) IGP-Prefix and 387 IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data 388 Planes", RFC 8287, DOI 10.17487/RFC8287, December 2017, 389 . 391 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 392 Decraene, B., Litkowski, S., and R. Shakir, "Segment 393 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 394 July 2018, . 396 10.2. Informative References 398 [I-D.ietf-spring-segment-routing-mpls] 399 Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., 400 Litkowski, S., and R. Shakir, "Segment Routing with MPLS 401 data plane", draft-ietf-spring-segment-routing-mpls-22 402 (work in progress), May 2019. 404 Authors' Addresses 406 Nagendra Kumar Nainar (editor) 407 Cisco Systems, Inc. 408 7200-12 Kit Creek Road 409 Research Triangle Park, NC 27709-4987 410 US 412 Email: naikumar@cisco.com 414 Carlos Pignataro (editor) 415 Cisco Systems, Inc. 416 7200-11 Kit Creek Road 417 Research Triangle Park, NC 27709-4987 418 US 420 Email: cpignata@cisco.com 421 Zafar Ali 422 Cisco Systems, Inc. 424 Email: zali@cisco.com 426 Clarence Filsfils 427 Cisco Systems, Inc. 429 Email: cfilsfil@cisco.com