idnits 2.17.1 draft-bonica-6man-comp-rtg-hdr-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 : ---------------------------------------------------------------------------- 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 date (March 23, 2019) is 1858 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) -- Looks like a reference, but probably isn't: '0' on line 648 -- Looks like a reference, but probably isn't: '1' on line 649 == Missing Reference: 'SL' is mentioned on line 360, but not defined == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-16 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6man R. Bonica 3 Internet-Draft Juniper Networks 4 Intended status: Standards Track N. So 5 Expires: September 24, 2019 F. Xu 6 Reliance Jio 7 G. Chen 8 Baidu 9 Y. Zhu 10 G. Yang 11 China Telecom 12 Y. Zhou 13 ByteDance 14 March 23, 2019 16 The IPv6 Compressed Routing Header (CRH) 17 draft-bonica-6man-comp-rtg-hdr-03 19 Abstract 21 This document defines the Compressed Routing Header (CRH). The CRH, 22 like any other Routing header, contains a list of segment identifiers 23 (SID). The CRH differs from other Routing headers in that its 24 segment identifiers can be 8, 16 or 32 bits long. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on September 24, 2019. 43 Copyright Notice 45 Copyright (c) 2019 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 4 62 3. The Compressed Routing Header (CRH) . . . . . . . . . . . . . 4 63 4. Segment Identifiers (SID) . . . . . . . . . . . . . . . . . . 6 64 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . 7 65 5.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 7 66 5.2. CRH Specific . . . . . . . . . . . . . . . . . . . . . . 7 67 5.2.1. Computing Minimum CRH Length . . . . . . . . . . . . 9 68 6. Mutability . . . . . . . . . . . . . . . . . . . . . . . . . 9 69 7. Management Considerationsinclude . . . . . . . . . . . . . . 10 70 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10 71 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 72 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 73 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 74 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 75 11.2. Informative References . . . . . . . . . . . . . . . . . 11 76 Appendix A. CRH Processing Examples . . . . . . . . . . . . . . 12 77 A.1. Loose Source Routing . . . . . . . . . . . . . . . . . . 13 78 A.2. Loose Source Routing Preserving The First SID . . . . . . 14 79 A.3. Strict Source Routing . . . . . . . . . . . . . . . . . . 14 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 82 1. Introduction 84 An IPv6 [RFC8200] source node can steer a packet through a specific 85 path to its destination. The source node defines the path as an 86 ordered list of segments and encodes the path in an IPv6 Routing 87 header. As per [RFC8200], all Routing headers includes the following 88 fields: 90 o Next Header - Identifies the header immediately following the 91 Routing header. 93 o Hdr Ext Len - Length of the Routing header. 95 o Routing Type - Identifies the particular Routing header variant. 97 o Segments Left - The number of segments still to be traversed 98 before reaching the destination. 100 o Type-specific Data - Syntax and semantics are defined by the 101 Routing Type. 103 The following Routing types are currently defined: 105 o Source Route (i.e., RH0) [RFC5095] (deprecated) 107 o Type 2 Routing Header [RFC6275] 109 o RPL Source Route Header [RFC6554] 111 o Segment Routing Header (SRH) 112 [I-D.ietf-6man-segment-routing-header] 114 In each of the above-mentioned Routing Types, Type-specific Data 115 contains a list of one or more segment identifiers (SID). Typically, 116 a SID is an IPv6 address that identifies a segment endpoint. In the 117 SRH, the SID may carry additional semantics. 119 In all cases, the SID is 128 bits long. Therefore, routing headers 120 can be very large. For example, an 88-byte Source Route header is 121 required to specify a path that contains six segments. The same can 122 be said of the SRH. 124 Large Routing headers are undesirable for the following reasons: 126 o Many ASIC-based forwarders copy the entire IPv6 extension header 127 chain from buffer memory to on-chip memory. As the size of the 128 IPv6 extension header chain increases, so does the cost of this 129 copy. 131 o Because Path MTU Discovery (PMTUD) [RFC8201] is not entirely 132 reliable, many IPv6 hosts refrain from sending packets larger than 133 the IPv6 minimum link MTU (i.e., 1280 bytes). When packets are 134 small, the overhead imposed by large Routing headers becomes 135 pronounced. 137 This document defines the Compressed Routing Header (CRH). The CRH, 138 like any other Routing header, contains a list of SIDs. The CRH 139 differs from other Routing headers in that its SIDs can be 8, 16, or 140 32 bits long. 142 2. Requirements Language 144 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 145 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 146 "OPTIONAL" in this document are to be interpreted as described in BCP 147 14 [RFC2119] [RFC8174] when, and only when, they appear in all 148 capitals, as shown here. 150 3. The Compressed Routing Header (CRH) 152 Figure 1 depicts the CRH. 154 0 1 2 3 155 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 156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 157 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 158 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 159 | Last Entry |Com| Reserved | 160 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 161 | SID List ........ 162 +-+-+-+-+-+-+-+-+-+-+- 164 Figure 1: Compressed Routing Header (CRH) 166 The CRH contains the following fields: 168 o Next Header - Defined in [RFC8200]. 170 o Hdr Ext Len - Defined in [RFC8200]. 172 o Routing Type - Defined in [RFC8200]. Value TBD by IANA. 174 o Segments Left (SL) - Defined in [RFC8200]. 176 o Last Entry - 8 bits. Represents the index (zero based), in the 177 Segment List, of the last element of the Segment List.. 179 o Com (Compression) - 2 bits. Represents the length of each entry 180 in the SID List. Values are eight bits (0), sixteen bits (1), 181 thirty-two bits (2), and reserved (3). 183 o Reserved - SHOULD be set to zero by the sender. MUST be ignored 184 by the receiver. 186 o SID List - An zero-indexed list of SIDs. SIDs are listed in 187 reverse order, with SID[0] representing the packet's ultimate 188 destination, SID[1] representing the previous segment endpoint and 189 so forth. See Section 4 for SID details. 191 Figure 2 through Figure 4 illustrate CRH encodings with Com equal to 192 0, 1 and 2. In all cases, the CRH MUST end on a 64-bit boundary. 193 Therefore, the CRH MAY be padded with zeros. 195 0 1 2 3 196 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 197 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 198 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 199 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 200 | Last Entry |Com| Reserved | 201 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 202 | SID[0] | SID[1] | ......... 203 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 205 Figure 2: Eight-bit Encoding (Com equals 0) 207 0 1 2 3 208 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 209 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 210 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 211 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 212 | Last Entry |Com| Reserved | 213 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 214 | SID[0] | SID[1] | 215 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| 216 | ......... 217 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 219 Figure 3: Sixteen-bit Encoding (Com equals 1) 221 0 1 2 3 222 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 223 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 224 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 225 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 226 | Last Entry |Com| Reserved | 227 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 228 + SID[0] + 229 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 230 + SID[1] + 231 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 232 // // 233 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 + SID[n] + 235 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 237 Figure 4: Thirty-two bit Encoding (Com equals 2) 239 4. Segment Identifiers (SID) 241 This document defines the following SID types: 243 o Loosely routed 245 o Strictly routed 247 All SIDs, regardless of type, map to exactly one IPv6 address. The 248 mapped address identifies an interface or set of interfaces (in the 249 case of multicast) that terminate the segment. The address MUST be 250 one of the following: 252 o A globally scoped IPv6 unicast address [RFC4291]. 254 o A Unique Local IPv6 Unicast Address (ULA) [RFC4193]. 256 o A Multicast address [RFC4291]. 258 A strictly routed SID also maps to a link interface. Nodes send 259 packets through that interface in order to access the segment 260 endpoint. 262 SIDs are instantiated on nodes and their significance is limited to 263 the node upon which they are instantiated. For example, assume that 264 a SID is instantiated on multiple nodes. It can be loosely routed on 265 one node and strictly routed on another. Likewise, it can map to a 266 different globally scoped address on each node. See Appendix A for 267 an example. 269 Forwarding nodes can learn the above-mentioned mappings from a 270 central controller, from a distributed routing protocol or using any 271 other means. The mechanisms that forwarding nodes use to learn the 272 above-mentioned mappings are beyond the scope of this document. 274 5. Processing Rules 276 5.1. General 278 [RFC8200] defines rules that apply to IPv6 extension headers, in 279 general, and IPv6 Routing headers, in particular. All of these rules 280 apply to the CRH. 282 For example: 284 o Extension headers (except for the Hop-by-Hop Options header) are 285 not processed, inserted, or deleted by any node along a packet's 286 delivery path, until the packet reaches the node (or each of the 287 set of nodes, in the case of multicast) identified in the 288 Destination Address field of the IPv6 header. 290 o If, while processing a received packet, a node encounters a 291 Routing header with an unrecognized Routing Type value, the 292 required behavior of the node depends on the value of the Segments 293 Left field. If Segments Left is zero, the node must ignore the 294 Routing header and proceed to process the next header in the 295 packet, whose type is identified by the Next Header field in the 296 Routing header. If Segments Left is non-zero, the node must 297 discard the packet and send an ICMP [RFC4443] Parameter Problem, 298 Code 0, message to the packet's Source Address, pointing to the 299 unrecognized Routing Type. 301 o If, after processing a Routing header of a received packet, an 302 intermediate node determines that the packet is to be forwarded 303 onto a link whose link MTU is less than the size of the packet, 304 the node must discard the packet and send an ICMP Packet Too Big 305 message to the packet's Source Address. 307 5.2. CRH Specific 309 When a node recognizes and processes a CRH, it executes the following 310 procedure: 312 o If the IPv6 Source Address is a link-local address, discard the 313 packet. 315 o If the IPv6 Source Address is a multicast address, discard the 316 packet. 318 o If Segments Left equal 0, skip over the CRH and process the next 319 header in the packet. 321 o If Segments Left is greater than Last Entry plus one, send an ICMP 322 Parameter Problem, Code 0, message to the Source Address, pointing 323 to the Segments Left field, and discard the packet. 325 o If Com is equal to (3) Reserved, send an ICMP Parameter Problem, 326 Code 0, message to the Source Address, pointing to the Com field, 327 and discard the packet. 329 o If the IPv6 Hop Limit is less than or equal to 1, send an ICMP 330 Time Exceeded -- Hop Limit Exceeded in Transit message to the 331 Source Address and discard the packet. 333 o Compute L, the minimum CRH length (See Section 5.2.1) 335 o If L is greater than Hdr Ext Len, send an ICMP Parameter Problem, 336 Code 0, message to the Source Address, pointing to the Last Entry 337 field, and discard the packet. 339 o Decrement Segments Left (i.e., SL). 341 o Search for SID[SL] in the table that maps SID's to IPv6 addresses 342 and interfaces. If SID[SL] cannot be found in that table, send an 343 ICMP Parameter Problem, Code 0, message to the Source Address, 344 pointing to SID[SL], and discard the packet. 346 o Copy the address associated with SID[SL] to the IPv6 Destination 347 Address. 349 o If the IPv6 Destination address is a multicast address and SL is 350 greater than zero, send an ICMP Parameter Problem, Code 0, message 351 to the Source Address, pointing to Segment List [SL], and discard 352 the packet. 354 o Decrement the IPv6 Hop Limit. 356 o If SID[SL] is a loosely routed segment, resubmit the packet to the 357 IPv6 module for transmission to the new destination. 359 o If SID[SL] is a strictly routed segment, forward the packet 360 through the interface that is associated with SID[SL]. 362 The above stated rules are demonstrated in Appendix A. 364 5.2.1. Computing Minimum CRH Length 366 The algorithm described in this section accepts the following CRH 367 fields as its input parameters: 369 o Compression (Com). 371 o Last Entry. 373 It yields L, the minimum CRH length. The minimum CRH length is 374 measured in 8-octet units, not including the first 8 octets. 376 378 if (Com == 0 ) { /* Eight bit encoding */ 379 L = ( ( Last Entry + 1 ) / 8 ); 380 if ( ( Last Entry + 1 ) % 8 ) 381 L++; 382 } 383 elsif (Com == 1 ) { /* Sixteen bit encoding */ 384 L = ( ( Last Entry + 1 ) / 4 ); 385 if ( ( Last Entry + 1 ) % 4 ) 386 L++; 387 } 388 elsif (Com == 2 ) { /* Thirty-two bit encoding */ 389 L = ( ( Last Entry + 1 ) / 2 ); 390 if ( ( Last Entry + 1 ) % 2 ) 391 L++; 392 } 393 else { /* Invalid Com */ 394 L = 0xFF 396 } 398 return(L) 400 402 6. Mutability 404 The Segments Left field is mutable and MAY be decremented by 405 processing nodes. All remaining fields are immutable. 407 7. Management Considerationsinclude 409 PING and TRACEROUTE [RFC2151] both operate correctly in the presence 410 of the CRH. 412 8. Security Considerations 414 The CRH can be used within trusted domains only. In order to enforce 415 this requirement, domain edge routers MUST do one of the following: 417 o Discard all inbound packets that contain a CRH 419 o Authenticate [RFC4302] [RFC4303] all inbound packets that contain 420 a CRH 422 9. IANA Considerations 424 This document makes the following registration in the Internet 425 Protocol Version 6 (IPv6) Parameters "Routing Type" registry 426 maintained by IANA: 428 Value Description Reference 429 ------------------------------------------------------------ 430 TBD Compressed Routing Header (CRH) This document 432 10. Acknowledgements 434 Thanks to Joel Halpern, Gerald Schmidt, Nancy Shaw and Chandra 435 Venkatraman for their comments. 437 11. References 439 11.1. Normative References 441 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 442 Requirement Levels", BCP 14, RFC 2119, 443 DOI 10.17487/RFC2119, March 1997, 444 . 446 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 447 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 448 2006, . 450 [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, 451 DOI 10.17487/RFC4302, December 2005, 452 . 454 [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", 455 RFC 4303, DOI 10.17487/RFC4303, December 2005, 456 . 458 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 459 Control Message Protocol (ICMPv6) for the Internet 460 Protocol Version 6 (IPv6) Specification", STD 89, 461 RFC 4443, DOI 10.17487/RFC4443, March 2006, 462 . 464 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 465 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 466 May 2017, . 468 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 469 (IPv6) Specification", STD 86, RFC 8200, 470 DOI 10.17487/RFC8200, July 2017, 471 . 473 [RFC8201] McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., 474 "Path MTU Discovery for IP version 6", STD 87, RFC 8201, 475 DOI 10.17487/RFC8201, July 2017, 476 . 478 11.2. Informative References 480 [I-D.ietf-6man-segment-routing-header] 481 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 482 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 483 (SRH)", draft-ietf-6man-segment-routing-header-16 (work in 484 progress), February 2019. 486 [RFC2151] Kessler, G. and S. Shepard, "A Primer On Internet and TCP/ 487 IP Tools and Utilities", FYI 30, RFC 2151, 488 DOI 10.17487/RFC2151, June 1997, 489 . 491 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 492 Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005, 493 . 495 [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation 496 of Type 0 Routing Headers in IPv6", RFC 5095, 497 DOI 10.17487/RFC5095, December 2007, 498 . 500 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 501 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 502 2011, . 504 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 505 Routing Header for Source Routes with the Routing Protocol 506 for Low-Power and Lossy Networks (RPL)", RFC 6554, 507 DOI 10.17487/RFC6554, March 2012, 508 . 510 Appendix A. CRH Processing Examples 512 This appendix provides examples of CRH processing in the following 513 applications: 515 o Loose source routing (Appendix A.1) 517 o Loose source routing preserving the first SID (Appendix A.2) 519 o Strict source routing (Appendix A.3) 521 ----------- 522 2001:db8:0:2/64 |Node: I2 | 2001:db8:0:4/64 523 ----------------------|Loopback: |-------------------- 524 | ::2 |2001:db8::2| ::1 | 525 | ----------- | 526 | ::1 :: 2| 527 ----------- ----------- ----------- 528 |Node: S |2001:db8:0:1/64|Node: I1 |2001:db8:0:3/64|Node: I3 | 529 |Loopback |---------------|Loopback: |---------------|Loopback: | 530 |2001:db8::a| ::1 ::2 |2001:db8::1| ::1 ::2 |2001:db8::3| 531 ----------- ----------- ----------- 532 | ::1 533 ----------- | 534 |Node: D | 2001:db8:0:b/64 | 535 |Loopback: |--------------------- 536 |2001:db8::b| ::2 537 ----------- 539 Figure 5: Reference Topology 541 Figure 5 provides a reference topology that is used in all examples. 543 +--------------------+-----+--------------+ 544 | Instantiating Node | SID | IPv6 Address | 545 +--------------------+-----+--------------+ 546 | All | 1 | 2001:db8::1 | 547 | All | 2 | 2001:db8::2 | 548 | All | 3 | 2001:db8::3 | 549 | All | 10 | 2001:db8::a | 550 | All | 11 | 2001:db8::b | 551 +--------------------+-----+--------------+ 553 Table 1: Loosely Routed SIDs 555 Table 1 provides mappings for loosely routed SIDs. These mappings 556 are instantiated on all nodes in the reference topology. 558 +--------------------+-----+-----------------+-----------+ 559 | Instantiating Node | SID | IPv6 Address | Interface | 560 +--------------------+-----+-----------------+-----------+ 561 | S | 129 | 2001:db8:0:1::2 | S -> I1 | 562 | S | 130 | 2001:db8:0:2::2 | S -> I2 | 563 | I1 | 129 | 2001:db8:0:3::2 | I1 -> I3 | 564 | I2 | 129 | 2001:db8:0:4::2 | I2 -> I3 | 565 | I3 | 129 | 2001:db8:0:b::2 | I3 -> D | 566 +--------------------+-----+-----------------+-----------+ 568 Table 2: Strictly Routed SIDs 570 Table 2 provides mappings for strictly routed SIDs. These mappings 571 are available on the instantiating node only. 573 A.1. Loose Source Routing 575 In this example, Node S sends a packet to Node D, specifying loose 576 source route through Node I3. In this example, the first node in the 577 path, I3, does not appear in the CRH segment list. Therefore, the 578 destination node may not be able to send return traffic through the 579 same path. 581 +-------------------------------------+-------------------+ 582 | As the packet travels from S to I3: | | 583 +-------------------------------------+-------------------+ 584 | Source Address = 2001:db8::a | Last Entry = 0 | 585 | Destination Address = 2001:db8::3 | Segments Left = 1 | 586 | | SID[0] = 11 | 587 +-------------------------------------+-------------------+ 588 +-------------------------------------+-------------------+ 589 | As the packet travels from I3 to D: | | 590 +-------------------------------------+-------------------+ 591 | Source Address = 2001:db8::a | Last Entry = 0 | 592 | Destination Address = 2001:db8::b | Segments Left = 0 | 593 | | SID[0] = 11 | 594 +-------------------------------------+-------------------+ 596 A.2. Loose Source Routing Preserving The First SID 598 In this example, Node S sends a packet to Node D, specifying loose 599 source route through Node I3. In this example, the first node in the 600 path, I3, appears in the CRH segment list. Therefore, the 601 destination node can send return traffic through the same path. 603 +-------------------------------------+-------------------+ 604 | As the packet travels from S to I3: | | 605 +-------------------------------------+-------------------+ 606 | Source Address = 2001:db8::a | Last Entry = 1 | 607 | Destination Address = 2001:db8::3 | Segments Left = 1 | 608 | | SID[0] = 11 | 609 | | SID[1] = 3 | 610 +-------------------------------------+-------------------+ 612 +-------------------------------------+-------------------+ 613 | As the packet travels from I3 to D: | | 614 +-------------------------------------+-------------------+ 615 | Source Address = 2001:db8::a | Last Entry = 1 | 616 | Destination Address = 2001:db8::b | Segments Left = 0 | 617 | | SID[0] = 11 | 618 | | SID[1] = 3 | 619 +-------------------------------------+-------------------+ 621 A.3. Strict Source Routing 623 In this example, Node S sends a packet to Node D, specifying the 624 strict source route through I1 and I3. 626 +---------------------------------------+-------------------+ 627 | As the packet travels from S to I1: | | 628 +---------------------------------------+-------------------+ 629 | Source Address = 2001:db8::a | Last Entry = 1 | 630 | Destination Address = 2001:db8:0:1::2 | Segments Left = 2 | 631 | | SID[0] = 129 | 632 | | SID[1] = 129 | 633 +---------------------------------------+-------------------+ 634 +---------------------------------------+-------------------+ 635 | As the packet travels from I1 to I3: | | 636 +---------------------------------------+-------------------+ 637 | Source Address = 2001:db8::a | Last Entry = 1 | 638 | Destination Address = 2001:db8:0:3::2 | Segments Left = 1 | 639 | | SID[0] = 129 | 640 | | SID[1] = 129 | 641 +---------------------------------------+-------------------+ 643 +---------------------------------------+-------------------+ 644 | As the packet travels from I3 to D: | | 645 +---------------------------------------+-------------------+ 646 | Source Address = 2001:db8::a | Last Entry = 1 | 647 | Destination Address = 2001:db8:0:b::2 | Segments Left = 0 | 648 | | SID[0] = 129 | 649 | | SID[1] = 129 | 650 +---------------------------------------+-------------------+ 652 Authors' Addresses 654 Ron Bonica 655 Juniper Networks 656 2251 Corporate Park Drive 657 Herndon, Virginia 20171 658 USA 660 Email: rbonica@juniper.net 662 Ning So 663 Reliance Jio 664 3010 Gaylord PKWY, Suite 150 665 Frisco, Texas 75034 666 USA 668 Email: Ning.So@ril.com 670 Fengman Xu 671 Reliance Jio 672 3010 Gaylord PKWY, Suite 150 673 Frisco, Texas 75034 674 USA 676 Email: Fengman.Xu@ril.com 677 Gang Chen 678 Baidu 679 No.10 Xibeiwang East Road Haidian District 680 Beijing 100193 681 P.R. China 683 Email: phdgang@gmail.com 685 Yongqing Zhu 686 China Telecom 687 109 West Zhongshan Ave, Tianhe District 688 Guangzhou 689 P.R. China 691 Email: zhuyq.gd@chinatelecom.cn 693 Guangming Yang 694 China Telecom 695 109 West Zhongshan Ave, Tianhe District 696 Guangzhou 697 P.R. China 699 Email: yanggm.gd@chinatelecom.cn 701 Yifeng Zhou 702 ByteDance 703 Building 1, AVIC Plaza, 43 N 3rd Ring W Rd Haidian District 704 Beijing 100000 705 P.R. China 707 Email: yifeng.zhou@bytedance.com