Audio/Video Transport Working G. Hunt Group BT Internet-Draft November 12, 2007 Intended status: Informational Expires: May 15, 2008 RTCP Reporting by Translators draft-hunt-avt-rtcptrans-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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 May 15, 2008. Copyright Notice Copyright (C) The IETF Trust (2007). Hunt Expires May 15, 2008 [Page 1] Internet-Draft RTCP Reporting by Translators November 2007 Abstract This memo addresses RTCP reporting by and through RTP translators. It collects existing guidance from RFC 3550, systematises translators' reporting behaviour by considering potential sources of information and the policy-controlled forwarding of such information, considers naming issues in labelling reports, considers methods of control of reporting behaviour, and presents some examples of architectures for reporting. Table of Contents 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 3 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Definitions and recommendations from RFC3550 . . . . . . . . . 7 4. Requirements for reporting by translators . . . . . . . . . . 11 5. Architectural analysis . . . . . . . . . . . . . . . . . . . . 12 6. Naming considerations . . . . . . . . . . . . . . . . . . . . 15 6.1. SSRC and CNAME requirements from RFC3550 . . . . . . . . . 15 6.2. Identification of RTCP reports . . . . . . . . . . . . . . 16 6.3. Naming in reports to control layers . . . . . . . . . . . 17 7. Control of reporting by translators . . . . . . . . . . . . . 19 8. Example applications . . . . . . . . . . . . . . . . . . . . . 21 9. Combining RTCP packets from multiple sources . . . . . . . . . 24 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 29 11. Security Considerations . . . . . . . . . . . . . . . . . . . 30 12. References . . . . . . . . . . . . . . . . . . . . . . . . . . 31 12.1. Normative References . . . . . . . . . . . . . . . . . . . 31 12.2. Informative References . . . . . . . . . . . . . . . . . . 31 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 32 Intellectual Property and Copyright Statements . . . . . . . . . . 33 Hunt Expires May 15, 2008 [Page 2] Internet-Draft RTCP Reporting by Translators November 2007 1. Requirements notation This memo is informative and as such contains no normative requirements. However it does import text fragments from other documents which contain normative requirements. The following guidance is provided for interpretation of key words in these fragments: 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 [RFC2119]. Any requirements are those of the quoted document and not of the current informative memo. Hunt Expires May 15, 2008 [Page 3] Internet-Draft RTCP Reporting by Translators November 2007 2. Introduction [RFC3550] defines three types of RTP systems which may source and sink RTP streams. These types are RTP end systems, RTP mixers, and RTP translators. For purposes of reporting connection quality to other RTP systems, RTP mixers and RTP end systems are very similar. Mixers resynchronize audio packets and do not relay RTCP reports received from one cloud towards other cloud(s). Translators do not resynchronize packets and SHOULD forward certain RTCP reports between clouds. Translators have a wide range of possible reporting behaviours. This memo is intended to assist readers in thinking about the use of RTCP by RTP translators, by collecting relevant requirements and architectural considerations. An RTP translator is defined in [RFC3550] as "An intermediate system that forwards RTP packets with their synchronization source identifier intact". [RFC3550] gives the following examples of translators: devices that convert encodings without mixing; replicators from multicast to unicast; and application-level filters in firewalls. For each session, an RTP translator has at least two RTP connections via different logical interfaces to network clouds, with logical separation based on a transport layer identifier (e.g. by UDP port) or at a lower layer (e.g. IP address, Ethernet VLAN identifier, ATM VCI, or physical interface). RTP traffic streams flowing via these two connections may be unicast or multicast, and may be unidirectional or bidirectional. Section 7 of [RFC3550] defines the RTCP processing in the translator which is required to maintain correct semantics for the RTCP communication between the RTP end systems involved in the connection. This memo does not try to augment or in any way to modify normative text of [RFC3550], but it gathers together the various items of text from [RFC3550] which are relevant to RTCP processing and reporting by translators. It attempts to clarify the consequences of the recommendations, including those which arise from applying the recommendations to RTCP-based reporting beyond the "basic" RTCP standardised by [RFC3550]. The memo attempts to systematise the wide range of possibilities for measurement and reporting topologies or architectures which arise when RTP translators are capable of making measurements and sending the resulting metrics to other RTP systems. It suggests that it is helpful to consider the choices of "what measurements should be sent where" as an application of policy. Different policies lead to different tradeoffs between the cost of RTCP processing against the level of detailed knowledge which RTCP makes available about the Hunt Expires May 15, 2008 [Page 4] Internet-Draft RTCP Reporting by Translators November 2007 performance of a monitored connection. Section 3 collects relevant definitions and descriptions of recommended behaviour from [RFC3550]. Section 4 states some known requirements which may be satisfied, or partly satisfied, as a result of RTP translators' reporting of packet transport metrics. These have been used to drive the architectural suggestions. Section 5 provides an architectural analysis of reporting by translators. It considers the sources of the information which might be available to an RTP system, and the destinations towards which that information might be sent. It suggests that decisions by each RTP system, to transfer information from specific sources or types of sources towards specific destinations or types of destinations, may be controlled by policy. The end-to-end measurement architecture results from the collective effect of these policy-based decisions made at each RTP system. In connections involving multiple systems, it is important to know which system made the measurements which resulted in a set of metrics, and to know which system originated the packet stream which is the subject of the measurement. Section 6 considers the naming issues for SSRC and CNAME which arise. Some recent groups of metrics have multiple optional sections. Some of these may have significant costs, but may be useful in special circumstances, either for specific types of connections or at specific times (e.g. for diagnosis). This raises the question of whether, and how, these capabilities might be activated when needed. Section 7 outlines possible schemes for control of reporting by translators. As this discussion touches on capabilities of the signalling and management planes, which are outside the scope of the memo, these methods are discussed only in general terms. Section 8 provides some examples of the application of policy to create useful monitoring architectures, e.g. to provide useful localisation of transport faults whilst bounding the link bandwidth and RTP system processing capacity occupied by RTCP. [RFC3550] recommends that RTCP packets should be combined to minimise header overheads. Using an example architecture from Section 8, Section 9 considers how this might apply to the concatenation of reports from multiple translators, and shows a possible benefit in determining the order of named systems along a connection path. Discussion in this memo is not restricted to any one set of metrics Hunt Expires May 15, 2008 [Page 5] Internet-Draft RTCP Reporting by Translators November 2007 within the broad scope of RTCP, such as "basic" RTCP as defined in [RFC3550], RTCP XR as defined in [RFC3611], RTCP HR as defined in [RTCPHR], or other schemes. It appears that any RTCP scheme which meets the naming requirements of Section 6 may, in principle, be used for reporting by an RTP translator. Individual metrics may not be measurable or meaningful when reported by certain types of RTP translator, e.g. metrics related to the behaviour of a de-jitter buffer may not be relevant to an RTP translator which does not contain a de-jitter buffer, but this level of detail is outside the scope of the current memo. Hunt Expires May 15, 2008 [Page 6] Internet-Draft RTCP Reporting by Translators November 2007 3. Definitions and recommendations from RFC3550 RFC3550 [RFC3550] explains that RTP translators may be used to connect two or more transport-level clouds, and provides a number of detailed recommendations on the generation and processing of RTCP by RTP translators. The following excerpts from [RFC3550] include the key guidance on processing of RTCP by RTP translators. Naming- related requirements from [RFC3550] are given special attention in Section 6 below. Section 3 of [RFC3550] provides the following definitions: End system: An application that generates the content to be sent in RTP packets and/or consumes the content of received RTP packets. An end system can act as one or more synchronization sources in a particular RTP session, but typically only one. Mixer: An intermediate system that receives RTP packets from one or more sources, possibly changes the data format, combines the packets in some manner and then forwards a new RTP packet. Since the timing among multiple input sources will not generally be synchronized, the mixer will make timing adjustments among the streams and generate its own timing for the combined stream. Thus, all data packets originating from a mixer will be identified as having the mixer as their synchronization source. Translator: An intermediate system that forwards RTP packets with their synchronization source identifier intact. Examples of translators include devices that convert encodings without mixing, replicators from multicast to unicast, and application-level filters in firewalls. Section 6.1 of [RFC3550] states: It is RECOMMENDED that translators and mixers combine individual RTCP packets from the multiple sources they are forwarding into one compound packet whenever feasible in order to amortize the packet overhead (see Section 7 [of [RFC3550]]). An example RTCP compound packet as might be produced by a mixer is shown in Fig. 1 [of [RFC3550]]. If the overall length of a compound packet would exceed the MTU of the network path, it SHOULD be segmented into multiple shorter compound packets to be transmitted in separate packets of the underlying protocol. This does not impair the RTCP bandwidth estimation because each compound packet represents at least one distinct participant. Note that each of the compound packets MUST begin with an SR or RR packet. Section 7.1 of [RFC3550] summarises the purpose of translators and Hunt Expires May 15, 2008 [Page 7] Internet-Draft RTCP Reporting by Translators November 2007 mixers as follows: An RTP translator/mixer connects two or more transport-level "clouds". Typically, each cloud is defined by a common network and transport protocol (e.g., IP/UDP) plus a multicast address and transport level destination port or a pair of unicast addresses and ports. (Network-level protocol translators, such as IP version 4 to IP version 6, may be present within a cloud invisibly to RTP.) One system may serve as a translator or mixer for a number of RTP sessions, but each is considered a logically separate entity. The same Section provides examples of translators, and a further definition: There may be many varieties of translators and mixers designed for different purposes and applications. Some examples are to add or remove encryption, change the encoding of the data or the underlying protocols, or replicate between a multicast address and one or more unicast addresses. The distinction between translators and mixers is that a translator passes through the data streams from different sources separately, whereas a mixer combines them to form one new stream. Translator: Forwards RTP packets with their SSRC identifier intact; this makes it possible for receivers to identify individual sources even though packets from all the sources pass through the same translator and carry the translator's network source address. Some kinds of translators will pass through the data untouched, but others MAY change the encoding of the data and thus the RTP data payload type and timestamp. If multiple data packets are re-encoded into one, or vice versa, a translator MUST assign new sequence numbers to the outgoing packets. Losses in the incoming packet stream may induce corresponding gaps in the outgoing sequence numbers. Receivers cannot detect the presence of a translator unless they know by some other means what payload type or transport address was used by the original source. Section 7.2 of [RFC3550], titled "RTCP Processing in Translators", provides the following detailed guidance: In addition to forwarding data packets, perhaps modified, translators and mixers MUST also process RTCP packets. In many cases, they will take apart the compound RTCP packets received from end systems to aggregate SDES information and to modify the SR or RR packets. Retransmission of this information may be triggered by the packet arrival or by the RTCP interval timer of the translator or mixer itself. Hunt Expires May 15, 2008 [Page 8] Internet-Draft RTCP Reporting by Translators November 2007 A translator that does not modify the data packets, for example one that just replicates between a multicast address and a unicast address, MAY simply forward RTCP packets unmodified as well. A translator that transforms the payload in some way MUST make corresponding transformations in the SR and RR information so that it still reflects the characteristics of the data and the reception quality. These translators MUST NOT simply forward RTCP packets. In general, a translator SHOULD NOT aggregate SR and RR packets from different sources into one packet since that would reduce the accuracy of the propagation delay measurements based on the LSR and DLSR fields. Section 7.2 of [RFC3550] describes the treatment of each RTCP packet type by translators as follows: SR sender information: A translator does not generate its own sender information, but forwards the SR packets received from one cloud to the others. The SSRC is left intact but the sender information MUST be modified if required by the translation. If a translator changes the data encoding, it MUST change the "sender's byte count" field. If it also combines several data packets into one output packet, it MUST change the "sender's packet count" field. If it changes the timestamp frequency, it MUST change the "RTP timestamp" field in the SR packet. SR/RR reception report blocks: A translator forwards reception reports received from one cloud to the others. Note that these flow in the direction opposite to the data. The SSRC is left intact. If a translator combines several data packets into one output packet, and therefore changes the sequence numbers, it MUST make the inverse manipulation for the packet loss fields and the "extended last sequence number" field. This may be complex. In the extreme case, there may be no meaningful way to translate the reception reports, so the translator MAY pass on no reception report at all or a synthetic report based on its own reception. The general rule is to do what makes sense for a particular translation. SDES: Translators typically forward without change the SDES information they receive from one cloud to the others, but MAY, for example, decide to filter non-CNAME SDES information if bandwidth is limited. The CNAMEs MUST be forwarded to allow SSRC identifier collision detection to work. A translator that generates its own RR packets MUST send SDES CNAME information about itself to the same clouds that it sends those RR packets. BYE: Translators forward BYE packets unchanged. A translator that is about to cease forwarding packets SHOULD send a BYE packet to each connected cloud containing all the SSRC identifiers that were Hunt Expires May 15, 2008 [Page 9] Internet-Draft RTCP Reporting by Translators November 2007 previously being forwarded to that cloud, including the translator's own SSRC identifier if it sent reports of its own. APP: Translators forward APP packets unchanged. Hunt Expires May 15, 2008 [Page 10] Internet-Draft RTCP Reporting by Translators November 2007 4. Requirements for reporting by translators [Editor's note: it is intended that requirements are added to this section during the development of the draft. Community input is requested either directly as requirements or as scenarios which might lead to additional requirements. Any additional requirements will be taken into account in enhancing proposals and descriptions of options in other sections of the draft.] Apart from the RTP/RTCP protocol-based requirements listed in Section 3 above, which must be satisfied when translators process or report RTCP, there are also motivating requirements which drive the introduction of these capabilities. Operators' and users' objectives in implementing and using performance monitoring may include some or all of the following: o to determine packet transport performance for their own and peer networks, o to detect faulty packet transport, o to prove faults or poor performance to a single operator's area of responsibility or to a point-to-point link (demarcation), o to key monitoring results against individual customer RTP sessions, for correlation with subsequent user-reported faults, and o to use monitoring results either alone, or (preferably) in conjunction with data describing characteristics and performance of media terminals and any other networks involved in the connection, to form estimates of media quality experienced by end users Hunt Expires May 15, 2008 [Page 11] Internet-Draft RTCP Reporting by Translators November 2007 5. Architectural analysis RTCP reception reports may be produced by any of the types of RTP systems which are defined in [RFC3550] as capable of receiving RTP packets, that is, by an RTP end system, by an RTP mixer, or by an RTP translator. Here, RTCP reports include "basic" RTCP RR packets [RFC3550], or other types of RTCP reception reports including those defined in [RFC3611], [RTCPHR], or further reports which may be defined in future. [Editor's note - need to add references to relevant work on quality monitoring schemes for video and possibly other media] For purposes of sending reports about distribution quality, a mixer is somewhat similar to an end system, since mixers resynchronize audio packets before transmission and do not forward either reception reports from contributing sources towards the destination of the mixed output RTP stream. However an RTP translator has RTP interfaces in more than one transport-level "cloud", but does not resynchronize audio packets in transit between "clouds". Of course, like translators, mixers also have interfaces in multiple clouds which participate in the same RTP session and share the session's SSRC/CSRC space, but the mixer's outgoing RTP packets are labelled with the mixer's SSRC. Hence it is expected that the information provided by RTP translators to other RTP systems will be primarily about transport quality. If RTP mixers provide information to other RTP systems, the main focus may be on higher-level metrics of application quality. An example from the voice domain might be an RTP mixer acting as a conference bridge, which could provide information about echo-path delay and attenuation for connection to each of the participants. [Editor's note: Reporting by mixers is outside the current scope of this memo, but need to ensure that any statements which *are* made are not controversial or contradictory] An RTP translator may: o forward RTCP reports generated by RTP systems in one cloud towards RTP systems in another cloud, possibly with modification o generate its own RTCP reports and send them to one or more of the clouds to which it is connected. An RTP translator has several potential sources of information about transport and application quality in a session. These include Hunt Expires May 15, 2008 [Page 12] Internet-Draft RTCP Reporting by Translators November 2007 o RTCP (including XR) reports received from RTP end systems and mixers o RTCP (including XR) reports received from other translators o Measurements made locally on incoming RTP streams at the translators' interfaces (Here and in the following, RTCP XR is used to include both the RTCP XR report blocks defined in [RFC3611] and other XR report blocks defined elsewhere, such as in [RTCPHR], which use the infrastructure defined in [RFC3611].) In general, it is a matter of policy whether each of these types of information should be reported or forwarded by the translator towards neighbouring RTP systems involved in the same session. The objective of this policy may be to ensure that sufficient information is available to support network and service management at RTP systems, whilst avoiding excessive RTCP processing. Where a translator forms a boundary between service providers' domains, a provider may wish to apply policy to restrict the release of network performance information towards the provider's peer. This suggests that policy controlling reporting and forwarding of RTCP information (including XR) might be configurable differently for each network interface, and may be chosen differently for each session if the translator is capable of this level of control. This allows certain types of RTCP reports for the session to be sent outwards via one subset of the translator's interfaces involved in the session, whilst restricting reporting and forwarding outwards via another subset. The following behaviours are potentially useful at a translator: o RTCP [RFC3550] reports received from an upstream RTP end system or mixer might be forwarded towards the downstream RTP end systems or mixers involved in the session. This behaviour is recommended by [RFC3550] to maintain the integrity of the RTCP connection between the RTP end systems involved in the connection. We call this behaviour "a" to aid discussion below of the examples of end-to- end capabilities. o RTCP XR reports received from an upstream RTP end system or mixer might be forwarded towards the downstream RTP end systems or mixers involved in the session. We call this behaviour "b". o The results of measurements made on an RTP stream received at one of the translator's network interfaces might be sent out as RTCP Hunt Expires May 15, 2008 [Page 13] Internet-Draft RTCP Reporting by Translators November 2007 XR reports towards neighbouring RTP systems, either upstream in the direction towards the RTP system which originated the RTP stream (behaviour "c1"), or downstream in the direction towards the RTP system(s) which will receive the translated RTP stream (behaviour "c2"), or both upstream and downstream (described as behaviour "c1+c2"). o RTCP XR reports received from an upstream RTP translator might be forwarded towards the downstream RTP end systems or mixers involved in the session. We call this behaviour "d". Guidance in Section 7.2 of [RFC3550] (see Section 3 above) on RTCP processing in RTP translators requires translators to modify RTCP to reflect the translator's processing of RTP media packets. If such modification is necessary it would apply to packets forwarded under all the behaviours "a", "b", "c2" and "d". It would not apply to behaviour "c1" where a report is returned to the cloud which originated the stream which is the subject of the report. The details of any necessary modification are determined by the details of the RTP translation and are outside the scope of this memo. Material in Section 8 illustrates how policies may be applied to control these measuring, reporting and forwarding behaviours, and hence achieve potentially useful end-to-end reporting modes. Hunt Expires May 15, 2008 [Page 14] Internet-Draft RTCP Reporting by Translators November 2007 6. Naming considerations Section 6.1 collects the requirements from [RFC3550] related to naming. In the context of RTP and RTCP, naming relates to the choice of values for SSRC and CNAME at an RTP system, and how SSRC and CNAME are used in RTCP reports to other RTP systems. Section 6.2 discusses how compliance with these naming requirements allows the identification of the RTP system which made a set of measurements, and the RTP system which originated the measured stream. Section 6.3 discusses, in very general terms, how names might be used when reporting results 'upwards' to the signalling or management planes. 6.1. SSRC and CNAME requirements from RFC3550 Allocation of SSRC by RTP systems is described in detail in Section 8 of [RFC3550]. Similarly the allocation of CNAME is described in detail in section 6.5.1 of [RFC3550]. This material is not repeated here. Section 7.2 of [RFC3550] makes the following statement about SSRC allocation for translators: A translator does not require an SSRC identifier of its own, but MAY choose to allocate one for the purpose of sending reports about what it has received. These would be sent to all the connected clouds, each corresponding to the translation of the data stream as sent to that cloud, since reception reports are normally multicast to all participants. Section 6.5.1 of [RFC3550] places a requirement on certain types of translators to have the capability to translate a CNAME. This is likely to apply mainly to connections involving RTP systems which use their IPv4 address as a CNAME. Restating a naming-related requirement from Section 7.2 of [RFC3550] already given above: A translator that generates its own RR packets MUST send SDES CNAME information about itself to the same clouds that it sends those RR packets. Application writers should be aware that private network address assignments such as the Net-10 assignment proposed in RFC 1918 may create network addresses that are not globally unique. This would Hunt Expires May 15, 2008 [Page 15] Internet-Draft RTCP Reporting by Translators November 2007 lead to non-unique CNAMEs if hosts with private addresses and no direct IP connectivity to the public Internet have their RTP packets forwarded to the public Internet through an RTP-level translator. (See also RFC 1627.) To handle this case, applications MAY provide a means to configure a unique CNAME, but the burden is on the translator to translate CNAMEs from private addresses to public addresses if necessary to keep private addresses from being exposed. In this memo we assume that RTP systems comply with these normative requirements of [RFC3550]. 6.2. Identification of RTCP reports An RTP system which sends out a report about packets it has sent (such as the RTCP SR packet defined in [RFC3550]) includes its own SSRC as part of the SR. It also provides an RTCP SDES packet containing (at least) its own SSRC and CNAME, to bind SSRC to CNAME. For "basic" RTCP, this is required by the normative text in sections 6.1 and 6.4.1 of [RFC3550]. For RTCP XR, it is required by normative text in section 2 of [RFC3611]. For RTCP HR [RTCPHR] (work in progress), which uses the infrastructure for extended reports created by [RFC3611], it is likewise required by normative text in section 2 of [RFC3611]. An RTP system which sends out a report about packets it has received (such as the RTCP RR packet defined in [RFC3550]) includes the SSRC of the RTP system which originated the received stream. For "basic" RTCP this is required by the text in section 6.4.2 of [RFC3550]. For RTCP XR this is required by normative text in section 4 of [RFC3611] and for RTCP HR (work in progress) it is required by normative text in section 3.1 of [RTCPHR]. [RFC3550] recommends that RTP mixers send out multiple SDES packets to bind contributing source (CSRC) identifiers to these sources' CNAMEs. However it is not necesary for a receiving RTP end system (named B) to send out SDES packets to bind a stream-source's SSRC in a receiver report (RR) to the corresponding CNAME of the RTP system (named A) which originated the measured stream. It is assumed that any RTP system which receives the RTCP RR sent by B (containing A's SSRC but not A's CNAME) will also receive an RTCP packet from the stream sender A, which will contain an SR and an SDES packet. This SDES binds A's SSRC to A's CNAME. Section 7.2 of [RFC3550] (as repeated above) requires that an RTP translator which sends RRs (and by extension other kinds of reception report such as RTCP XR or RTCP HR reports) must send SDES information about itself along with these reception reports. Although the allocation of an SSRC by an RTP translator is only permissive in Hunt Expires May 15, 2008 [Page 16] Internet-Draft RTCP Reporting by Translators November 2007 [RFC3550], it appears that the obligation to send SDES information also mandates the allocation of an SSRC if the RTP translator wishes to send any kind of reception report (RTCP RR or any kind of RTCP XR report). RTP translators may make measurements related to RTP packet streams from multiple sources. However translators (by definition) forward RTP packets with their SSRC unchanged, and also forward the sender's necessary RTCP SDES information. Hence there is no requirement for RTP translators to create RTCP SDES packets describing the RTP systems which are the sources of the streams measured at the RTP translator. The translator may assume that RTP systems which receive the translator's reception reports for a stream from any given RTP sender will also receive forwarded SDES information describing that sender. Typically these SDES items will be forwarded by the same translator, as part of its required behaviour. 6.3. Naming in reports to control layers RTP systems are typically controlled by functions in the signalling and/or management planes, and it is often useful to send measurement results either to, or via, these higher-layer entities. Delivery mechanisms include (but are not restricted to): o Statistics Descriptors in H.248/MEGACO packages [H.248] o Entries in SNMP MIBs [RFC4711] o The proposed mechanism using SIP PUBLISH or NOTIFY messages [SIPSUMM] o Ad-hoc mechanisms using Call Detail Records (CDRs) As discussed above for reporting within the RTP layer, it is usually necessary to label measurement results with the identity of the RTP system which made the measurement (the Measuring Point), and with the identity of the RTP system which originated the measured stream (the Originating Point). In addition when reports are sent out of the RTP layer 'upwards' to systems in the signalling or management planes, it may be useful to label the measurement results with the identity of the RTP system which made the report upwards (the Reporting Point). The SSRC identifier may convey no meaning to signalling or management systems which do not receive RTCP SDES packets. It is likely to be more useful to label measurement results with the CNAMEs of the RTP systems involved rather than with their SSRCs. An exception arises in cases where some binding information may be missing, and higher layer systems may still be able to deduce useful information about Hunt Expires May 15, 2008 [Page 17] Internet-Draft RTCP Reporting by Translators November 2007 the connection if SSRC information is provided. For example, it might be possible to deduce that several reports provided measurements of the same RTP stream. It is relatively cheap to provide SSRC information in addition to CNAME. Hunt Expires May 15, 2008 [Page 18] Internet-Draft RTCP Reporting by Translators November 2007 7. Control of reporting by translators Some recent schemes for monitoring [RFC3611][RTCPHR] have multiple optional groups of metrics. Some of these have significant costs in processing or bandwidth, but may be useful in special circumstances, either for specific types of connections or at specific times (e.g. for diagnosis). This raises the question of whether, and how, these capabilities might be activated when needed. This section outlines possible schemes for control of reporting by translators. As this discussion touches on capabilities of the signalling and management planes, which are outside the scope of the memo, these methods are discussed only in general terms. The first and simplest scheme is that any optional capabilites are enabled (or not) by configuration data in every participating RTP system. This solution may be satisfactory for RTP systems in a small and/or homogeneous network. However it is unlikely that large populations of independently controlled terminals and RTP translators will be configured in compatible ways. The problem is similar to that of ensuring that a compatible codec is chosen to enable end-to- end communication. Any modification of the level of reporting, e.g. for diagnostics, would need to be a coordinated change of configuration data across multiple systems. If the RTCP monitoring and reporting capability is to be controlled dynamically on a per-connection basis, it is assumed that the SDP Offer/Answer model [RFC4566][RFC3264] will be used to signal that an RTP end system wishes to receive metrics of a specific kind. This is in line with some existing practice [RFC3611], and parallels the use of SDP to select a compatible codec. We assume that "basic" RTCP SR and RR will always be sent, as they are not optional in [RFC3550]. Hence SDP will typically be used to control additional reporting, probably RTCP XR based. Assuming SDP Offer/Answer is used, there is still the question of the granularity of control. Some of the options are as follows: o SDP selects only the top-level protocol (e.g., selects RTCP XR [RFC3611] or RTCP HR [RTCPHR]). The selection of optional capabilities within the chosen top-level protocol would still require configuration at each RTP system, hence would still be a likely source of incompatibility. o SDP controls each reporting option individually, both to determine the top-level protocol and to determine options within the protocol. This is the design choice made in [RFC3611] where options within the protocol are defined as XR report block types, Hunt Expires May 15, 2008 [Page 19] Internet-Draft RTCP Reporting by Translators November 2007 and these block types (and, in some cases, options within them) have SDP parameters registered with IANA. This has the advantage that, if a device implements a specific monitoring standard, it can provide any subset of that standard on request. However, the amount of SDP data may become significant. o SDP indicates the choice of a profile. The profile is registered. It specifies all the monitoring capabilities and probably also a set of preferred forwarding policies which achieve the desired end-to-end monitoring architecture. This has the advantage that a very small amount of SDP data in signalling (typically a single integer of SDP "payload") can select from a wide range of potentially complex behaviour in an RTP system. The disadvantage is that the RTP systems must implement the chosen profiles, so there will be a time lag between definition of a profile and its becoming available in equipment. To mitigate against this, a number of profiles could be defined at the same time as any new proposal for monitoring. These might include profiles for both "normal" and "diagnostic" purposes. The latter might include more detailed metrics and/or changed policies for forwarding measurements. Of course, local policy may override a request for a specific monitoring behaviour if there are strong reasons to do so, such as a perceived threat to security or performance. SDP may be originated at RTP end systems and carried in signalling such as SIP [RFC3261]. In some cases SIP and its SDP attachment may be routed via a system (such as an application-layer gateway) which also contains the RTP translator function. In this case it may need only simple local communication to provide the RTP system with information from the signalling plane. Alternatively the RTP translator may be physically separated from nodes in the signalling path. In the latter case, the SDP Offer/Answer exchange may be extended to the RTP translator over a gateway control protocol such as H.248/MEGACO [H.248]. Hunt Expires May 15, 2008 [Page 20] Internet-Draft RTCP Reporting by Translators November 2007 8. Example applications This section defines three potentially useful modes for reporting by translators and shows how each one may be implemented by consistent choices of policy at each RTP system which participates in the connection. These are "uniform" in the sense that the same policy is applied at each system of a given type. A further example illustrates the application of the same principles to a less uniform scenario in which an RTP end system is made responsible for reporting results which were measured by an RTP translator. "End system peering" is a mode in which a translator forwards RTCP reports originating from an RTP end system towards other RTP end systems (possibly with some modification consistent with the translation which it performs [RFC3550]). RTCP reports received from an end system are forwarded towards the same destination(s) as the destination(s) of the RTP packets received at the same interface as that at which the RTCP reports were received. This is the minimum which a translator must do to maintain the integrity of RTCP communication between the end systems. In end system peering mode, the translator does not originate any RTCP reports based on any measurements which it may make locally. A minimum "End system peering" behaviour is realised by application, at each RTP translator, of policy "a" from Section 5 above. This passes only "basic" RTCP between RTCP end systems. If policy "b" is also included, RTP end systems' XR reports are also passed between RTP end systems. "Local reporting" is a mode in which the translator forwards the end systems' reports as in "end system peering" mode, to maintain RTCP communication between end systems. In addition, the translator makes measurements on the RTP stream arriving at each receive transport interface, creating associated RTCP reports. These RTCP reports are sent by the translator both towards the source and destination(s) of the monitored RTP stream. However, the translator does not forward RTCP reports generated by other translators. "Local reporting" mode allows translators to assist in localising transport faults, whilst keeping RTCP traffic and processing bounded in systems which use large numbers of translators. "Local reporting" behaviour is realised by application, at each RTP translator, of policies "a", "b" and "c1+c2" from Section 5 above. "Global reporting" is a mode in which the translator forwards the end systems' reports as in "end system peering" mode, to maintain RTCP Hunt Expires May 15, 2008 [Page 21] Internet-Draft RTCP Reporting by Translators November 2007 communication between end systems. In addition the translator makes measurements on the RTP stream arriving at each receive transport interface, creating associated RTCP reports. These RTCP reports are sent by the translator both towards the source and destination(s) of the RTP stream. Finally, the translator also forwards RTCP reports generated by other translators, but only towards the same destination(s) as the destination(s) of the RTP stream received at the same interface as that at which the RTCP reports were received. In particular, no RTCP report received at a translator from a system S is ever sent back towards S. "Global reporting" provides complete transport metrics to every RTP system involved in a session. In particular, end systems receive reports of measurements made on RTP streams at all receive interfaces of every translator. However, the volume of RTCP traffic and RTCP processing may become excessively large in networks, or collections of networks, which use large numbers of translators. "Global reporting" behaviour is realised by application, at each RTP translator, of all the policies "a", "b", "c1+c2" and "d" from Section 5 above. The following application example illustrates that the policy-based approach is also capable of meeting specific, less uniform requirements. This arises in a provider P1's voice network which has a connection to the network of a second provider P2. P1's network contains an RTP end system, and an application layer gateway which provides a connection to a P2's network. P2's network might be a transit or terminating network. P1's application layer gateway (ALG1) is connected to P2's application layer gateway (ALG2), via a point-to-point link or a routed network. ALG1 and ALG2 provide a symmetric security barrier at the P1-to-P2 network-to-network interface. We assume that both ALGs are RTP translators with measurement capabilities and RTCP-based reporting capabilities. We assume also that both operators are willing to operate their sections of the connection in "local reporting" mode. This includes sending results of their respective ALG's measurements across the network-to- network interface, to assist their peer operator in detecting and localising transport faults. Ideally P1 would like to transfer the results of ALG1's measurements, and the reports which ALG1 receives as local reports from ALG2, directly into P1's management plane. However in this case ALG1 has no capability to report its measurement results "upwards" to signalling or management planes, although P1's RTP end system does have this capability. P1 defines policy "a", "b" and "c1+c2" for reports outgoing via ALG1's interface facing ALG2, in order to achieve the agreed "local reporting" behaviour at the network-to- network interface. In addition, however, P1 defines policies "a", Hunt Expires May 15, 2008 [Page 22] Internet-Draft RTCP Reporting by Translators November 2007 "b", "c1+c2" and "d" for reports outgoing via ALG1's interface to the inside of P1's network. The effect is that ALG1 relays (towards P1's RTP end system) all the reports which the RTP translator ALG2 measured and sent to ALG1. ALG1's behaviour is asymmetric, in that it would not forward out of its outside interface (towards ALG2) any reports from other RTP translators inside P1's network. However for the connection described, this asymmetry is not expressed, because ALG1 receives into its inside interface only reports from P1's RTP end system. According to policy "b" in force at ALG1's outside interface, such reports are forwarded to ALG2. Hunt Expires May 15, 2008 [Page 23] Internet-Draft RTCP Reporting by Translators November 2007 9. Combining RTCP packets from multiple sources As stated above in Section 3, Section 6.1 of [RFC3550] recommends that translators and mixers combine individual RTCP packets from the multiple sources they are forwarding into one compound packet whenever feasible in order to amortize the packet overhead. However, section 7.2 of [RFC3550] warns that translators should not aggregate SR and RR packets from different sources because this would degrade the accuracy of round-trip delay measurements based on the LSR and DLSR fields. This guidance is aimed at multicast connections implementing "basic" RTCP, but it may be extended to warn against the aggregation of any other system's RTCP packets with packets originated by RTP end systems and containing SR/RR information. This section suggests a method of aggregation which might reduce packet overhead in cases where translators forward reports from other translators. We suggest that RTP end systems might send all their RTCP information in a single compound RTCP packet which includes both the "basic" RTCP SR/RR information defined in [RFC3550], including the LSR and DLSR fields, and any RTCP XR information which the RTP end system wishes to send. RTP translators which forward RTCP reports from other translators are assumed to comply with the intention of Section 7.2 of [RFC3550], and hence will not attempt to combine their own RTCP reports with reports received from RTP end systems. This behaviour will help to avoid degradation of round-trip delay measurements. However RTP translators might concatenate their own RTCP reports with RTCP reports from peer translators which they choose to forward. If RTP translators append their own report to the end of a compound packet which they choose to forward, the order of concatenated RTCP blocks will be the same as the order in which network segments are traversed. This might be helpful in determining the ordering of RTP translators along the connection and hence in fault localisation for complex, multi-translator connections. This behaviour is described below with respect to the following example of a bidirectional unicast connection between RTP end systems A and Z using three translators J, K, and L: ---- ----- ----- ----- ---- | T|-->|1R 2T|-->|1R 2T|-->|1R 2T|-->|R | | A | | J | | K | | L | | Z | | R|<--|1T 2R|<--|1T 2R|<--|1T 2R|<--|T | ---- ----- ----- ----- ---- Hunt Expires May 15, 2008 [Page 24] Internet-Draft RTCP Reporting by Translators November 2007 Figure 1: Connection with 3 translators. [Editors notes: Need to consider desirable behaviour for RTP translators which do not support specific blocks which may arrive from other RTP systems. If translation is transport-level only, probably best to forward unchanged apart from appropriate transport- header modifications, but if translation is application-level (e.g. codec, packetisation time) then semantics might be wrong so better to discard?] In the first example, Figure 2, translators implement policies "a", "b", "c1+c2" and "d" of Section 5. The result is that the connection operates in the mode called "Global Reporting" of Section 8 above, in which all measurements by translators are forwarded by other translators, ultimately reaching end systems. Without concatenation, this set of policies results in a large number of separate RTCP packets. In Figure 3, concatenation is applied to reduce the number of separate RTCP packets, here to 3. The packet labelled "RTCP(A.R)" is the report from the end system, identified because its SSRC is the same as the SSRC of the RTP flow in the same direction. This is forwarded without concatenation. The packet labelled RTCP(J.1R, K.1R, L.1R) contains translator reports of measurements made on the RTP flow from A to Z, identified because they report the measured flow having SSRC equal to the SSRC of A. The packet labelled RTCP (J.2R,K.2R,L.2R) contains translator reports of measurements made on the RTP flow from Z to A, identified because they report the measured flow having SSRC equal to the SSRC of Z. Hunt Expires May 15, 2008 [Page 25] Internet-Draft RTCP Reporting by Translators November 2007 A.R/A.T------>J.1R/J.2T---->K.1R/K.2T---->L.1R/L.2T------>Z.R/Z.T | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | |- - - - - - >|- - - - - - >|- - - - - - >|- - - - - - > | | | RTCP(J.1R) | RTCP(J.1R) | RTCP(J.1R) | | |- - - - - - >|- - - - - - >|- - - - - - > | | | RTCP(J.2R) | RTCP(J.2R) | RTCP(J.2R) | | |- - - - - - >|- - - - - - >|- - - - - - > | | | | RTCP(K.1R) | RTCP(K.1R) | | | |- - - - - - >|- - - - - - > | | | | RTCP(K.2R) | RTCP(K.2R) | | | |- - - - - - >|- - - - - - > | | | | | RTCP(L.2R) | | | | |- - - - - - > | | | | | RTCP(L.2R) | | | | |- - - - - - > | | | | | | A.T/A.R<------J.1T/J.2R<----K.1T/K.2R<----L.1T/L.2R<------Z.T/Z.R | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | |< - - - - - -|< - - - - - -|< - - - - - -|< - - - - - - | | RTCP(L.1R) | RTCP(L.1R) | RTCP(L.1R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | RTCP(L.2R) | RTCP(L.2R) | RTCP(L.2R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | RTCP(K.1R) | RTCP(K.1R) | | | |< - - - - - -|< - - - - - -| | | | RTCP(K.2R) | RTCP(K.2R) | | | |< - - - - - -|< - - - - - -| | | | RTCP(J.1R) | | | | |< - - - - - -| | | | | RTCP(J.2R) | | | | |< - - - - - -| | | | | | | | | Figure 2: Global reporting mode - no packet aggregation Hunt Expires May 15, 2008 [Page 26] Internet-Draft RTCP Reporting by Translators November 2007 A.R/A.T------>J.1R/J.2T---->K.1R/K.2T---->L.1R/L.2T------>Z.R/Z.T | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | |- - - - - - >|- - - - - - >|- - - - - - >|- - - - - - > | | | | | RTCP(J.1R, | | | | RTCP(J.1R, | K.1R, | | | RTCP(J.1R) | K.1R) | L.1R) | | |- - - - - - >|- - - - - - >|- - - - - - > | | | | | RTCP(J.2R, | | | | RTCP(J.2R, | K.2R, | | | RTCP(J.2R) | K.2R) | L.2R) | | |- - - - - - >|- - - - - - >|- - - - - - > | A.T/A.R<------J.1T/J.2R<----K.1T/K.2R<----L.1T/L.2R<------Z.T/Z.R | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | |< - - - - - -|< - - - - - -|< - - - - - -|< - - - - - - | | RTCP(L.1R, | | | | | K.1R, | RTCP(L.1R, | | | | J.1R) | K.1R) | RTCP(L.1R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | RTCP(L.2R, | | | | | K.2R, | RTCP(L.2R, | | | | J.2R) | K.2R) | RTCP(L.2R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | | | | | Figure 3: Proposed multiplexing scheme of the Global reporting mode In the second example, Figure 4 translators implement policies "a", "b", and "c1+c2" of Section 5. The result is that the connection operates in the mode called "Local Reporting" described in Section 8 above, in which measurements by each translator are sent to the nearest-neighbour RTP system in each direction but are not forwarded further. Even without concatenation, this set of policies results in a maximum of three RTCP packets in each direction on each link (per RTCP measurement cycle). There is no opportunity for concatenation in this mode. Hunt Expires May 15, 2008 [Page 27] Internet-Draft RTCP Reporting by Translators November 2007 A.R/A.T------>J.1R/J.2T---->K.1R/K.2T---->L.1R/L.2T------>Z.R/Z.T | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | RTCP(A.R) | |- - - - - - >|- - - - - - >|- - - - - - >|- - - - - - > | | | RTCP(J.1R) | RTCP(K.1R) | RTCP(L.1R) | | |- - - - - - >|- - - - - - >|- - - - - - > | | | RTCP(J.2R) | RTCP(K.2R) | RTCP(L.2R) | | |- - - - - - >|- - - - - - >|- - - - - - > | | | | | | | | | | | A.T/A.R<------J.1T/J.2R<----K.1T/K.2R<----L.1T/L.2R<------Z.T/Z.R | RTP | | | | |<------------|-------------|-------------|------------->| | | | | | | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | RTCP(Z.R) | |< - - - - - -|< - - - - - -|< - - - - - -|< - - - - - - | | RTCP(J.1R) | RTCP(K.1R) | RTCP(L.1R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | RTCP(J.2R) | RTCP(K.2R) | RTCP(L.2R) | | |< - - - - - -|< - - - - - -|< - - - - - -| | | | | | | Figure 4: Local reporting mode Hunt Expires May 15, 2008 [Page 28] Internet-Draft RTCP Reporting by Translators November 2007 10. IANA Considerations None. Hunt Expires May 15, 2008 [Page 29] Internet-Draft RTCP Reporting by Translators November 2007 11. Security Considerations There are known security considerations for the operation of RTP translators and mixers which have been documented in [TOPO] (work in progress). However, this document itself contains no normative text and hence should not give rise to any new security considerations, to be confirmed. Hunt Expires May 15, 2008 [Page 30] Internet-Draft RTCP Reporting by Translators November 2007 12. References 12.1. Normative References [H.248] ITU-T, "Recommendation H.248.1, Gateway control protocol: Version 3", September 2005. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", RFC 2119, BCP 14, March 1997. [RFC3261] Rosenberg, J., "SIP: Session Initiation Protocol", RFC 3261, June 2002. [RFC3264] Rosenberg, J., "An Offer/Answer Model with the Session Description Protocol (SDP)", RFC 3264, June 2002. [RFC3550] Schulzrinne, H., "RTP: A Transport Protocol for Real-Time Applications", RFC 3550, July 2003. [RFC3611] Friedman, T., "RTP Control Protocol Extended Reports (RTCP XR)", RFC 3611, November 2003. [RFC4566] Handley, M., "SDP: Session Description Protocol", RFC 4566, July 2006. [RFC4711] Siddiqui, A., "Real-time Application Quality-of-Service Monitoring (RAQMON) MIB.", RFC 4711, October 2006. 12.2. Informative References [RTCPHR] Clark, A., "RTCP HR - High Resolution VoIP Metrics Report Blocks", ID draft-ietf-avt-rtcphr-01, February 2007. [SIPSUMM] Pendleton, A., "Session Initiation Protocol Package for Voice Quality Reporting Event", ID draft-ietf-sipping-rtcp-summary-02, May 2007. [TOPO] Westerlund, M., "RTP Topologies", ID draft-ietf-avt-topologies-07, October 2007. Hunt Expires May 15, 2008 [Page 31] Internet-Draft RTCP Reporting by Translators November 2007 Author's Address Geoff Hunt BT Orion 1 PP9 Adastral Park Martlesham Heath Ipswich, Suffolk IP5 3RE United Kingdom Phone: +44 1473 608325 Email: geoff.hunt@bt.com Hunt Expires May 15, 2008 [Page 32] Internet-Draft RTCP Reporting by Translators November 2007 Full Copyright Statement Copyright (C) The IETF Trust (2007). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Acknowledgment Funding for the RFC Editor function is provided by the IETF Administrative Support Activity (IASA). Hunt Expires May 15, 2008 [Page 33]