idnits 2.17.1 draft-filsfils-spring-net-pgm-extension-srv6-usid-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 : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) == There are 2 instances of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document doesn't use any RFC 2119 keywords, yet seems to have RFC 2119 boilerplate text. -- Couldn't find a document date in the document -- date freshness check skipped. 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 (-26) exists of draft-ietf-6man-segment-routing-header-21 == Outdated reference: A later version (-28) exists of draft-ietf-spring-srv6-network-programming-01 == Outdated reference: A later version (-04) exists of draft-filsfils-spring-srv6-net-pgm-illustration-00 Summary: 1 error (**), 0 flaws (~~), 6 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 1 SPRING C. Filsfils, Ed. 2 Internet-Draft Cisco Systems, Inc. 3 Intended status: Standards Track D. Cai 4 Expires: January 9, 2020 Alibaba 5 Z. Jiang 6 Tencent 7 D. Voyer 8 Bell Canada 9 A. Shawky 10 Saudi Telecom Company 11 N. Leymann 12 Deutsche Telekom 13 D. Steinberg 14 Lapishills Consulting Limited 15 S. Zandi 16 G. Dawra 17 LinkedIn 18 I. Meilik 19 Broadcom 20 J. Uttaro 21 AT&T 22 L. Jalil 23 Verizon 24 N. So 25 Reliance 26 M. Fiumano 27 Sprint 28 M. Khaddam 29 Cox 30 J. Ma 31 China Unicom 32 S. Matsushima 33 Softbank 34 F. Ferguson 35 CenturyLink 36 T. Miyasaka 37 KDDI 38 K. Ebisawa 39 Toyota Motor Corporation 40 Y. Ueno 41 NTT Communications Corporation 42 W. Henderickx 43 Nokia 44 P. Jonnalagadda 45 Barefoot Networks 46 J. Bhattacharya 47 K. Raza 48 P. Camarillo, Ed. 49 Cisco Systems, Inc. 50 July 8, 2019 52 Network Programming extension: SRv6 uSID instruction 53 draft-filsfils-spring-net-pgm-extension-srv6-usid-00 55 Abstract 57 The SRv6 "micro segment" (SRv6 uSID or uSID for short) instruction is 58 defined and illustrated. 60 It is a straightforward extension to the SRv6 Network Programming 61 model and its SRH encapsulation. 63 Requirements Language 65 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 66 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 67 "OPTIONAL" in this document are to be interpreted as described in BCP 68 14 [RFC2119] [RFC8174] when, and only when, they appear in all 69 capitals, as shown here. 71 Status of This Memo 73 This Internet-Draft is submitted in full conformance with the 74 provisions of BCP 78 and BCP 79. 76 Internet-Drafts are working documents of the Internet Engineering 77 Task Force (IETF). Note that other groups may also distribute 78 working documents as Internet-Drafts. The list of current Internet- 79 Drafts is at https://datatracker.ietf.org/drafts/current/. 81 Internet-Drafts are draft documents valid for a maximum of six months 82 and may be updated, replaced, or obsoleted by other documents at any 83 time. It is inappropriate to use Internet-Drafts as reference 84 material or to cite them other than as "work in progress." 86 This Internet-Draft will expire on January 9, 2020. 88 Copyright Notice 90 Copyright (c) 2019 IETF Trust and the persons identified as the 91 document authors. All rights reserved. 93 This document is subject to BCP 78 and the IETF Trust's Legal 94 Provisions Relating to IETF Documents 95 (https://trustee.ietf.org/license-info) in effect on the date of 96 publication of this document. Please review these documents 97 carefully, as they describe your rights and restrictions with respect 98 to this document. Code Components extracted from this document must 99 include Simplified BSD License text as described in Section 4.e of 100 the Trust Legal Provisions and are provided without warranty as 101 described in the Simplified BSD License. 103 Table of Contents 105 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 106 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4 107 2.1. Notation for human readability . . . . . . . . . . . . . 5 108 3. SRv6 behaviors associated with a uSID . . . . . . . . . . . . 5 109 3.1. uN . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 110 4. Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 111 5. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 6 112 5.1. Reference diagram . . . . . . . . . . . . . . . . . . . . 6 113 5.2. SRv6 overlay with underlay optimization . . . . . . . . . 6 114 6. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 8 115 7. Security . . . . . . . . . . . . . . . . . . . . . . . . . . 9 116 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 117 9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 118 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 119 10.1. Normative References . . . . . . . . . . . . . . . . . . 9 120 10.2. Informative References . . . . . . . . . . . . . . . . . 10 121 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 123 1. Introduction 125 SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming] 126 defines a mechanism to build a network program with topological and 127 service segments. It leverages the SRH 128 [I-D.ietf-6man-segment-routing-header] to encode a network program 129 together with optional metadata shared among the different SIDs. 131 This draft extends SRv6 Network Programming with a new type of SRv6 132 SID behavior: SRv6 uN. This is combined with the rest of 133 instructions of the network program and the SRH encapsulation to 134 build programs in a scalable and efficient way. 136 2. Terminology 138 The SRv6 Network Programming 139 [I-D.ietf-spring-srv6-network-programming] and SRH 140 [I-D.ietf-6man-segment-routing-header] terminology is leveraged and 141 extended with the following terms: 143 uSID carrier: a 128bit SRv6 SID of format ....... 146 uSID block: A block of uSID's 148 It can be any IPv6 prefix allocated to the provider (e.g. /40 or 149 /48), or it can be any block generally available for private use. 150 An SR domain may have multiple uSID blocks. 152 In this document we leverage FC00::/8 block reserved for private 153 use as ULA space (RFC4193). Throughout this document we use 154 FC00::/16 as the illustrated uSID block. ULA space allows for up 155 to 256 uSID blocks in FC00::/8. 157 uSID: in this document a 16-bit ID. A different length may be used. 159 Active uSID: first uSID after the uSID block 161 Next uSID: next uSID after the Active uSID 163 Last uSID: from left to right, the last uSID before the first End-of- 164 Carrier uSID 166 End-of-Carrier: reserved ID used to mark the end of a uSID carrier. 167 The value 0000 is selected as End-of-Carrier. All of the empty uSID 168 carrier positions must be filled with the End-of-Carrier ID. Hence, 169 the End-of-Carrier can be present more than once in a uSID carrier. 171 Parent (node): the node at which an uSID is instantiated. The uSIDs 172 are instantiated on a per-parent node basis. 174 Behavior of an uSID: the SRv6 function associated with a given ID. 175 Section 3 defines them. 177 2.1. Notation for human readability 179 For human readability, the example in this document follow this 180 notation: 182 FC00::/16 is the uSID block used in the SR domain 184 0N00: uN behavior bound to node N 186 3. SRv6 behaviors associated with a uSID 188 The SRv6 SRH encapsulation and its network programming model are 189 extended with the following functions: 191 3.1. uN 193 The uN behavior is a variant of the endpoint behavior. 195 This behavior takes a 96b argument, "Arg", which contains the next 196 uSIDs in the uSID carrier. 198 When N receives a packet whose IPv6 DA is S and S is a local uN SID, 199 N does: 201 1. IF DA[32..47] != 0 ;; Ref1 202 2. Copy DA[32..127] into DA[16..111] 203 3. Set DA[112..127] to 0x0000 204 4. Forward the packet to the new DA 205 5. ELSE 206 6. Execute the End pseudocode ;; Ref2 208 Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in 209 the IPv6 Destination Address of the received packet. The bit 0 is 210 the MSB, while the bit 127 is the LSB. 212 Ref 2: This refers to the End behavior as defined in Section 4.1 of 213 [I-D.ietf-spring-srv6-network-programming]. The End behavior may be 214 combined with the PSP, USP and USD flavours. 216 4. Routing 218 If N is configured with a uN SID FC00:0N00::/32 then the operator 219 must ensure that N advertises FC00:0N00::/32 in routing. 221 5. Illustration 223 This section extends the illustrations for SRv6 Network Programming 224 [I-D.filsfils-spring-srv6-net-pgm-illustration] to cover uSID. The 225 reference topology is the same with the addition of link 6-8. 227 5.1. Reference diagram 229 Nodes 1 to 8 are considered within the network domain. 231 Nodes X and Y are outside the domain. 233 Nodes 1 and 8 act as PE respectively to nodes X and Y. 235 All the links within the domain have the same IGP metric. The IGP- 236 metric shortest-path from 1 to 8 is 1-2-7-8 while the latency-metric 237 shortest-path from 1 to 8 is 1-2-3-4-5-6-7-8. 239 3------4---5 240 | \ / 241 | 6 242 | / \ 243 1--- 2------7---8 244 / \ 245 X Y 246 Tenant100 Tenant100 with 247 IPv4 20/8 249 Figure 1: Reference topology 251 5.2. SRv6 overlay with underlay optimization 253 Let us illustrate a low-latency SR-L3VPN service delivered to a 254 packet (X,Y). 256 PE 1 encapsulates (X, Y) in an outer IPv6 header with DA = 257 FC00:0300:0500:0700:: and SRH (B:8:D0::; SL=1; NH=4). Leveraging the 258 illustration conventions from SRv6 network programming, the following 259 resulting packet leaves node 1 in the direction of node 3: 261 (A1::, FC00:0300:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 263 FC00:0300:0500:0700:: is a uSID carrier encoding a source routed 264 stateless path via node 3 then 5 then 7. 266 B:8:D0:: is an End.DT4 SID instantiated at node 8. 268 1 sends this packet to 2, as 2 is on the shortest-path to 269 FC00:0300::/32 advertised by 3. 271 When 2 receives the packet, 2 performs a regular IPv6 FIB lookup. It 272 finds a FIB entry for FC00:0300::/32 and forwards along the shortest 273 path to 3. 275 When 3 receives the packet, 3 matches FC00:0300::/32 in its "My SID 276 Table" and executes the uN behavior. The updated DA becomes 277 FC00:0500:0700::. Node 3 then performs a lookup on the updated DA and 278 forwards the packet to 5 along the shortest path to FC00:0500::/32. 280 The following packet leaves node 3: 282 (A1::, FC00:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 284 4 forwards along the shortest path to FC00:0500::/32. 286 When 5 receives the packet, 5 matches FC00:0500::/32 in its "My SID 287 Table" and executes the uN behavior. The updated DA becomes 288 FC00:0700::. 5 performs a lookup on the updated DA and forwards the 289 packet to 7 along the shortest path to FC00:0700::/32. 291 The following packet leaves node 5: 293 (A1::, FC00:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 295 6 forwards along the shortest path to FC00:0700::/32. 297 When 7 receives the packet, 7 matches FC00:0700::/32 in its "My SID 298 Table" and finds the bound function uN. As a result, Node 7 executes 299 the "End with PSP and USD support" pseudocode, decrementing the SL 300 value in the SRH, and updating the DA with the next SID B:8:D0::. 301 Since the SL value is zero the SRH is removed. Node 7 performs a 302 lookup on the updated DA and forwards along the shortest path. 304 The following packet leaves node 7: 306 (A1::, B:8:D0::)(X, Y) 308 8 receives it, performs the End.DT4 function and sends the IP packet 309 (X, Y) towards its VPN destination. 311 This example illustrates the benefits highlighted in the next 312 section. 314 6. Benefits 316 Perfect integration with SRv6 Network Programming 318 SRv6 uSID is an instruction of the SRv6 network programming 319 model 321 Perfect integration with SRH 323 Any SID in DA or SRH can be an SRv6 uSID carrier 325 Scalable SR Policy 327 7 uSID' per uSID carrier 329 21 source routing waypoints in solely 40bytes of overhead 331 T.Encaps.Red with an SRH of 40 bytes (8 fixed + 2 * 16 332 bytes) 334 7 uSID's in DA and 14 in SRH 336 Efficient MTU overhead 338 In apple to apple comparison, the SRv6 solution outperforms any 339 alternative (VxLAN with SR-MPLS, CRH). 341 Scalable number of globally unique nodes in the domain 343 16-bit uSID: 65k uSIDs per domain block (*256 solely using 344 FC/8) 346 32-bit uSID: 4.3M uSIDs per domain block (*256 solely using 347 FC/8) 349 Hardware-friendly: 351 Leverages mature hardware capabilities (shift) 353 Avoids any extra lookup in indexed mapping table 355 Demonstrated by Cisco linerate implementation on Jericho1 357 Control-Plane friendly 358 No indexed mapping table is required 360 No routing extension is required: a simple /32 advertisement 361 suffices 363 7. Security 365 The security rules defined in Section 7 of 366 [I-D.ietf-spring-srv6-network-programming], protect intra-domain 367 deployments that includes SRv6 uSID. 369 8. Acknowledgements 371 The authors would like to acknowledge Francois Clad, Peter Psenak, 372 Ketan Talaulikar, Swadesh Agrawal, Zafar Ali, Darren Dukes, Kiran 373 Sadshiran, Junaid Israr, Lakshmanan Srikanth, Asif Islam, Saleem 374 Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su, Alexander 375 Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik Semco, 376 Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal Dagan, Eli 377 Stein, Ofer Iny, Elad Naor, Aviad Behar, Joseph Chin. 379 9. Contributors 381 Tomonobu Niwa 382 KDDI 383 Japan 385 Email: to-niwa@kddi.com 387 10. References 389 10.1. Normative References 391 [I-D.ietf-6man-segment-routing-header] 392 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 393 Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment 394 Routing Header (SRH)", draft-ietf-6man-segment-routing- 395 header-21 (work in progress), June 2019. 397 [I-D.ietf-spring-srv6-network-programming] 398 Filsfils, C., Camarillo, P., Leddy, J., 399 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 400 Network Programming", draft-ietf-spring-srv6-network- 401 programming-01 (work in progress), July 2019. 403 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 404 Requirement Levels", BCP 14, RFC 2119, 405 DOI 10.17487/RFC2119, March 1997, 406 . 408 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 409 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 410 May 2017, . 412 10.2. Informative References 414 [I-D.filsfils-spring-srv6-net-pgm-illustration] 415 Filsfils, C., Camarillo, P., Li, Z., Matsushima, S., 416 Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and 417 J. Leddy, "Illustrations for SRv6 Network Programming", 418 draft-filsfils-spring-srv6-net-pgm-illustration-00 (work 419 in progress), February 2019. 421 Authors' Addresses 423 Clarence Filsfils (editor) 424 Cisco Systems, Inc. 425 Belgium 427 Email: cf@cisco.com 429 Dennis Cai 430 Alibaba 431 China 433 Email: d.cai@alibaba-inc.com 435 Zhichun Jiang 436 Tencent 437 China 439 Email: zcjiang@tencent.com 441 Daniel Voyer 442 Bell Canada 443 Canada 445 Email: daniel.voyer@bell.ca 446 Ahmed Shawky 447 Saudi Telecom Company 448 Saudi Arabia 450 Email: ashawky@stc.com.sa 452 Nic Leymann 453 Deutsche Telekom 454 Germany 456 Email: N.Leymann@telekom.de 458 Dirk Steinberg 459 Lapishills Consulting Limited 460 Cyprus 462 Email: dirk@lapishills.com 464 Shawn Zandi 465 LinkedIn 466 United States of America 468 Email: szandi@linkedin.com 470 Gaurav Dawra 471 LinkedIn 472 United States of America 474 Email: gdawra@linkedin.com 476 Israel Meilik 477 Broadcom 478 Israel 480 Email: israel.meilik@broadcom.com 482 Jim Uttaro 483 AT&T 484 United States of America 486 Email: ju1738@att.com 487 Luay Jalil 488 Verizon 489 United States of America 491 Email: luay.jalil@one.verizon.com 493 Ning So 494 Reliance 495 United States of America 497 Email: Ning.So@ril.com 499 Michael Fiumano 500 Sprint 501 United States of America 503 Email: michael.f.fiumano@sprint.com 505 Mazen Khaddam 506 Cox 507 United States of America 509 Email: Mazen.Khaddam@cox.com 511 Jichun Ma 512 China Unicom 513 China 515 Email: majc16@chinaunicom.cn 517 Satoru Matsushima 518 Softbank 519 Japan 521 Email: satoru.matsushima@g.softbank.co.jp 523 Francis Ferguson 524 CenturyLink 525 United States of America 527 Email: Francis.Ferguson@centurylink.com 528 Takuya Miyasaka 529 KDDI 530 Japan 532 Email: ta-miyasaka@kddi.com 534 Kentaro Ebisawa 535 Toyota Motor Corporation 536 Japan 538 Email: ebisawa@toyota-tokyo.tech 540 Yukito Ueno 541 NTT Communications Corporation 542 Japan 544 Email: yukito.ueno@ntt.com 546 Wim Henderickx 547 Nokia 548 Belgium 550 Email: wim.henderickx@nokia.com 552 Prem Jonnalagadda 553 Barefoot Networks 554 United States of America 556 Email: prem@barefootnetworks.com 558 Jisu Bhattacharya 559 Cisco Systems, Inc. 560 United States of America 562 Email: jisu@cisco.com 564 Kamran Raza 565 Cisco Systems, Inc. 566 Canada 568 Email: skraza@cisco.com 569 Pablo Camarillo (editor) 570 Cisco Systems, Inc. 571 Spain 573 Email: pcamaril@cisco.com