idnits 2.17.1 draft-bonica-6man-crh-helper-opt-04.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 (11 October 2021) is 928 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 86 -- Looks like a reference, but probably isn't: '1' on line 86 == Outdated reference: A later version (-31) exists of draft-bonica-6man-comp-rtg-hdr-26 ** Downref: Normative reference to an Experimental draft: draft-bonica-6man-comp-rtg-hdr (ref. 'I-D.bonica-6man-comp-rtg-hdr') Summary: 1 error (**), 0 flaws (~~), 2 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6man WG X. Li 3 Internet-Draft C. Bao 4 Intended status: Standards Track CERNET Center/Tsinghua University 5 Expires: 14 April 2022 E. Ruan 6 Fungible Inc. 7 R. Bonica 8 Juniper Networks 9 11 October 2021 11 Compressed Routing Header (CRH) Helper Option 12 draft-bonica-6man-crh-helper-opt-04 14 Abstract 16 This document defines the IPv6 Compressed Routing Header (CRH) Helper 17 option. When a source node sends a packet with a CRH, it can use the 18 CRH Helper option to provide additional information to downstream 19 nodes. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at https://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on 14 April 2022. 38 Copyright Notice 40 Copyright (c) 2021 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents (https://trustee.ietf.org/ 45 license-info) in effect on the date of publication of this document. 46 Please review these documents carefully, as they describe your rights 47 and restrictions with respect to this document. Code Components 48 extracted from this document must include Simplified BSD License text 49 as described in Section 4.e of the Trust Legal Provisions and are 50 provided without warranty as described in the Simplified BSD License. 52 Table of Contents 54 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 55 2. Requirements Language . . . . . . . . . . . . . . . . . . . . 3 56 3. Option Format . . . . . . . . . . . . . . . . . . . . . . . . 4 57 4. Option Processing . . . . . . . . . . . . . . . . . . . . . . 4 58 5. Security Considerations . . . . . . . . . . . . . . . . . . . 5 59 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5 60 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 61 8. Normative References . . . . . . . . . . . . . . . . . . . . 5 62 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 64 1. Introduction 66 IPv6 [RFC8200] source nodes use the Compressed Routing Header (CRH) 67 [I-D.bonica-6man-comp-rtg-hdr] to steer packets along a delivery path 68 to their destination. Two CRH versions have been defined. The 69 CRH-16 encodes segment endpoints in 16 bits, while CRH-32, encodes 70 segment endpoints in 32 bits. 72 Both CRH versions contain the following fields: 74 * Next Header - Identifies the header immediately following the CRH. 76 * Hdr Ext Len - Length of the CRH. 78 * Routing Type - Identifies the Routing header variant (i.e., CRH-16 79 or CRH-32). 81 * Segments Left - The number of segments still to be traversed 82 before reaching the packet's ultimate destination. 84 * Segment Identifier (SID) List - Represents the delivery path as an 85 ordered list of Segment Identifiers (SID). SIDs are listed in 86 reverse order, with SID[0] representing the final segment, SID[1] 87 representing the penultimate segment, and so forth. SIDs are 88 listed in reverse order so that Segments Left can be used as an 89 index to the SID List. The SID indexed by Segments Left is called 90 the current SID. 92 As per [RFC8200], when an IPv6 node receives a packet, it examines 93 the packet's destination address. If the destination address 94 represents an interface belonging to the node, the node processes the 95 next header. If the next header is a CRH, it is processed as 96 follows: 98 * If Segments Left equals 0, skip over the CRH and process the next 99 header in the packet. 101 * Decrement Segments Left. 103 * Query a local data structure, called the CRH Forwarding 104 Information Base (CRH-FIB), searching for an entry that is indexed 105 by the current SID. 107 * If the above-mentioned query returns a CRH-FIB entry, update the 108 packet's IPv6 Destination Address and forward the packet. 110 In a typical CRH deployment, every segment ingress node maintains a 111 complete CRH-FIB and the above-mentioned query returns a CRH-FIB 112 entry. However, in some CRH deployments, some segment ingress nodes 113 maintain a complete CRH-FIB while others do not. For example, a node 114 that does not participate in a control plane or communicate with a 115 controller may not maintain a CRH-FIB. 117 This document defines the IPv6 CRH Helper option. When a source node 118 sends a packet with a CRH, it can use the IPv6 CRH Helper option to 119 provide CRH-FIB information to downstream nodes that do not maintain 120 a complete CRH-FIB. 122 If a segment ingress node queries its CRH-FIB, searching for an entry 123 that is indexed by the current SID, and that query returns nothing, 124 the segment ingress node can obtain the required CRH-FIB information 125 from the IPv6 CRH Helper option. If the segment ingress node cannot 126 obtain the required CRH-FIB information from either source, it 127 discards the packet and sends an ICMPv6 [RFC4443] Parameter Problem 128 message to the source node. 130 2. Requirements Language 132 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 133 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 134 "OPTIONAL" in this document are to be interpreted as described in BCP 135 14 [RFC2119] [RFC8174] when, and only when, they appear in all 136 capitals, as shown here. 138 3. Option Format 140 The CRH Helper option contains the following fields: 142 * Option Type - (8-bits) CRH Helper option. Value TBD by IANA. 143 (Suggested value: 0x11). See Note below. 145 * Opt Data Len - (8-bits) Length of the option, in octets, excluding 146 the Option Type and Option Length fields. 148 * Helper List - (Variable length) A list of Helpers. 150 Each Helper contains the following fields: 152 * Helper Length - (8-bits) Length of the Helper, in octets, 153 excluding Helper Length. Value MUST be greater than 2 and less 154 than 19. 156 * Low SID - (8-bits) Index to the CRH SID List. References the 157 first member of the SID List to which this Helper applies. 159 * High SID - (8-bits) Index to the CRH SID List. References the 160 last member of the SID List to which this Helper applies. 162 * Prefix field (variable length): An IPv6 Prefix. 164 NOTE : The highest-order two bits of the Option Type (i.e., the "act" 165 bits) are 00. These bits specify the action taken by a destination 166 node that does not recognize the option. The required action is to 167 skip over this option and continue processing the header. 169 The third highest-order bit of the Option Type (i.e., the "chg" bit) 170 is 0. This indicates that Option Data cannot be modified along the 171 path between the packet's source and its destination. 173 4. Option Processing 175 When a segment endpoint node processes a CRH, it attempts to resolve 176 the SID using information contained by its CRH-FIB. If it cannot 177 resolve the SID using CRH-FIB, it attempts to resolve the SID using 178 information received in an applicable Helper. If no Helper applies 179 to the current SID, the processing node discards the packet and sends 180 an ICMPv6 Parameter Problem message to the source node. 182 When the processing node uses a Helper to resolve a SID, it executes 183 the following procedure: 185 * Set the IPv6 Destination Address to 0:: 187 * Overwrite the low order bits of the IPv6 Destination Address with 188 the current SID found in the CRH 190 * Overwrite the high order bits of the IPv6 Destination Address with 191 the prefix found in the applicable Helper 193 If the prefix found in the applicable Helper is 16 bytes long, it 194 overwrites the entire IPv6 Destination Address. 196 The CRH Helper option MAY occur in a Destination Options header that 197 precedes a CRH. It SHOULD NOT occur in a Hop-by-hop options header 198 or in a Destination Options header that precedes an upper-layer 199 header. 201 When a segment ingress node resolves a SID using information obtained 202 from the CRH helper option, it forwards the packet through the least- 203 cost path to its new destination. 205 Information obtained from the CRH Helper option is transient. It is 206 discarded as soon as the packet that carried it has been processed. 208 5. Security Considerations 210 When a segment endpoint node processes a CRH, it attempts to resolve 211 the SID using information contained by its CRH-FIB. If it can 212 resolve the SID using CRH-FIB, it MUST ignore the CRH Helper option, 213 even if it contains an applicable Helper. 215 6. IANA Considerations 217 IANA is requested to allocate a code point from the Destination 218 Options and Hop-by-hop Options registry 219 (https://www.iana.org/assignments/ipv6-parameters/ 220 ipv6-parameters.xhtml#ipv6-parameters-2). This option is called "CRH 221 Helper Option". The "act" bits are 00 and the "chg" bit is 0. 222 (Suggested value: 0x11). 224 7. Acknowledgements 226 Thanks to TBD for their careful review of this document. 228 8. Normative References 230 [I-D.bonica-6man-comp-rtg-hdr] 231 Bonica, R., Kamite, Y., Alston, A., Henriques, D., and L. 232 Jalil, "The IPv6 Compact Routing Header (CRH)", Work in 233 Progress, Internet-Draft, draft-bonica-6man-comp-rtg-hdr- 234 26, 25 May 2021, . 237 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 238 Requirement Levels", BCP 14, RFC 2119, 239 DOI 10.17487/RFC2119, March 1997, 240 . 242 [RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet 243 Control Message Protocol (ICMPv6) for the Internet 244 Protocol Version 6 (IPv6) Specification", STD 89, 245 RFC 4443, DOI 10.17487/RFC4443, March 2006, 246 . 248 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 249 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 250 May 2017, . 252 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 253 (IPv6) Specification", STD 86, RFC 8200, 254 DOI 10.17487/RFC8200, July 2017, 255 . 257 Authors' Addresses 259 Xing Li 260 CERNET Center/Tsinghua University 261 Room 225, Main Building, Tsinghua University 262 Beijing 263 100084 264 People's Republic of China 266 Email: xing@cernet.edu.cn 268 Congxiao Bao 269 CERNET Center/Tsinghua University 270 Room 225, Main Building, Tsinghua University 271 Beijing 272 100084 273 People's Republic of China 275 Email: congxiao@cernet.edu 276 Eddie Ruan 277 Fungible Inc. 278 3201 Scott Blvd 279 Santa Clara, California 95054 280 United States of America 282 Email: eddie.ruan@fungible.com 284 Ron Bonica 285 Juniper Networks 286 2251 Corporate Park Drive 287 Herndon, Virginia 20171 288 United States of America 290 Email: rbonica@juniper.net