idnits 2.17.1 draft-filsfils-spring-net-pgm-extension-srv6-usid-03.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. -- The document date (February 13, 2020) is 1527 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 (-28) exists of draft-ietf-spring-srv6-network-programming-08 == Outdated reference: A later version (-04) exists of draft-filsfils-spring-srv6-net-pgm-illustration-01 Summary: 1 error (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 SPRING C. Filsfils, Ed. 3 Internet-Draft P. Camarillo, Ed. 4 Intended status: Standards Track Cisco Systems, Inc. 5 Expires: August 16, 2020 D. Cai 6 Alibaba 7 D. Voyer 8 Bell Canada 9 I. Meilik 10 Broadcom 11 K. Patel 12 Arrcus, Inc. 13 W. Henderickx 14 Nokia 15 P. Jonnalagadda 16 Barefoot Networks 17 D. Melman 18 Marvell 19 February 13, 2020 21 Network Programming extension: SRv6 uSID instruction 22 draft-filsfils-spring-net-pgm-extension-srv6-usid-03 24 Abstract 26 The SRv6 "micro segment" (SRv6 uSID or uSID for short) instruction is 27 defined and illustrated. 29 It is a straightforward extension to the SRv6 Network Programming 30 model and its SRH encapsulation. 32 Requirements Language 34 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 35 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 36 "OPTIONAL" in this document are to be interpreted as described in BCP 37 14 [RFC2119] [RFC8174] when, and only when, they appear in all 38 capitals, as shown here. 40 Status of This Memo 42 This Internet-Draft is submitted in full conformance with the 43 provisions of BCP 78 and BCP 79. 45 Internet-Drafts are working documents of the Internet Engineering 46 Task Force (IETF). Note that other groups may also distribute 47 working documents as Internet-Drafts. The list of current Internet- 48 Drafts is at https://datatracker.ietf.org/drafts/current/. 50 Internet-Drafts are draft documents valid for a maximum of six months 51 and may be updated, replaced, or obsoleted by other documents at any 52 time. It is inappropriate to use Internet-Drafts as reference 53 material or to cite them other than as "work in progress." 55 This Internet-Draft will expire on August 16, 2020. 57 Copyright Notice 59 Copyright (c) 2020 IETF Trust and the persons identified as the 60 document authors. All rights reserved. 62 This document is subject to BCP 78 and the IETF Trust's Legal 63 Provisions Relating to IETF Documents 64 (https://trustee.ietf.org/license-info) in effect on the date of 65 publication of this document. Please review these documents 66 carefully, as they describe your rights and restrictions with respect 67 to this document. Code Components extracted from this document must 68 include Simplified BSD License text as described in Section 4.e of 69 the Trust Legal Provisions and are provided without warranty as 70 described in the Simplified BSD License. 72 Table of Contents 74 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 75 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 76 2.1. Notation for human readability . . . . . . . . . . . . . 4 77 3. SRv6 behaviors associated with a uSID . . . . . . . . . . . . 4 78 3.1. uN . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 79 4. Routing . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 80 5. Illustration . . . . . . . . . . . . . . . . . . . . . . . . 5 81 5.1. Reference diagram . . . . . . . . . . . . . . . . . . . . 5 82 5.2. SRv6 overlay with underlay optimization . . . . . . . . . 5 83 6. Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . 7 84 7. Running code . . . . . . . . . . . . . . . . . . . . . . . . 8 85 8. Security . . . . . . . . . . . . . . . . . . . . . . . . . . 8 86 9. Work in progress . . . . . . . . . . . . . . . . . . . . . . 8 87 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 8 88 11. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 89 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 90 12.1. Normative References . . . . . . . . . . . . . . . . . . 12 91 12.2. Informative References . . . . . . . . . . . . . . . . . 13 92 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 94 1. Introduction 96 SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming] 97 defines a mechanism to build a network program with topological and 98 service segments. It leverages the SRH 99 [I-D.ietf-6man-segment-routing-header] to encode a network program 100 together with optional metadata shared among the different SIDs. 102 This draft extends SRv6 Network Programming with a new type of SRv6 103 SID behavior: SRv6 uN. This is combined with the rest of 104 instructions of the network program and the SRH encapsulation to 105 build programs in a scalable and efficient way. 107 2. Terminology 109 The SRv6 Network Programming 110 [I-D.ietf-spring-srv6-network-programming] and SRH 111 [I-D.ietf-6man-segment-routing-header] terminology is leveraged and 112 extended with the following terms: 114 uSID carrier: a 128bit SRv6 SID of format ....... A 116 uSID carrier can be encoded in the Destination Address of an IPv6 117 header or at any position in the Segment List of an SRH. 119 uSID block: A block of uSID's 121 It can be any IPv6 prefix allocated to the provider (e.g. /40 or 122 /48), or it can be any block generally available for private use 123 (e.g. /16 or /32). An SR domain may have multiple uSID blocks. 125 uSID: in this document a 16-bit ID. A different uSID length may be 126 used. 128 Active uSID: first uSID after the uSID block 130 Next uSID: next uSID after the Active uSID 132 Last uSID: from left to right, the last uSID before the first End-of- 133 Carrier uSID 135 End-of-Carrier: reserved ID used to mark the end of a uSID carrier. 136 The value 0000 is selected as End-of-Carrier. All of the empty uSID 137 carrier positions must be filled with the End-of-Carrier ID. Hence, 138 the End-of-Carrier can be present more than once in a uSID carrier. 140 Parent (node): the node at which an uSID is instantiated. The uSIDs 141 are instantiated on a per-parent node basis. 143 Behavior of an uSID: the SRv6 function associated with a given ID. 144 Section 3 defines them. 146 2.1. Notation for human readability 148 For human readability, the examples in this document follow this 149 notation: 151 2001:db8::/32 is the uSID block used in the SR domain 153 0N00: uN behavior bound to node N 155 3. SRv6 behaviors associated with a uSID 157 The SRv6 SRH encapsulation and its network programming model are 158 extended with the following functions: 160 3.1. uN 162 The uN behavior is a variant of the endpoint behavior. 164 This behavior takes a 80b argument, "Arg", which contains the next 165 uSIDs in the uSID carrier. 167 When N receives a packet whose IPv6 DA is S and S is a local uN SID, 168 N does: 170 1. IF DA[48..63] != 0 ;; Ref1 171 2. Copy DA[48..127] into DA[32..111] 172 3. Set DA[112..127] to 0x0000 173 4. Forward the packet to the new DA 174 5. ELSE 175 6. Execute the End pseudocode ;; Ref2 177 Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in 178 the IPv6 Destination Address of the received packet. The bit 0 is 179 the MSB, while the bit 127 is the LSB. 181 Ref 2: This refers to the End behavior as defined in Section 4.1 of 182 [I-D.ietf-spring-srv6-network-programming]. The End behavior may be 183 combined with the PSP, USP and USD flavours. 185 4. Routing 187 If N is configured with a uN SID 2001:db8::/32 then the operator must 188 ensure that N advertises 2001:db8::/32 in routing. 190 5. Illustration 192 This section extends the illustrations for SRv6 Network Programming 193 [I-D.filsfils-spring-srv6-net-pgm-illustration] to cover uSID. The 194 reference topology is the same with the addition of link 6-8. 196 5.1. Reference diagram 198 Nodes 1 to 8 are considered within the network domain. 200 Nodes X and Y are outside the domain. 202 Nodes 1 and 8 act as PE respectively to nodes X and Y. 204 All the links within the domain have the same IGP metric. The IGP- 205 metric shortest-path from 1 to 8 is 1-2-7-8 while the latency-metric 206 shortest-path from 1 to 8 is 1-2-3-4-5-6-7-8. 208 3------4---5 209 | \ / 210 | 6 211 | / \ 212 1--- 2------7---8 213 / \ 214 X Y 215 Tenant100 Tenant100 with 216 IPv4 20/8 218 Figure 1: Reference topology 220 5.2. SRv6 overlay with underlay optimization 222 Let us illustrate a low-latency SR-L3VPN service delivered to a 223 packet (X,Y). 225 PE 1 encapsulates (X, Y) in an outer IPv6 header with DA = 226 2001:db8:0300:0500:0700:: and SRH (B:8:D0::; SL=1; NH=4). Leveraging 227 the illustration conventions from SRv6 network programming, the 228 following resulting packet leaves node 1 in the direction of node 3: 230 (A1::, 2001:db8:0300:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 232 2001:db8:0300:0500:0700:: is a uSID carrier encoding a source routed 233 stateless path via node 3 then 5 then 7. 235 B:8:D0:: is an End.DT4 SID instantiated at node 8. 237 1 sends this packet to 2, as 2 is on the shortest-path to 238 2001:db8:0300::/48 advertised by 3. 240 When 2 receives the packet, 2 performs a regular IPv6 FIB lookup. It 241 finds a FIB entry for 2001:db8:0300::/48 and forwards along the 242 shortest path to 3. 244 When 3 receives the packet, 3 matches 2001:db8:0300::/48 in its "My 245 SID Table" and executes the uN behavior. The updated DA becomes 246 2001:db8:0500:0700::. Node 3 then performs a lookup on the updated DA 247 and forwards the packet to 5 along the shortest path to 248 2001:db8:0500::/48. 250 The following packet leaves node 3: 252 (A1::, 2001:db8:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 254 4 forwards along the shortest path to 2001:db8:0500::/48. 256 When 5 receives the packet, 5 matches 2001:db8:0500::/48 in its "My 257 SID Table" and executes the uN behavior. The updated DA becomes 258 2001:db8:0700::. 5 performs a lookup on the updated DA and forwards 259 the packet to 7 along the shortest path to 2001:db8:0700::/48. 261 The following packet leaves node 5: 263 (A1::, 2001:db8:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 265 6 forwards along the shortest path to 2001:db8:0700::/48. 267 When 7 receives the packet, 7 matches 2001:db8:0700::/48 in its "My 268 SID Table" and finds the bound function uN. As a result, Node 7 269 executes the "End with PSP and USD support" pseudocode, decrementing 270 the SL value in the SRH, and updating the DA with the next SID 271 B:8:D0::. Since the SL value is zero the SRH is removed. Node 7 272 performs a lookup on the updated DA and forwards along the shortest 273 path. 275 The following packet leaves node 7: 277 (A1::, B:8:D0::)(X, Y) 279 8 receives it, performs the End.DT4 function and sends the IP packet 280 (X, Y) towards its VPN destination. 282 This example illustrates the benefits highlighted in the next 283 section. 285 6. Benefits 287 Perfect integration with SRv6 Network Programming 289 SRv6 uSID is an instruction of the SRv6 network programming 290 model 292 Perfect integration with SRH 294 Any SID in DA or SRH can be an SRv6 uSID carrier 296 Scalable SR Policy 298 6 uSID' per uSID carrier 300 18 source routing waypoints in solely 40bytes of overhead 302 T.Encaps.Red with an SRH of 40 bytes (8 fixed + 2 * 16 303 bytes) 305 6 uSID's in DA and 12 in SRH 307 Efficient MTU overhead 309 In apple to apple comparison, the SRv6 solution outperforms any 310 alternative (VxLAN with SR-MPLS, CRH). 312 Scalable number of globally unique nodes in the domain 314 16-bit uSID: 65k uSIDs per domain block 316 32-bit uSID: 4.3M uSIDs per domain block 318 Hardware-friendly: 320 Leverages mature hardware capabilities (shift) 322 Avoids any extra lookup in indexed mapping table 324 Demonstrated by Cisco linerate implementation on Jericho1 326 Control-Plane friendly 328 No indexed mapping table is required 330 No routing extension is required: a simple prefix advertisement 331 suffices 333 7. Running code 335 The hardware and software platforms listed below have demonstrated 336 support for the uN instruction defined in this document. 338 Further on, all these implementations have participated in a joint 339 interoperability testing. 341 Hardware implementations (in alphabetical order): 343 Arrcus ArcOS (based on Broadcom Jericho2) 345 Barefoot Tofino NPU 347 Cisco 8000 Series Routers (based on Cisco Silicon One Q100) 349 Cisco ASR9000 platform (with 3rd gen Tomahawk and 4th gen 350 Lightspeed line-cards) 352 Cisco NCS5500 platform (based on Broadcom Jericho/Jericho+) 354 Marvell Prestera Falcon CX 8500 356 Software open-source implementations (in alphabetical order): 358 FD.io VPP 360 Linux Kernel 362 8. Security 364 The security rules defined in Section 7 of 365 [I-D.ietf-spring-srv6-network-programming], protect intra-domain 366 deployments that includes SRv6 uSID. 368 9. Work in progress 370 Future version of this document will include other uSID behaviors 371 related to TE, VPN and service programming. 373 10. Acknowledgements 375 The authors would like to acknowledge Francois Clad, Peter Psenak, 376 Ketan Talaulikar, Jakub Horn, Swadesh Agrawal, Zafar Ali, Darren 377 Dukes, Kiran Sadshiran, Junaid Israr, Lakshmanan Srikanth, Asif 378 Islam, Saleem Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su, 379 Alexander Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik 380 Semco, Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal 381 Dagan, Eli Stein, Ofer Iny, Elad Naor, Aviad Behar, Joseph Chin. 383 11. Contributors 385 Jisu Bhattacharyaa 386 Cisco Systems, Inc. 387 United States of America 389 Email: jisu@cisco.com 391 Kamran Raza 392 Cisco Systems, Inc. 393 Canada 395 Email: skraza@cisco.com 397 John Bettink 398 Cisco Systems, Inc. 399 United States of America 401 Email: jbettink@cisco.com 403 Tomonobu Niwa 404 KDDI 405 Japan 407 Email: to-niwa@kddi.com 409 Luay Jalil 410 Verizon 411 United States of America 413 Email: luay.jalil@one.verizon.com 415 Zhichun Jiang 416 Tencent 417 China 418 Email: zcjiang@tencent.com 420 Ahmed Shawky 421 Saudi Telecom Company 422 Saudi Arabia 424 Email: ashawky@stc.com.sa 426 Nic Leymann 427 Deutsche Telekom 428 Germany 430 Email: N.Leymann@telekom.de 432 Dirk Steinberg 433 Lapishills Consulting Limited 434 Cyprus 436 Email: dirk@lapishills.com 438 Shawn Zandi 439 LinkedIn 440 United States of America 442 Email: szandi@linkedin.com 444 Gaurav Dawra 445 LinkedIn 446 United States of America 448 Email: gdawra@linkedin.com 450 Jim Uttaro 451 AT&T 452 United States of America 453 Email: ju1738@att.com 455 Ning So 456 Reliance 457 United States of America 459 Email: Ning.So@ril.com 461 Michael Fiumano 462 Sprint 463 United States of America 465 Email: michael.f.fiumano@sprint.com 467 Mazen Khaddam 468 Cox 469 United States of America 471 Email: Mazen.Khaddam@cox.com 473 Jichun Ma 474 China Unicom 475 China 477 Email: majc16@chinaunicom.cn 479 Satoru Matsushima 480 Softbank 481 Japan 483 Email: satoru.matsushima@g.softbank.co.jp 485 Francis Ferguson 486 CenturyLink 487 United States of America 488 Email: Francis.Ferguson@centurylink.com 490 Takuya Miyasaka 491 KDDI 492 Japan 494 Email: ta-miyasaka@kddi.com 496 Kentaro Ebisawa 497 Toyota Motor Corporation 498 Japan 500 Email: ebisawa@toyota-tokyo.tech 502 Yukito Ueno 503 NTT Communications Corporation 504 Japan 506 Email: yukito.ueno@ntt.com 508 12. References 510 12.1. Normative References 512 [I-D.ietf-6man-segment-routing-header] 513 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 514 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 515 (SRH)", draft-ietf-6man-segment-routing-header-26 (work in 516 progress), October 2019. 518 [I-D.ietf-spring-srv6-network-programming] 519 Filsfils, C., Camarillo, P., Leddy, J., Voyer, D., 520 Matsushima, S., and Z. Li, "SRv6 Network Programming", 521 draft-ietf-spring-srv6-network-programming-08 (work in 522 progress), January 2020. 524 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 525 Requirement Levels", BCP 14, RFC 2119, 526 DOI 10.17487/RFC2119, March 1997, 527 . 529 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 530 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 531 May 2017, . 533 12.2. Informative References 535 [I-D.filsfils-spring-srv6-net-pgm-illustration] 536 Filsfils, C., Camarillo, P., Li, Z., Matsushima, S., 537 Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and 538 J. Leddy, "Illustrations for SRv6 Network Programming", 539 draft-filsfils-spring-srv6-net-pgm-illustration-01 (work 540 in progress), August 2019. 542 Authors' Addresses 544 Clarence Filsfils (editor) 545 Cisco Systems, Inc. 546 Belgium 548 Email: cf@cisco.com 550 Pablo Camarillo Garvia (editor) 551 Cisco Systems, Inc. 552 Spain 554 Email: pcamaril@cisco.com 556 Dennis Cai 557 Alibaba 558 China 560 Email: d.cai@alibaba-inc.com 562 Daniel Voyer 563 Bell Canada 564 Canada 566 Email: daniel.voyer@bell.ca 568 Israel Meilik 569 Broadcom 570 Israel 572 Email: israel.meilik@broadcom.com 573 Keyur Patel 574 Arrcus, Inc. 575 United States of America 577 Email: keyur@arrcus.com 579 Wim Henderickx 580 Nokia 581 Belgium 583 Email: wim.henderickx@nokia.com 585 Prem Jonnalagadda 586 Barefoot Networks 587 United States of America 589 Email: prem@barefootnetworks.com 591 David Melman 592 Marvell 593 Israel 595 Email: davidme@marvell.com