idnits 2.17.00 (12 Aug 2021) /tmp/idnits13795/draft-ietf-rohc-ip-only-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** The document seems to lack a 1id_guidelines paragraph about 6 months document validity -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document seems to lack a 1id_guidelines paragraph about the list of current Internet-Drafts -- however, there's a paragraph with a matching beginning. Boilerplate error? == No 'Intended status' indicated for this document; assuming Proposed Standard Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 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 seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (January 23, 2003) is 7057 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) ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) -- Possible downref: Non-RFC (?) normative reference: ref. 'PROTOCOL' Summary: 5 errors (**), 0 flaws (~~), 3 warnings (==), 3 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group L-E. Jonsson 3 INTERNET-DRAFT Ericsson 4 Expires: July 2003 January 23, 2003 6 RObust Header Compression (ROHC): 7 A Compression Profile for IP 8 10 Status of this memo 12 This document is an Internet-Draft and is in full conformance with 13 all provisions of Section 10 of RFC2026. 15 Internet-Drafts are working documents of the Internet Engineering 16 Task Force (IETF), its areas, and its working groups. Note that other 17 groups may also distribute working documents as Internet-Drafts. 19 Internet-Drafts are draft documents valid for a maximum of six months 20 and may be updated, replaced, or obsoleted by other documents at any 21 time. It is inappropriate to use Internet-Drafts as reference 22 material or cite them other than as "work in progress". 24 The list of current Internet-Drafts can be accessed at 25 http://www.ietf.org/ietf/lid-abstracts.txt 27 The list of Internet-Draft Shadow Directories can be accessed at 28 http://www.ietf.org/shadow.html 30 This document is a submission of the IETF ROHC WG. Comments should be 31 directed to the ROHC WG mailing list, rohc@ietf.org. 33 Abstract 35 The original RObust Header Compression (ROHC) RFC, RFC 3095, defines 36 a framework for header compression, along with compression protocols 37 (profiles) for IP/UDP/RTP, IP/ESP, IP/UDP, and also a profile for 38 uncompressed packet streams. However, no profile was defined for 39 compression of IP only, which has been identified as a missing piece 40 in RFC 3095. This document defines a ROHC compression profile for IP, 41 similar to the IP/UDP profile defined by RFC 3095, but simplified to 42 exclude UDP, and enhanced to compress IP header chains of arbitrary 43 length. 45 Table of Contents 47 1. Introduction..................................................2 48 2. Terminology...................................................3 49 3. ROHC IP Compression (Profile 0x0004)..........................3 50 3.1. Static chain termination and multiple IP headers.......3 51 3.2. Initialization.........................................4 52 3.3. Packet types...........................................5 53 4. Security Considerations.......................................6 54 5. IANA Considerations...........................................6 55 6. Acknowledgements..............................................6 56 7. References....................................................6 57 8. Author's Address..............................................7 59 1. Introduction 61 The original RObust Header Compression (ROHC) RFC [RFC-3095] defines 62 a framework for header compression, along with compression protocols 63 (profiles) for IP/UDP/RTP, IP/ESP, IP/UDP, and also a profile for 64 uncompressed packet streams. The profile for uncompressed data was 65 defined to provide means to encapsulate all traffic over a link 66 within ROHC packets. Through this profile, the lower layers do not 67 have to provide multiplexing for different packet types, but instead 68 ROHC can handle any packet stream, even if compression profiles for 69 all kinds of packet streams have yet not been defined or implemented 70 over the link. 72 Although the profile without compression is simple and can tunnel 73 arbitrary packets, it has of course a major weakness in that it does 74 not compress the headers at all. When considering that normally all 75 packets are expected to be IP [RFC-791, RFC-2460] packets, and that 76 the IP header often represent a major part of the total header, a 77 useful alternative to no compression would for most packets be 78 compression of the IP header only. Unfortunately, such a profile was 79 not defined in [RFC-3095], and this has thus been identified as an 80 important missing piece in the ROHC toolbox. 82 This document addresses this missing compression support and defines 83 a ROHC compression profile for IP [RFC-791, RFC-2460] only, similar 84 to the IP/UDP profile defined by [RFC-3095], but simplified to 85 exclude UDP. Due to the similarities with the IP/UDP profile, the IP 86 compression profile is described based on the IP/UDP profile, mainly 87 covering differences. The most important differences are a different 88 way of terminating the static header chain, and the capability to 89 compress IP header chains of arbitrary length. 91 2. Terminology 93 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 94 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 95 document are to be interpreted as described in RFC 2119 [RFC-2119]. 97 ROHC UDP 99 "ROHC UDP" in this document refers to the IP/UDP profile 100 (Profile 0x0002) as defined in [RFC-3095]. 102 3. ROHC IP Compression (Profile 0x0004) 104 In general, there are no major difference between the ROHC UDP 105 profile and the IP profile (ROHC IP) defined in this document, since 106 the removal of UDP has no impact on the compression mechanisms. As 107 for ROHC UDP, the compressor generates a 16-bit sequence number which 108 increases by one for each packet compressed in the packet stream, 109 simply called SN below. The most important difference between this 110 profile and ROHC UDP is about static chain termination and handling 111 of multiple IP headers. Unless stated explicitly below, mechanisms 112 and formats are as for ROHC UDP. 114 3.1. Static chain termination and multiple IP headers 116 The most important difference for IP-only compression, compared to 117 IP/UDP compression, is about how to terminate compression, i.e. how 118 to end the static chain in IR headers. For the UDP profile, the chain 119 always ends with a UDP header part, which per definition terminates 120 compression, and the UDP header is also the last header in the 121 uncompressed packet (except for potential application header). For 122 the case of IP-only compression, there is no single last header that 123 per profile definition terminates the chain. Instead, the static 124 chain is terminated if the "Next Header / Protocol" field of a static 125 IP header part indicates anything but IP (IPinIP or IPv6). 127 Another difference with IP-only compression is related to the 128 potential compression of multiple IP headers. ROHC UDP can compress 129 at most two IP headers, but additional IP headers would completely 130 disable the use of header compression, since the compressed chain 131 must end with the UDP header part. However, as there is no single 132 packet type that ends the compressed chain with the IP profile, 133 additional IP headers would not have to cause header compression to 134 be disabled. By implicitly terminating the chain after at most 2 IP 135 headers, additional IP headers could just be left uncompressed. 137 The IP profile defined in this document goes one step further, and 138 supports compression of an arbitrary number of IP headers. The static 139 chain can obviously be of an arbitrary length, and is simply 140 terminated through the presence of a non-IP header (not IPinIP nor 141 IPv6). The dynamic chain is structured analogously. In compressed 142 packet headers, header information related to the initial two IP 143 headers are carried as in the IP/UDP profile, while a dynamic header 144 chain is added at the end of the compressed header for each and every 145 additional IP header. The data structure used for these header 146 portions in compressed headers is thus exactly the same as the one 147 used in IR and IR-DYN packets. 149 The following sections describe how the IP profile differs from the 150 IP/UDP profile, providing the details of the general principles 151 described in the previous paragraph. 153 3.2. Initialization 155 The static context for ROHC IP compression can be initialized in 156 either of two ways: 158 1) By using an IR packet as in ROHC UDP, where the profile is 159 0x0004, and the static chain ends with the static part of an 160 IP header, where the Next Header/Protocol field has any value but 161 IPinIP (4) or IPv6 (41) [PROTOCOL]. At the compressor, SN is 162 initialized to a random value when the first IR packet is sent. 164 2) By reusing an existing context. This is done with an IR-DYN 165 packet, identifying profile 0x0004, where the dynamic chain 166 corresponds to the prefix of the existing static chain, ending 167 with an IP header where the Next Header/Protocol field has any 168 value but IPinIP (4) or IPv6 (41) [PROTOCOL]. At the compressor, 169 SN is initialized to a random value when the first IR-DYN packet 170 is sent. 172 For ROHC IP, the dynamic part of an IR or IR-DYN packet is similar to 173 the one for ROHC UDP, with a two-octet field containing the SN 174 present at the end of the dynamic chain in IR and IR-DYN packets. It 175 should be noted that the static and dynamic chains have an arbitrary 176 length, and the SN is added only once, at the end of the dynamic 177 chain in IR and IR-DYN packets. Note further that additional dynamic 178 chains in compressed packets do not have this sequence number at the 179 end of the chain, as SN is present within compressed base headers. 181 3.3. Packet types 183 The only packet format that differs from ROHC UDP is the general 184 format for compressed packets, which has no UDP checksum in the end. 185 Instead, it ends with a list of dynamic header portions, one for each 186 IP header above the initial two (if any, as indicated by the presence 187 of corresponding header portions in the static chain). 189 The general format for a compressed header is thus as follows: 191 0 1 2 3 4 5 6 7 192 --- --- --- --- --- --- --- --- 193 : Add-CID octet : | 194 +---+---+---+---+---+---+---+---+ | 195 | first octet of base header | | 196 +---+---+---+---+---+---+---+---+ | 197 : : | 198 / 0, 1, or 2 octets of CID / | 199 : : | 200 +---+---+---+---+---+---+---+---+ | 201 / remainder of base header / | 202 +---+---+---+---+---+---+---+---+ | 203 : : | 204 / Extension / | 205 : : | 206 --- --- --- --- --- --- --- --- | 207 : : | 208 + IP-ID of outer IPv4 header + 209 : : (see section 5.7 or [RFC-3095]) 210 --- --- --- --- --- --- --- --- 211 / AH data for outer list / | 212 --- --- --- --- --- --- --- --- | 213 : : | 214 + GRE checksum + | 215 : : | 216 --- --- --- --- --- --- --- --- | 217 : : | 218 + IP-ID of inner IPv4 header + | 219 : : | 220 --- --- --- --- --- --- --- --- | 221 / AH data for inner list / | 222 --- --- --- --- --- --- --- --- | 223 : : | 224 + GRE checksum + | 225 : : | 226 --- --- --- --- --- --- --- --- 227 : List of : 228 / Dynamic chains / variable, given by static chain 229 : for additional IP headers : (includes no SN) 230 --- --- --- --- --- --- --- --- 232 4. Security Considerations 234 The security considerations of [RFC-3095] apply equally to this 235 document, without exceptions or additions. 237 5. IANA Considerations 239 ROHC profile identifier 0x0004 has been reserved by the IANA for the 240 profile defined in this document. 242 { NOTE TO IANA - TO BE REMOVED BEFORE PUBLICATION } 244 A ROHC profile identifier must be reserved by the IANA for the 245 profile defined in this document. Profile number 0x0004 has 246 previously been saved for this purpose, and should thus be used. 247 As for previous ROHC profiles, profile numbers 0xnn04 must also be 248 reserved for future variants of this profile. A suggested 249 registration in the "RObust Header Compression (ROHC) Profile 250 Identifiers" name space would then be: 252 OLD: 0xnn04 To be Assigned by IANA 254 NEW: 0x0004 ROHC IP [RFCXXXX (this)] 255 0xnn04 Reserved 257 { END OF NOTE } 259 6. Acknowledgements 261 The author would like to thank Carsten Bormann and Ghyslain Pelletier 262 for valuable input and review. 264 7. References 266 [RFC-2119] Bradner, S., "Key words for use in RFCs to Indicate 267 Requirement Levels", RFC 2119, March 1997. 269 [RFC-3095] Bormann, C., Burmeister, C., Degermark, M., Fukushima, 270 H., Hannu, H., Jonsson, L-E., Hakenberg, R., Koren, T., 271 Le, K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, 272 K., Wiebke, T., Yoshimura, T. and H. Zheng, "Robust 273 Header Compression (ROHC)", RFC 3095, July 2001. 275 [RFC-791] Postel, J., "Internet Protocol", RFC 791, September 1981. 277 [RFC-2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 278 (IPv6) Specification", RFC 2460, December 1998. 280 [PROTOCOL] "Assigned Internet Protocol Numbers", IANA registry at: 281 http://www.iana.org/assignments/protocol-numbers 283 8. Author's Address 285 Lars-Erik Jonsson Tel: +46 920 20 21 07 286 Ericsson AB Fax: +46 920 20 20 99 287 Box 920 288 SE-971 28 Lulea 289 Sweden EMail: lars-erik.jonsson@ericsson.com 291 Full Copyright Statement 293 Copyright (C) The Internet Society (2003). All Rights Reserved. 295 This document and translations of it may be copied and furnished to 296 others, and derivative works that comment on or otherwise explain it 297 or assist in its implementation may be prepared, copied, published 298 and distributed, in whole or in part, without restriction of any 299 kind, provided that the above copyright notice and this paragraph are 300 included on all such copies and derivative works. However, this 301 document itself may not be modified in any way, such as by removing 302 the copyright notice or references to the Internet Society or other 303 Internet organizations, except as needed for the purpose of 304 developing Internet standards in which case the procedures for 305 copyrights defined in the Internet Standards process must be 306 followed, or as required to translate it into languages other than 307 English. 309 The limited permissions granted above are perpetual and will not be 310 revoked by the Internet Society or its successors or assigns. 312 This document and the information contained herein is provided on an 313 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 314 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 315 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 316 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 317 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 319 This Internet-Draft expires July 23, 2003.