Network Working Group Julije Ozegovic, University of Split INTERNET-DRAFT Mario Mornar, Croatian Telecom Expires: January 1, 2004 July 1, 2003 RTP Profile in ROHC-FN draft-ozegovic-rtp-rohc-fn-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. Copyright Notice Copyright (C) The Internet Society (2003). All Rights Reserved. Abstract This draft describes a profile for compressing RTP/IP using the Robust Header Compression Formal Notation. 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 draft describes a modification of previously published RTP profiles for ROHC to conform to ROHC-FN [2] and Prolog. Ozegovic & MORNAR Expires: January 1, 2004 [Page 1] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 Note This is a preliminary profile. It is documented in this draft for two main reasons. 1. To encourage discussion regarding the compression specification for RTP in ROHC-FN 2. To explore the range of protocols that the Formal Notation can be used to compress Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . 3 3. RTP compression in ROHC formal notation. . . . . . . . . 4 4. Security Considerations . . . . . . . . . . . . . . . . 7 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . 7 References . . . . . . . . . . . . . . . . . . . . . . . 8 Authors' Addresses . . . . . . . . . . . . . . . . . . . 8 Full Copyright Statement . . . . . . . . . . . . . . . . 9 Ozegovic & MORNAR Expires: January 1, 2004 [Page 2] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 1. Introduction This document presents a profile for compressing RTP/UDP/IP. The Real Time Protocol [3] is in focus of interest for header compression and its compression profile is elaborated in [1] using text and box notation. The profile proposed here is based on [4], where RTP profile for EPIC [5] was described. The behavior of RTP/UDP/IP fields is described in details in [1] and [4]. Presented profile is adopted for ROHC-FN and Prolog language for verification. 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. Control field Control fields are transmitted from a ROHC compressor to a ROHC decompressor, but are not part of the uncompressed protocol header itself. An example is a checksum field over the header to ensure robustness against bit errors and dropped packets. Encoding method Encoding methods are functions that can be applied to compress fields in a protocol header. ROHC-FN includes a library of commonly used encoding methods. Field ROHC-FN divides the protocol to be compressed into a set of contiguous bit patterns known as fields. Library of encoding methods The library of encoding methods contains a number of commonly used encoding methods for compressing header fields. Profile A ROHC [RFC-3095] profile is a description of how to compress a certain protocol stack over a certain type of link. Each profile includes packet formats to compress the headers and a state machine to control the actions of each endpoint. Ozegovic & MORNAR Expires: January 1, 2004 [Page 3] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 3. RTP compression in ROHC formal notation RTP profile presented is adapted to the possibilities of current Prolog test program. The minor drawbacks are: - UDP length is not inferred - NBO is not used - CRC is not implemented, zero bits inserted - scale uses explicit scale factor (160) - list is shortened for 8 CSRCs, to avoid 64 bit order field rtp_udp_ip_header --> ip_header++ udp_header++ rtp_header++ master_seq_number++ header_crc. ip_header --> inferred_ip_checksum++ inferred_size(16,-16)++ ip_version++ ip_header_length++ ip_tos++ ip_length++ ip_id++ ip_reserved++ ip_dont_fragment++ ip_more_fragments++ ip_offset++ ip_time_to_live++ ip_protocol++ ip_checksum++ ip_source_address++ ip_dest_address. udp_header --> %inferred_size(16,-32)++ udp_source_port++ udp_dest_port++ udp_size++ udp_checksum. rtp_header --> rtp_version++ rtp_padding++ rtp_extension++ rtp_csrc_count++ rtp_marker++ rtp_payload++ rtp_sn++ rtp_ts++ rtp_ssrc++ rtp_csrc. Ozegovic & MORNAR Expires: January 1, 2004 [Page 4] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 master_seq_number --> next_field(msn)++ lsb(2,0) #90 / irregular(16) #10. header_crc --> map(current_field,nil,0)++ irregular(3). %******************************************************************************* % IP header %******************************************************************************* ip_version --> value(4,4). ip_header_length --> value(4,5). ip_tos --> static // irregular(8). ip_length --> skip(16). % NBO is not implemented yet ip_id --> lsb(8,0) #90 / irregular(16) #10. % With NBO the field should be compressed like below % % nbo (16)++ % next_field(nbo_flag)++ % static // irregular(1)++ % next_field(nbo_field)++ % static / lsb(5,-1) // irregular(16). ip_reserved --> value(1,0). ip_dont_fragment --> static #99 / irregular(1) #1. ip_more_fragments --> value(1,0). ip_offset --> value(13,0). ip_time_to_live --> static #99 / irregular(8) #1. ip_protocol --> value(8,17). ip_checksum --> skip(16). ip_source_address --> static // irregular(32). ip_dest_address --> static // irregular(32). Ozegovic & MORNAR Expires: January 1, 2004 [Page 5] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 %******************************************************************************* % UDP header %******************************************************************************* udp_source_port --> static // irregular(16). udp_dest_port --> static // irregular(16). %inferred size works properly at the beginning of the header only udp_size --> irregular(16). %udp_size --> skip(16). udp_checksum --> value(16,0) #99 / irregular(16) #1. %******************************************************************************* % RTP header %******************************************************************************* rtp_version --> value(2,2). rtp_padding --> static // irregular(1). rtp_extension --> static // irregular(1). rtp_csrc_count --> label(4,csrc_count). rtp_marker --> irregular(1). rtp_payload --> static // irregular(7). rtp_sn --> label(16,msn). % Scale ***** version with FIXED SCALE FACTOR *******! rtp_ts --> scale(32,160)++ next_field(scaled_field)++ rtp_scaled++ next_field(remainder_field)++ rtp_reminder. rtp_scaled --> lsb(2,0) // irregular(32). rtp_reminder --> static // irregular(32). %profile builder not powerful enough to chew this: %rtp_scaled --> lsb(2,0) #90 / irregular(32) #10. %rtp_reminder --> static #90 / irregular(32) #10. Ozegovic & MORNAR Expires: January 1, 2004 [Page 6] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 rtp_ssrc --> static // irregular(32). rtp_csrc --> list(csrc_count,1,32,0, [optional(csrc_entry), optional(csrc_entry), optional(csrc_entry), optional(csrc_entry), optional(csrc_entry), optional(csrc_entry), optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), % optional(csrc_entry), optional(csrc_entry)])++ csrc_options_order++ csrc_options_presence. % 16 bit presence field means a 64 bit order field. We have 32 bits in Prolog csrc_options_order --> next_field(order)++ % static // irregular(64). static // irregular(24). csrc_options_presence --> next_field(presence)++ % static // irregular(16). static // irregular(8). csrc_entry --> irregular(32). 4. Security Considerations This draft describes a profile for the compression and decompression of SCTP/IPv4 headers. See [1] for the security issues raised by robust header compression. See [2] for the security issues raised by the use of the Formal Notation. 5. Acknowledgements The authors would like to acknowledge the many people who have helped with issues relating to SCTP, ROHC and the formal notation. These stalwarts include Carsten Bormann, Max Riegel, Christian Schmidt, Michael Tuexen, Richard Price, Rob Hancock, and Stephen McCann. Ozegovic & MORNAR Expires: January 1, 2004 [Page 7] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 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 H. Zheng, "RObust Header Compression (ROHC): Framework and four profiles: RTP, UDP, ESP, and uncompressed", RFC 3095, July 2001. [2] Price, R., Surtees, A. and M. West, "Formal Notation for Robust Header Compression ROHC-FN", draft-ietf-rohc-formal-notation- 01.txt (work in progress), March 2003. [3] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, "RTP: A Transport Protocol for Real-Time Applications", RFC 1889, January 1996. [4] A. Surtees, M. West, "RTP Profile for EPIC", draft-surtees-rtp-epic-00.txt, February 2002. [5] Price, R., Hancock, R., Ollis, P., Surtees, A. and M. West, "Framework for EPIC-lite", draft-ietf-rohc-epic-lite-01.txt, February 2002. Authors' Addresses Julije Ozegovic University of Split FESB Split R. Boskovica bb 21000 SPLIT Croatia Phone: +385 (0)21 305725 EMail: julije@fesb.hr Mario Mornar Croatian telecom, TKC Split Sinjska 5 21000 SPLIT Croatia Phone: +385 (0)21 351063 EMail: mario.mornar@ht.hr Ozegovic & MORNAR Expires: January 1, 2004 [Page 8] INTERNET-DRAFT RTP ROHC-FN profile July 1, 2003 Full Copyright Statement Copyright (C) The Internet Society (2003). 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. This Internet-Draft will expire on January 1, 2004. Ozegovic & MORNAR Expires: January 1, 2004 [Page 9]