idnits 2.17.1 draft-bonica-6man-comp-rtg-hdr-02.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 : ---------------------------------------------------------------------------- ** There is 1 instance of too long lines in the document, the longest one being 7 characters in excess of 72. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 9, 2019) is 1846 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 644 -- Looks like a reference, but probably isn't: '1' on line 645 == Missing Reference: 'SL' is mentioned on line 356, but not defined == Outdated reference: A later version (-26) exists of draft-ietf-6man-segment-routing-header-16 Summary: 1 error (**), 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 X. Xu 5 Expires: September 10, 2019 Alibaba Inc 6 G. Chen 7 Baidu 8 Y. Zhu 9 G. Yang 10 China Telecom 11 March 9, 2019 13 The IPv6 Compressed Routing Header (CRH) 14 draft-bonica-6man-comp-rtg-hdr-02 16 Abstract 18 This document defines the Compressed Routing Header (CRH). The CRH, 19 like any other Routing header, contains a list of segment identifiers 20 (SID). The CRH differs from other Routing headers in that its 21 segment identifiers can be 8, 16 or 32 bits long. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at https://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on September 10, 2019. 40 Copyright Notice 42 Copyright (c) 2019 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (https://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 59 3. The Compressed Routing Header (CRH) . . . . . . . . . . . . . 4 60 4. Segment Identifiers (SID) . . . . . . . . . . . . . . . . . . 6 61 5. Processing Rules . . . . . . . . . . . . . . . . . . . . . . 6 62 5.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 6 63 5.2. CRH Specific . . . . . . . . . . . . . . . . . . . . . . 7 64 5.2.1. Computing Minimum CRH Length . . . . . . . . . . . . 8 65 6. Mutability . . . . . . . . . . . . . . . . . . . . . . . . . 9 66 7. Management Considerationsinclude . . . . . . . . . . . . . . 9 67 8. Security Considerations . . . . . . . . . . . . . . . . . . . 9 68 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 69 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 70 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 71 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 72 11.2. Informative References . . . . . . . . . . . . . . . . . 11 73 Appendix A. CRH Processing Examples . . . . . . . . . . . . . . 11 74 A.1. Loose Source Routing . . . . . . . . . . . . . . . . . . 13 75 A.2. Loose Source Routing Preserving The First SID . . . . . . 13 76 A.3. Strict Source Routing . . . . . . . . . . . . . . . . . . 14 77 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 79 1. Introduction 81 An IPv6 [RFC8200] source node can steer a packet through a specific 82 path to its destination. The source node defines the path as an 83 ordered list of segments and encodes the path in an IPv6 Routing 84 header. As per [RFC8200], all Routing headers includes the following 85 fields: 87 o Next Header - Identifies the header immediately following the 88 Routing header. 90 o Hdr Ext Len - Length of the Routing header. 92 o Routing Type - Identifies the particular Routing header variant. 94 o Segments Left - The number of segments still to be traversed 95 before reaching the destination. 97 o Type-specific Data - Syntax and semantics are defined by the 98 Routing Type. 100 The following Routing types are currently defined: 102 o Source Route (i.e., RH0) [RFC5095] (deprecated) 104 o Type 2 Routing Header [RFC6275] 106 o RPL Source Route Header [RFC6554] 108 o Segment Routing Header (SRH) 109 [I-D.ietf-6man-segment-routing-header] 111 In each of the above-mentioned Routing Types, Type-specific Data 112 contains a list of one or more segment identifiers (SID). Typically, 113 a SID is an IPv6 address that identifies a segment endpoint. In the 114 SRH, the SID may carry additional semantics. 116 In all cases, the SID is 128 bits long. Therefore, routing headers 117 can be very large. For example, an 88-byte Source Route header is 118 required to specify a path that contains six segments. The same can 119 be said of the SRH. 121 Large Routing headers are undesirable for the following reasons: 123 o Many ASIC-based forwarders copy the entire IPv6 extension header 124 chain from buffer memory to on-chip memory. As the size of the 125 IPv6 extension header chain increases, so does the cost of this 126 copy. 128 o Because Path MTU Discovery (PMTUD) [RFC8201] is not entirely 129 reliable, many IPv6 hosts refrain from sending packets larger than 130 the IPv6 minimum link MTU (i.e., 1280 bytes). When packets are 131 small, the overhead imposed by large Routing headers becomes 132 pronounced. 134 This document defines the Compressed Routing Header (CRH). The CRH, 135 like any other Routing header, contains a list of SIDs. The CRH 136 differs from other Routing headers in that its SIDs can be 8, 16, or 137 32 bits long. 139 2. Requirements Language 141 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 142 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 143 "OPTIONAL" in this document are to be interpreted as described in BCP 144 14 [RFC2119] [RFC8174] when, and only when, they appear in all 145 capitals, as shown here. 147 3. The Compressed Routing Header (CRH) 149 Figure 1 depicts the CRH. 151 0 1 2 3 152 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 153 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 154 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 156 | Segments |Com| Reserved | 157 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 158 | SID List ........ 159 +-+-+-+-+-+-+-+-+-+-+- 161 Figure 1: Compressed Routing Header (CRH) 163 The CRH contains the following fields: 165 o Next Header - Defined in [RFC8200]. 167 o Hdr Ext Len - Defined in [RFC8200]. 169 o Routing Type - Defined in [RFC8200]. Value TBD by IANA. 171 o Segments Left (SL) - Defined in [RFC8200]. 173 o Segments - 6-bit unsigned integer. Represents the number of 174 entries in the SID List. 176 o Com (Compression) - 2 bits. Represents the length of each entry 177 in the SID List. Values are eight bits (0), sixteen bits (1), 178 thirty-two bits (2), and reserved (3). 180 o Reserved - SHOULD be set to zero by the sender. MUST be ignored 181 by the receiver. 183 o SID List - An zero-indexed list of SIDs. SIDs are listed in 184 reverse order, with SID[0] representing the packet's ultimate 185 destination, SID[1] representing the previous segment endpoint and 186 so forth. See Section 4 for SID details. 188 Figure 2 through Figure 4 illustrate CRH encodings with Com equal to 189 0, 1 and 2. In all cases, the CRH MUST end on a 64-bit boundary. 190 Therefore, the CRH MAY be padded with zeros. 192 0 1 2 3 193 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 194 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 195 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 196 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 197 | Segments |Com| Reserved | 198 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 199 | SID[0] | SID[1] | ......... 200 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 202 Figure 2: Eight-bit Encoding (Com equals 0) 204 0 1 2 3 205 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 206 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 207 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 208 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 209 | Segments |Com| Reserved | 210 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 211 | SID[0] | SID[1] | 212 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| 213 | ......... 214 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- 216 Figure 3: Sixteen-bit Encoding (Com equals 1) 218 0 1 2 3 219 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 220 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 221 | Next Header | Hdr Ext Len | Routing Type | Segments Left | 222 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 223 | Segments |Com| Reserved | 224 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 225 + SID[0] + 226 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 227 + SID[1] + 228 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 229 // // 230 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 231 + SID[n] + 232 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 234 Figure 4: Thirty-two bit Encoding (Com equals 2) 236 4. Segment Identifiers (SID) 238 This document defines the following SID types: 240 o Loosely routed 242 o Strictly routed 244 All SIDs, regardless of type, map to exactly one IPv6 address. The 245 mapped address identifies an interface or set of interfaces (in the 246 case of multicast) that terminate the segment. The address MUST be 247 one of the following: 249 o A globally scoped IPv6 unicast address [RFC4291]. 251 o A Unique Local IPv6 Unicast Address (ULA) [RFC4193]. 253 o A Multicast address [RFC4291]. 255 A strictly routed SID also maps to a link interface. Nodes send 256 packets through that interface in order to access the segment 257 endpoint. 259 SIDs are instantiated on nodes and their significance is limited to 260 the node upon which they are instantiated. For example, assume that 261 a SID is instantiated on multiple nodes. It can be loosely routed on 262 one node and strictly routed on another. Likewise, it can map to a 263 different globally scoped address on each node. See Appendix A for 264 an example. 266 Forwarding nodes can learn the above-mentioned mappings from a 267 central controller, from a distributed routing protocol or using any 268 other means. The mechanisms that forwarding nodes use to learn the 269 above-mentioned mappings are beyond the scope of this document. 271 5. Processing Rules 273 5.1. General 275 [RFC8200] defines rules that apply to IPv6 extension headers, in 276 general, and IPv6 Routing headers, in particular. All of these rules 277 apply to the CRH. 279 For example: 281 o Extension headers (except for the Hop-by-Hop Options header) are 282 not processed, inserted, or deleted by any node along a packet's 283 delivery path, until the packet reaches the node (or each of the 284 set of nodes, in the case of multicast) identified in the 285 Destination Address field of the IPv6 header. 287 o If, while processing a received packet, a node encounters a 288 Routing header with an unrecognized Routing Type value, the 289 required behavior of the node depends on the value of the Segments 290 Left field. If Segments Left is zero, the node must ignore the 291 Routing header and proceed to process the next header in the 292 packet, whose type is identified by the Next Header field in the 293 Routing header. If Segments Left is non-zero, the node must 294 discard the packet and send an ICMP [RFC4443] Parameter Problem, 295 Code 0, message to the packet's Source Address, pointing to the 296 unrecognized Routing Type. 298 o If, after processing a Routing header of a received packet, an 299 intermediate node determines that the packet is to be forwarded 300 onto a link whose link MTU is less than the size of the packet, 301 the node must discard the packet and send an ICMP Packet Too Big 302 message to the packet's Source Address. 304 5.2. CRH Specific 306 When a node recognizes and processes a CRH, it executes the following 307 procedure: 309 o If the IPv6 Source Address is a link-local address, discard the 310 packet. 312 o If the IPv6 Source Address is a multicast address, discard the 313 packet. 315 o If Segments Left equal 0, skip over the CRH and process the next 316 header in the packet. 318 o If Segments Left is greater than Segments, send an ICMP Parameter 319 Problem, Code 0, message to the Source Address, pointing to the 320 Segments Left field, and discard the packet. 322 o If Com is equal to (3) Reserved, send an ICMP Parameter Problem, 323 Code 0, message to the Source Address, pointing to the Com field, 324 and discard the packet. 326 o If the IPv6 Hop Limit is less than or equal to 1, send an ICMP 327 Time Exceeded -- Hop Limit Exceeded in Transit message to the 328 Source Address and discard the packet. 330 o Compute L, the minimum CRH length (See Section 5.2.1) 331 o If L is greater than Hdr Ext Len, send an ICMP Parameter Problem, 332 Code 0, message to the Source Address, pointing to the Segments 333 field, and discard the packet. 335 o Decrement Segments Left (i.e., SL). 337 o Search for SID[SL] in the table that maps SID's to IPv6 addresses 338 and interfaces. If SID[SL] cannot be found in that table, send an 339 ICMP Parameter Problem, Code 0, message to the Source Address, 340 pointing to SID[SL], and discard the packet. 342 o Copy the address associated with SID[SL] to the IPv6 Destination 343 Address. 345 o If the IPv6 Destination address is a multicast address and SL is 346 greater than zero, send an ICMP Parameter Problem, Code 0, message 347 to the Source Address, pointing to Segment List [SL], and discard 348 the packet. 350 o Decrement the IPv6 Hop Limit. 352 o If SID[SL] is a loosely routed segment, resubmit the packet to the 353 IPv6 module for transmission to the new destination. 355 o If SID[SL] is a strictly routed segment, forward the packet 356 through the interface that is associated with SID[SL]. 358 The above stated rules are demonstrated in Appendix A. 360 5.2.1. Computing Minimum CRH Length 362 The algorithm described in this section accepts the following CRH 363 fields as its input parameters: 365 o Compression (Com). 367 o Segments. 369 It yields L, the minimum CRH length. The minimum CRH length is 370 measured in 8-octet units, not including the first 8 octets. 372 374 if (Com == 0 ) { /* Eight bit encoding */ 375 L = ( Segments / 8 ); 376 if ( Segments % 8 ) 377 L++; 378 } 379 elsif (Com == 1 ) { /* Sixteen bit encoding */ 380 L = ( Segments / 4 ); 381 if ( Segments % 4 ) 382 L++; 383 } 384 elsif (Com == 2 ) { /* Thirty-two bit encoding */ 385 L = ( Segments / 2 ); 386 if ( Segments % 2 ) 387 L++; 388 } 389 else { /* Invalid Com */ 390 L = 0xFF 392 } 394 return(L) 396 398 6. Mutability 400 The Segments Left field is mutable and MAY be decremented by 401 processing nodes. All remaining fields are immutable. 403 7. Management Considerationsinclude 405 PING and TRACEROUTE [RFC2151] both operate correctly in the presence 406 of the CRH. 408 8. Security Considerations 410 The CRH can be used within trusted domains only. In order to enforce 411 this requirement, domain edge routers MUST do one of the following: 413 o Discard all inbound packets that contain a CRH 415 o Authenticate [RFC4302] [RFC4303] all inbound packets that contain 416 a CRH 418 9. IANA Considerations 420 This document makes the following registration in the Internet 421 Protocol Version 6 (IPv6) Parameters "Routing Type" registry 422 maintained by IANA: 424 Value Description Reference 425 ------------------------------------------------------------ 426 TBD Compressed Routing Header (CRH) This document 428 10. Acknowledgements 430 Thanks to Joel Halpern, Gerald Schmidt, Nancy Shaw and Chandra 431 Venkatraman for their comments. 433 11. References 435 11.1. Normative References 437 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 438 Requirement Levels", BCP 14, RFC 2119, 439 DOI 10.17487/RFC2119, March 1997, 440 . 442 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 443 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 444 2006, . 446 [RFC4302] Kent, S., "IP Authentication Header", RFC 4302, 447 DOI 10.17487/RFC4302, December 2005, 448 . 450 [RFC4303] Kent, S., "IP Encapsulating Security Payload (ESP)", 451 RFC 4303, DOI 10.17487/RFC4303, December 2005, 452 . 454 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 455 Control Message Protocol (ICMPv6) for the Internet 456 Protocol Version 6 (IPv6) Specification", STD 89, 457 RFC 4443, DOI 10.17487/RFC4443, March 2006, 458 . 460 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 461 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 462 May 2017, . 464 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 465 (IPv6) Specification", STD 86, RFC 8200, 466 DOI 10.17487/RFC8200, July 2017, 467 . 469 [RFC8201] McCann, J., Deering, S., Mogul, J., and R. Hinden, Ed., 470 "Path MTU Discovery for IP version 6", STD 87, RFC 8201, 471 DOI 10.17487/RFC8201, July 2017, 472 . 474 11.2. Informative References 476 [I-D.ietf-6man-segment-routing-header] 477 Filsfils, C., Previdi, S., Leddy, J., Matsushima, S., and 478 d. daniel.voyer@bell.ca, "IPv6 Segment Routing Header 479 (SRH)", draft-ietf-6man-segment-routing-header-16 (work in 480 progress), February 2019. 482 [RFC2151] Kessler, G. and S. Shepard, "A Primer On Internet and TCP/ 483 IP Tools and Utilities", FYI 30, RFC 2151, 484 DOI 10.17487/RFC2151, June 1997, 485 . 487 [RFC4193] Hinden, R. and B. Haberman, "Unique Local IPv6 Unicast 488 Addresses", RFC 4193, DOI 10.17487/RFC4193, October 2005, 489 . 491 [RFC5095] Abley, J., Savola, P., and G. Neville-Neil, "Deprecation 492 of Type 0 Routing Headers in IPv6", RFC 5095, 493 DOI 10.17487/RFC5095, December 2007, 494 . 496 [RFC6275] Perkins, C., Ed., Johnson, D., and J. Arkko, "Mobility 497 Support in IPv6", RFC 6275, DOI 10.17487/RFC6275, July 498 2011, . 500 [RFC6554] Hui, J., Vasseur, JP., Culler, D., and V. Manral, "An IPv6 501 Routing Header for Source Routes with the Routing Protocol 502 for Low-Power and Lossy Networks (RPL)", RFC 6554, 503 DOI 10.17487/RFC6554, March 2012, 504 . 506 Appendix A. CRH Processing Examples 508 This appendix provides examples of CRH processing in the following 509 applications: 511 o Loose source routing (Appendix A.1) 512 o Loose source routing preserving the first SID (Appendix A.2) 514 o Strict source routing (Appendix A.3) 516 ----------- 517 2001:db8:0:2/64 |Node: I2 | 2001:db8:0:4/64 518 ----------------------|Loopback: |-------------------- 519 | ::2 |2001:db8::2| ::1 | 520 | ----------- | 521 | ::1 :: 2| 522 ----------- ----------- ----------- 523 |Node: S |2001:db8:0:1/64|Node: I1 |2001:db8:0:3/64|Node: I3 | 524 |Loopback |---------------|Loopback: |---------------|Loopback: | 525 |2001:db8::a| ::1 ::2 |2001:db8::1| ::1 ::2 |2001:db8::3| 526 ----------- ----------- ----------- 527 | ::1 528 ----------- | 529 |Node: D | 2001:db8:0:b/64 | 530 |Loopback: |--------------------- 531 |2001:db8::b| ::2 532 ----------- 534 Figure 5: Reference Topology 536 Figure 5 provides a reference topology that is used in all examples. 538 +--------------------+-----+--------------+ 539 | Instantiating Node | SID | IPv6 Address | 540 +--------------------+-----+--------------+ 541 | All | 1 | 2001:db8::1 | 542 | All | 2 | 2001:db8::2 | 543 | All | 3 | 2001:db8::3 | 544 | All | 10 | 2001:db8::a | 545 | All | 11 | 2001:db8::b | 546 +--------------------+-----+--------------+ 548 Table 1: Loosely Routed SIDs 550 Table 1 provides mappings for loosely routed SIDs. These mappings 551 are instantiated on all nodes in the reference topology. 553 +--------------------+-----+-----------------+-----------+ 554 | Instantiating Node | SID | IPv6 Address | Interface | 555 +--------------------+-----+-----------------+-----------+ 556 | S | 129 | 2001:db8:0:1::2 | S -> I1 | 557 | S | 130 | 2001:db8:0:2::2 | S -> I2 | 558 | I1 | 129 | 2001:db8:0:3::2 | I1 -> I3 | 559 | I2 | 129 | 2001:db8:0:4::2 | I2 -> I3 | 560 | I3 | 129 | 2001:db8:0:b::2 | I3 -> D | 561 +--------------------+-----+-----------------+-----------+ 563 Table 2: Strictly Routed SIDs 565 Table 2 provides mappings for strictly routed SIDs. These mappings 566 are available on the instantiating node only. 568 A.1. Loose Source Routing 570 In this example, Node S sends a packet to Node D, specifying loose 571 source route through Node I3. In this example, the first node in the 572 path, I3, does not appear in the CRH segment list. Therefore, the 573 destination node may not be able to send return traffic through the 574 same path. 576 +-------------------------------------+-------------------+ 577 | As the packet travels from S to I3: | | 578 +-------------------------------------+-------------------+ 579 | Source Address = 2001:db8::a | Segments = 1 | 580 | Destination Address = 2001:db8::3 | Segments Left = 1 | 581 | | SID[0] = 11 | 582 +-------------------------------------+-------------------+ 584 +-------------------------------------+-------------------+ 585 | As the packet travels from I3 to D: | | 586 +-------------------------------------+-------------------+ 587 | Source Address = 2001:db8::a | Segments = 1 | 588 | Destination Address = 2001:db8::b | Segments Left = 0 | 589 | | SID[0] = 11 | 590 +-------------------------------------+-------------------+ 592 A.2. Loose Source Routing Preserving The First SID 594 In this example, Node S sends a packet to Node D, specifying loose 595 source route through Node I3. In this example, the first node in the 596 path, I3, appears in the CRH segment list. Therefore, the 597 destination node can send return traffic through the same path. 599 +-------------------------------------+-------------------+ 600 | As the packet travels from S to I3: | | 601 +-------------------------------------+-------------------+ 602 | Source Address = 2001:db8::a | Segments = 2 | 603 | Destination Address = 2001:db8::3 | Segments Left = 1 | 604 | | SID[0] = 11 | 605 | | SID[1] = 3 | 606 +-------------------------------------+-------------------+ 608 +-------------------------------------+-------------------+ 609 | As the packet travels from I3 to D: | | 610 +-------------------------------------+-------------------+ 611 | Source Address = 2001:db8::a | Segments = 2 | 612 | Destination Address = 2001:db8::b | Segments Left = 0 | 613 | | SID[0] = 11 | 614 | | SID[1] = 3 | 615 +-------------------------------------+-------------------+ 617 A.3. Strict Source Routing 619 In this example, Node S sends a packet to Node D, specifying the 620 strict source route through I1 and I3. 622 +---------------------------------------+-------------------+ 623 | As the packet travels from S to I1: | | 624 +---------------------------------------+-------------------+ 625 | Source Address = 2001:db8::a | Segments = 2 | 626 | Destination Address = 2001:db8:0:1::2 | Segments Left = 2 | 627 | | SID[0] = 129 | 628 | | SID[1] = 129 | 629 +---------------------------------------+-------------------+ 631 +---------------------------------------+-------------------+ 632 | As the packet travels from I1 to I3: | | 633 +---------------------------------------+-------------------+ 634 | Source Address = 2001:db8::a | Segments = 2 | 635 | Destination Address = 2001:db8:0:3::2 | Segments Left = 1 | 636 | | SID[0] = 129 | 637 | | SID[1] = 129 | 638 +---------------------------------------+-------------------+ 639 +---------------------------------------+-------------------+ 640 | As the packet travels from I3 to D: | | 641 +---------------------------------------+-------------------+ 642 | Source Address = 2001:db8::a | Segments = 2 | 643 | Destination Address = 2001:db8:0:b::2 | Segments Left = 0 | 644 | | SID[0] = 129 | 645 | | SID[1] = 129 | 646 +---------------------------------------+-------------------+ 648 Authors' Addresses 650 Ron Bonica 651 Juniper Networks 652 2251 Corporate Park Drive 653 Herndon, Virginia 20171 654 USA 656 Email: rbonica@juniper.net 658 Xiaohu Xu 659 Alibaba Inc 660 Alibaba Park 661 Hangzhou 662 P.R. China 664 Email: xiaohu.xxh@alibaba-inc.com 666 Gang Chen 667 Baidu 668 Baidu Technology Park Building No.2, No.10 Xibeiwang East Road Haidian District 669 Beijing 100193 670 P.R. China 672 Email: phdgang@gmail.com 674 Yongqing Zhu 675 China Telecom 676 109 West Zhongshan Ave, Tianhe District 677 Guangzhou 678 P.R. China 680 Email: zhuyq.gd@chinatelecom.cn 681 Guangming Yang 682 China Telecom 683 109 West Zhongshan Ave, Tianhe District 684 Guangzhou 685 P.R. China 687 Email: yanggm.gd@chinatelecom.cn