<?xml version="1.0" encoding="US-ASCII"?>

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc1122 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.1122.xml">
<!ENTITY rfc2959 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2959.xml">
<!ENTITY rfc3393 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3393.xml">
<!ENTITY rfc3550 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3550.xml">
<!ENTITY rfc3611 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3611.xml">
<!ENTITY rfc3954 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3954.xml">
<!ENTITY rfc4585 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.4585.xml">
<!ENTITY rfc5101 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5101.xml">
<!ENTITY rfc5102 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5102.xml">
<!ENTITY rfc5117 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5117.xml">
<!ENTITY rfc5760 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5760.xml">
<!ENTITY rfc5968 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5968.xml">
<!ENTITY rfc6035 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6035.xml">
<!ENTITY rfc6390 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6390.xml">
<!ENTITY rfc6776 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6776.xml">
<!ENTITY rfc6798 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6798.xml">
]>

<rfc category="info" number="6792"
     ipr="trust200902" submissionType="IETF" consensus="yes">

  <?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
  <?rfc toc="yes" ?>
  <?rfc symrefs="yes" ?>
  <?rfc sortrefs="yes"?>
  <?rfc iprnotified="no" ?>
  <?rfc compact="yes"?>
  <?rfc subcompact="no"?>
  <?rfc rfcedstyle="yes"?>

  <front>
    <title abbrev="RTP Monitoring Framework">Guidelines for Use of the RTP
    Monitoring Framework</title>

    <author fullname="Qin Wu" initials="Q." role="editor" surname="Wu">
      <organization>Huawei</organization>
      <address>
        <postal>
          <street>101 Software Avenue, Yuhua District</street>
          <city>Nanjing</city>
          <region>Jiangsu</region>
          <code>210012</code>
          <country>China</country>
        </postal>
        <email>sunseawq@huawei.com</email>
      </address>
    </author>

    <author fullname="Geoff Hunt" initials="G." surname="Hunt">
      <organization>Unaffiliated</organization>
      <address>
        <email>r.geoff.hunt@gmail.com</email>
      </address>
    </author>

    <author fullname="Philip Arden" initials="P.J." surname="Arden">
      <organization abbrev="BT">BT</organization>
      <address>
        <postal>
          <street>Orion 3/7 PP4</street>
          <street>Adastral Park</street>
          <street>Martlesham Heath</street>
          <city>Ipswich</city>
          <region>Suffolk</region>
          <code>IP5 3RE</code>
          <country>United Kingdom</country>
        </postal>
        <phone>+44 1473 644192</phone>
        <email>philip.arden@bt.com</email>
      </address>
    </author>

    <date month="November" year="2012" />

    <area>Real-time Applications and Infrastructure Area</area>

    <workgroup>Audio/Video Transport Working Group</workgroup>

    <keyword>Real Time Control Protocol</keyword>

    <abstract>
      <t>This memo proposes an extensible Real-time Transport Protocol (RTP)
      monitoring framework for extending the RTP Control Protocol (RTCP)
      with a new RTCP Extended Reports (XR) block type to report
      new metrics regarding media transmission or reception quality.
      In this framework, a new XR block should contain a single
      metric or a small number of metrics relevant to a single
      parameter of interest or concern, rather than containing a
      number of metrics that attempt to provide full coverage of all those
      parameters of concern to a specific application. Applications may then
      "mix and match" to create a set of blocks that cover their set of
      concerns. Where possible, a specific block should be designed to be
      reusable across more than one application, for example, for all of
      voice, streaming audio, and video.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>Multimedia services using the Real-time Transport Protocol (RTP)
      are seeing increased use. Standard methods for gathering
      RTP performance metrics from these applications are needed
      to manage uncertainties in the behavior and availability of
      their services. Standards such as "RTP Control Protocol
      Extended Reports (RTCP XR)" <xref target="RFC3611"></xref>
      as well as other RTCP extensions to sender reports (SRs) and
      receiver reports (RRs) <xref target="RFC3550"></xref> are being
      developed for the purpose of collecting and reporting performance
      metrics from endpoint devices that can be used to correlate the metrics,
      provide end-to-end service visibility, and measure and monitor
      Quality of Experience (QoE) <xref target="RFC6390"></xref>.</t>

      <t>However, the proliferation of RTP-/RTCP-specific metrics for transport
      and application quality monitoring has been identified as a potential
      problem for interoperability when using RTP/RTCP to communicate all the
      parameters of concern to a specific application. Given that different
      applications layered on RTP may have some monitoring requirements in
      common, these metrics should be satisfied by a common design.</t>

      <t>The objective of this document is to describe an extensible RTP
      monitoring framework to provide a small number of reusable Quality of
      Service (QoS) / QoE metrics that facilitate reduced implementation
      costs and help maximize interoperability. "Guidelines for Extending
      the RTP Control Protocol (RTCP)" <xref target="RFC5968"></xref> has
      stated that where RTCP is to be extended with a new metric, the
      preferred mechanism is by the addition of a new RTCP XR <xref
      target="RFC3611"></xref> block. This memo assumes that all the
      guidelines from RFC 5968 must apply on top of the guidelines in this
      document. Guidelines for developing new performance metrics are
      specified in <xref target="RFC6390"></xref>. New RTCP XR report block
      definitions should not define new performance metrics but should rather
      refer to metrics defined elsewhere. </t>
    </section>

    <section title="Terminology">
      <t>This memo is informative and as such contains no normative
      requirements.</t>

      <t>In addition, the following terms are defined:</t>

      <t><list style="hanging">
          <t hangText="Transport-level metrics"><vspace blankLines="1" />A set
          of metrics that characterize the three transport impairments of
          packet loss, packet delay, and jitter (also known as delay
          variation). These metrics should be usable by any application
          that uses RTP transport.</t>

          <t hangText="Application-level metrics"><vspace blankLines="1" />
          Metrics relating to application-specific parameters or QoE-related
          parameters. Application-specific parameters are measured at the
          application level and focus on quality of content rather than
          network performance. QoE-related parameters reflect the end-to-end
          performance at the services level and are usually measured at the
          user endpoint. One example of such metrics is the QoE metric
          as specified in the QoE Metrics Report Block; see <xref
          target="QOE_BLOCK"></xref>.</t>

          <t hangText="End-system metrics"><vspace blankLines="1" />Metrics
          relating to the way a terminal deals with transport impairments
          affecting the incident RTP stream. These may include de-jitter
          buffering, packet loss concealment, and the use of redundant streams
          (if any) for correction of error or loss.</t>

          <t hangText="Direct metrics"><vspace blankLines="1" />Metrics that
          can be directly measured or calculated and are not dependent on
          other metrics.</t>

          <t hangText="Interval metrics"><vspace blankLines="1" />Metrics
          measured over the course of a single reporting interval between two
          successive report blocks. This may be the most recent RTCP reporting
          interval (<xref target="RFC3550"></xref>, Section 6.2) or some other
          interval signaled using an RTCP Measurement Information XR Block
          <xref target="RFC6776"></xref>. An example interval metric is the
          count of the number of RTP packets lost over the course of the last
          RTCP reporting interval.</t>

          <t hangText="Cumulative metrics"><vspace blankLines="1" />Metrics
          measured over several reporting intervals for accumulating
          statistics. The time period over which measurements are accumulated
          can be the complete RTP session, or some other interval signaled
          using an RTCP Measurement Information XR Block <xref
          target="RFC6776"></xref>. An example cumulative metric is the total
          number of RTP packets lost since the start of the RTP
          session.</t>

          <t hangText="Sampled metrics"><vspace blankLines="1" />Metrics
          measured at a particular time instant and sampled from the values of
          a continuously measured or calculated metric within a reporting
          interval (generally, the value of some measurement as taken at the
          end of the reporting interval). An example is the inter-arrival
          jitter reported in RTCP SR and RR packets, which is continually
          updated as each RTP data packet arrives but is only reported based on
          a snapshot of the value that is sampled at the instant the
          reporting interval ends.</t>
        </list></t>
    </section>

    <section title="RTP Monitoring Framework">
      <t>There are many ways in which the performance of an RTP session can be
      monitored. These include RTP-based mechanisms such as the RTP MIB module
      <xref target="RFC2959"></xref>; or the Session Initiation Protocol (SIP)
      event package for RTCP summary reports <xref target="RFC6035"></xref>;
      or non-RTP mechanisms such as generic MIBs, NetFlow <xref
      target="RFC3954"></xref>, IP Flow Information Export (IPFIX)
      <xref target="RFC5101"> </xref> <xref target="RFC5102"></xref>,
      and so on. Together, these provide useful
      mechanisms for exporting data on the performance of an RTP session to
      non-RTP network management systems. It is desirable to also perform
      in-session monitoring of RTP performance. RTCP provides the means to do
      this. In the following, we review the RTP Monitoring Framework, and give
      guidance for using and extending RTCP for monitoring RTP sessions. One
      major benefit of such a framework is ease of integration with other
      RTP/RTCP mechanisms.</t>

      <section title="Overview of the RTP Monitoring Framework">
        <t>The RTP monitoring Framework comprises the following two key
        functional components described below:<list style="symbols">
            <t>Monitor</t>

            <t>RTP Metrics Block</t>
          </list></t>

        <t>"Monitor" is the functional component defined in the RTP
        specification <xref target="RFC3550"></xref>. It acts as a
        repository of information gathered for monitoring purposes.</t>

        <t>According to the definition of "monitor" in 
        <xref target="RFC3550"></xref>, the end system that
        runs an application program that sends or receives RTP data packets, an
        intermediate system that forwards RTP packets to end devices, or a
        third party that observes the RTP and RTCP traffic but does not make
        itself visible to the RTP Session participants can play the role of
        the monitor within the RTP monitoring framework. As shown in <xref
        target="fig1"></xref>, the third-party monitor can be a passive
        monitor that sees the RTP/RTCP stream pass it, or a system that gets
        sent RTCP reports but not RTP and uses that to collect information.
        The third-party monitor should be placed on the RTP/RTCP path between
        the sender, the intermediate system, and the receiver.</t>

        <t>The RTP Metrics Block (MB) conveys real-time application QoS/QoE
        metric information and is used by the monitor to exchange information
        with other monitors in the appropriate report block format. The
        information contained in the RTP MBs is collected by monitors and can
        be formulated as various types of metrics,
        e.g., direct metrics/composed performance metrics
        <xref target="RFC6390"></xref> or interval metrics/cumulative
        metrics/sampled metrics, etc. Both the RTCP and RTCP XR can
        be extended to transport these metrics, e.g., the basic RTCP reception
        report <xref target="RFC3550"></xref> that conveys reception
        statistics (i.e., transport-level statistics) for multiple RTP media
        streams, the RTCP XRs <xref target="RFC3611"></xref> that supplement
        the existing RTCP packets and provide more detailed feedback on
        reception quality, and an RTCP NACK <xref target="RFC4585"></xref> that
        provides feedback on the RTP sequence numbers for a subset of the lost
        packets or all the currently lost packets. Ultimately, the metric
        information collected by monitors within the RTP monitoring framework
        may go to the network management tools beyond the RTP monitoring
        framework; e.g., as shown in <xref target="fig1"></xref>, the monitors
        may export the metric information derived from the RTP monitoring
        framework to the management system using non-RTP means.</t>

        <t><figure align="center" anchor="fig1"
            title="Example Showing the Components of the RTP Monitoring Framework"> <artwork>
               +-----------+                  +----------+
               |Third-Party|                  |Management|
               |  Monitor  |          &gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;|  System  |&lt;&lt;&lt;&lt;&lt;
               +-----------+          ^       +----------+    ^
                   :   ^              ^                       ^
                   :   |              ^                       ^
+---------------+  :   |       +-------------+        +-------------+
| +-----------+ |  :   |       |+-----------+|        |+-----------+|
| |  Monitor  | |..:...|.......||  Monitor  ||........||  Monitor  ||
| +-----------+ |      |       |+-----------+|        |+-----------+|
|               |------+------&gt;|             |-------&gt;|             |
| RTP Sender    |              |RTP Mixer or |        |RTP Receiver |
|               |              |Translator   |        |             |
+---------------+              +-------------+        +-------------+

----&gt; RTP media traffic
..... RTCP control channel
&gt;&gt;&gt;&gt;&gt; Non-RTP/RTCP management flows
</artwork>
          </figure></t>

        <t>RTP may be used with multicast groups: both Any-Source Multicast
        (ASM) and Source-Specific Multicast (SSM). These groups can be
        monitored using RTCP. In the ASM case, the monitor is a member of the
        multicast group and listens to RTCP reports from all members of the
        ASM group. In the SSM case, there is a unicast feedback target that
        receives RTCP feedback from receivers and distributes it to other
        members of the SSM group (see Figure 1 of <xref
        target="RFC5760"></xref>). The monitor will need to be co-located
        with the feedback target to receive all feedback from the receivers
        (this may also be an intermediate system). In both ASM and SSM
        scenarios, receivers can send RTCP reports to enhance
        reception-quality reporting.</t>
      </section>

      <section title="Location of Monitors">
        <t>As shown in <xref target="fig1"></xref>, there are several possible
        locations from which RTP sessions can be monitored. These include end
        systems that terminate RTP sessions, intermediate systems that are an
        active part of an RTP session, and third-party devices that passively
        monitor an RTP session. Not every RTP session will include
        monitoring, and those sessions that are monitored will not all include
        each type of monitor. The performance metrics collected by monitors
        can be divided into end-system metrics, application-level metrics, and
        transport-level metrics. Some of these metrics may be specific to the
        measurement point of the monitor or may depend on where the monitors
        are located in the network, while others are more general and can be
        collected in any monitoring location.</t>

        <t>End-system monitoring is monitoring that is deployed on devices
        that terminate RTP flows. Flows can be terminated in user equipment,
        such as phones, videoconferencing systems, or IPTV set-top boxes.
        Alternatively, they can be terminated in devices that gateway between
        RTP and other transport protocols.
        Transport-level metrics, end-system metrics, and
        application-level metrics that don't reflect the end-to-end user
        experience may be collected at all types of end systems, but some
        application-level metrics (i.e., quality of experience (QoE) metrics)
        may only be applicable for user-facing end systems.</t>

        <t>RTP sessions can include intermediate systems that are an active
        part of the system. These intermediate systems include RTP mixers and
        translators, Multipoint Control Units (MCUs), retransmission servers,
        etc. If the intermediate system establishes separate RTP sessions to
        the other participants, then it must act as an end system in each of
        those separate RTP sessions for the purposes of monitoring. If a
        single RTP session traverses the intermediate system, then the
        intermediate system can be assigned a synchronization source (SSRC)
        in that session, which it can use for its reports. Transport-level
        metrics may be collected at such an intermediate system.</t>

        <t>Third-party monitors may be deployed that passively monitor RTP
        sessions for network management purposes. Third-party monitors often
        do not send reports into the RTP session being monitored but instead
        collect transport-level metrics, end-system metrics, and
        application-level metrics. In some cases, however, third-party
        monitors can send reports to some or all participants in the
        session being monitored. For example, in a media streaming scenario,
        third-party monitors may be deployed that passively monitor the
        session and send reception-quality reports to the media source but
        not to the receivers.</t>
      </section>
    </section>

    <section title="Issues with Reporting Metrics Blocks Using RTCP XR Extensions">
      <t>The following sections discuss four issues that have come up in the
      past with reporting metrics blocks using RTCP XR extensions.</t>

      <section title="Using a Compound Metrics Block">
        <t>A compound metrics block is designed to contain a large number of
        parameters from different classes for a specific application in a
        single block. For example, "RTP Control Protocol Extended Reports
        (RTCP XR)" <xref target="RFC3611"></xref> defines seven report
        block formats for network management and quality monitoring.
        Some of these block types defined in the RTCP XRs
        <xref target="RFC3611"></xref> are only specifically designed
        for conveying multicast inference of network
        characteristics (MINC) or voice over IP (VoIP) monitoring. However,
        different applications layered on RTP may have different monitoring
        requirements. Designing a compound metrics block only for specific
        applications may increase implementation costs and minimize
        interoperability.</t>
      </section>

      <section title="Correlating RTCP XR with Non-RTP Data">
        <t>The Canonical End-Point Identifier SDES
        Item (CNAME), as defined in RTP <xref target="RFC3550"></xref>, is an
        example of an existing tool that allows binding an SSRC that
        may change to a name that is fixed within one RTP session.
        The CNAME may also be fixed across
        multiple RTP sessions from the same source. However, there may be
        situations where RTCP reports are sent to other participating
        endpoints using a non-RTP protocol in a session. For example, as
        described in <xref target="RFC6035"></xref> in relation to summary
        reports, the data contained in RTCP XR VoIP metrics
        reports <xref target="RFC3611"></xref> is forwarded to a central
        collection server system using SIP. In such a case, there is a large
        portfolio of quality parameters that can be associated with real-time
        applications, e.g., VOIP applications, but only a minimal number of
        parameters are included in the RTCP XRs. With this minimal
        number of RTCP statistical parameters mapped to non-RTCP measurements,
        it is hard to provide accurate measurements of real-time application
        quality, conduct detailed data analysis, and create timely alerts
        for users. Therefore, a correlation between RTCP XRs and non-RTP data
        should be provided.</t>
      </section>

      <section title="Measurement Information Duplication">
        <t>We may set a measurement interval for the session and monitor RTP
        packets within one or several consecutive report intervals. In such a
        case, extra measurement information (e.g., extended sequence number
        of the first packet, measurement period) may be expected. However,
        if we put such extra measurement information into each metrics block,
        there may be situations where an RTCP XR packet that contains multiple
        metrics blocks will report on the same streams from the same source. In
        other words, duplicated data for the measurement is provided multiple
        times, once in every metrics block. Though this design ensures immunity
        to packet loss, it may result in more packetization complexity, and
        this processing overhead is not completely trivial in some cases.
        Therefore, a compromise between processing overhead and reliability
        should be taken into account.</t>
      </section>

      <section title="Consumption of XR Block Code Points">
        <t>The RTCP XR block namespace is limited by the 8-bit block type
        field in the RTCP XR header. Space exhaustion may be a concern in the
        future. In anticipation of the potential need to extend the block type
        space, it is noted that Block Type 255 is reserved for future
        extensions in <xref target="RFC3611"></xref>.</t>
      </section>
    </section>

    <section anchor="guide"
             title="Guidelines for Reporting Metrics Blocks Using RTCP XR">
      <section anchor="smallblock"
               title="Use a Single Metric in the Metrics Block">

        <t>Different applications using RTP for media transport certainly have
        differing requirements for metrics transported in RTCP to support
        their operation. For many applications, the basic metrics for
        transport impairments provided in RTCP SR and RR packets <xref
        target="RFC3550"></xref> (together with source identification provided
        in RTCP Source Description (SDES) packets) are sufficient. For other applications,
        additional metrics may be required or at least may be sufficiently
        useful to justify the overhead, in terms of both processing in
        endpoints and of increased session bandwidth. For example, an
        IPTV application using Forward Error Correction (FEC) might use
        either a metric of post-repair loss or a metric giving detailed
        information about pre-repair loss bursts to optimize payload
        bandwidth and the strength of FEC required for changing network
        conditions. However, there are many metrics available.
        It is likely that different applications or classes of applications
        will wish to use different metrics. Any one application is likely to
        require metrics for more than one parameter, but if this is the case,
        different applications will almost certainly require different
        combinations of metrics. If larger blocks are defined containing
        multiple metrics to address the needs of each application, it becomes
        likely that many such different larger blocks are defined, which
        poses a danger to interoperability.</t>

        <t>To avoid this pitfall, this memo recommends the definition of
        metrics blocks containing a very small number of individual metrics
        characterizing only one parameter of interest to an application
        running over RTP. For example, at the RTP transport layer, the
        parameter of interest might be packet delay variation, and
        specifically the metric "IP Packet Delay Variation (IPDV)" defined by
        <xref target="Y1540"></xref>. See <xref target="example"></xref> for
        architectural considerations for a metrics block, using as an example
        a metrics block to report packet delay variation. Further, it is
        appropriate to not only define report blocks separately but also to
        do so in separate documents where possible. This makes it easier to
        evolve the reports (i.e., to update each type of report block
        separately) and also makes it easier to require compliance with a
        particular report block.</t>
      </section>

      <section title="Include the Payload Type in the Metrics Block">
        <t>There are some classes of metrics that can only be interpreted with
        knowledge of the media codec that is being used (audio mean opinion
        scores (MOSs) were the triggering example, but there may be others).
        In such cases, the correlation of an RTCP XR with RTP data is needed.
        Report blocks that require such correlation need to include the
        payload type of the reported media. In addition, it is necessary to
        signal the details and parameters of the payload format to which
        that payload type is bound using some out-of-band means (e.g.,
        as part of a Session Description Protocol (SDP) offer/answer
        exchange).</t>

      </section>

      <section title="Use RTCP SDES to Correlate XRs with Non-RTP Data">
        <t>There may be situations where more than one media transport
        protocol is used by one application to interconnect to the same
        session in the gateway. For example, one RTCP XR packet is sent to the
        participating endpoints using non-RTP-based media transport (e.g.,
        using SIP) in a VoIP session. One crucial factor lies in how to handle
        the different identities that correspond to these different media
        transport protocols.</t>

        <t>This memo recommends an approach to facilitate the correlation of
        the RTCP session with other session-related non-RTP data. That is to
        say, if there is a need to correlate RTP sessions with non-RTP
        sessions, then the correlation information needed should be conveyed
        in a new RTCP SDES item, since such correlation
        information describes the source rather than providing a quality
        report. An example use case is where a participant endpoint may
        convey a call identifier or a global call identifier associated with
        the SSRC of a measured RTP stream. In such a case, the
        participant endpoint uses the SSRC to bind the call identifier using
        the SDES item in the SDES RTCP packet and sends this correlation to
        the network management system. A flow measurement tool that is
        configured with the 5-tuple and is not call-aware then forwards
        the RTCP XRs along with the SSRC of the measured RTP stream, which
        is included in the XR Block header and 5-tuple to the network
        management system. The network management system can then
        correlate this report using SSRC with other diagnostic
        information, such as call detail records.</t>
      </section>

      <section title="Reduce Measurement Information Repetition across Metrics Blocks">
        <t>When multiple metrics blocks are carried in one RTCP XR packet,
        reporting on the same stream from the same source for the same time
        period, RTCP should use the SSRC to identify and correlate the
        multiple metrics blocks placed between Measurement Information Blocks;
        see "Measurement Identity and Information Reporting Using a Source
        Description (SDES) Item and an RTCP Extended Report (XR) Block" <xref
        target="RFC6776"></xref>. <xref target="RFC6776"></xref> enables an
        RTCP sender to convey the common time period and the number of
        packets sent during this period. If the measurement interval for
        a metric is different from the RTCP reporting interval, then this
        measurement duration in the Measurement Information Block should be
        used to specify the interval. When there may be multiple Measurement
        Information Blocks with the same SSRC in one RTCP XR compound packet,
        the Measurement Information Block should be put in order and
        followed by all the metrics blocks associated with this
        Measurement Information Block. New RTCP XR metrics blocks that rely
        on the Measurement Information Block
        must specify the response in case the new RTCP XR metrics block is
        received without an associated Measurement Information Block. In most
        cases, it is expected that the correct response is to discard the
        received metric. In order to reduce measurement information repetition
        in one RTCP XR compound packet containing multiple metrics blocks, the
        measurement information shall be sent before the related metrics blocks
        that are from the same reporting interval. Note that for packet loss
        robustness, if the report blocks for the same interval span more
        than one RTCP packet, then each block must have the measurement
        identity information sent together with itself in the same RTCP
        compound packet, even though the information will be the same.</t>
      </section>
    </section>

    <section anchor="example" title="An Example of a Metrics Block">
      <t>This section uses the example of an existing proposed metrics block
      to illustrate the application of the principles set out in <xref
      target="guide"></xref>.</t>

      <t>The example <xref target="RFC6798"></xref> is a block to convey
      information about packet delay variation (PDV) only, consistent with the
      principle that a metrics block should address only one parameter of
      interest. One simple metric of PDV is available in the RTCP RR packet as
      the "inter-arrival jitter" field. There are other PDV metrics with a
      certain similarity in metric structure that may be more useful to
      certain applications. Two such metrics are the IPDV metric (<xref
      target="Y1540"></xref> <xref target="RFC3393"></xref>) and the mean
      absolute packet delay variation 2 (MAPDV2) metric <xref
      target="G1020"></xref>. The use of these metrics is consistent with the
      principle in Section 5 of the RTCP guidelines document
      <xref target="RFC5968"></xref>
      that metrics should usually be defined elsewhere, so that RTCP standards
      define only the transport of the metric rather than its nature. The
      purpose of this section is to illustrate the architectural
      considerations, using the example of <xref target="RFC6798"></xref>,
      rather than to document the design of the PDV metrics block or to
      provide a tutorial on PDV in general.</t>

      <t>Given the availability of at least three metrics for PDV, there are
      design options for the allocation of metrics to RTCP XR blocks:</t>

      <t><list style="symbols">
          <t>Provide an RTCP XR block per metric.</t>

          <t>Provide a single RTCP XR block that contains all three
          metrics.</t>

          <t>Provide a single RTCP block to convey any one of the three
          metrics, together with an identifier to inform the receiving RTP
          system of the specific metric being conveyed.</t>
        </list></t>

      <t>In choosing between these options, extensibility is important,
      because additional metrics of PDV may well be standardized and require
      inclusion in this framework. The first option is extensible but only by
      the use of additional RTCP XR blocks, which may consume the limited
      namespace for RTCP XR blocks at an unacceptable rate. The second option
      is not extensible and so could be rejected on that basis, but in any
      case a single application is quite unlikely to require the transport
      of more than one metric for PDV. Hence, the third option was chosen.
      This implies the creation of a subsidiary namespace to enumerate the
      PDV metrics that may be transported by this block, as discussed further
      in <xref target="RFC6798"></xref>.</t>
    </section>

    <section anchor="topologies" title="Application to RFC 5117 Topologies">
      <t>The topologies specified in <xref target="RFC5117"></xref> fall into
      two categories. The first category relates to the RTP system model
      utilizing multicast and/or unicast. The topologies in this category are
      specifically Topo-Point-to-Point, Topo-Multicast, Topo-Translator (both
      variants Topo-Trn-Translator and Topo-Media-Translator as well as
      combinations of the two), and Topo-Mixer. These topologies use RTP end
      systems, RTP mixers, and RTP translators as defined in
      <xref target="RFC3550"></xref>. For the purposes of reporting connection
      quality to other RTP systems, RTP mixers and RTP end systems are very
      similar. Mixers resynchronize 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. In this category, the RTP system (end system, mixer, or
      translator) that originates, terminates, or forwards RTCP XR blocks is
      expected to handle RTCP, including RTCP XR, according to RTP
      <xref target="RFC3550"></xref>. Provided this expectation is
      met, an RTP system using RTCP XR is architecturally no different from an
      RTP system of the same class (end system, mixer, or translator) that
      does not use RTCP XR. The second category relates to deployed system
      models used in many H.323 <xref target="H323"></xref> videoconferences.
      The topologies in this category are Topo-Video-switch-MCU and
      Topo&nbhy;RTCP-terminating-MCU. Such topologies based on systems (e.g.,
      MCUs) do not behave according to RTP <xref target="RFC3550"></xref>.</t>

      <t>Considering that the translator and MCU are two typical
      intermediate systems in these two categories mentioned above, this
      document will take them as two typical examples to explain how RTCP XR
      works in different <xref target="RFC5117"/> topologies.</t>

      <section anchor="txlat" title="Applicability to Translators">
        <t>Section 7.2 of the RTP specification <xref target="RFC3550"></xref>
        describes the processing of RTCP by translators. RTCP XR is within the
        scope of the recommendations of <xref target="RFC3550"></xref>.
        Some RTCP XR metrics blocks may usefully be
        measured at, and reported by, translators. As described in
        <xref target="RFC3550"></xref>, this creates a requirement for
        the translator to allocate an SSRC for the monitor co-located with
        itself so that the monitor may populate the SSRC in the RTCP XR packet
        header as the packet sender SSRC and send it out
        (although the translator is not a synchronization source in the
        sense of originating RTP media packets). It must also supply this
        SSRC and the corresponding CNAME in RTCP SDES packets.</t>

        <t>In RTP sessions where one or more translators generate any RTCP
        traffic towards their next-neighbor RTP system, other translators in
        the session have a choice as to whether they forward a translator's
        RTCP packets. Forwarding may provide additional information to other
        RTP systems in the connection but increases RTCP bandwidth and may in
        some cases present a security risk. RTP translators may have
        forwarding behavior based on local policy, which might differ between
        different interfaces of the same translator.</t>
      </section>

      <section title="Applicability to MCUs">
        <t>Topo-Video-switch-MCU and Topo-RTCP-terminating-MCU suffer from
        the difficulties described in <xref target="RFC5117"></xref>. These
        difficulties apply to systems sending, and expecting to receive, RTCP
        XR blocks as much as to systems using other RTCP packet types. For
        example, a participant RTP end system may send media to a video switch
        MCU. If the media stream is not selected for forwarding by the switch,
        neither RTCP RR packets nor RTCP XR blocks referring to the end
        system's generated stream will be received at the RTP end system.
        Strictly speaking, the RTP end system can only conclude that its
        RTP has been lost in the network, though an RTP end system
        complying with the robustness principle of
        <xref target="RFC1122"></xref> should survive
        with essential functions (i.e., media distribution) unimpaired.</t>
      </section>
    </section>

    <section title="Security Considerations">
      <t>This document focuses on the RTCP reporting extension using RTCP XR
      and should not give rise to any new security vulnerabilities beyond
      those described in RTCP XRs <xref target="RFC3611"></xref>. However, it
      also describes the architectural framework to be used for monitoring at
      the RTP layer. The security issues with monitoring need to be
      considered.</t>

      <t>In RTP sessions, an RTP system may use its own SSRC to send its
      monitoring reports towards its next-neighbor RTP system. Other RTP
      systems in the session may have a choice as to whether they forward this
      RTP system's RTCP packets. This presents a security issue, since the
      information in the report may be exposed by the other RTP system to any
      malicious node. Therefore, if the information is considered sensitive,
      the monitoring reports should be secured to the same extent as the RTP
      flows that they measure. If encryption is used and the encrypted
      monitoring report is received by the RTP system that deploys the
      third-party monitor, the RTP system may decrypt the monitor report for
      the third-party monitor based on local policy (e.g., third-party
      monitors are allowed access to the metric) and forward it to the
      third-party monitor; otherwise, the third-party monitor should
      discard the received encrypted monitoring report.</t>
    </section>

    <section title="Acknowledgements">
      <t>The authors would like to thank Colin Perkins, Charles Eckel,
      Robert Sparks, Salvatore Loreto, Graeme Gibbs, Debbie Greenstreet, Keith
      Drage, Dan Romascanu, Ali C. Begen, Roni Even, Magnus Westerlund, Meral
      Shirazipour, Tina Tsou, Barry Leiba, Benoit Claise, Russ Housley, and
      Stephen Farrell for their valuable comments and suggestions on early
      versions of this document.</t>
    </section>
  </middle>

  <back>
    <references title="Informative References">

      &rfc1122;
      &rfc2959;
      &rfc3393;
      &rfc3550;
      &rfc3611;
      &rfc3954;
      &rfc4585;
      &rfc5101;
      &rfc5102;
      &rfc5117;
      &rfc5760;
      &rfc5968;
      &rfc6035;
      &rfc6390;
      &rfc6776;
      &rfc6798;

<!-- draft-ietf-xrblock-rtcp-xr-pdv (RFC 6798; PUB 11/2012;           
 listed above with other PUBed RFCs) -->

<!-- draft-ietf-xrblock-rtcp-xr-meas-identity (RFC 6776; PUB 10/2012;
 listed above with other PUBed RFCs) -->

<!-- draft-ietf-xrblock-rtcp-xr-qoe ("I-D Exists") -->
      <reference anchor="QOE_BLOCK">
        <front>
          <title>RTP Control Protocol (RTCP) Extended Report (XR) Blocks for
          QoE Metric Reporting</title>
          <author fullname="Alan Clark" initials="A." surname="Clark">
            <organization></organization>
          </author>
          <author fullname="Qin Wu" initials="Q." surname="Wu">
            <organization></organization>
          </author>
          <author fullname="Roland Schott" initials="R." surname="Schott">
            <organization></organization>
          </author>
          <author fullname="Glen Zorn" initials="G." surname="Zorn">
            <organization></organization>
          </author>
          <date month="October" year="2012" />
        </front>
        <seriesInfo name="Work in" value="Progress" />
      </reference>

      <reference anchor="G1020">
        <front>
          <title>Performance parameter definitions for
          quality of speech and other voiceband applications utilizing IP
          networks</title>
          <author>
            <organization>ITU-T</organization>
          </author>
          <date month="July" year="2006" />
        </front>
        <seriesInfo name="ITU-T" value="Rec. G.1020"/>
      </reference>

      <reference anchor="Y1540">
        <front>
          <title>IP packet transfer and availability
          performance parameters</title>
          <author fullname="" initials="" surname="">
            <organization>ITU-T</organization>
          </author>
          <date month="March" year="2011" />
        </front>
      <seriesInfo name="ITU-T" value="Rec. Y.1540"/>
      </reference>

      <reference anchor="H323">
        <front>
          <title>Packet-based multimedia communications systems</title>
          <author fullname="" initials="" surname="">
            <organization>ITU-T</organization>
          </author>
          <date month="December" year="2009" />
        </front>
      <seriesInfo name="ITU-T" value="Rec. H.323"/>
      </reference>
    </references>

  </back>
</rfc>
