INTERNET-DRAFT Carsten Bormann Expires: May 2001 TZI/Uni Bremen November 2000 ROHC over PPP draft-ietf-rohc-over-ppp-00.txt Status of this memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC 2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This document is a submission to the IETF ROHC WG. Comments should be directed to its mailing list, rohc@cdt.luth.se. Abstract This document describes an option for negotiating the use of robust header compression (ROHC) on IP datagrams transmitted over the Point- to-Point Protocol [RFC1661]. It defines extensions to the PPP Control Protocols for IPv4 and IPv6 [RFC1332, RFC2023]. Bormann [Page 1] INTERNET-DRAFT ROHC over PPP November 2000 1. Introduction Robust Header Compression (ROHC) as defined in [ROHC] may be used for compression of both IPv4 and IPv6 datagrams or packets encapsulated with multiple IP headers. The initial version of ROHC focuses on compression of the packet headers in RTP streams, while supporting compression of other UDP flows; however, it also defines a framework into which further header compression mechanisms can be plugged as new profiles. Planned additions to the set of profiles supported by ROHC will be capable of compressing TCP transport protocol headers as well. In order to establish compression of IP datagrams sent over a PPP link each end of the link must agree on a set of configuration parameters for the compression. The process of negotiating link parameters for network layer protocols is handled in PPP by a family of network control protocols (NCPs). Since there are separate NCPs for IPv4 and IPv6, this document defines configuration options to be used in both NCPs to negotiate parameters for the compression scheme. ROHC does not rely on any link layer's ability to indicate the types of datagrams carried in the link layer frames. Therefore, in this document a single new type for the PPP Data Link Layer Protocol Field is defined. ROHC assumes that the link layer delivers packets in sequence. PPP normally does not reorder packets. When using reordering mechanisms such as multiclass multilink PPP [RFC2686], care must be taken so that packets that share the same compression context are not reordered. The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. 2. Configuration Option This document specifies a new compression protocol value for the IPCP IP-Compression-Protocol option as specified in [RFC1332]. The new value and the associated option format are described in section 2.1. The option format is structured to allow future extensions to the ROHC scheme. NOTE: The specification of link and network layer parameter negotiation for PPP [RFC1661], [RFC1331], [RFC1332] does not prohibit multiple instances of one configuration option but states that the specification of a configuration option must explicitly allow multiple instances. From the current specification of the IPCP IP-Compression-Protocol configuration option [RFC1332, p 6] it follows that it can only be used to Bormann [Page 2] INTERNET-DRAFT ROHC over PPP November 2000 select a single compression protocol at any time. NOTE: [RFC1332] is not explicit about whether the option negotiates the capabilities of the receiver or of the sender. In keeping with current practice, we assume that the option describes the capabilities of the decompressor (receiving side) of the peer that sends the Config-Req. 2.1. Configuration Option Format Both the network control protocol for IPv4, IPCP [RFC1332] and the IPv6 NCP, IPV6CP [RFC2023] may be used to negotiate IP Header Compression parameters for their respective protocols. The format of the configuration option is the same for both IPCP and IPV6CP. Description This NCP configuration option is used to negotiate parameters for Robust Header Compression. The option format is summarized below. The fields are transmitted from left to right. Robust Header Compression (ROHC) Option 0 1 2 3 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | IP-Compression-Protocol | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAX_CID | MRRU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | MAX_HEADER | suboptions... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 2 Length >= 14 The length may be increased if the presence of additional parameters is indicated by additional suboptions. IP-Compression-Protocol 00XX (hex) [to be assigned] MAX_CID The MAX_CID field is two octets and indicates the maximum value of a context identifier. Suggested value: 15 MAX_CID must be at least 0 and at most 16383 (The value 0 implies having one context). Bormann [Page 3] INTERNET-DRAFT ROHC over PPP November 2000 MRRU The MRRU field is two octets and indicates the maximum reconstructed reception unit (see [ROHC], section 5.1.1). Suggested value: 0 MAX_HEADER The largest header size in octets that may be compressed. Suggested value: 168 octets The value of MAX_HEADER should be large enough so that at least the outer network layer header can be compressed. To increase compression efficiency MAX_HEADER should be set to a value large enough to cover common combinations of network and transport layer headers. suboptions The suboptions field consists of zero or more suboptions. Each suboption consists of a type field, a length field and zero or more parameter octets, as defined by the suboption type. The value of the length field indicates the length of the suboption in its entirety, including the lengths of the type and length fields. Figure 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Parameters... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2.2. LARGE_CIDS Suboption Without specifying further options, the LARGE_CIDS per-channel parameter (see [ROHC], section 5.1.1) is false. Description Set LARGE_CIDS to true. LARGE_CIDS suboption 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type Bormann [Page 4] INTERNET-DRAFT ROHC over PPP November 2000 1 Length 2 2.3. PROFILES Suboption The set of profiles to be enabled is subject to negotiation. Most initial implementations of ROHC implement profiles 0 to 3. This option MUST be supplied. Description Define the set of profiles supported by the decompressor. PROFILES suboption 0 1 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Length | Profiles... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type 2 Length n+2 Value n octets in ascending order, each specifying a profile supported. 3. Multiple Network Control Protocols The ROHC protocol is able to compress both IPv6 and IPv4 datagrams. Both IPCP and IPV6CP are able to negotiate option parameter values for ROHC. These values apply to the compression of packets where the outer header is an IPv4 header and an IPv6 header, respectively. 3.1. Sharing Context Identifier Space For the compression and decompression of IPv4 and IPv6 datagram headers the context identifier space is shared. While the parameter values are independently negotiated, sharing the context identifier spaces becomes more complex when the parameter values differ. Since the compressed packets share context identifier space, the compression engine must allocate context identifiers out of a common pool; for compressed packets, the decompressor has to examine the context state to determine what parameters to use for decompression. Bormann [Page 5] INTERNET-DRAFT ROHC over PPP November 2000 4. Demultiplexing of Datagrams The ROHC specification [ROHC] defines a single header format for all different types of compressed headers. One PPP Data Link Layer Protocol Field value is specified below. ROHC The frame contains a ROHC packet as defined in [ROHC]. Value: 00XX (hex) [to be assigned -- same XX as above] 5. Security Considerations Negotiation of the option defined here imposes no additional security considerations beyond those that otherwise apply to PPP [RFC1661]. The security considerations of ROHC [ROHC] apply. The use of header compression can, in rare cases, cause the misdelivery of packets. If necessary, confidentiality of packet contents should be assured by encryption. Encryption applied at the IP layer (e.g., using IPSEC mechanisms) precludes header compression of the encrypted headers, though compression of the outer IP header and authentication/security headers is still possible as described in [ROHC]. For RTP packets, full header compression is possible if the RTP payload is encrypted by itself without encrypting the UDP or RTP headers, as described in [RFC1889]. This method is appropriate when the UDP and RTP header information need not be kept confidential. 6. Acknowledgments The present document borrows heavily from [RFC2509]. 7. References [ROHC] Carsten Bormann (ed.) et al., "RObust Header Compression (ROHC)", work in progress, November 2000 (draft-ietf- rohc-rtp-06.txt). [RFC2023] Haskin, E. and E. Allan, "IP Version 6 over PPP", RFC 2023, October 1996. [RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low- Speed Serial Links", RFC 1144, February 1990. [RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol (IPCP)", RFC 1332, May 1992. [RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for real-time applications", RFC 1889, January 1996. Bormann [Page 6] INTERNET-DRAFT ROHC over PPP November 2000 [RFC1661] Simpson, W., Ed., "The Point-To-Point Protocol (PPP)", STD 51, RFC 1661, July 1994. [RFC2686] Bormann, C., "The Multi-Class Extension to Multi-Link PPP", RFC 2686, September 1999. [RFC2509] M. Engan, S. Casner, C. Bormann, "IP Header Compression over PPP", RFC 2509, February 1999. 8. Authors' addresses Carsten Bormann Universitaet Bremen FB3 TZI Postfach 330440 D-28334 Bremen, GERMANY cabo@tzi.org phone +49.421.218-7024 fax +49.421.218-7000 Bormann [Page 7]