Network Working Group L-E. Jonsson INTERNET-DRAFT Ericsson Expires: April 2003 October 25, 2002 Interoperability of RFC 3095 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 cite them other than as "work in progress". The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/lid-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html This document is a submission of the IETF ROHC WG. Comments should be directed to the ROHC WG mailing list, rohc@ietf.org. Abstract RFC 3095 defines a Proposed Standard protocol for RObust Header Compression (ROHC). In order to move the standard further to Draft Standard status, it is required to demonstrate interoperability for all functionality defined by the RFC. This document outlines those features to be tested, and also the test status for each feature, based on reports from interoperability tests or other proof of interoperability. Jonsson [Page 1] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 Table of Contents 1. Introduction..................................................2 2. General ROHC Feature Tests....................................3 3. Profile 0 Feature Tests.......................................4 4. Profile 1 Feature Tests.......................................4 5. Profile 2 Feature Tests......................................12 6. Profile 3 feature Tests......................................12 7. Security Considerations......................................13 8. Acknowledgements.............................................13 9. References...................................................13 10. Author's Address............................................13 1. Introduction The Internet standards process [RFC-2026] places a number of requirements on a standards track protocol specification. In particular, when advancing a protocol from Proposed Standard to Draft Standard level it is necessary to demonstrate at least two independent and interoperable implementations, from different code bases, of all options and features of that protocol. Further, in cases where one or more options or features have not been demonstrated in at least two interoperable implementations, the specification may advance to Draft Standard level only if those options or features are removed. The RObust Header Compression (ROHC) framework and initial profiles was originally specified in RFC 3095 as a Proposed Standard [RFC- 3095]. Since the publication of RFC 3095, the protocol has been implemented by a number of different parties, who have also performed interoperability tests to verify both their implementations and the standard itself. As part of the process of taking RFC 3095 further to Draft Standard level, it has become necessary to clearly define what must be tested, and also collect the test status for each item. This document aims at providing that, by initially listing all pieces of the RFC 3095 mechanisms which must be subject to interoperability testing. The intention is further to regularly revise this document with status information for each item, as interoperability updates are reported from the community. 1.1. Overview of Test Strategies This document basically consists of two parts. First, section 2 lists general, profile independent, pieces to be tested, and then the rest of the document covers detailed test cases for each profile in separate sections. Jonsson [Page 2] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 All profile test lists have a common structure and covers the following test case groups: - Interoperable exchange of all header formats - Interoperable exchange of feedback data, using all feedback formats - All possible mode transitions - Other features, such as various encoding mechanisms that use the same header formats. An interoperable exchange includes compression and transmission, but especially correct interpretation and decompression. Correctness is assumed to be verified by comparing the uncompressed input header with the decompressed output. For feedback data, an interoperable exchange assumes a similar procedure in the opposite transmission direction. However, since feedback packets are generated by the decompressor and terminated by the compressor, there are no original data to compare with output data. Correct interpretation of feedback data must therefore be ensured by other means. Since robustness is an important goal of the ROHC scheme, there are several mechanisms that would not be exceedingly tested without operating on the robustness limits of those mechanisms. However, it gets extremely complicated to define test cases covering all potential combinations of compressed headers, loss scenarios, and the resulting decompression. Therefore, if not explicitly stated otherwise, tests defined in this document assume loss-less transmission between compressor and decompressor. 2. General ROHC Feature Tests Although not yet explicitly defined, the ROHC framework includes a number of general mechanisms that are common for all profiles. This section lists test cases for these framework mechanisms (FW). Test cases for ROHC framework mechanisms: FW-CID-S. Interoperable exchange of non-padded and non-segmented ROHC small-CID packets without an ADD-CID octet. FW-CID-A. Interoperable exchange of non-padded and non-segmented ROHC small-CID packets with the ADD-CID octet present. FW-CID-L. Interoperable exchange of non-padded and non-segmented ROHC large-CID packets. FW-SEG-1. Interoperable exchange of ROHC packets segmented with the ROHC segmentation scheme, correctly reassembled, and validated with the 4-octet segmentation CRC. FW-SEG-2. Interoperable exchange of ROHC packet segments where a lost segment causes the reassembled packet to be discarded due to an invalidation by the 4-octet segmentation CRC. Jonsson [Page 3] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 FW-PAD. Interoperable exchange of ROHC packets which use ROHC padding. FW-FB-1-P. Interoperable exchange of ROHC FEEDBACK-1 data through piggybacking in ROHC packets. FW-FB-2-P. Interoperable exchange of ROHC FEEDBACK-2 data through piggybacking in ROHC packets. FW-FB-1-I. Interoperable exchange of ROHC FEEDBACK-1 data through interspersing among ROHC packets. FW-FB-2-I. Interoperable exchange of ROHC FEEDBACK-2 data through interspersing among ROHC packets. 3. Profile 0 Feature Tests Test cases for ROHC profile 0x0000 (no compression): P0-IR. Interoperable exchange of profile 0x0000 IR packets. P0-NP. Interoperable exchange of profile 0x0000 Normal packets. P0-FB. Interoperable exchange of profile 0x0000 Feedback. 4. Profile 1 Feature Tests This section lists test cases for ROHC profile 0x0001 (IP/UDP/RTP). 4.1. Header Formats Test cases for IR formats: P1-IR-4. Interoperable exchange of profile 0x0001 IR packets for IPv4. P1-IR-6. Interoperable exchange of profile 0x0001 IR packets for IPv6. P1-IRD-4. Interoperable exchange of profile 0x0001 IR-DYN packets for IPv4. P1-IRD-6. Interoperable exchange of profile 0x0001 IR-DYN packets for IPv6. Jonsson [Page 4] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 Test cases for CO formats: P1-CO-1. Interoperable exchange of profile 0x0001 UO-0 packets. P1-CO-2. Interoperable exchange of profile 0x0001 UO-1 packets. P1-CO-3. Interoperable exchange of profile 0x0001 UO-1-ID packets. P1-CO-4. Interoperable exchange of profile 0x0001 UO-1-TS packets. P1-CO-5. Interoperable exchange of profile 0x0001 UOR-2 packets. P1-CO-6. Interoperable exchange of profile 0x0001 UOR-2-ID packets. P1-CO-7. Interoperable exchange of profile 0x0001 UOR-2-TS packets. P1-CO-R1. Interoperable exchange of profile 0x0001 R-0 packets. P1-CO-R2. Interoperable exchange of profile 0x0001 R-0-CRC packets. P1-CO-R3. Interoperable exchange of profile 0x0001 R-1 packets. P1-CO-R4. Interoperable exchange of profile 0x0001 R-1-ID packets. P1-CO-R5. Interoperable exchange of profile 0x0001 R-1-TS packets. Test cases for optional mechanisms in CO formats: P1-OP-U1. Interoperable exchange of profile 0x0001 compressed packets with the UDP checksum enabled (included). P1-OP-U2. Interoperable exchange of profile 0x0001 compressed packets with the UDP checksum disabled (not included). P1-OP-I1. Interoperable exchange of profile 0x0001 compressed packets with an outer IPv4 header IP-ID value. P1-OP-I2. Interoperable exchange of profile 0x0001 compressed packets without an outer IPv4 header IP-ID value. P1-OP-I3. Interoperable exchange of profile 0x0001 compressed packets with an inner IPv4 header IP-ID value. P1-OP-I4. Interoperable exchange of profile 0x0001 compressed packets without an inner IPv4 header IP-ID value. P1-OP-A1. Interoperable exchange of profile 0x0001 compressed packets with outer list AH data. Jonsson [Page 5] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 P1-OP-A2. Interoperable exchange of profile 0x0001 compressed packets without outer list AH data. P1-OP-A3. Interoperable exchange of profile 0x0001 compressed packets with inner list AH data. P1-OP-A4. Interoperable exchange of profile 0x0001 compressed packets without inner list AH data. P1-OP-G1. Interoperable exchange of profile 0x0001 compressed packets with an outer header GRE checksum. P1-OP-G2. Interoperable exchange of profile 0x0001 compressed packets without an outer header GRE checksum. P1-OP-G3. Interoperable exchange of profile 0x0001 compressed packets with an inner header GRE checksum. P1-OP-G4. Interoperable exchange of profile 0x0001 compressed packets without an inner header GRE checksum. Test cases for extensions to CO formats: P1-EX0-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 0, where the base compressed header does not carry a T-bit. P1-EX0-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 0, where the base compressed header carries a T-bit with value 1. P1-EX0-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 0, where the base compressed header carries a T-bit with value 0. P1-EX1-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 1, where the base compressed header does not carry a T-bit. P1-EX1-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 1, where the base compressed header carries a T-bit with value 1. P1-EX1-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 1, where the base compressed header carries a T-bit with value 0. Jonsson [Page 6] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 P1-EX2-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 2, where the base compressed header does not carry a T-bit. P1-EX2-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 2, where the base compressed header carries a T-bit with value 1. P1-EX2-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 2, where the base compressed header carries a T-bit with value 0. P1-EX3-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where the SN octet is present (S=1). P1-EX3-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where the SN octet is not present (S=0). P1-EX3-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where TS octets are present (R-TS=1). P1-EX3-4. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where no TS octets are present (R-TS=0). P1-EX3-5. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where the ID octet is present (I=1). P1-EX3-6. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where the ID octet is not present (I=0). P1-EX3-7. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where inner IP header flags are present (ip=1). P1-EX3-8. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where inner IP header flags are not present (ip=0). P1-EX3-9. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where outer IP header flags are present (ip2=1). P1-EX3-10. Interoperable exchange of profile 0x0001 CO packets with an Extension 3, where outer IP header flags are not present (ip2=0). Jonsson [Page 7] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 Test cases for additional flags and fields in Extension 3: P1-X3I-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header TOS field is present (TOS=1). P1-X3I-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header TOS field is not present (TOS=0). P1-X3I-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header TTL field is present (TTL=1). P1-X3I-4. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header TTL field is not present (TTL=0). P1-X3I-5. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header Protocol/Next Header field is present (PR=1). P1-X3I-6. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where the inner IP header Protocol/Next Header field is not present (PR=0). P1-X3I-7. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where inner IP header extension headers are present (IPX=1). P1-X3I-8. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and inner IP header fields, where inner IP header extension headers are not present (IPX=0). P1-X3O-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header TOS field is present (TOS2=1). P1-X3O-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header TOS field is not present (TOS2=0). P1-X3O-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header TTL field is present (TTL2=1). P1-X3O-4. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header TTL field is not present (TTL2=0). Jonsson [Page 8] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 P1-X3O-5. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header Protocol/Next Header field is present (PR2=1). P1-X3O-6. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header Protocol/Next Header field is not present (PR2=0). P1-X3O-7. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where outer IP header extension headers are present (IPX2=1). P1-X3O-8. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where outer IP header extension headers are not present (IPX2=0). P1-X3O-9. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header IP-ID field is present (I2=1). P1-X3O-10. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and outer IP header fields, where the outer IP header IP-ID field is not present (I2=0). P1-X3R-1. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header field, where the RTP PT field is present (R-PT=1). P1-X3R-2. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where the RTP PT field is not present (R-PT=0). P1-X3R-3. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where the Compressed CSRC list is present (CSRC=1). P1-X3R-4. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where the Compressed CSRC list is not present (CSRC=0). P1-X3R-5. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where TS_STRIDE octets are present (TSS=1). P1-X3R-6. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where TS_STRIDE octets are not present (TSS=0). Jonsson [Page 9] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 P1-X3R-7. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where TIME_STRIDE octets are present (TIS=1). P1-X3R-8. Interoperable exchange of profile 0x0001 CO packets with an Extension 3 and RTP header fields, where TIME_STRIDE octets are not present (TIS=0). Test cases for IP extension header lists: TBW Test cases for compressed CSRC lists: TBW 4.2. Feedback Formats Test cases for feedback base formats: P1-FB-1. Interoperable exchange of profile 0x0001 FEEDBACK-1 packets. P1-FB-2. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets without any feedback options present. P1-FB-3. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with feedback options. Test cases for feedback options: P1-FBO-1. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the CRC option present. P1-FBO-2. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the REJECT option present. P1-FBO-3. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the SN-NOT-VALID option present. P1-FBO-4. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the SN option present. P1-FBO-5. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the CLOCK option present. P1-FBO-6. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the JITTER option present. P1-FBO-7. Interoperable exchange of profile 0x0001 FEEDBACK-2 packets with the LOSS option present. Jonsson [Page 10] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 4.3. Mode Transitions Test cases for mode transitions: P1-MT-UO. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Unidirectional to Bi-directional Optimistic mode of operation. P1-MT-OR. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Bi-directional Optimistic to Bi-directional Reliable mode of operation. P1-MT-UR. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Unidirectional to Bi-directional Reliable mode of operation. P1-MT-RO. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Bi-directional Reliable to Bi-directional Optimistic mode of operation. P1-MT-OU. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Bi-directional Optimistic to Unidirectional mode of operation. P1-MT-RU. Interoperable exchange of profile 0x0001 packets in one continuous sequence, including packets sent before, during, and after a complete mode transition from Bi-directional Reliable to Unidirectional mode of operation. Jonsson [Page 11] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 4.4. Other features Test cases for encoding mechanisms: P1-ET-UC. Interoperable exchange of profile 0x0001 packets with TS values transmitted in their original, uncompressed, form. P1-ET-SC. Interoperable exchange of profile 0x0001 packets with TS values transmitted based on the Scaled RTP Timestamp encoding method. P1-ET-TB. Interoperable exchange of profile 0x0001 packets with TS values transmitted based on the Timer-Based RTP Timestamp encoding method. P1-EI-1. Interoperable exchange of profile 0x0001 IPv4 packets with offset IP-ID values in NBO (Network Byte Order). P1-EI-2. Interoperable exchange of profile 0x0001 IPv4 packets with offset IP-ID values in non-NBO (non-Network Byte Order). Test cases for header compression CRC's: P1-CRC-3. Interoperable exchange of profile 0x0001 packets with a 3-bit CRC, where packets are correctly verified by a matching CRC. P1-CRC-7. Interoperable exchange of profile 0x0001 packets with a 7-bit CRC, where packets are correctly verified by a matching CRC. P1-CRC-8. Interoperable exchange of profile 0x0001 packets with a 8-bit CRC, where packets are correctly verified by a matching CRC. 5. Profile 2 Interoperability Tests TBW 6. Profile 3 Interoperability Tests TBW Jonsson [Page 12] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 7. Security Considerations When implementing and testing various protocol mechanisms as described in this document, the security issues of [RFC-3095] should be taken into consideration. This document, however, does not imply any additional security aspects to be considered. 8. Acknowledgements The "RTP Interoperability Statement" draft by Colin Perkins has been a valuable source for ideas to this document. Thanks also to Carsten Bormann and Vicknesan Ayadurai for fruitful discussions and comments. 9. References [RFC-2026] Bradner, S., "The Internet Standards Process", RFC 2026, October 1996. [RFC-3095] 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)", RFC 3095, July 2001. 10. Author's Address Lars-Erik Jonsson Tel: +46 920 20 21 07 Ericsson AB Fax: +46 920 20 20 99 Box 920 SE-971 28 Lulea Sweden EMail: lars-erik.jonsson@ericsson.com Jonsson [Page 13] INTERNET-DRAFT Interoperability of RFC 3095 October 25, 2002 Full Copyright Statement Copyright (C) The Internet Society (2001). 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. This Internet-Draft expires April 25, 2003. Jonsson [Page 14]