draft-ietf-rohc-over-ppp-00.txt   draft-ietf-rohc-over-ppp-01.txt 
INTERNET-DRAFT Carsten Bormann INTERNET-DRAFT Carsten Bormann
Expires: May 2001 TZI/Uni Bremen Expires: September 2001 TZI/Uni Bremen
November 2000 March 2001
ROHC over PPP ROHC over PPP
draft-ietf-rohc-over-ppp-00.txt draft-ietf-rohc-over-ppp-01.txt
Status of this memo Status of this memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC 2026. all provisions of Section 10 of RFC 2026.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet- other groups may also distribute working documents as Internet-
Drafts. Drafts.
skipping to change at page 1, line 31 skipping to change at page 1, line 31
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html http://www.ietf.org/shadow.html
This document is a submission to the IETF ROHC WG. Comments should This document is a product of the IETF ROHC WG. Comments should be
be directed to its mailing list, rohc@cdt.luth.se. directed to its mailing list, rohc@cdt.luth.se.
Abstract Abstract
This document describes an option for negotiating the use of robust This document describes an option for negotiating the use of robust
header compression (ROHC) on IP datagrams transmitted over the Point- header compression (ROHC) on IP datagrams transmitted over the Point-
to-Point Protocol [RFC1661]. It defines extensions to the PPP Control to-Point Protocol [RFC1661]. It defines extensions to the PPP Control
Protocols for IPv4 and IPv6 [RFC1332, RFC2023]. Protocols for IPv4 and IPv6 [RFC1332, RFC2472].
1. Introduction 1. Introduction
Robust Header Compression (ROHC) as defined in [ROHC] may be used for Robust Header Compression (ROHC) as defined in [ROHC] may be used for
compression of both IPv4 and IPv6 datagrams or packets encapsulated compression of both IPv4 and IPv6 datagrams or packets encapsulated
with multiple IP headers. The initial version of ROHC focuses on with multiple IP headers. The initial version of ROHC focuses on
compression of the packet headers in RTP streams, while supporting compression of the packet headers in RTP streams, while supporting
compression of other UDP flows; however, it also defines a framework compression of other UDP flows; however, it also defines a framework
into which further header compression mechanisms can be plugged as into which further header compression mechanisms can be plugged as
new profiles. Planned additions to the set of profiles supported by new profiles. Planned additions to the set of profiles supported by
skipping to change at page 2, line 25 skipping to change at page 2, line 25
well. well.
In order to establish compression of IP datagrams sent over a PPP 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 link each end of the link must agree on a set of configuration
parameters for the compression. The process of negotiating link parameters for the compression. The process of negotiating link
parameters for network layer protocols is handled in PPP by a family parameters for network layer protocols is handled in PPP by a family
of network control protocols (NCPs). Since there are separate NCPs of network control protocols (NCPs). Since there are separate NCPs
for IPv4 and IPv6, this document defines configuration options to be for IPv4 and IPv6, this document defines configuration options to be
used in both NCPs to negotiate parameters for the compression scheme. 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 ROHC does not require that link layer be able to indicate the types
of datagrams carried in the link layer frames. Therefore, in this of datagrams carried in the link layer frames. However, there are
document a single new type for the PPP Data Link Layer Protocol Field two basic types of ROHC headers defined in the ROHC framework: small-
is defined. CID headers (zero or one bytes are used to identify the compression
context) and large-CID headers (one or two bytes are used for this
purpose). To keep the PPP packets self-describing, in this document
two new types for the PPP Data Link Layer Protocol Field are defined,
one for small-CID ROHC packets and one for large-CID ROHC packets.
(This also avoids a problem that would occur if PPP were to negotiate
which of the formats to use in each of IPCP and IPV6CP and the two
negotiation processes were to arrive at different results.) Any PPP
ROHC receiver MUST be able to process both small-CID and large-CID
ROHC packets, therefore no negotiation of this function is required.
ROHC assumes that the link layer delivers packets in sequence. PPP ROHC assumes that the link layer delivers packets in sequence. PPP
normally does not reorder packets. When using reordering mechanisms normally does not reorder packets. When using reordering mechanisms
such as multiclass multilink PPP [RFC2686], care must be taken so such as multiclass multilink PPP [RFC2686], care must be taken so
that packets that share the same compression context are not that packets that share the same compression context are not
reordered. reordered.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119. document are to be interpreted as described in RFC 2119.
skipping to change at page 3, line 15 skipping to change at page 3, line 24
NOTE: [RFC1332] is not explicit about whether the option NOTE: [RFC1332] is not explicit about whether the option
negotiates the capabilities of the receiver or of the sender. negotiates the capabilities of the receiver or of the sender.
In keeping with current practice, we assume that the option In keeping with current practice, we assume that the option
describes the capabilities of the decompressor (receiving side) describes the capabilities of the decompressor (receiving side)
of the peer that sends the Config-Req. of the peer that sends the Config-Req.
2.1. Configuration Option Format 2.1. Configuration Option Format
Both the network control protocol for IPv4, IPCP [RFC1332] and the Both the network control protocol for IPv4, IPCP [RFC1332] and the
IPv6 NCP, IPV6CP [RFC2023] may be used to negotiate IP Header IPv6 NCP, IPV6CP [RFC2472] may be used to negotiate IP Header
Compression parameters for their respective protocols. The format of Compression parameters for their respective protocols. The format of
the configuration option is the same for both IPCP and IPV6CP. the configuration option is the same for both IPCP and IPV6CP.
Description Description
This NCP configuration option is used to negotiate parameters This NCP configuration option is used to negotiate parameters
for Robust Header Compression. The option format is summarized for Robust Header Compression. The option format is summarized
below. The fields are transmitted from left to right. below. The fields are transmitted from left to right.
Robust Header Compression (ROHC) Option Figure 1: Robust Header Compression (ROHC) Option
0 1 2 3 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 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 | | Type | Length | IP-Compression-Protocol |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAX_CID | MRRU | | MAX_CID | MRRU |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| MAX_HEADER | suboptions... | MAX_HEADER | suboptions...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
2 2
Length Length
>= 14 >= 10
The length may be increased if the presence of additional The length may be increased if the presence of additional
parameters is indicated by additional suboptions. parameters is indicated by additional suboptions.
IP-Compression-Protocol IP-Compression-Protocol
00XX (hex) [to be assigned] 00SS (hex) [to be assigned]
MAX_CID MAX_CID
The MAX_CID field is two octets and indicates the maximum value The MAX_CID field is two octets and indicates the maximum value
of a context identifier. of a context identifier.
Suggested value: 15 Suggested value: 15
MAX_CID must be at least 0 and at most 16383 (The value 0 implies MAX_CID must be at least 0 and at most 16383 (The value 0 implies
having one context). having one context).
MRRU MRRU
skipping to change at page 4, line 29 skipping to change at page 4, line 37
enough to cover common combinations of network and transport layer enough to cover common combinations of network and transport layer
headers. headers.
suboptions suboptions
The suboptions field consists of zero or more suboptions. Each The suboptions field consists of zero or more suboptions. Each
suboption consists of a type field, a length field and zero or suboption consists of a type field, a length field and zero or
more parameter octets, as defined by the suboption type. The more parameter octets, as defined by the suboption type. The
value of the length field indicates the length of the suboption in value of the length field indicates the length of the suboption in
its entirety, including the lengths of the type and length fields. its entirety, including the lengths of the type and length fields.
Figure Figure 2: Suboption
0 1 2 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 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... | Type | Length | Parameters...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
2.2. LARGE_CIDS Suboption 2.2. PROFILES 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
1
Length
2
2.3. PROFILES Suboption
The set of profiles to be enabled is subject to negotiation. Most The set of profiles to be enabled is subject to negotiation. Most
initial implementations of ROHC implement profiles 0 to 3. This initial implementations of ROHC implement profiles 0x0000 to 0x0003.
option MUST be supplied. This option MUST be supplied.
Description Description
Define the set of profiles supported by the decompressor. Define the set of profiles supported by the decompressor.
PROFILES suboption Figure 3: PROFILES suboption
0 1 2 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 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 | Length | Profiles...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type Type
2 1
Length Length
n+2 2n+2
Value Value
n octets in ascending order, each specifying a profile n octet-pairs in ascending order, each octet-pair specifying
supported. a ROHC profile supported.
3. Multiple Network Control Protocols 3. Multiple Network Control Protocols
The ROHC protocol is able to compress both IPv6 and IPv4 datagrams. The ROHC protocol is able to compress both IPv6 and IPv4 datagrams.
Both IPCP and IPV6CP are able to negotiate option parameter values Both IPCP and IPV6CP are able to negotiate option parameter values
for ROHC. These values apply to the compression of packets where the for ROHC. These values apply to the compression of packets where the
outer header is an IPv4 header and an IPv6 header, respectively. outer header is an IPv4 header and an IPv6 header, respectively.
3.1. Sharing Context Identifier Space 3.1. Sharing Context Identifier Space
For the compression and decompression of IPv4 and IPv6 datagram For the compression and decompression of IPv4 and IPv6 datagram
headers the context identifier space is shared. While the parameter headers the context identifier space is shared. While the parameter
values are independently negotiated, sharing the context identifier values are independently negotiated, sharing the context identifier
spaces becomes more complex when the parameter values differ. Since spaces becomes more complex when the parameter values differ. Since
the compressed packets share context identifier space, the the compressed packets share context identifier space, the
compression engine must allocate context identifiers out of a common compression engine must allocate context identifiers out of a common
pool; for compressed packets, the decompressor has to examine the pool; for compressed packets, the decompressor has to examine the
context state to determine what parameters to use for decompression. context state to determine what parameters to use for decompression.
In particular, the context identifier space is shared between ROHC
small-CID packets and ROHC large-CID packets. From the point of view
of the ROHC framework, the PPP NCP instances for IPCP and IPV6CP
together constitute exactly one ROHC channel; its feedback is
destined for the ROHC channel defined by the NCP instances for IPCP
and IPV6CP in the reverse direction on the same PPP link.
In particular, this means that taking down either of the NCPs while
the other is still open means that the contexts of the channel stay
active. [[ The following needs some more discussion. ]] To avoid
race conditions, the same is true if both NCPs are taken down and
then one or more is reopened. Taking down LCP destroys the channel,
however; reopening LCP and then one or more of IPCP and IPV6CP
restarts ROHC with all contexts in no-context state.
4. Demultiplexing of Datagrams 4. Demultiplexing of Datagrams
The ROHC specification [ROHC] defines a single header format for all The ROHC specification [ROHC] defines a single header format for all
different types of compressed headers. One PPP Data Link Layer different types of compressed headers, with a variant for small CIDs
Protocol Field value is specified below. and a variant for large CIDs. Two PPP Data Link Layer Protocol Field
ROHC values are specified below.
The frame contains a ROHC packet as defined in [ROHC]. ROHC small-CIDs
Value: 00XX (hex) [to be assigned -- same XX as above] The frame contains a ROHC packet with small CIDs as defined
in [ROHC].
Value: 00SS (hex) [to be assigned -- same 00SS as above]
ROHC large-CIDs
The frame contains a ROHC packet with large CIDs as defined
in [ROHC].
Value: 00LL (hex) [to be assigned]
5. Security Considerations 5. ROHC Usage Considerations
Certain considerations are required for any ROHC-over-X protocol.
This section describes how some of these are handled for ROHC over
PPP.
5.1. Uncompressed profile
There is no need for the ROHC uncompressed profile in ROHC over PPP,
as uncompressed packets can always be sent using the PPP protocol
demultiplexing method. Therefore, no consideration was given to
locking down one of the context numbers for the uncompressed profile
(see [ROHC] section 5.1.2).
5.2. Parameter selection
For each of the ROHC channel parameters MAX_CID and MRRU, the value
is the maximum of the respective values negotiated for the IPCP and
IPv6CP instances, if any.
The ROHC channel parameter FEEDBACK_FOR is set implicitly to the
reverse direction on the same PPP link (see "Sharing Context
Identifier Space" above).
A number of parameters for ROHC must be set correctly for good
compression on a specific link. E.g., the parameters k_1, n_1, k_2,
n_2 in section 5.3.2.2.3 of [ROHC] need to be set based on the error
characteristics of the underlying links. As PPP links are usually
run with a strong error detection scheme [RFC1662], k_1 = n_1 = k_2 =
n_2 = 1 is usually a good set of values. (Note that in any case k
values need to be set low enough relative to n values to allow for
limited ability of the CRC to detect errors, i.e., the CRC will
succeed for about 1/8 of the packets even in case of context damage,
so k/n should be significantly less than 7/8.)
6. Security Considerations
Negotiation of the option defined here imposes no additional security Negotiation of the option defined here imposes no additional security
considerations beyond those that otherwise apply to PPP [RFC1661]. considerations beyond those that otherwise apply to PPP [RFC1661].
The security considerations of ROHC [ROHC] apply. The security considerations of ROHC [ROHC] apply.
The use of header compression can, in rare cases, cause the The use of header compression can, in rare cases, cause the
misdelivery of packets. If necessary, confidentiality of packet misdelivery of packets. If necessary, confidentiality of packet
contents should be assured by encryption. contents should be assured by encryption.
Encryption applied at the IP layer (e.g., using IPSEC mechanisms) Encryption applied at the IP layer (e.g., using IPSEC mechanisms)
precludes header compression of the encrypted headers, though precludes header compression of the encrypted headers, though
compression of the outer IP header and authentication/security compression of the outer IP header and authentication/security
headers is still possible as described in [ROHC]. For RTP packets, headers is still possible as described in [ROHC]. For RTP packets,
full header compression is possible if the RTP payload is encrypted full header compression is possible if the RTP payload is encrypted
by itself without encrypting the UDP or RTP headers, as described in by itself without encrypting the UDP or RTP headers, as described in
[RFC1889]. This method is appropriate when the UDP and RTP header [RFC1889]. This method is appropriate when the UDP and RTP header
information need not be kept confidential. information need not be kept confidential.
6. Acknowledgments 7. IANA considerations
The ROHC suboption identifier is a non-negative integer. Following
the policies outlined in [IANA-CONSIDERATIONS], the IANA policy for
assigning new values for the suboption identifier shall be
Specification Required: values and their meanings must be documented
in an RFC or in some other permanent and readily available reference,
in sufficient detail that interoperability between independent
implementations is possible. The range 0 to 127 is reserved for IETF
standard-track specifications; the range 128 to 254 is available for
other specifications that meet this requirement (such as
Informational RFCs). The value 255 is reserved for future
extensibility of the present specification.
The following suboption identifiers are already allocated:
Suboption Document Usage
identifier
1 RFCthis Profiles
[[ The PPP protocol identifier values for 00SS and 00LL are to be
assigned by IANA before publication of this document. As it is
rather unlikely that ROHC will be used over links with highly
populated ACCMs, this could start using the values reserved for
inefficient transparency, e.g. 0003 for 00SS and 0005 for 00LL. ]]
8. Acknowledgments
The present document borrows heavily from [RFC2509]. The present document borrows heavily from [RFC2509].
7. References 9. References
[ROHC] Carsten Bormann (ed.) et al., "RObust Header Compression [ROHC] Carsten Bormann (ed.) et al., "RObust Header Compression
(ROHC)", work in progress, November 2000 (draft-ietf- (ROHC): Framework and four profiles: RTP, UDP, ESP, and
rohc-rtp-06.txt). uncompressed", work in progress, February 2001 (draft-
ietf-rohc-rtp-09.txt).
[RFC2023] Haskin, E. and E. Allan, "IP Version 6 over PPP", RFC [RFC2472] Haskin, E. and E. Allan, "IP Version 6 over PPP", RFC
2023, October 1996. 2472, December 1998.
[RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low- Speed [RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low- Speed
Serial Links", RFC 1144, February 1990. Serial Links", RFC 1144, February 1990.
[RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol [RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol
(IPCP)", RFC 1332, May 1992. (IPCP)", RFC 1332, May 1992.
[RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V. [RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V.
Jacobson, "RTP: A Transport Protocol for real-time Jacobson, "RTP: A Transport Protocol for real-time
applications", RFC 1889, January 1996. applications", RFC 1889, January 1996.
[RFC1661] Simpson, W., Ed., "The Point-To-Point Protocol (PPP)", [RFC1661] Simpson, W., Ed., "The Point-To-Point Protocol (PPP)",
STD 51, RFC 1661, July 1994. STD 51, RFC 1661, July 1994.
[RFC2686] Bormann, C., "The Multi-Class Extension to Multi-Link [RFC2686] Bormann, C., "The Multi-Class Extension to Multi-Link
PPP", RFC 2686, September 1999. PPP", RFC 2686, September 1999.
[RFC2509] M. Engan, S. Casner, C. Bormann, "IP Header Compression [RFC2509] M. Engan, S. Casner, C. Bormann, "IP Header Compression
over PPP", RFC 2509, February 1999. over PPP", RFC 2509, February 1999.
8. Authors' addresses 10. Authors' addresses
Carsten Bormann Carsten Bormann
Universitaet Bremen FB3 TZI Universitaet Bremen FB3 TZI
Postfach 330440 Postfach 330440
D-28334 Bremen, GERMANY D-28334 Bremen, GERMANY
cabo@tzi.org cabo@tzi.org
phone +49.421.218-7024 phone +49.421.218-7024
fax +49.421.218-7000 fax +49.421.218-7000
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/