draft-ietf-avt-rtp-interop-03.txt   draft-ietf-avt-rtp-interop-04.txt 
Colin Perkins Colin Perkins
USC/ISI USC/ISI
RTP Interoperability Statement RTP Interoperability Statement
draft-ietf-avt-rtp-interop-03.txt draft-ietf-avt-rtp-interop-04.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 RFC2026. all provisions of Section 10 of RFC2026.
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-Drafts. other groups may also distribute working documents as Internet-Drafts.
skipping to change at line 30 skipping to change at line 30
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.
Distribution of this document is unlimited. Distribution of this document is unlimited.
Comments are solicited and should be addressed to the author and/or the Comments are solicited and should be addressed to the author and/or
IETF Audio/Video Transport working group's mailing list at rem-conf@es.net. the IETF Audio/Video Transport working group's mailing list at rem-conf@es.net.
Abstract Abstract
It is required to demonstrate interoperability of RTP implementations It is required to demonstrate interoperability of RTP implementations
in order to move the RTP specification to draft standard. in order to move the RTP specification to draft standard.
This memo outlines those features to be tested, as the first This memo outlines those features to be tested, as the first
stage of an interoperability statement. stage of an interoperability statement.
1 Introduction 1 Introduction
skipping to change at line 57 skipping to change at line 57
of that protocol. Further, in cases where one or more options or of that protocol. Further, in cases where one or more options or
features have not been demonstrated in at least two interoperable features have not been demonstrated in at least two interoperable
implementations, the specification may advance to the draft standard implementations, the specification may advance to the draft standard
level only if those options or features are removed. The Real-time level only if those options or features are removed. The Real-time
Transport Protocol, RTP, was originally specified in RFC1889 as a Transport Protocol, RTP, was originally specified in RFC1889 as a
proposed standard [2]. The revision of this specification for draft proposed standard [2]. The revision of this specification for draft
standard status is now well underway, so it has become necessary standard status is now well underway, so it has become necessary
to conduct such an interoperability demonstration. to conduct such an interoperability demonstration.
This memo describes the set of features and options of the RTP This memo describes the set of features and options of the RTP specification
specification which need to be tested as a basis for this demonstration. which need to be tested as a basis for this demonstration. Due to
Due to the nature of RTP there are necessarily two types of test described: the nature of RTP there are necessarily two types of test described:
those which directly affect the interoperability of implementations at a those which directly affect the interoperability of implementations
``bits on the wire level'' and those which affect scalability and safety of at a ``bits on the wire level'' and those which affect scalability
the protocol but do not directly affect interoperability. A related memo and safety of the protocol but do not directly affect interoperability.
[4] describes a testing framework which may aid with interoperability A related memo [4] describes a testing framework which may aid with
testing. interoperability testing.
This memo is for information only and does not specify a standard This memo is for information only and does not specify a standard
of any kind. of any kind.
2 Features and options required to demonstrate interoperability 2 Features and options required to demonstrate interoperability
In order to demonstrate interoperability it is required to produce In order to demonstrate interoperability it is required to produce
a statement of interoperability for each feature noted below. Such a statement of interoperability for each feature noted below. Such
a statement should note the pair of implementations tested, including a statement should note the pair of implementations tested, including
version numbers, and a pass/fail statement for each feature. It version numbers, and a pass/fail statement for each feature. It
is not expected that every implementation will implement every feature, is not expected that every implementation will implement every feature,
but each feature needs to be demonstrated by some pair of applications. but each feature needs to be demonstrated by some pair of applications.
Note that some of these tests depend on the particular profile used, Note that some of these tests depend on the particular profile used,
or upon options in that profile. For example, it will be necessary or upon options in that profile. For example, it will be necessary
to test audio and video applications operating under [3] separately. to test audio and video applications operating under [3] separately.
1. Interoperable exchange of data packets using the basic RTP header 1. Interoperable exchange of data packets using the basic RTP header
with no header extension, padding or CSRC list. with no header extension, padding or CSRC list.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
2. Interoperable exchange of data packets which use padding. 2. Interoperable exchange of data packets which use padding.
o FAIL: need to test IP/TV against Quicktime
3. Interoperable exchange of data packets which use a header extension. 3. Interoperable exchange of data packets which use a header extension.
There are three possibilities here: a) if both implementations There are three possibilities here: a) if both implementations
use a header extension in the same manner, it should be verified use a header extension in the same manner, it should be verified
that the receiver correctly receives the information contained that the receiver correctly receives the information contained
in the extension header; b) If the sender uses a header extension in the extension header; b) If the sender uses a header extension
and the receiver does not, it should be verified that the receiver and the receiver does not, it should be verified that the receiver
ignores the extension; c) If neither implementation implements ignores the extension; c) If neither implementation implements
an extended header, this test is considered a failure. an extended header, this test is considered a failure.
o FAIL: IP/TV, rat, rtptools, rtplib should all support this,
but have not been tested.
4. Interoperable exchange of data packets using the marker bit as 4. Interoperable exchange of data packets using the marker bit as
specified in the profile. specified in the profile.
o PASS: rat vs vat
o PASS: IP/TV vs vic
5. Interoperable exchange of data packets using the payload type 5. Interoperable exchange of data packets using the payload type
field to differentiate multiple payload formats according to field to differentiate multiple payload formats according to
a profile definition. a profile definition.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
6. Interoperable exchange of data packets containing a CSRC list. 6. Interoperable exchange of data packets containing a CSRC list.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
7. Interoperable exchange of RTCP packets, which must be compound 7. Interoperable exchange of RTCP packets, which must be compound
packets containing at least an initial SR or RR packet and an packets containing at least an initial SR or RR packet and an
SDES CNAME packet. Other RTCP packet types may be included, SDES CNAME packet. Other RTCP packet types may be included,
but this is not required for this test. but this is not required for this test.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
8. Interoperable exchange of sender report packets when the receiver 8. Interoperable exchange of sender report packets when the receiver
of the sender reports is not also a sender (ie: sender reports of the sender reports is not also a sender (ie: sender reports
which only contain sender info, with no report blocks). which only contain sender info, with no report blocks).
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
9. Interoperable exchange of sender report packets when the receiver 9. Interoperable exchange of sender report packets when the receiver
of the sender reports is also a sender (ie: sender reports of the sender reports is also a sender (ie: sender reports
which contain one or more report blocks). which contain one or more report blocks).
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic (IP/TV never sends SR with report
blocks, but does successfully receive them from vic/vat).
10. Interoperable exchange of receiver report packets. 10. Interoperable exchange of receiver report packets.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
11. Interoperable exchange of receiver report packets when not receiving 11. Interoperable exchange of receiver report packets when not receiving
data (ie: the empty receiver report which has to be sent first data (ie: the empty receiver report which has to be sent first in each
in each compound RTCP packet when no-participants are transmitting compound RTCP packet when no-participants are transmitting data).
data).
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
12. Interoperable and correct choice of CNAME, according to the rules 12. Interoperable and correct choice of CNAME, according to the rules
in the RTP specification and profile (applications using the in the RTP specification and profile (applications using the
audio/video profile [3] under IPv4 should typically generate audio/video profile [3] under IPv4 should typically generate
a CNAME of the form `example@10.0.0.1', or `10.0.0.1' if they a CNAME of the form `example@10.0.0.1', or `10.0.0.1' if they
are on a machine which no concept of usernames). are on a machine which no concept of usernames).
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
13. Interoperable exchange of source description packets containing 13. Interoperable exchange of source description packets containing
a CNAME item. a CNAME item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
14. Interoperable exchange of source description packets containing 14. Interoperable exchange of source description packets containing
a NAME item. a NAME item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
15. Interoperable exchange of source description packets containing 15. Interoperable exchange of source description packets containing
an EMAIL item. an EMAIL item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
16. Interoperable exchange of source description packets containing 16. Interoperable exchange of source description packets containing
a PHONE item. a PHONE item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
17. Interoperable exchange of source description packets containing 17. Interoperable exchange of source description packets containing
a LOC item. a LOC item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
18. Interoperable exchange of source description packets containing 18. Interoperable exchange of source description packets containing
a TOOL item. a TOOL item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
19. Interoperable exchange of source description packets containing 19. Interoperable exchange of source description packets containing
a NOTE item. a NOTE item.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
20. Interoperable exchange of source description packets containing 20. Interoperable exchange of source description packets containing
a PRIV item. a PRIV item.
o FAIL: need to test rtplib against rtpdump?
21. Interoperable exchange of BYE packets containing a single SSRC. 21. Interoperable exchange of BYE packets containing a single SSRC.
o PASS: rat vs vat
o PASS: IP/TV vs vat/vic
22. Interoperable exchange of BYE packets containing multiple SSRCs. 22. Interoperable exchange of BYE packets containing multiple SSRCs.
o FAIL: rat can send these, but vat only accepts the first
SSRC
o FAIL: IP/TV sends only one SSRC in BYE, but should accept
multiple
o FAIL: need to test rat-3.0.x against rtplib
23. Interoperable exchange of BYE packets containing the optional 23. Interoperable exchange of BYE packets containing the optional
reason for leaving text. reason for leaving text.
o FAIL: need to test IP/TV with rtplib (IP/TV will generate
these when an SSRC collison occurs).
24. Interoperable exchange of BYE packets containing the optional 24. Interoperable exchange of BYE packets containing the optional
reason for leaving text and multiple SSRCs. reason for leaving text and multiple SSRCs.
o FAIL: does anyone implement both?
25. Interoperable exchange of application defined RTCP packets. As 25. Interoperable exchange of application defined RTCP packets. As
with the RTP header extension this test takes two forms: if with the RTP header extension this test takes two forms: if
both implementations implement the same application defined packet both implementations implement the same application defined packet
it should be verified that those packets can be interoperably it should be verified that those packets can be interoperably
exchanged. If only one implementation uses application defined exchanged. If only one implementation uses application defined
packets, it should be verified that the other implementation packets, it should be verified that the other implementation
can receive compound RTCP packets containing an APP packet whilst can receive compound RTCP packets containing an APP packet whilst
ignoring the APP packet. If neither implementation implements ignoring the APP packet. If neither implementation implements
APP packets this test is considered a failure. APP packets this test is considered a failure.
o FAIL: a number of libraries (rtplib, rat, IP/TV MSOCK) support
this but have not been tested. Quicktime uses APP packets
and needs to be tested against one of the others.
26. Interoperable exchange of encrypted RTP packets using DES encryption 26. Interoperable exchange of encrypted RTP packets using DES encryption
in CBC mode. in CBC mode.
o PASS: rat vs vat
27. Interoperable exchange of encrypted RTCP packets using DES encryption 27. Interoperable exchange of encrypted RTCP packets using DES encryption
in CBC mode. in CBC mode.
o PASS (sort of): rat vs vat (vat gets the padding wrong
in some cases, but mostly it works).
28. Interoperable exchange of encrypted RTCP packets using DES encryption
in CBC mode, when those compound RTCP packets have been split
into an encrypted packet and an unencrypted packet.
o FAIL: not tested (rtplib supports this?)
3 Features and options relating to scalability 3 Features and options relating to scalability
In addition to the basic interoperability tests, RTP includes a number In addition to the basic interoperability tests, RTP includes a number
of features relating to scaling of the protocol to large groups. of features relating to scaling of the protocol to large groups.
Since these features are those which have undergone the greatest Since these features are those which have undergone the greatest
change in the update of the RTP specification, it is considered important change in the update of the RTP specification, it is considered important
to demonstrate their correct implementation. However, since these to demonstrate their correct implementation. However, since these
changes do not affect the bits-on-the-wire behaviour of the protocol, changes do not affect the bits-on-the-wire behaviour of the protocol,
it is not possible to perform a traditional interoperability test. it is not possible to perform a traditional interoperability test.
As an alternative to such testing we require that multiple independent As an alternative to such testing we require that multiple independent
implementations complete the following demonstrations. implementations complete the following demonstrations.
1. Demonstrate correct implementation of basic RTCP transmission 1. Demonstrate correct implementation of basic RTCP transmission
rules: periodic transmission of RTCP packets at the minimum rules: periodic transmission of RTCP packets at the minimum
(5 second) interval and randomisation of the transmission interval. (5 second) interval and randomisation of the transmission interval.
o PASS: rat, IP/TV
2. Demonstrate correct implementation of the RTCP step join backoff 2. Demonstrate correct implementation of the RTCP step join backoff
algorithm as a receiver. algorithm as a receiver.
o FAIL: rat and rtplib support this but have not been tested
3. Demonstrate correct implementation of the RTCP step join backoff 3. Demonstrate correct implementation of the RTCP step join backoff
algorithm as a sender. algorithm as a sender.
o FAIL: rat and rtplib support this but have not been tested
4. Demonstrate correct steady state scaling of the RTCP interval 4. Demonstrate correct steady state scaling of the RTCP interval
acording to the group size. acording to the group size.
o PASS: rat, IP/TV
5. Demonstrate correct steady state scaling of the RTCP interval 5. Demonstrate correct steady state scaling of the RTCP interval
acording to the group size with compensation for the number of acording to the group size with compensation for the number of
senders. senders.
o FAIL: IP/TV works, need results for more implementations
6. Demonstrate correct implementation of the RTCP reverse reconsideration 6. Demonstrate correct implementation of the RTCP reverse reconsideration
algorithm. algorithm.
o FAIL
7. Demonstrate correct implementation of the RTCP BYE reconsideration 7. Demonstrate correct implementation of the RTCP BYE reconsideration
algorithm. algorithm.
o FAIL
8. Demonstrate correct implementation of the RTCP member timeout 8. Demonstrate correct implementation of the RTCP member timeout
algorithm. algorithm.
o FAIL
9. Demonstrate random choice of SSRC. 9. Demonstrate random choice of SSRC.
o PASS: rat, IP/TV, LiveCaster
10. Demonstrate random selection of initial RTP sequence number. 10. Demonstrate random selection of initial RTP sequence number.
o PASS: rat, LiveCaster
11. Demonstrate random selection of initial RTP timestamp. 11. Demonstrate random selection of initial RTP timestamp.
o PASS: rat, LiveCaster
12. Demonstrate correct implementation of the SSRC collision/loop 12. Demonstrate correct implementation of the SSRC collision/loop
detection algorithm. detection algorithm.
o PASS: IP/TV, vat
13. Demonstrate correct generation of reception report statistics 13. Demonstrate correct generation of reception report statistics
in SR/RR packets. in SR/RR packets.
o PASS: rat, IP/TV
14. Demonstrate correct generation of the sender info block in SR 14. Demonstrate correct generation of the sender info block in SR
packets. packets.
o PASS: rat, IP/TV
4 Author's Address 4 Author's Address
Colin Perkins Colin Perkins
USC Information Sciences Institute USC Information Sciences Institute
4350 North Fairfax Drive 4350 North Fairfax Drive
Suite 620 Suite 620
Arlington, VA 22203 Arlington, VA 22203
USA USA
 End of changes. 

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