idnits 2.17.1 draft-ietf-spring-mpls-path-segment-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 seems to lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (March 08, 2019) is 1848 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) == Unused Reference: 'I-D.ietf-spring-segment-routing-mpls' is defined on line 366, but no explicit reference was found in the text == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-mpls-18 == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-16 == Outdated reference: A later version (-22) exists of draft-ietf-spring-segment-routing-policy-02 == Outdated reference: A later version (-07) exists of draft-li-pce-sr-bidir-path-02 == Outdated reference: A later version (-08) exists of draft-li-pce-sr-path-segment-03 Summary: 0 errors (**), 0 flaws (~~), 8 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group W. Cheng 3 Internet-Draft H. Li 4 Intended status: Standards Track China Mobile 5 Expires: September 9, 2019 M. Chen 6 Huawei 7 R. Gandhi 8 Cisco Systems, Inc. 9 R. Zigler 10 Broadcom 11 March 08, 2019 13 Path Segment in MPLS Based Segment Routing Network 14 draft-ietf-spring-mpls-path-segment-00 16 Abstract 18 A Segment Routing (SR) path is identified by an SR segment list, one 19 or partial segments of the list cannot uniquely identify the SR path. 20 Path identification is a pre-requisite for various use-cases such as 21 performance measurement (PM) of an SR path. 23 This document defines a new type of segment that is referred to as 24 Path Segment, which is used to identify an SR path. When used, it is 25 inserted at the ingress node of the SR path and immediately follows 26 the last segment of the SR path. The Path Segment will not be popped 27 off until it reaches the egress node of the SR path. 29 Path Segment can be used by the egress node to implement path 30 identification hence to support various use-cases including SR path 31 PM, end-to-end 1+1 SR path protection and bidirectional SR paths 32 correlation. 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 September 9, 2019. 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. Requirements Language . . . . . . . . . . . . . . . . . . 3 69 1.2. Abbreviations . . . . . . . . . . . . . . . . . . . . . . 3 70 2. Path Segment . . . . . . . . . . . . . . . . . . . . . . . . 4 71 3. Nesting of Path Segments . . . . . . . . . . . . . . . . . . 5 72 4. Path Segment Allocation . . . . . . . . . . . . . . . . . . . 6 73 5. Path Segment for PM . . . . . . . . . . . . . . . . . . . . . 6 74 6. Path Segment for Bi-directional SR Path . . . . . . . . . . . 7 75 7. Path Segment for End-to-end Path Protection . . . . . . . . . 7 76 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8 77 9. Security Considerations . . . . . . . . . . . . . . . . . . . 8 78 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 8 79 11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 80 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 81 12.1. Normative References . . . . . . . . . . . . . . . . . . 9 82 12.2. Informative References . . . . . . . . . . . . . . . . . 9 83 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 85 1. Introduction 87 Segment Routing (SR) [RFC8402] is a source routed forwarding method 88 that allows to directly encode forwarding instructions (called 89 segments) in each packet, hence it enables to steer traffic through a 90 network without the per-flow states maintained on the transit nodes. 91 Segment Routing can be instantiated on MPLS data plane or IPv6 data 92 plane. The former is called SR-MPLS, the latter is called SRv6 93 [RFC8402]. SR-MPLS leverages the MPLS label stack to construct SR 94 path, and SRv6 uses the a new IPv6 Extension Header (EH) called the 95 IPv6 Segment Routing Header (SRH) 96 [I-D.ietf-6man-segment-routing-header] to construct SR path. 98 In an SR-MPLS network, when a packet is transmitted along an SR path, 99 the labels in the MPLS label stack will be swapped or popped. So 100 that no label or only the last label may be left in the MPLS label 101 stack when the packet reaches the egress node. Thus, the egress node 102 cannot determine from which SR path the packet comes. 104 However, to support use cases like end-to-end 1+1 path protection 105 (Live-Live case), bidirectional path correlation or performance 106 measurement (PM), the ability to implement path identification is a 107 pre-requisite. 109 Therefore, this document introduces a new segment that is referred to 110 as Path Segment. A Path Segment is defined to uniquely identify an 111 SR path in the context of the egress node. It is normally used by 112 egress nodes for path identification or correlation. 114 1.1. Requirements Language 116 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 117 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 118 "OPTIONAL" in this document are to be interpreted as described in 119 BCP14 [RFC2119][RFC8174] when, and only when, they appear in all 120 capitals, as shown here. 122 1.2. Abbreviations 124 DM: Delay Measurement. 126 LM: Loss Measurement. 128 MPLS: Multiprotocol Label Switching. 130 PM: Performance Measurement. 132 PSID: Path Segment ID. 134 SID: Segment ID. 136 SL: Segment List. 138 SR: Segment Routing. 140 SR-MPLS: Segment Routing instantiated on MPLS data plane. 142 SRv6: Segment Routing instantiated on IPv6 data plane 144 2. Path Segment 146 A Path Segment is a single label that is assigned from the Segment 147 Routing Local Block (SRLB) or Segment Routing Global Block (SRGB) of 148 the egress node of an SR path. It means that the Path Segment is 149 unique in the context of the egress node of the SR path. When Path 150 Segment is used, the Path Segment MUST be inserted at the ingress 151 node and MUST immediately follow the last label of the SR path. The 152 Path Segment may be used to identify an SR-MPLS Policy, its 153 Candidate-Path (CP) or a SID List (SL) 154 [I-D.ietf-spring-segment-routing-policy] terminating on an egress 155 node depending on the use-case. 157 The value of the TTL field of the Path Segment MUST be set to the 158 same value of the last segment label of the SR path. If the Path 159 Segment is the bottom label, the S bit MUST be set. 161 Normally, the intermediate nodes will not see the Path Segment label 162 and do not know how to process it. A Path Segment presenting to an 163 intermediate node is an error condition. 165 The egress node MUST pop the Path Segment. The egress node MAY use 166 the Path Segment for further processing. For example, when 167 performance measurement is enabled on the SR path, it can trigger 168 packet counting or timestamping. 170 The label stack with Path Segment is as below (Figure 1): 172 +--------------------+ 173 | ... | 174 +--------------------+ 175 | Label 1 | 176 +--------------------+ 177 | Label 2 | 178 +--------------------+ 179 | ... | 180 +--------------------+ 181 | Label n | 182 +--------------------+ 183 | Path Segment | 184 +--------------------+ 185 | ... | 186 +--------------------+ 188 Figure 1: Label Stack with Path Segment 190 Where: 192 o The Labels 1 to n are the segment label stack used to direct how 193 to steer the packets along the SR path. 195 o The Path Segment identifies the SR path in the context of the 196 egress node of the SR path. 198 3. Nesting of Path Segments 200 Binding SID (BSID) [RFC8402] can be used for SID list compression. 201 With BSID, an end-to-end SR path can be split into several sub-paths, 202 each sub-path is identified by a BSID. Then an end-to-end SR path 203 can be identified by a list of BSIDs, therefore, it can provide 204 better scalability. 206 BSID and Path SID (PSID) can be combined to achieve both sub-path and 207 end-to-end path monitoring. A reference model for such a combination 208 in (Figure 2) shows an end-to-end path (A->D) that spans three 209 domains (Access, Aggregation and Core domain) and consists of three 210 sub-paths, one in each sub-domain (sub-path (A->B), sub-path (B->C) 211 and sub-path (C->D)). Each sub-path is allocated a BSID. For 212 nesting the sub-paths, each sub-path is allocated a PSID. Then, the 213 SID list of the end-to-end path can be expressed as , where the e-PSID is the PSID of the end-to-end 215 path. The SID list of a sub-path can be expressed as , where the s-PSID is the PSID of the sub-path. 218 Figure 2 shows the details of the label stacks when PSID and BSID are 219 used to support both sub-path and end-to-end path monitoring in a 220 multi-domain scenario. 222 /--------\ /--------\ /--------\ 223 / \ / \ / \ 224 A{ Access }B{ Aggregation }C{ Core }D 225 \ / \ / \ / 226 \--------/ \--------/ \--------/ 227 Sub-path(A->B) Sub-path(B->C) Sub-path(C->D) 228 |<--------------->|<-------------->|<-------------->| 229 E2E Path(A->D) 230 |<------------------------------------------------->| 232 +------------+ 233 ~A->B SubPath~ 234 +------------+ +------------+ 235 |s-PSID(A->B)| ~B->C SubPath~ 236 +------------+ +------------+ 237 | BSID(B->C) | |s-PSID(B->C)| 238 +------------+ +------------+ +------------+ 239 | BSID(C->D) | | BSID(C->D) | ~C->D SubPath~ 240 +------------+ +------------+ +------------+ +------------+ 241 |e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)| |e-PSID(A->D)| 242 +------------+ +------------+ +------------+ +------------+ 244 Figure 2: Nesting of Path Segments 246 4. Path Segment Allocation 248 Several ways can be used to allocate the Path Segment. 250 One way is to set up a communication channel (e.g., MPLS Generic 251 Associated Channel (G-ACh)) between the ingress node and the egress 252 node, and the ingress node of the SR path can directly send a request 253 to the egress node to ask for a Path Segment. 255 Another way is to leverage a centralized controller (e.g., PCE, SDN 256 controller) to assign the Path Segment. PCEP based Path Segment 257 allocation is defined in [I-D.li-pce-sr-path-segment], and SR-policy 258 based path segment allocation is defined in 259 [I-D.li-idr-sr-policy-path-segment-distribution]. 261 5. Path Segment for PM 263 As defined in [RFC7799], performance measurement can be classified 264 into Active, Passive and Hybrid measurement. For Passive 265 measurement, path identification at the measuring points is the pre- 266 requisite. Path segment can be used by the measuring points (e.g., 267 the ingress/egress nodes of an SR path) or a centralized controller 268 to correlate the packets counts/timestamps that are from the ingress 269 and egress nodes to a specific SR path, then packet loss/delay can be 270 calculated. 272 Performance Delay Measurement (DM) and Loss Measurements (LM) in SR 273 networks with MPLS data plane can be found in 274 [I-D.gandhi-spring-sr-mpls-pm] and [I-D.gandhi-spring-udp-pm]. 276 6. Path Segment for Bi-directional SR Path 278 With the current SR architecture, an SR path is a unidirectional 279 path. In some scenarios, for example, mobile backhaul transport 280 network, there are requirements to support bidirectional path, and 281 the path is normally treated as a single entity and both directions 282 of the path have the same fate, for example, failure in one direction 283 will result in switching at both directions. 285 MPLS supports this by introducing the concepts of co-routed 286 bidirectional LSP and associated bidirectional LSP. With SR, to 287 support bidirectional path, a straightforward way is to bind two 288 unidirectional SR paths to a single bidirectional path. Path 289 segments can be used to correlate the two unidirectional SR paths at 290 both ends of the paths. 292 [I-D.li-pce-sr-bidir-path] defines how to use PCEP and Path segment 293 to initiate a bidirectional SR path, and 294 [I-D.li-idr-sr-policy-path-segment-distribution] defines how to use 295 SR policy and Path segment to initiate a bidirectional SR path. 297 7. Path Segment for End-to-end Path Protection 299 For end-to-end 1+1 path protection (i.e., Live-Live case), the egress 300 node of an SR path needs to know the set of paths that constitute the 301 primary and the secondary(s), in order to select the primary packet 302 for onward transmission, and to discard the packets from the 303 secondary(s). 305 To do this, each path needs a path identifier that is unique at the 306 egress node. Depending on the design, this is a single unique path 307 segment label chosen by the egress PE. 309 There then needs to be a method of binding this path identifiers into 310 equivalence groups such that the egress PE can determine the set of 311 packets that represent a single path and its secondary. 313 It is obvious that this group can be instantiated in the network by 314 an SDN controller. 316 8. IANA Considerations 318 This document does not require any IANA actions. 320 9. Security Considerations 322 This document does not introduce additional security requirements and 323 mechanisms other than the ones described in [RFC8402]. 325 10. Contributors 327 Many thanks to following contributors for their contribution to this 328 document. 330 Greg Mirsky 331 ZTE Corp 333 Email: gregimirsky@gmail.com 335 Cheng Li 336 Huawei Technologies 337 Huawei Campus, No. 156 Beiqing Rd. 338 Beijing 100095 339 China 341 EMail: chengli13@huawei.com 343 Shuangping Zhan 344 ZTE 346 Email: zhan.shuangping@zte.com.cn 348 Lei Wang 349 China Mobile 351 Email: wangleiyj@chinamobile.com 353 11. Acknowledgements 355 The authors would like to thank Stewart Bryant, Alexander Vainshtein, 356 Andrew G. Malis and Loa Andersson for their review, suggestions and 357 comments to this document. 359 The authors would like to acknowledge the contribution from Alexander 360 Vainshtein on "Nesting of Path Segments". 362 12. References 364 12.1. Normative References 366 [I-D.ietf-spring-segment-routing-mpls] 367 Bashandy, A., Filsfils, C., Previdi, S., Decraene, B., 368 Litkowski, S., and R. Shakir, "Segment Routing with MPLS 369 data plane", draft-ietf-spring-segment-routing-mpls-18 370 (work in progress), December 2018. 372 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 373 Requirement Levels", BCP 14, RFC 2119, 374 DOI 10.17487/RFC2119, March 1997, 375 . 377 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 378 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 379 May 2017, . 381 [RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L., 382 Decraene, B., Litkowski, S., and R. Shakir, "Segment 383 Routing Architecture", RFC 8402, DOI 10.17487/RFC8402, 384 July 2018, . 386 12.2. Informative References 388 [I-D.gandhi-spring-sr-mpls-pm] 389 Gandhi, R., Filsfils, C., daniel.voyer@bell.ca, d., 390 Salsano, S., Ventre, P., and M. Chen, "Performance 391 Measurement in Segment Routing Networks with MPLS Data 392 Plane", draft-gandhi-spring-sr-mpls-pm-03 (work in 393 progress), September 2018. 395 [I-D.gandhi-spring-udp-pm] 396 Gandhi, R., Filsfils, C., daniel.voyer@bell.ca, d., 397 Salsano, S., Ventre, P., and M. Chen, "UDP Path for In- 398 band Performance Measurement for Segment Routing 399 Networks", draft-gandhi-spring-udp-pm-02 (work in 400 progress), September 2018. 402 [I-D.ietf-6man-segment-routing-header] 403 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 404 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 405 (SRH)", draft-ietf-6man-segment-routing-header-16 (work in 406 progress), February 2019. 408 [I-D.ietf-spring-segment-routing-policy] 409 Filsfils, C., Sivabalan, S., daniel.voyer@bell.ca, d., 410 bogdanov@google.com, b., and P. Mattes, "Segment Routing 411 Policy Architecture", draft-ietf-spring-segment-routing- 412 policy-02 (work in progress), October 2018. 414 [I-D.li-idr-sr-policy-path-segment-distribution] 415 Li, C., Chen, M., Dong, J., and Z. Li, "Segment Routing 416 Policies for Path Segment and Bidirectional Path", draft- 417 li-idr-sr-policy-path-segment-distribution-01 (work in 418 progress), October 2018. 420 [I-D.li-pce-sr-bidir-path] 421 Li, C., Chen, M., Dhody, D., Cheng, W., Li, Z., Dong, J., 422 and R. Gandhi, "PCEP Extension for Segment Routing (SR) 423 Bidirectional Associated Paths", draft-li-pce-sr-bidir- 424 path-02 (work in progress), October 2018. 426 [I-D.li-pce-sr-path-segment] 427 Li, C., Chen, M., Dhody, D., Cheng, W., Dong, J., Li, Z., 428 and R. Gandhi, "Path Computation Element Communication 429 Protocol (PCEP) Extension for Path Segment in Segment 430 Routing (SR)", draft-li-pce-sr-path-segment-03 (work in 431 progress), October 2018. 433 [RFC7799] Morton, A., "Active and Passive Metrics and Methods (with 434 Hybrid Types In-Between)", RFC 7799, DOI 10.17487/RFC7799, 435 May 2016, . 437 Authors' Addresses 439 Weiqiang Cheng 440 China Mobile 442 Email: chengweiqiang@chinamobile.com 444 Han Li 445 China Mobile 447 Email: lihan@chinamobile.com 449 Mach(Guoyi) Chen 450 Huawei 452 Email: mach.chen@huawei.com 453 Rakesh Gandhi 454 Cisco Systems, Inc. 455 Canada 457 Email: rgandhi@cisco.com 459 Royi Zigler 460 Broadcom 462 Email: royi.zigler@broadcom.com