Network Working Group A. Surtees Internet-Draft M. West Expires: August 21, 2002 Siemens/Roke Manor February 20, 2002 RTP Profile for EPIC draft-surtees-rtp-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 21, 2002. Copyright Notice Copyright (C) The Internet Society (2002). All Rights Reserved. Abstract This draft describes a profile for compressing RTP/UDP/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. This profile gives behaviours similar to (a subset of) the functionality of [1] and is useful to show how EPIC would work on a protocol stack about which much is already known. Surtees & West Expires August 21, 2002 [Page 1] Internet-Draft RTP Profile for EPIC February 2002 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Framework . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4. Basic RTP/UDP/IPv4 Header . . . . . . . . . . . . . . . . . . 3 5. RTP/UDP/IPv4 Profile for EPIC . . . . . . . . . . . . . . . . 5 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 References . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 17 Full Copyright Statement . . . . . . . . . . . . . . . . . . . 18 Surtees & West Expires August 21, 2002 [Page 2] Internet-Draft RTP Profile for EPIC February 2002 1. Introduction This document describes a profile for compressing RTP/UDP/IPv4 in the ROHC [1] framework but using EPIC [2] to derive the header formats. The aim of this profile is to produce header formats which can be used in place of the currently defined formats used by ROHC, by defining the protocol behaviour in the EPIC input language. The generated formats will not be identical to those of ROHC and they are not meant to be. They will, however, give the reader an idea of how EPIC can work within the framework of ROHC by using an example about the compression of which a large amount is already known. 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. 3. Framework The overall framework in which to run this profile, that is the context identifier (CID), basic packet headers e.g. IR byte, IR-DYN byte, are as defined in ROHC [1]. This profile produces a set of header formats with similar properties to the U/O packet formats of ROHC and assumes that compressor and decompressor behave in a similar way to U and O mode, as defined for ROHC. The state machine at the compressor has to decide whether to send IR, IR-DYN or CO packets as described in the EPIC framework. 4. Basic RTP/UDP/IPv4 Header The fields of each header are as shown: Surtees & West Expires August 21, 2002 [Page 3] Internet-Draft RTP Profile for EPIC February 2002 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 +----+----+----+----+----+----+----+----+ Header length = 5 assuming no IP Extension headers. RF (Reserved bit) and MF (May fragment flag) assumed to be zero by [1]. UDP Header +----+----+----+----+----+----+----+----+ / Source Port / 2 octets +----+----+----+----+----+----+----+----+ / Destination Port / 2 octets +----+----+----+----+----+----+----+----+ / Length / 2 octets +----+----+----+----+----+----+----+----+ / Checksum / 2 octets +----+----+----+----+----+----+----+----+ Surtees & West Expires August 21, 2002 [Page 4] Internet-Draft RTP Profile for EPIC February 2002 RTP Header +----+----+----+----+----+----+----+----+ | V=2 | P | X | CSRC Count | +----+----+----+----+----+----+----+----+ | M | Payload Type | +----+----+----+----+----+----+----+----+ / Sequence Number / 2 octets +----+----+----+----+----+----+----+----+ / Timestamp / 4 octets +----+----+----+----+----+----+----+----+ / SSRC / 4 octets +----+----+----+----+----+----+----+----+ / Optional CSRC list / CRSC count * 4 octets +----+----+----+----+----+----+----+----+ V = Version P = Padding bit X = Extension bit M = Marker bit The input language describes each of these fields so the compressor need have no prior knowledge of what the header looks like. 5. RTP/UDP/IPv4 Profile for EPIC profile_identifier 0xFFFF max_formats 200 max_sets 4 bit_alignment 8 npatterns 224 CO_packet RTP-UDP-IP-CO IR_packet RTP-UDP-IP-IR IR_DYN_packet RTP-UDP-IP-DYN ; The profile identifier is a placeholder. ; Overall CO packet splits into whether it will contain a 3 or ; 7 bit crc RTP-UDP-IP-CO = packet-crc-co3(90.8%) | packet-crc-co7(9.2%) Surtees & West Expires August 21, 2002 [Page 5] Internet-Draft RTP Profile for EPIC February 2002 ; Dynamic packet RTP-UDP-IP-DYN = INFERRED-IP-CHECKSUM(IPv4-header-dyn) UDP-header-dyn RTP-header-dyn packet-crc-dyn ; IR packet RTP-UDP-IP-IR = INFERRED-IP-CHECKSUM(IPv4-header-ir) UDP-header-ir RTP-header-ir packet-crc-dyn packet-crc-co3 = INFERRED-IP-CHECKSUM(IPv4-header-co3) UDP-header-co RTP-header-co-sta RTP-header-co3 CRC(3,100%) packet-crc-co7 = INFERRED-IP-CHECKSUM(IPv4-header-co7) UDP-header-co RTP-header-co-sta RTP-header-co7 CRC(7,100%) packet-crc-dyn = CRC(8,100%) IPv4-header-co3 = version header-len tos-co3 length ip-id-nbo ip-id nbo-flag-co rf-flag df-flag-co mf-flag offset ttl-co3 protocol ip-chksum src-address-co dst-address-co IPv4-header-co7 = version header-len tos-co7 length Surtees & West Expires August 21, 2002 [Page 6] Internet-Draft RTP Profile for EPIC February 2002 ip-id-nbo ip-id nbo-flag-co rf-flag df-flag-co mf-flag offset ttl-co7 protocol ip-chksum src-address-co dst-address-co IPv4-header-dyn = version header-len tos-dyn length ip-id-nbo ip-id nbo-flag-dyn rf-flag df-flag-dyn mf-flag offset ttl-dyn protocol ip-chksum src-address-co dst-address-co IPv4-header-ir = version header-len tos-dyn length ip-id-nbo ip-id nbo-flag-dyn rf-flag df-flag-dyn mf-flag offset ttl-dyn protocol ip-chksum src-address-ir dst-address-ir version = VALUE(4,4,100%) Surtees & West Expires August 21, 2002 [Page 7] Internet-Draft RTP Profile for EPIC February 2002 header-len = VALUE(4,5,100%) tos-co3 = STATIC(100%) tos-co7 = STATIC(98.91%) | IRREGULAR(8,1.09%) tos-dyn = IRREGULAR(8,100%) length = INFERRED-SIZE(16,-16) ip-id-nbo = NBO(16) ip-id = STACK-TO-CONTROL(16) nbo-flag-co = STATIC(100%) nbo-flag-dyn = IRREGULAR(1,100%) rf-flag = VALUE(1,0,100%) df-flag-co = STATIC(100%) df-flag-dyn = IRREGULAR(1,100%) mf-flag = VALUE(1,0,100%) offset = VALUE(13,0,100%) ttl-co3 = STATIC(100%) ttl-co7 = STATIC(98.91%) | IRREGULAR(8,1.09%) ttl-dyn = IRREGULAR(8,100%) protocol = VALUE(8,17,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%) UDP-header-co = source-port-co dest-port-co Surtees & West Expires August 21, 2002 [Page 8] Internet-Draft RTP Profile for EPIC February 2002 udp-size udp-checksum-co UDP-header-dyn = source-port-co dest-port-co udp-size udp-checksum-ir UDP-header-ir = source-port-ir dest-port-ir udp-size udp-checksum-ir source-port-co = STATIC(100%) source-port-ir = IRREGULAR(16,100%) dest-port-co = STATIC(100%) dest-port-ir = IRREGULAR(16,100%) udp-size = INFERRED-SIZE(16,-32) udp-checksum-co = FORMAT(no-checksum,with-checksum) ; FORMAT index STATIC(100%) udp-checksum-ir = FORMAT(no-checksum,with-checksum) ; FORMAT index IRREGULAR(1,100%) no-checksum = VALUE(16,0,100%) with-checksum = IRREGULAR(16,100%) RTP-header-co-sta = rtp-version rtp-padding-co rtp-extension-co rtp-csrc-count rtp-marker rtp-payload-co rtp-sn ip-id-encoding Surtees & West Expires August 21, 2002 [Page 9] Internet-Draft RTP Profile for EPIC February 2002 RTP-header-co3 = ip-id-offset-co3 rtp-ts-co3 rtp-ssrc-co rtp-csrc-co3 msn-co3 RTP-header-co7 = ip-id-offset-co7 rtp-ts-co7 rtp-ssrc-co rtp-csrc-co7 msn-co7 RTP-header-dyn = rtp-version rtp-padding-dyn rtp-extension-dyn rtp-csrc-count rtp-marker rtp-payload-dyn rtp-sn ip-id-encoding ip-id-offset-dyn rtp-ts-dyn rtp-ssrc-co rtp-csrc-dyn msn-dyn RTP-header-ir = rtp-version rtp-padding-dyn rtp-extension-dyn rtp-csrc-count rtp-marker rtp-payload-dyn rtp-sn ip-id-encoding ip-id-offset-dyn rtp-ts-dyn rtp-ssrc-ir rtp-csrc-dyn msn-dyn rtp-version = VALUE(2,2,100%) rtp-padding-co = STATIC(100%) rtp-padding-dyn = IRREGULAR(1,100%) rtp-extension-co = STATIC(100%) Surtees & West Expires August 21, 2002 [Page 10] Internet-Draft RTP Profile for EPIC February 2002 rtp-extension-dyn = IRREGULAR(1,100%) rtp-csrc-count = STACK-TO-CONTROL(4) rtp-marker = STACK-TO-CONTROL(1) rtp-payload-co = STATIC(100%) rtp-payload-dyn = IRREGULAR(7,100%) rtp-sn = ; store the SN as the MSN SET-MSN(16) ip-id-encoding = ; expose the IP-ID STACK-ROTATE(3,1) ; retrieve the IP-ID STACK-FROM-CONTROL(16) ; put MSN on control stack STACK-PUSH-MSN(16) ; do the offset encoding INFERRED-OFFSET(16) ; remove the MSN STACK-POP-MSN(16) rtp-ts-co3 = ts-stride ts-scale-co ts-offset-co3 get-msn ts-scaled move-msn ts-scaled-offset-co3 rtp-ts-co7 = ts-stride ts-scale-co ts-offset-co7 get-msn ts-scaled move-msn ts-scaled-offset-co7 rtp-ts-dyn = ts-stride ts-scale-dyn ts-offset-dyn Surtees & West Expires August 21, 2002 [Page 11] Internet-Draft RTP Profile for EPIC February 2002 get-msn ts-scaled move-msn ts-scaled-offset-dyn ip-id-offset-co3 = FORMAT(non-random-ip-id-co3,random-ip-id) ; FORMAT index STATIC(100%) ip-id-offset-co7 = FORMAT(non-random-ip-id-co7,random-ip-id) ; FORMAT index STATIC(100%) ip-id-offset-dyn = FORMAT(non-random-ip-id-dyn,random-ip-id) ; FORMAT index IRREGULAR(1,100%) non-random-ip-id-co3 = STATIC(70.71%) | LSB(5,0,29.29%) non-random-ip-id-co7 = STATIC(63.1%) | LSB(5,0,26.14%) | LSB(9,0,10.76%) non-random-ip-id-dyn = IRREGULAR(16,100%) random-ip-id = IRREGULAR(16,100%) ts-stride = SCALE(32) ts-scale-co = STATIC(100%) ts-scale-dyn = IRREGULAR(32,100%) ts-offset-co3 = STATIC(100%) ts-offset-co7 = STATIC(98.92%) | IRREGULAR(32, 1.08%) ts-offset-dyn = IRREGULAR(32,100%) get-msn = STACK-PUSH-MSN(32) ts-scaled = INFERRED-OFFSET(32) Surtees & West Expires August 21, 2002 [Page 12] Internet-Draft RTP Profile for EPIC February 2002 move-msn = STACK-POP-MSN(32) ts-scaled-offset-co3 = ; get marker bit STACK-FROM-CONTROL(1) no-marker-co3(88.31%) | marker-set-co3(11.69%) ts-scaled-offset-co7 = ; get marker bit STACK-FROM-CONTROL(1) no-marker-co7(52.67%) | marker-set-co7(47.33%) ts-scaled-offset-dyn = ; get marker bit STACK-FROM-CONTROL(1) no-marker-dyn(90%) | marker-set-dyn(10%) no-marker-co3 = VALUE(1,0,100%) STATIC(100%) no-marker-co7 = VALUE(1,0,100%) STATIC(100%) no-marker-dyn = VALUE(1,0,100%) IRREGULAR (32,100%) marker-set-co3 = IRREGULAR(1,100%) LSB(6,15,100%) marker-set-co7 = IRREGULAR(1,100%) LSB(6,15,14.73%) | LSB(8,63,78.45%) | LSB(12,1023,6.82%) Surtees & West Expires August 21, 2002 [Page 13] Internet-Draft RTP Profile for EPIC February 2002 marker-set-dyn = IRREGULAR(1,100%) IRREGULAR(32,100%) rtp-ssrc-co = STATIC (100%) rtp-ssrc-ir = IRREGULAR (32,100%) ; 4 = n = size of field giving length (l) ; 1 = d, 32 = m, 0 = p ; giving (l/d)*m + p = length in bits to be compressed ; 0 = z = number of bits to identify list element rtp-csrc-co3 = LIST(4,1,32,0,0, OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3), OPTIONAL(csrc-entry-co3) ) ; order msbs ; STATIC(100%) ; order lsbs ; STATIC(100%) ; presence ; STATIC(100%) rtp-csrc-co7 = LIST(4,1,32,0,0, OPTIONAL(csrc-entry-co7), Surtees & West Expires August 21, 2002 [Page 14] Internet-Draft RTP Profile for EPIC February 2002 OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7), OPTIONAL(csrc-entry-co7) ) ; order msbs ; STATIC(100%) ; order lsbs ; STATIC(100%) ; presence ; STATIC(89.24%) | IRREGULAR(16,10.76%) rtp-csrc-dyn = LIST(4,1,32,0,0, OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn), OPTIONAL(csrc-entry-dyn) ) Surtees & West Expires August 21, 2002 [Page 15] Internet-Draft RTP Profile for EPIC February 2002 ; order msbs ; IRREGULAR(32,100%) ; order lsbs ; IRREGULAR(32,100%) ; presence ; IRREGULAR(16,100%) csrc-entry-co3 = STATIC(100%) csrc-entry-co7 = STATIC(98.91%) | U(IRREGULAR(32,1.09%)) csrc-entry-dyn = U(IRREGULAR(32,100%)) msn-co3 = MSN-LSB(4,-1,91.84%) | MSN-LSB(8,-1,8.16%) msn-co7 = MSN-LSB(4,-1,72.07%) | MSN-LSB(8,-1,6.41%) | MSN-LSB(12,-1,21.52%) msn-dyn = MSN-IRREGULAR(16,100%) 6. Security Considerations This draft describes a profile for the compression and decompression of RTP/UDP/IPv4 headers. Since this information is simply to act as a comparison with the profile description in [1] it adds no security issues. See [2] for the security issues raised by the use of EPIC. 7. Acknowledgements This profile attempts to express many of the ideas in [1] in the form of an EPIC profile. The authors would like to acknowledge helpful discussions with a number of people in the rohc working group and elsewhere, including (but not limited to) Carsten Bormann, Max Riegel, Christian Schmidt, Richard Price, Rob Hancock, Stephen McCann, Paul Ollis, Micke Degermark and Lars-Erik Jonsson. References Surtees & West Expires August 21, 2002 [Page 16] Internet-Draft RTP Profile for EPIC February 2002 [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 H. Zheng, "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 M. West, "Framework for EPIC-lite", draft-ietf-rohc-epic-lite-01.txt (work in progress), February 2002. [3] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996. [4] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. Authors' Addresses Abigail Surtees Siemens/Roke Manor Roke Manor Research Ltd. Romsey, Hants SO51 0ZN UK Phone: +44 (0)1794 833131 EMail: abigail.surtees@roke.co.uk URI: http://www.roke.co.uk Mark A. West Siemens/Roke Manor Roke Manor Research Ltd. Romsey, Hants SO51 0ZN UK Phone: +44 (0)1794 833311 EMail: mark.a.west@roke.co.uk URI: http://www.roke.co.uk Surtees & West Expires August 21, 2002 [Page 17] Internet-Draft RTP Profile for EPIC February 2002 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. Surtees & West Expires August 21, 2002 [Page 18]