Network Working Group J. Ozegovic Internet-Draft M. Mornar Expires: August 28, 2003 February 28, 2002 DCCP Profile for EPIC draft-ozegovic-mornar-dccp-epic-00.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. 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 Internet-Draft will expire on August 28, 2003. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This draft describes a profile for compressing Datagram Congestion Control Protocol DCCP/IP using the Efficient Protocol Independent Compression (EPIC) [2] scheme. The RObust Header Compression [1] scheme is designed to compress packet headers over error prone channels. It is built around an extensible core framework that can be tailored to compress new protocol stacks by adding additional ROHC profiles. DCCP [3] is a relatively new protocol and has not yet entered the process of wide implementation. It is intended to provide a unified congestion control interface to the end user applications. It should offer the same unreliable transport as UDP does, and on the other hand, include mechanisms for congestion avoidance and control. This profile describes a new profile for ROHC which will allow DCCP/ IP headers to be compressed. Ozegovic & Mornar Expires August 28, 2003 [Page 1] Internet-Draft DCCP Profile for EPIC February 2003 Note This is a preliminary profile. It is documented in this draft for two main reasons. 1. To encourage discussion regarding the compression of DCCP 2. To explore the range of protocols that EPIC can be used to compress Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . 3 3. Requirements for DCCP. . . . . . . . . . . . . . . . . . 4 3.1. General requirements . . . . . . . . . . . . . . . . . . 4 3.2. Specific requirements. . . . . . . . . . . . . . . . . . 4 4. Framework . . . . . . . . . . . . . . . . . . . . . . . 4 5. DCCP/IPv4 Header Compression . . . . . . . . . . . . . . 4 5.1 High-level Structure . . . . . . . . . . . . . . . . . . 4 5.2 IPv4 header compression. . . . . . . . . . . . . . . . . 5 5.3 DCCP Packet structure. . . . . . . . . . . . . . . . . . 5 5.4 DCCP Generic Header. . . . . . . . . . . . . . . . . . . 6 5.5 DCCP Specific Header . . . . . . . . . . . . . . . . . . 7 5.5.1 DCCP Specific Fields . . . . . . . . . . . . . . . . . . 7 5.5.2 DCCP Options . . . . . . . . . . . . . . . . . . . . . . 7 6. The DCCP Profile . . . . . . . . . . . . . . . . . . . . 7 7. Security Considerations . . . . . . . . . . . . . . . . 19 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . 19 9. References . . . . . . . . . . . . . . . . . . . . . . . 19 10. Authors' Addresses . . . . . . . . . . . . . . . . . . . 19 11. Full Copyright Statement . . . . . . . . . . . . . . . . 20 Ozegovic & Mornar Expires August 28, 2003 [Page 2] Internet-Draft DCCP Profile for EPIC February 2003 1. Introduction This document describes a profile for compressing DCCP/IP. The Datagram Congestion Control Protocol [3] may have application in the same areas that Robust Header Compression was designed to target. Requirements for the compression of DCCP are discussed in chapter 3. This profile assumes the use of the ROHC [1] framework. It uses EPIC [2] to produce header formats which can be used along with the framework of ROHC to compress DCCP. The compression of the protocol is defined in the EPIC input language. The EPIC framework takes a profile written in BNF as its input. This way, the description how to compress each field using one or more of the toolbox methods defined in the EPIC framework is given. To describe how to compress a new protocol, all that is needed is a profile. This draft gives the profile for DCCP. For more details about the EPIC framework and the process of generating packets, refer to [2]. 2. Terminology 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. Profile A ROHC [1] profile is a description of how to compress a certain protocol stack over a certain type of link. Each profile includes one or more sets of compressed header formats and a state machine to control the compressor and the decompressor. DCCP Generic Header The standard header that is the same for all types of DCCP packets. DCCP Specific Header The header specific for particular DCCP packet, consists of DCCP Specific fields and DCCP Options. DCCP Specific Fields Header fields specific for particular DCCP packet type. DCCP Options Every DCCP packet may have optional fields. All options are a multiply of 8 bits. The first octet identifies the option type, and is followed by the option length, if existing. Then the actual option data are presented. Ozegovic & Mornar Expires August 28, 2003 [Page 3] Internet-Draft DCCP Profile for EPIC February 2003 DCCP Features DCCP features are sent and negotiated through the options, and may be either present at the time of service negotiation, or not. 3. Requirements for DCCP 3.1. General requirements General requirements are in accordance with ROHC [1]. 3.2. Specific requirements Profile for compressing DCCP headers must provide efficient compression for all kinds of DCCP headers. The DCCP specifics is that DCCP packet consists of DCCP Generic Header and DCCP Specific Header followed by DCCP options. Generic header and options heve the common format for all DCCP packets. DCCP specific headers vary in length. DCCP options are of various length, divided in two groups: options 0-31 are one byte long and serve as signals, while options 32-155 all have 8-bit length field after the type byte. Length is expressed in bytes, including type and length themselves. 4. Framework The overall framework in which to run this profile, that is the context identifier (CID), basic packet identifiers, e.g. IR, IR-DYN, are as defined in ROHC [1]. For the sake of simplicity, the profile is initially described for uni-directional operation. No feedback packets are defined. The state machine at the compressor has to decide whether to send IR, IR-DYN or CO packets as described in the EPIC framework. 5. DCCP/IPv4 Header Compression 5.1 High-level Structure The profile is broken into three main elements, IR, IR-DYN and CO packet formats, as described in the EPIC-lite and ROHC framework. The packets are composed by the IPv4 header, the DCCP Common Header and DCCP Specific Header. The fields of each header are as shown below. Ozegovic & Mornar Expires August 28, 2003 [Page 4] Internet-Draft DCCP Profile for EPIC February 2003 5.2 IPv4 header compression A detailed description of IP header fields is given in [1]. IPv4 Header +----+----+----+----+----+----+----+----+ | Version = 4 | Header length = 5 | +----+----+----+----+----+----+----+----+ | Type of Service | +----+----+----+----+----+----+----+----+ / Length / 2 octets +----+----+----+----+----+----+----+----+ / Identification / 2 octets +----+----+----+----+----+----+----+----+ | RF | DF | MF | Fragment Offset = 0 | +----+----+----+----+----+----+----+----+ | Time to Live | +----+----+----+----+----+----+----+----+ | Protocol = 17 | +----+----+----+----+----+----+----+----+ | Checksum | +----+----+----+----+----+----+----+----+ / Source Address / 4 octets +----+----+----+----+----+----+----+----+ / Destination Address / 4 octets +----+----+----+----+----+----+----+----+ o Header length = 5 assuming no IP options. o RF (Reserved Flag) and MF (More Fragments flag) assumed to be zero by [1]. 5.3 DCCP Packet structure The DCCP packets consist of DCCP Common Header and DCCP Specific Header, followed with data if present. DCCP Packet +---------+---------+---------+---------+ | DCCP Generic Header | 12 octets +---------+---------+---------+---------+ | DCCP Specific Header | variable +---------+---------+---------+---------+ / Data(if present) / variable +---------+---------+---------+---------+ Ozegovic & Mornar Expires August 28, 2003 [Page 5] Internet-Draft DCCP Profile for EPIC February 2003 There are 9 different types of the DCCP packets: Type: Name: Specific header: -------------------------------------------------- 0 DCCP-Request Service name 1 DCCP-Response Ack 2 DCCP-Data - 3 DCCP-Ack Ack 4 DCCP-DataAck Ack 5 DCCP-CloseReq Ack 6 DCCP-Close Ack 7 DCCP-Reset Ack, Reason data 8 DCCP-Move Ack, Old address and port 5.4 DCCP Generic Header DCCP Generic header is present in each type of DCCP packet. It has always the fixed length of 12 octets. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Dest Port | 4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Res | Sequence Number | 4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data Offset | # NDP | Cslen | Checksum | 4 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Source Port and the Destination Port are both 16-bit in length, and through the packet flow they remain static. The exact type of the DCCP packet is presented in the Type field, which changes from packet to packet. This field is pushed to the control stack and used later to identify appropriate method for the Specific header compression. Inside the method, Type is known and coded as value. The reserved field never changes and must be zero. The Sequence Number identifies particular datagram and is supposed to increase by one per flow for each packet sent. LSB method can be used. The Data Offset field determines the offset from the start of the DCCP header to the beginning of the packet's payload, measured in 32-bit words. This value is pushed to the control stack and used to calculate the total length of options. Ozegovic & Mornar Expires August 28, 2003 [Page 6] Internet-Draft DCCP Profile for EPIC February 2003 #NDP field indicates the number of non data packets sent. It is increased by one modulo 16 for each non-data packet. The checksum length field specifies what parts of the packet are covered by the checksum field. DCCP uses the same checksum algorithm as TCP. Note that TCP checksum MUST NOT be changed during the packet transport. The checksum length and checksum fields are transferred in full. 5.5 DCCP Specific Header Different DCCP packets have different fields after the DCCP Generic header, referenced as Specific header. For the purpose of DCCP profile writing, we consider that the Specific header consists of DCCP Specific Fields and DCCP Options/Padding. DCCP Specific Header +---------+---------+---------+---------+ | DCCP Specific Fields | variable +---------+---------+---------+---------+ | DCCP Options / Padding | variable +---------+---------+---------+---------+ To select appropriate Specific header compression function, the DCCP packet type field value is taken from the control stack by the LIST-NEXT encoding method. 5.5.1 DCCP Specific Fields DCCP Specific Fields vary with each packet type. However, several DCCP packets carry 8 reserved bits (should be zero) and a 24 bit Acknowledgement number (behaves like Sequence number). DCCP-Request packet carries Service Name as 32 bit number, which can possibly be encoded using IRREGULAR-PADDED method. DCCP-Reset packet carries the Reason code as 4x8 bit number of unknown properties. DCCP-Move packet carries Old port and Old address, which can be IPv4 or IPv6 address as indicated with the Old address family field. 5.5.2 DCCP Options DCCP Options are included when additional information has to be supplied. The DCCP negotiation phase uses options to establish required features. Options length is always a multiple of 8 bits. Options are padded to the 32-bit word boundary. Ozegovic & Mornar Expires August 28, 2003 [Page 7] Internet-Draft DCCP Profile for EPIC February 2003 Each option begins with an 8-bit type field, which is followed by the 8-bit length and data fields if existing (Options 0-31 are only one byte long). The following options are defined: Option Type Length Meaning ---- ------ ------- 0 1 Padding 1 1 Data Discarded 2 1 Slow Receiver 3 1 Buffer Closed 32 4 Ignored 33 variable Change 34 variable Prefer 35 variable Confirm 36 variable Init Cookie 37 variable Ack Vector [Nonce 0] 38 variable Ack Vector [Nonce 1] 39 3 Receive Buffer Drops 40 6 Timestamp 41 10 Timestamp Echo 42 variable Challenge Response 44 variable Challenge 128-255 variable CCID-Specific Options The total length of options can be deducted from total header length less Generic header length and less Specific fields length. Since Specific fields length is known after the packet type is recognized, the options processing is a part of Specific header. LIST method is used with appropriate length correction parameter. Several DCCP options carry "feature" information of variable length. In the absence of feature field behavior information and to keep the profile as simple as possible, the UNCOMPRESSED method is used. 6. The DCCP Profile ; ; DCCP-profile-m02 ; Initial DCCP/IPv4 compression profile ; profile_identifier 0xFFFF max_formats 160 max_sets 2 bit_alignment 8 npatterns 224 CO_packet DCCP-IP-CO IR_packet DCCP-IP-IR IR_DYN_packet DCCP-IP-DYN Ozegovic & Mornar Expires August 28, 2003 [Page 8] Internet-Draft DCCP Profile for EPIC February 2003 DCCP-IP-CO = INFERRED-IP-CHECKSUM(IPv4-co-header) DCCP-co-header DCCP-co-spec CRC(8,100%) DCCP-IP-IR = INFERRED-IP-CHECKSUM(IPv4-ir-header) DCCP-ir-header DCCP-ir-spec CRC(8,100%) DCCP-IP-DYN = INFERRED-IP-CHECKSUM(IPv4-dyn-header) DCCP-dyn-header DCCP-dyn-spec CRC(8,100%) IPv4-co-header = version header-len tos-co ecn length ip-id-co rf-flag-co df-flag-co mf-flag offset ttl-co protocol ip-chksum src-address-co dst-address-co IPv4-ir-header = version header-len tos-dyn ecn length ip-id-dyn rf-flag-dyn df-flag-dyn mf-flag offset ttl-dyn protocol ip-chksum src-address-ir dst-address-ir Ozegovic & Mornar Expires August 28, 2003 [Page 9] Internet-Draft DCCP Profile for EPIC February 2003 IPv4-dyn-header = version header-len tos-dyn ecn length ip-id-dyn rf-flag-dyn df-flag-dyn mf-flag offset ttl-dyn protocol ip-chksum src-address-co dst-address-co version = VALUE(4,4,100%) header-len = VALUE(4,5,100%) tos-co = STATIC(99%) | IRREGULAR(6,1%) tos-dyn = IRREGULAR(6,100%) ecn = IRREGULAR(2,100%) length = IRREGULAR(16,100%) ;INFERRED-SIZE(16,-16) ip-id-co = NBO(16) ; check byte-order FORMAT(ip-id-seq-co, ip-id-rnd) STATIC(100%) ; format selector STATIC(100%) ; nbo flag ip-id-dyn = NBO(16) ; check byte-order FORMAT(ip-id-seq-dyn, ip-id-rnd) IRREGULAR(1,100%) ; format selector IRREGULAR(1,100%) ; nbo flag ip-id-seq-co = LSB(4,3,70%) | LSB(6,8,15%) | LSB(8,8,15%) | IRREGULAR(16,30%) ip-id-rnd = IRREGULAR(16,100%) ip-id-seq-dyn = IRREGULAR(16,100%) rf-flag-co = STATIC(99%) | IRREGULAR(1,1%) rf-flag-dyn = IRREGULAR(1,100%) df-flag-co = STATIC(80%) | IRREGULAR(1,20%) df-flag-dyn = IRREGULAR(1,100%) Ozegovic & Mornar Expires August 28, 2003 [Page 10] Internet-Draft DCCP Profile for EPIC February 2003 mf-flag = VALUE(1,0,100%) offset = VALUE(13,0,100%) ttl-co = STATIC(99%) | IRREGULAR(8,1%) ttl-dyn = IRREGULAR(8,100%) protocol = VALUE(8,6,100%) ip-chksum = VALUE(16,0,100%) src-address-co = STATIC(100%) src-address-ir = IRREGULAR(32,100%) dst-address-co = STATIC(100%) dst-address-ir = IRREGULAR(32,100%) DCCP-co-header = source-port-co dest-port-co type reserved seqno-co data-offset ndp-co cslen dccp-chksum DCCP-dyn-header = source-port-co dest-port-co type reserved seqno-ir data-offset ndp-dyn cslen dccp-chksum DCCP-ir-header = source-port-ir dest-port-ir type reserved seqno-ir data-offset ndp-ir cslen dccp-chksum Ozegovic & Mornar Expires August 28, 2003 [Page 11] Internet-Draft DCCP Profile for EPIC February 2003 source-port-co = STATIC(100%) source-port-ir = IRREGULAR(16,100%) dest-port-co = STATIC(100%) dest-port-ir = IRREGULAR(16,100%) type = STACK-TO-CONTROL(4) reserved = VALUE(4,0,100%) seqno-co = LSB(6,8,70%) | LSB(12,2048,20%) | IRREGULAR(24,10%) seqno-ir = IRREGULAR(24,100%) data-offset = STACK-TO-CONTROL(8) ndp-co = LSB(2,2,70%) | IRREGULAR(4,30%) ndp-dyn = IRREGULAR(4,100%) ndp-ir = IRREGULAR(4,100%) cslen = IRREGULAR(4,100%) dccp-chksum = IRREGULAR(16,100%) DCCP-co-spec = STACK-ROTATE(2,1) LIST-NEXT(8, U(OPTIONAL(dccp-req)), U(OPTIONAL(dccp-resp-co)), U(OPTIONAL(dccp-data)), U(OPTIONAL(dccp-ack-co)), U(OPTIONAL(dccp-datack-co)), U(OPTIONAL(dccp-close-co)), U(OPTIONAL(dccp-closereq-co)), U(OPTIONAL(dccp-reset-co)), U(OPTIONAL(dccp-move)), 0,1,2,3,4,5,6,7,8) STATIC(50%) | IRREGULAR(18,50%) ; option order MSB STATIC(50%) | IRREGULAR(18,50%) ; option order LSB STATIC(50%) | IRREGULAR(9,50%) ; option presence Ozegovic & Mornar Expires August 28, 2003 [Page 12] Internet-Draft DCCP Profile for EPIC February 2003 DCCP-dyn-spec = STACK-ROTATE(2,1) LIST-NEXT(8, U(OPTIONAL(dccp-req)), U(OPTIONAL(dccp-resp-dyn)), U(OPTIONAL(dccp-data)), U(OPTIONAL(dccp-ack-dyn)), U(OPTIONAL(dccp-datack-dyn)), U(OPTIONAL(dccp-close-dyn)), U(OPTIONAL(dccp-closereq-dyn)), U(OPTIONAL(dccp-reset-co)), U(OPTIONAL(dccp-move)), 0,1,2,3,4,5,6,7,8) STATIC(50%) | IRREGULAR(18,50%) ; option order MSB STATIC(50%) | IRREGULAR(18,50%) ; option order LSB STATIC(50%) | IRREGULAR(9,50%) ; option presence DCCP-ir-spec = STACK-ROTATE(2,1) LIST-NEXT(8, U(OPTIONAL(dccp-req)), U(OPTIONAL(dccp-resp-ir)), U(OPTIONAL(dccp-data)), U(OPTIONAL(dccp-ack-ir)), U(OPTIONAL(dccp-datack-ir)), U(OPTIONAL(dccp-close-ir)), U(OPTIONAL(dccp-closereq-ir)), U(OPTIONAL(dccp-reset-ir)), U(OPTIONAL(dccp-move)), 0,1,2,3,4,5,6,7,8) IRREGULAR(18,100%) ; option order MSB IRREGULAR(18,100%) ; option order LSB IRREGULAR(9,100%) ; option presence dccp-req = STACK-FROM CONTROL(8) VALUE(8,0,100%) IRREGULAR(32,100%) dccp-options-1 dccp-resp-ir = STACK-FROM CONTROL(8) VALUE(8,1,100%) dccp-ackno-dyn dccp-options-1 dccp-resp-dyn = STACK-FROM CONTROL(8) VALUE(8,1,100%) dccp-ackno-dyn dccp-options-1 dccp-resp-co = STACK-FROM CONTROL(8) VALUE(8,1,100%) dccp-ackno-co dccp-options-1 Ozegovic & Mornar Expires August 28, 2003 [Page 13] Internet-Draft DCCP Profile for EPIC February 2003 dccp-data = STACK-FROM CONTROL(8) VALUE(8,2,100%) dccp-options-0 dccp-ack-ir = STACK-FROM CONTROL(8) VALUE(8,3,100%) dccp-ackno-dyn dccp-options-1 dccp-ack-dyn = STACK-FROM CONTROL(8) VALUE(8,3,100%) dccp-ackno-dyn dccp-options-1 dccp-ack-co = STACK-FROM CONTROL(8) VALUE(8,3,100%) dccp-ackno-co dccp-options-1 dccp-datack-ir = STACK-FROM CONTROL(8) VALUE(8,4,100%) dccp-ackno-dyn dccp-options-1 dccp-datack-dyn = STACK-FROM CONTROL(8) VALUE(8,4,100%) dccp-ackno-dyn dccp-options-1 dccp-datack-co = STACK-FROM CONTROL(8) VALUE(8,4,100%) dccp-ackno-co dccp-options-1 dccp-closereq-ir = STACK-FROM CONTROL(8) VALUE(8,5,100%) dccp-ackno-dyn dccp-options-1 dccp-closereq-dyn = STACK-FROM CONTROL(8) VALUE(8,5,100%) dccp-ackno-dyn dccp-options-1 dccp-closereq-co = STACK-FROM CONTROL(8) VALUE(8,5,100%) dccp-ackno-co dccp-options-1 dccp-close-ir = STACK-FROM CONTROL(8) VALUE(8,6,100%) dccp-ackno-dyn dccp-options-1 Ozegovic & Mornar Expires August 28, 2003 [Page 14] Internet-Draft DCCP Profile for EPIC February 2003 dccp-close-dyn = STACK-FROM CONTROL(8) VALUE(8,6,100%) dccp-ackno-dyn dccp-options-1 dccp-close-co = STACK-FROM CONTROL(8) VALUE(8,6,100%) dccp-ackno-co dccp-options-1 dccp-reset-ir = STACK-FROM CONTROL(8) VALUE(8,7,100%) dccp-ackno-dyn IRREGULAR(32,100%) ; Reason, Data1-3 change rapidly dccp-options-2 dccp-reset-dyn = STACK-FROM CONTROL(8) VALUE(8,7,100%) dccp-ackno-dyn IRREGULAR(32,100%) ; Reason, Data1-3 change rapidly dccp-options-2 dccp-reset-co = STACK-FROM CONTROL(8) VALUE(8,7,100%) dccp-ackno-co IRREGULAR(32,100%) ; Reason, Data1-3 change rapidly dccp-options-2 dccp-move = STACK-FROM CONTROL(8) VALUE(8,8,100%) STACK_TO CONTROL(16) ; Old Address Family IRREGULAR(16,100%) ; Old Port STACK-FROM-CONTROL(16) move-oldadr-IPv4 | move-oldadr-IPv6 dccp-ackno-dyn = VALUE(8,0,100%) IRREGULAR(24,100%) dccp-ackno-co = VALUE(8,0,100%) LSB(4,3,70%) | LSB(6,8,15%) | LSB(8,8,15%) | IRREGULAR(24,30%) move-oldadr-IPv4 = value(16,0,100%) IRREGULAR(32,100%) dccp-options-2 move-oldadr-IPv6 = value(16,1,100%) IRREGULAR(32,100%) IRREGULAR(32,100%) IRREGULAR(32,100%) IRREGULAR(32,100%) dccp-options-5 Ozegovic & Mornar Expires August 28, 2003 [Page 15] Internet-Draft DCCP Profile for EPIC February 2003 dccp-options-0 = LIST(4,1,32,-160,8, U(OPTIONAL(dccp-disc)), U(OPTIONAL(dccp-slow)), U(OPTIONAL(dccp-closed)), U(OPTIONAL(dccp-ignored)), U(OPTIONAL(dccp-change)), U(OPTIONAL(dccp-prefer)), U(OPTIONAL(dccp-confirm)), U(OPTIONAL(dccp-cookie)), U(OPTIONAL(dccp-ackvector)), U(OPTIONAL(dccp-ackvector)), U(OPTIONAL(dccp-drops)), U(OPTIONAL(dccp-timestamp)), U(OPTIONAL(dccp-timecho)), U(OPTIONAL(dccp-chlresp)), U(OPTIONAL(dccp-chl)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), 1,2,3,32,33,34,35,36,37,38,39,40,41,42,44,0,0,0) STATIC(50%) | IRREGULAR(16,50%) ; option order msb STATIC(50%) | IRREGULAR(32,50%) ; option order STATIC(50%) | IRREGULAR(32,50%) ; option order lsb STATIC(50%) | IRREGULAR(18,50%) ; option presence dccp-options-1 = LIST(4,1,32,-192,8, U(OPTIONAL(dccp-disc)), U(OPTIONAL(dccp-slow)), U(OPTIONAL(dccp-closed)), U(OPTIONAL(dccp-ignored)), U(OPTIONAL(dccp-change)), U(OPTIONAL(dccp-prefer)), U(OPTIONAL(dccp-confirm)), U(OPTIONAL(dccp-cookie)), U(OPTIONAL(dccp-ackvector)), U(OPTIONAL(dccp-ackvector)), U(OPTIONAL(dccp-drops)), U(OPTIONAL(dccp-timestamp)), U(OPTIONAL(dccp-timecho)), U(OPTIONAL(dccp-chlresp)), U(OPTIONAL(dccp-chl)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), 1,2,3,32,33,34,35,36,37,38,39,40,41,42,44,0,0,0) STATIC(50%) | IRREGULAR(16,50%) ; option order msb STATIC(50%) | IRREGULAR(32,50%) ; option order STATIC(50%) | IRREGULAR(32,50%) ; option order lsb STATIC(50%) | IRREGULAR(18,50%) ; option presence Ozegovic & Mornar Expires August 28, 2003 [Page 16] Internet-Draft DCCP Profile for EPIC February 2003 dccp-options-2 = LIST(4,1,32,-224,8, U(OPTIONAL(dccp-disc)), U(OPTIONAL(dccp-slow)), U(OPTIONAL(dccp-closed)), U(OPTIONAL(dccp-ignored)), U(OPTIONAL(dccp-change)), U(OPTIONAL(dccp-prefer)), U(OPTIONAL(dccp-confirm)), U(OPTIONAL(dccp-cookie)), U(OPTIONAL(dccp-ackvector-37)), U(OPTIONAL(dccp-ackvector-38)), U(OPTIONAL(dccp-drops)), U(OPTIONAL(dccp-timestamp)), U(OPTIONAL(dccp-timecho)), U(OPTIONAL(dccp-chlresp)), U(OPTIONAL(dccp-chl)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), 1,2,3,32,33,34,35,36,37,38,39,40,41,42,44,0,0,0) STATIC(50%) | IRREGULAR(16,50%) ; option order msb STATIC(50%) | IRREGULAR(32,50%) ; option order STATIC(50%) | IRREGULAR(32,50%) ; option order lsb STATIC(50%) | IRREGULAR(18,50%) ; option presence dccp-options-5 = LIST(4,1,32,-320,8, U(OPTIONAL(dccp-disc)), U(OPTIONAL(dccp-slow)), U(OPTIONAL(dccp-closed)), U(OPTIONAL(dccp-ignored)), U(OPTIONAL(dccp-change)), U(OPTIONAL(dccp-prefer)), U(OPTIONAL(dccp-confirm)), U(OPTIONAL(dccp-cookie)), U(OPTIONAL(dccp-ackvector-37)), U(OPTIONAL(dccp-ackvector-38)), U(OPTIONAL(dccp-drops)), U(OPTIONAL(dccp-timestamp)), U(OPTIONAL(dccp-timecho)), U(OPTIONAL(dccp-chlresp)), U(OPTIONAL(dccp-chl)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), U(OPTIONAL(dccp-pad)), 1,2,3,32,33,34,35,36,37,38,39,40,41,42,44,0,0,0) STATIC(50%) | IRREGULAR(16,50%) ; option order msb STATIC(50%) | IRREGULAR(32,50%) ; option order STATIC(50%) | IRREGULAR(32,50%) ; option order lsb STATIC(50%) | IRREGULAR(18,50%) ; option presence dccp-disc = VALUE(8,1,100%) dccp-slow = VALUE(8,2,100%) Ozegovic & Mornar Expires August 28, 2003 [Page 17] Internet-Draft DCCP Profile for EPIC February 2003 dccp-closed = VALUE(8,3,100%) dccp-ignored = VALUE(8,32,100%) VALUE(8,4,100%) IRREGULAR(8,100%) IRREGULAR(8,100%) dccp-change = VALUE(8,33,100%) ; type dccp-feature dccp-prefer = VALUE(8,34,100%) ; type dccp-feature dccp-confirm = VALUE(8,35,100%) ; type dccp-feature dccp-cookie = VALUE(8,36,100%) ; type dccp-feature dccp-ackvector-37 = VALUE(8,37,100%) ; type dccp-feature dccp-ackvector-38 = VALUE(8,38,100%) ; type dccp-feature dccp-drops = VALUE(8,39,100%) ; type VALUE(8,3,100%) IRREGULAR(8,100%) dccp-timestamp = VALUE(8,40,100%) ; type VALUE(8,6,100%) ; length IRREGULAR(32,100%) dccp-timecho = VALUE(8,41,100%) ; type VALUE(8,10,100%) ; length IRREGULAR(32,100%) IRREGULAR(32,100%) dccp-chlresp = VALUE(8,42,100%) ; type dccp-feature dccp-chl = VALUE(8,44,100%) ; type dccp-feature dccp-feature = STACK-TO-CONTROL(8) ; length UNCOMPRESSED(8,1,8,-16) ; value IRREGULAR(8,100%) Ozegovic & Mornar Expires August 28, 2003 [Page 18] Internet-Draft DCCP Profile for EPIC February 2003 7. Security Considerations This draft describes a profile for the compression and decompression of DCCP/IPv4 headers. See [1] for the security issues raised by robust header compression. See [2] for the security issues raised by the use of EPIC. 8. Acknowledgements The authors would like to acknowledge the many people who have helped with issues relating to DCCP, ROHC and EPIC. These stalwarts include Carsten Bormann, Max Riegel, Christian Schmidt, Richard Price, Rob Hancock, Paul Ollis, and Stephen McCann. We also acknowledge members of the FESB EPIC team, who made an effort to provide open source implementation of EPIC-Lite. 9. References [1] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H., Hannu, H., Jonsson, L-E., Hakenberg, R., Koren, T., Le, K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., Wiebke, T., Yoshimura, T. and Zheng, H., "RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed", RFC 3095, July 2001. [2] Price, R., Hancock, R., Ollis, P., Surtees, A. and West, M., "Framework for EPIC-lite", draft-ietf-rohc-epic-lite-01.txt (work in progress), February 2002. [3] Kohler, E., Handley, M., Floyd, S., Padhye, J., "Datagram Congestion Control Protocol (DCCP)", draft-ietf-dccp-spec-00.txt (work in progress), October 2002. [4] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. 10. Authors' Addresses Julije Ozegovic University of Split FESB Split R. Boskovica bb 21000 SPLIT Croatia Phone: +385 (0)21 305725 EMail: julije@fesb.hr Ozegovic & Mornar Expires August 28, 2003 [Page 19] Internet-Draft DCCP Profile for EPIC February 2003 Mario Mornar Croatian telecom, TKC Split Sinjska 5 21000 SPLIT Croatia Phone: +385 (0)21 351063 EMail: mario.mornar@ht.hr 11. Full Copyright Statement Copyright (C) The Internet Society (2002). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Ozegovic & Mornar Expires August 28, 2003 [Page 20]