idnits 2.17.1 draft-filsfils-spring-net-pgm-extension-srv6-usid-01.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 P. Camarillo, Ed. 3 Intended status: Standards Track Cisco Systems, Inc. 4 Expires: January 23, 2020 D. Cai 5 Alibaba 6 Z. Jiang 7 Tencent 8 D. Voyer 9 Bell Canada 10 A. Shawky 11 Saudi Telecom Company 12 N. Leymann 13 Deutsche Telekom 14 D. Steinberg 15 Lapishills Consulting Limited 16 S. Zandi 17 G. Dawra 18 LinkedIn 19 I. Meilik 20 Broadcom 21 J. Uttaro 22 AT&T 23 L. Jalil 24 Verizon 25 N. So 26 Reliance 27 M. Fiumano 28 Sprint 29 M. Khaddam 30 Cox 31 J. Ma 32 China Unicom 33 S. Matsushima 34 Softbank 35 F. Ferguson 36 CenturyLink 37 T. Miyasaka 38 KDDI 39 K. Ebisawa 40 Toyota Motor Corporation 41 Y. Ueno 42 NTT Communications Corporation 43 W. Henderickx 44 Nokia 45 P. Jonnalagadda 46 Barefoot Networks 47 J. Bhattacharya 48 K. Raza 49 Cisco Systems, Inc. 50 July 22, 2019 52 Network Programming extension: SRv6 uSID instruction 53 draft-filsfils-spring-net-pgm-extension-srv6-usid-01 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 23, 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 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. Work in progress . . . . . . . . . . . . . . . . . . . . . . 9 117 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 9 118 10. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 9 119 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 120 11.1. Normative References . . . . . . . . . . . . . . . . . . 9 121 11.2. Informative References . . . . . . . . . . . . . . . . . 10 122 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 124 1. Introduction 126 SRv6 Network Programming [I-D.ietf-spring-srv6-network-programming] 127 defines a mechanism to build a network program with topological and 128 service segments. It leverages the SRH 129 [I-D.ietf-6man-segment-routing-header] to encode a network program 130 together with optional metadata shared among the different SIDs. 132 This draft extends SRv6 Network Programming with a new type of SRv6 133 SID behavior: SRv6 uN. This is combined with the rest of 134 instructions of the network program and the SRH encapsulation to 135 build programs in a scalable and efficient way. 137 2. Terminology 139 The SRv6 Network Programming 140 [I-D.ietf-spring-srv6-network-programming] and SRH 141 [I-D.ietf-6man-segment-routing-header] terminology is leveraged and 142 extended with the following terms: 144 uSID carrier: a 128bit SRv6 SID of format ....... 147 uSID block: A block of uSID's 149 It can be any IPv6 prefix allocated to the provider (e.g. /40 or 150 /48), or it can be any block generally available for private use. 151 An SR domain may have multiple uSID blocks. 153 uSID: in this document a 16-bit ID. A different length may be used. 155 Active uSID: first uSID after the uSID block 157 Next uSID: next uSID after the Active uSID 159 Last uSID: from left to right, the last uSID before the first End-of- 160 Carrier uSID 162 End-of-Carrier: reserved ID used to mark the end of a uSID carrier. 163 The value 0000 is selected as End-of-Carrier. All of the empty uSID 164 carrier positions must be filled with the End-of-Carrier ID. Hence, 165 the End-of-Carrier can be present more than once in a uSID carrier. 167 Parent (node): the node at which an uSID is instantiated. The uSIDs 168 are instantiated on a per-parent node basis. 170 Behavior of an uSID: the SRv6 function associated with a given ID. 171 Section 3 defines them. 173 2.1. Notation for human readability 175 For human readability, the examples in this document follow this 176 notation: 178 2001:db8::/32 is the uSID block used in the SR domain 180 0N00: uN behavior bound to node N 182 3. SRv6 behaviors associated with a uSID 184 The SRv6 SRH encapsulation and its network programming model are 185 extended with the following functions: 187 3.1. uN 189 The uN behavior is a variant of the endpoint behavior. 191 This behavior takes a 80b argument, "Arg", which contains the next 192 uSIDs in the uSID carrier. 194 When N receives a packet whose IPv6 DA is S and S is a local uN SID, 195 N does: 197 1. IF DA[48..63] != 0 ;; Ref1 198 2. Copy DA[48..127] into DA[32..111] 199 3. Set DA[112..127] to 0x0000 200 4. Forward the packet to the new DA 201 5. ELSE 202 6. Execute the End pseudocode ;; Ref2 204 Ref 1: DA[X..Y] refers to the bits from position X to Y (included) in 205 the IPv6 Destination Address of the received packet. The bit 0 is 206 the MSB, while the bit 127 is the LSB. 208 Ref 2: This refers to the End behavior as defined in Section 4.1 of 209 [I-D.ietf-spring-srv6-network-programming]. The End behavior may be 210 combined with the PSP, USP and USD flavours. 212 4. Routing 214 If N is configured with a uN SID 2001:db8::/32 then the operator must 215 ensure that N advertises 2001:db8::/32 in routing. 217 5. Illustration 219 This section extends the illustrations for SRv6 Network Programming 220 [I-D.filsfils-spring-srv6-net-pgm-illustration] to cover uSID. The 221 reference topology is the same with the addition of link 6-8. 223 5.1. Reference diagram 225 Nodes 1 to 8 are considered within the network domain. 227 Nodes X and Y are outside the domain. 229 Nodes 1 and 8 act as PE respectively to nodes X and Y. 231 All the links within the domain have the same IGP metric. The IGP- 232 metric shortest-path from 1 to 8 is 1-2-7-8 while the latency-metric 233 shortest-path from 1 to 8 is 1-2-3-4-5-6-7-8. 235 3------4---5 236 | \ / 237 | 6 238 | / \ 239 1--- 2------7---8 240 / \ 241 X Y 242 Tenant100 Tenant100 with 243 IPv4 20/8 245 Figure 1: Reference topology 247 5.2. SRv6 overlay with underlay optimization 249 Let us illustrate a low-latency SR-L3VPN service delivered to a 250 packet (X,Y). 252 PE 1 encapsulates (X, Y) in an outer IPv6 header with DA = 253 2001:db8:0300:0500:0700:: and SRH (B:8:D0::; SL=1; NH=4). Leveraging 254 the illustration conventions from SRv6 network programming, the 255 following resulting packet leaves node 1 in the direction of node 3: 257 (A1::, 2001:db8:0300:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 259 2001:db8:0300:0500:0700:: is a uSID carrier encoding a source routed 260 stateless path via node 3 then 5 then 7. 262 B:8:D0:: is an End.DT4 SID instantiated at node 8. 264 1 sends this packet to 2, as 2 is on the shortest-path to 265 2001:db8:0300::/32 advertised by 3. 267 When 2 receives the packet, 2 performs a regular IPv6 FIB lookup. It 268 finds a FIB entry for 2001:db8:0300::/32 and forwards along the 269 shortest path to 3. 271 When 3 receives the packet, 3 matches 2001:db8:0300::/32 in its "My 272 SID Table" and executes the uN behavior. The updated DA becomes 273 2001:db8:0500:0700::. Node 3 then performs a lookup on the updated DA 274 and forwards the packet to 5 along the shortest path to 275 2001:db8:0500::/32. 277 The following packet leaves node 3: 279 (A1::, 2001:db8:0500:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 281 4 forwards along the shortest path to 2001:db8:0500::/32. 283 When 5 receives the packet, 5 matches 2001:db8:0500::/32 in its "My 284 SID Table" and executes the uN behavior. The updated DA becomes 285 2001:db8:0700::. 5 performs a lookup on the updated DA and forwards 286 the packet to 7 along the shortest path to 2001:db8:0700::/32. 288 The following packet leaves node 5: 290 (A1::, 2001:db8:0700::)(B:8:D0::; SL=1; NH=4)(X, Y) 292 6 forwards along the shortest path to 2001:db8:0700::/32. 294 When 7 receives the packet, 7 matches 2001:db8:0700::/32 in its "My 295 SID Table" and finds the bound function uN. As a result, Node 7 296 executes the "End with PSP and USD support" pseudocode, decrementing 297 the SL value in the SRH, and updating the DA with the next SID 298 B:8:D0::. Since the SL value is zero the SRH is removed. Node 7 299 performs a lookup on the updated DA and forwards along the shortest 300 path. 302 The following packet leaves node 7: 304 (A1::, B:8:D0::)(X, Y) 306 8 receives it, performs the End.DT4 function and sends the IP packet 307 (X, Y) towards its VPN destination. 309 This example illustrates the benefits highlighted in the next 310 section. 312 6. Benefits 314 Perfect integration with SRv6 Network Programming 316 SRv6 uSID is an instruction of the SRv6 network programming 317 model 319 Perfect integration with SRH 321 Any SID in DA or SRH can be an SRv6 uSID carrier 323 Scalable SR Policy 325 6 uSID' per uSID carrier 327 18 source routing waypoints in solely 40bytes of overhead 329 T.Encaps.Red with an SRH of 40 bytes (8 fixed + 2 * 16 330 bytes) 332 6 uSID's in DA and 12 in SRH 334 Efficient MTU overhead 336 In apple to apple comparison, the SRv6 solution outperforms any 337 alternative (VxLAN with SR-MPLS, CRH). 339 Scalable number of globally unique nodes in the domain 341 16-bit uSID: 65k uSIDs per domain block 343 32-bit uSID: 4.3M uSIDs per domain block 345 Hardware-friendly: 347 Leverages mature hardware capabilities (shift) 349 Avoids any extra lookup in indexed mapping table 351 Demonstrated by Cisco linerate implementation on Jericho1 353 Control-Plane friendly 355 No indexed mapping table is required 357 No routing extension is required: a simple prefix advertisement 358 suffices 360 7. Security 362 The security rules defined in Section 7 of 363 [I-D.ietf-spring-srv6-network-programming], protect intra-domain 364 deployments that includes SRv6 uSID. 366 8. Work in progress 368 Future version of this document will include other uSID behaviors 369 related to TE, VPN and service programming. 371 9. Acknowledgements 373 The authors would like to acknowledge Francois Clad, Peter Psenak, 374 Ketan Talaulikar, Swadesh Agrawal, Zafar Ali, Darren Dukes, Kiran 375 Sadshiran, Junaid Israr, Lakshmanan Srikanth, Asif Islam, Saleem 376 Hafeez, Michael MacKenzie, Sushek Shekar, YuanChao Su, Alexander 377 Preusche, Alberto Donzelli, Miya Kohno, David Smith, Ianik Semco, 378 Bertrand Duvivier, Frederic Trate, Kris Michielsen, Eyal Dagan, Eli 379 Stein, Ofer Iny, Elad Naor, Aviad Behar, Joseph Chin. 381 10. Contributors 383 Tomonobu Niwa 384 KDDI 385 Japan 387 Email: to-niwa@kddi.com 389 11. References 391 11.1. Normative References 393 [I-D.ietf-6man-segment-routing-header] 394 Filsfils, C., Dukes, D., Previdi, S., Leddy, J., 395 Matsushima, S., and d. daniel.voyer@bell.ca, "IPv6 Segment 396 Routing Header (SRH)", draft-ietf-6man-segment-routing- 397 header-21 (work in progress), June 2019. 399 [I-D.ietf-spring-srv6-network-programming] 400 Filsfils, C., Camarillo, P., Leddy, J., 401 daniel.voyer@bell.ca, d., Matsushima, S., and Z. Li, "SRv6 402 Network Programming", draft-ietf-spring-srv6-network- 403 programming-01 (work in progress), July 2019. 405 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 406 Requirement Levels", BCP 14, RFC 2119, 407 DOI 10.17487/RFC2119, March 1997, 408 . 410 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 411 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 412 May 2017, . 414 11.2. Informative References 416 [I-D.filsfils-spring-srv6-net-pgm-illustration] 417 Filsfils, C., Camarillo, P., Li, Z., Matsushima, S., 418 Decraene, B., Steinberg, D., Lebrun, D., Raszuk, R., and 419 J. Leddy, "Illustrations for SRv6 Network Programming", 420 draft-filsfils-spring-srv6-net-pgm-illustration-00 (work 421 in progress), February 2019. 423 Authors' Addresses 425 Clarence Filsfils 426 Cisco Systems, Inc. 427 Belgium 429 Email: cf@cisco.com 431 Pablo Camarillo Garvia 432 Cisco Systems, Inc. 433 Spain 435 Email: pcamaril@cisco.com 437 Dennis Cai 438 Alibaba 439 China 441 Email: d.cai@alibaba-inc.com 443 Zhichun Jiang 444 Tencent 445 China 447 Email: zcjiang@tencent.com 448 Daniel Voyer 449 Bell Canada 450 Canada 452 Email: daniel.voyer@bell.ca 454 Ahmed Shawky 455 Saudi Telecom Company 456 Saudi Arabia 458 Email: ashawky@stc.com.sa 460 Nic Leymann 461 Deutsche Telekom 462 Germany 464 Email: N.Leymann@telekom.de 466 Dirk Steinberg 467 Lapishills Consulting Limited 468 Cyprus 470 Email: dirk@lapishills.com 472 Shawn Zandi 473 LinkedIn 474 United States of America 476 Email: szandi@linkedin.com 478 Gaurav Dawra 479 LinkedIn 480 United States of America 482 Email: gdawra@linkedin.com 484 Israel Meilik 485 Broadcom 486 Israel 488 Email: israel.meilik@broadcom.com 489 Jim Uttaro 490 AT&T 491 United States of America 493 Email: ju1738@att.com 495 Luay Jalil 496 Verizon 497 United States of America 499 Email: luay.jalil@one.verizon.com 501 Ning So 502 Reliance 503 United States of America 505 Email: Ning.So@ril.com 507 Michael Fiumano 508 Sprint 509 United States of America 511 Email: michael.f.fiumano@sprint.com 513 Mazen Khaddam 514 Cox 515 United States of America 517 Email: Mazen.Khaddam@cox.com 519 Jichun Ma 520 China Unicom 521 China 523 Email: majc16@chinaunicom.cn 525 Satoru Matsushima 526 Softbank 527 Japan 529 Email: satoru.matsushima@g.softbank.co.jp 530 Francis Ferguson 531 CenturyLink 532 United States of America 534 Email: Francis.Ferguson@centurylink.com 536 Takuya Miyasaka 537 KDDI 538 Japan 540 Email: ta-miyasaka@kddi.com 542 Kentaro Ebisawa 543 Toyota Motor Corporation 544 Japan 546 Email: ebisawa@toyota-tokyo.tech 548 Yukito Ueno 549 NTT Communications Corporation 550 Japan 552 Email: yukito.ueno@ntt.com 554 Wim Henderickx 555 Nokia 556 Belgium 558 Email: wim.henderickx@nokia.com 560 Prem Jonnalagadda 561 Barefoot Networks 562 United States of America 564 Email: prem@barefootnetworks.com 566 Jisu Bhattacharya 567 Cisco Systems, Inc. 568 United States of America 570 Email: jisu@cisco.com 571 Kamran Raza 572 Cisco Systems, Inc. 573 Canada 575 Email: skraza@cisco.com