AVTCORE WG                                                     J. Lennox
Internet-Draft                                                     Vidyo
Updates: 3550 (if approved)                                M. Westerlund
Intended status: Standards Track                                Ericsson                           M. Westerlund
Expires: July 17, August 18, 2014                                        Ericsson
                                                                   Q. Wu
                                                                  Huawei
                                                              C. Perkins
                                                   University of Glasgow
                                                        January 13,
                                                       February 14, 2014

 Sending Multiple Media Streams in a Single RTP Session: Grouping RTCP
                Reception Statistics and Other Feedback
          draft-ietf-avtcore-rtp-multi-stream-optimisation-01
          draft-ietf-avtcore-rtp-multi-stream-optimisation-02

Abstract

   RTP allows multiple media streams to be sent in a single session, but
   requires each Synchronisation Source (SSRC) to send RTCP reception
   quality reports for every other SSRC visible in the session.  This
   causes the number of RTCP reception reports to grow with the number
   of SSRCs, rather than the number of endpoints.  In many cases most of
   these RTCP reception reports are unnecessary, since all SSRCs of an
   endpoint are co-located and see the same reception quality.  This
   memo defines a Reporting Group extension to RTCP to reduce the
   reporting overhead in such scenarios.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   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."

   This Internet-Draft will expire on July 17, August 18, 2014.

Copyright Notice

   Copyright (c) 2014 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Grouping of  RTCP Reception Statistics and Other Feedback Reporting Groups . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Semantics and Behavior Behaviour of RTCP Reporting Groups  . . . . . . .   3
     3.2.  Determine the Report  Identifying Members of an RTCP Reporting Group  . . . . .   5
       3.2.1.  Definition and Use of the RTCP RGRP SDES Item . . . .   5
       3.2.2.  Definition and Use of the RTCP RGRS Packet  . . . . . .   4   6
     3.3.  RTCP Packet Reporting Group's Reporting Sources  Interactions with the RTP/AVPF Feedback Profile . . . . .   5   7
     3.4.  Interactions with RTCP Source Description (SDES) item for Reporting Groups    6 Extended Report (XR) Packets . . .   8
     3.5.  Middlebox Considerations  . . . . . . . . . . . . . . . .   6   9
     3.6.  SDP signaling Signalling for Reporting Groups . . . . . . . . . . .   6
     3.7.   9
   4.  Properties of RTCP Reporting Groups . . . . . . . . . . . . .   9
     4.1.  Bandwidth Benefits of RTCP Reporting Groups . . . . . . .   6
     3.8.  Consequences  10
     4.2.  Compatibility of RTCP Reporting Groups  . . . . . . . . . .   7
   4.  10
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   8
   5.  11
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   8
   6.  13
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   8
     6.1.  13
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .   8
     6.2.  13
     7.2.  Informative References  . . . . . . . . . . . . . . . . .   9  14
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   9  15

1.  Introduction

   The Real-time Transport Protocol (RTP) [RFC3550] is a protocol for
   group communication, supporting multiparty multimedia sessions.  A
   single RTP session can support multiple participants sending at once,
   and can also support participants sending multiple simultaneous media
   streams.  Examples of the latter might include a participant with
   multiple cameras who chooses to send multiple views of a scene, or a
   participant that sends audio and video flows multiplexed in a single
   RTP session.  Rules for handling RTP sessions containing multiple
   media streams are described in [RFC3550] with some clarifications in
   [I-D.ietf-avtcore-rtp-multi-stream].

   An RTP endpoint will have one or more synchronisation sources (SSRCs)
   that send and receive media streams (it streams.  It will have at least one SSRC for each
   media stream it sends). sends, and might use multiple SSRCs when using media
   scalability features [RFC6190], forward error correction, RTP
   retransmission [RFC4588], or similar mechanisms.  An endpoint that is
   not sending any media streams, will have at least one SSRC to use for
   reporting and any feedback messages.  Each SSRC has to send RTCP
   sender reports corresponding to the RTP packets it sends, and
   receiver reports for traffic it receives.  That is, every SSRC will
   send RTCP packets to report on every other SSRC.  This rule is
   simple, but can be quite inefficient for endpoints that send large
   numbers of media streams in a single RTP session.  Consider a session
   comprising ten participants, each sending three media streams with
   their own SSRC.  There will be 30 SSRCs in such an RTP session, and
   30 RTCP reception reports will be sent per reporting interval as each
   SSRC reports on all the others.  However, the three SSRCs comprising
   each participant will almost certainly see identical reception
   quality, since they are co-located.  If there was a way to indicate
   that several SSRCs are co-located, and see the same reception
   quality, then two-thirds of those RTCP reports could be suppressed.
   This would allow the remaining RTCP reports to be sent more often,
   while keeping within the same RTCP bandwidth fraction.

   This memo defines such an RTCP extension, RTCP Reporting Groups.
   This extension is used to indicate the SSRCs that originate from the
   same endpoint, and therefore have identical reception quality, hence
   allowing the endpoint endpoints to suppress unnecessary RTCP reception quality
   reports.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Grouping of  RTCP Reception Statistics and Other Feedback

3.1.  Semantics and Behavior of Reporting Groups

   An RTCP Reporting Group indicates that is a set of synchronization sources (SSRCs)
   that
   originate from are co-located at a single entity (endpoint endpoint (which could be an end host
   or a middlebox) in an RTP
   session, and therefore all the sources session.  Since they are co-located, every
   SSRC in the RTCP reporting group will have an identical view of the network.  If reporting groups are in use, two sources
   SHOULD be put into
   network conditions, and see the same reporting group if their view of the
   network is identical; i.e., if they lost packets, jitter, etc.  This
   allows a single representative to send RTCP reception quality reports
   on behalf of the rest of the reporting group, reducing the number of
   RTCP packets that need to be sent without loss of information.

3.1.  Semantics and Behaviour of RTCP Reporting Groups

   A group of co-located SSRCs that see identical network conditions can
   form an RTCP reporting group.  If reporting groups are in use, an RTP
   endpoint with multiple SSRCs MAY put those SSRCs into a reporting
   group if their view of the network is identical; i.e., if they report
   on traffic received at the same interface of an RTP endpoint.  Sources  SSRCs
   with different views of the network MUST NOT be put into the same
   reporting group.

   If reporting groups are in use, an

   An endpoint MUST NOT send reception
   reports from one source in a reporting group about another one in the
   same group ("self-reports").  Similarly, that has combined its SSRCs into an endpoint MUST NOT send
   reception reports about a remote media source from more than one
   source in a RTCP reporting group ("cross-reports").  Instead, it MUST pick
   will choose one (or a subset) of its local media sources those SSRCs as the "reporting" source a "reporting source"
   for each
   remote media source, and use it to that RTCP reporting group.  A reporting source will send RTCP SR/
   RR reception quality reports about that
   remote source; all on behalf of the other media sources in members of the
   RTCP reporting group
   MUST NOT send any reception reports about that remote media source.

   This group.  A reporting source MUST also be suppress the source for any RTP/AVPF
   Feedback [RFC4585] or Extended Report (XR) [RFC3611] packets about RTCP SR/
   RR reports that relate to other members of the corresponding reporting group, and
   only report on remote sources as well.  If a SSRCs.  The other members (non reporting source
   leaves the session (i.e., if it sends a BYE, or leaves
   sources) of the RTCP reporting group
   without sending BYE under the rules will suppress their RTCP
   reception quality reports, and instead send an RTCP RGRS packet (see
   Section 3.2.2) to indicate that they are part of [RFC3550] section 6.3.7),
   another an RTCP reporting source MUST be chosen if any members
   group and give the SSRCs of the reporting sources.

   If there are large numbers of remote SSRCs in the RTP session, then
   the reception quality reports generated by the reporting source might
   grow too large to fit into a single compound RTCP packet, forcing the
   reporting source to use a round-robin policy to determine what remote
   SSRCs it includes in each compound RTCP packet, and so reducing the
   frequency of reports on each SSRC.  To avoid this, in sessions with
   large numbers of remote SSRCs, an RTCP reporting group
   still exist.

   An endpoint or middlebox MAY use multiple sources more
   than one reporting source.  If several SSRCs are acting as reporting
   sources; however,
   sources for an RTCP reporting group, then each reporting source MUST
   have non-overlapping sets of remote SSRCs it reports on.  This is primarily to be done
   when the

   An endpoint SHOULD NOT create an RTCP reporting source's number of reception report blocks is so
   large group that it would be forced to round-robin around the sources.
   Thus, by splitting the reports among several reporting SSRCs, more
   consistent reporting can be achieved.

   If RTP/AVPF feedback is in use, comprises
   only a single local SSRC (i.e., an RTCP reporting group where the
   reporting source MAY send immediate
   or early feedback at any point when any is the only member of the reporting group
   could validly do so.

   An endpoint SHOULD NOT create single-source reporting groups, group), unless it is
   anticipated that the group might have additional sources SSRCs added to it in
   the future.

3.2.  Determine the Report Group

   A remote RTP entity, such as an endpoint or

   If a middlebox needs to be
   able to determine reporting source leaves the report group used by another RTP entity.  To
   achieve this goal two session (i.e., if it sends a
   RTCP extensions have been defined.  For BYE packet, or leaves the
   SSRCs that are reporting on behalf session without sending BYE under the
   rules of [RFC3550] section 6.3.7), the reporting group, an SDES
   item RGRP has been defined for providing remaining members of the report RTCP
   reporting group with an
   identifier.  For SSRCs that aren't MUST either (a) have another reporting source, if
   existing, report on any peer the remote SSRCs the leaving SSRC reported on,
   (b) choose a new reporting source, or (c) disband the RTCP packet type is defined. reporting
   group and begin sending reception quality reports following [RFC3550]
   and [I-D.ietf-avtcore-rtp-multi-stream].

   The RTCP timing rules assign different bandwidth fractions to senders
   and receivers.  This lets senders to transmit RTCP packet type "Reporting
   Sources" lists reception quality
   reports more often than receivers.  If a reporting source in an RTCP
   reporting group is a receiver, but one or more non-reporting SSRCs in
   the SSRC that RTCP reporting group are senders, then the endpoint MAY treat the
   reporting on this SSRC's behalf.

   This divided approach has been selected source as a sender for the following reasons:

   1.  To enable an explicit indication purpose of RTCP bandwidth
   allocation, increasing its RTCP bandwidth allocation, provided it
   also treats one of who reports on this SSRC's
       behalf.  Being explicit prevents the remote entity from detecting
       that is missing the reports senders as if there issues with it were a receiver and makes the reporting
       SSRC's
   corresponding reduction in RTCP packets.

   2.  To enable explicit identification of the SSRCs bandwidth for that are actively
       reporting as one entity.

3.3. SSRC.

3.2.  Identifying Members of an RTCP Packet Reporting Group's Reporting Sources

   This section defines a new Group

   When RTCP packet type called "Reporting Group's Reporting Sources" (RGRS).  It identifies Groups are in use, the SSRC(s) that report on
   behalf other SSRCs in the RTP
   session need to be able to identify which SSRCs are members of an
   RTCP reporting group.  Two RTCP extensions are defined to support
   this: the SSRC that RTCP RGRP SDES item is used by the sender of reporting source(s) to
   identify an RTCP reporting group, and the RTCP RGRS packet.

   This packet consists is used by
   other members of the fixed an RTCP packet header which indicates
   the packet type, reporting group to identify the number of reporting sources included
   source(s).

3.2.1.  Definition and Use of the
   SSRC which behalf the RTCP RGRP SDES Item

   A new RTCP SDES item is defined to identify an RTCP reporting SSRCs report on. group.
   This motivation for giving a reporting group an identify is followed by to ensure
   that the list of RTCP reporting group and its member SSRCs can be correctly
   associated when there are multiple reporting sources, and to ensure
   that a reporting SSRCs.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|    SC   | PT=RGRS(TBA)  |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   | SSRC of packet sender                     |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   : can be associated with the correct reporting
   group if an SSRC for Reporting Source                 :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ collision occurs.

   The RTCP Packets field has the following definition.

   version (V):  This field identifies the RTP version.  The current
      version Source Description (SDES) RGRP item is 2.

   padding (P):  1 bit If set, the padding bit indicates that the packet
      contains additional padding octets at the end that are not part of defined.  The RTCP
   SDES RGRP item MUST be sent by the control information but are included reporting sources in the length field.  See
      [RFC3550].

   Source Count (SC):  5 bits Indicating the number a reporting
   group, and MUST NOT be sent by other members of the reporting group
   or by SSRCs
      (1-31) that are included not members of any RTCP reporting group.
   Specifically, every reporting source in this an RTCP packet type.

   Payload type (PT):  8 bits This is the reporting group MUST
   include an RTCP SDES packet type that
      identifies the packet as being containing an RTCP FB message.  The RGRS RGRP item in every compound
   RTCP packet has the value [TBA].

   Length:  16 bits The length of this in which it sends an RR or SR packet (i.e., in 32-bit words minus one,
      including the header and any padding.  This every RTCP
   packet it sends, unless Reduced-Size RTCP [RFC5506] is in line with use).

   Syntactically, the
      definition format of the length field used in RTCP sender and receiver
      reports [RFC3550].

   SSRC SDES RGRP item is identical to
   that of packet sender:  32 bits. the RTCP SDES CNAME item [RFC7022].  The SSRC value of the sender of this
      packet which indicates which SSRCs that reports on its behalf,
      instead of reporting itself.

   SSRC for Reporting Source:  A variable number (as indicated by Source
      Count) of 32-bit SSRC values.  Each SSRC is an reporting SSRC
      belonging to RTCP
   SDES RGRP item MUST be chosen with the same Report Group.

   Each RGRS packet concerns about global
   uniqueness and the same privacy considerations as the RTCP SDES CNAME
   them.  The value of the RTCP SDES RGRP item MUST contain at least one reporting SSRC.  In case be stable throughout
   the reporting SSRC field is insufficient to list all lifetime of the SSRCs that
   are reporting in this report group, even if the some or all of the
   reporting sources change their SSRC SHALL round robin around due to collisions, or if the set
   of reporting sources.

   Any sources changes.

   An RTP mixer or translator which that forwards RTCP SR or RR packets from
   members of a reporting group MUST forward the corresponding RGRS RTCP
   packet SDES
   RGRP items as well.

3.4. well, even if it otherwise strips SDES items other than
   the CNAME item.

3.2.2.  Definition and Use of the RTCP Source Description (SDES) item for Reporting Groups RGRS Packet

   A new RTCP Source Description (SDES) item packet type is defined for to allow the purpose members of identifying reporting groups.

   The Source Description (SDES) item "RGRP" is sent by a an RTCP
   reporting
   group's group to identify the reporting SSRC.  Syntactically, its format is the same as the
   RTCP SDES CNAME item [RFC6222], and MUST be chosen with the same
   global-uniqueness and privacy considerations as CNAME. sources for that group.
   This name
   MUST be stable across the lifetime of the reporting group, even if
   the SSRC of a reporting source changes.

   Every source which belongs to a reporting group MUST either include
   an RGRP SDES item allows participants in an SDES packet (if RTP session to distinguish an SSRC
   that is sending empty RTCP reception reports because it is a reporting source), or member
   of an RGRS packet (if it is not), in every compound RTCP packet in which
   it sends reporting group, from an RR or SR packet (i.e., in every SSRC that is sending empty RTCP packet
   reception reports because it sends,
   unless Reduced-Size RTCP [RFC5506] is in use).

   Any not receiving any traffic.  It also
   explicitly identifies the reporting sources, allowing other members
   of the RTP mixer or translator session to know which forwards SR or RR SSRCs are acting as the reporting
   sources for an RTCP reporting group, and allowing them to detect if
   RTCP packets from
   members any of a reporting group MUST forward the corresponding RGRP SDES
   items as well, even if it otherwise strips SDES items other than
   CNAME.

3.5.  Middlebox Considerations

   This section discusses middlebox considerations for Reporting groups.

   To be expanded.

3.6.  SDP signaling for Reporting Groups

   TBD

3.7.  Bandwidth Benefits reporting sources are being lost.

   The format of the RTCP Reporting Groups
   To understand RGRS packet is defined below.  It comprises
   the benefits fixed RTCP header that indicates the packet type and length, the
   SSRC of the packet sender, and a list of reporting sources for the
   RTCP reporting groups, consider a
   scenario in group of which the two endpoints in a session each have packet sender is a hundred member.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |V=2|P|    SC   | PT=RGRS(TBA)  |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     SSRC of packet sender                     |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   :           List of SSRCs for the Reporting Source(s)           :
   :                              ...                              :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

   The fields in the RTCP RGRS packet have the following definition:

   version (V):  This field identifies the RTP version.  The current RTP
      version is 2.

   padding (P):  If set, the padding bit indicates that the RTCP packet
      contains additional padding octets at the end that are not part of
      the control information but are included in the length field.  See
      [RFC3550].

   Source Count (SC):  Indicates the number of reporting source SSRCs
      that are included in this RTCP packet.  As the RTCP RGRS packet
      MUST NOT be not sent by reporting sources, all the SSRCs in the
      list of reporting sources will be different from the SSRC of the
      packet sender.  Every RTCP RGRS packet MUST contain at least one
      reporting source SSRC.

   Payload type (PT):  The RTCP packet type number that identifies the
      packet as being an RTCP RGRS packet.  The RGRS RTCP packet has the
      value [TBA].

         Note to RFC Editor: please replace [TBA] here, and in the
         packet format diagram above, with the RTCP packet type that
         IANA assigns to the RTCP RGRS packet.

   Length:  The length of this packet in 32-bit words minus one,
      including the header and any padding.  This is in line with the
      definition of the length field used in RTCP sender and receiver
      reports [RFC3550].  Since all RTCP RGRS packets include at least
      one reporting source SSRC, the length will always be 2 or greater.

   SSRC of packet sender:  The SSRC of the sender of this packet.

   List of SSRCs for the Reporting Source(s):  A variable length size
      (as indicated by SC header field) of the 32 bit SSRC values of the
      reporting sources for the RTCP Reporting Group of which the packet
      sender is a member.

   Every source that belongs to an RTCP reporting group but is not a
   reporting source MUST include an RTCP RGRS packet in every compound
   RTCP packet in which it sends an RR or SR packet (i.e., in every RTCP
   packet it sends, unless Reduced-Size RTCP [RFC5506] is in use).  Each
   RTCP RGRS packet MUST contain the SSRC identifier of at least one
   reporting source.  If there are more reporting sources in an RTCP
   reporting group than can fit into an RTCP RGRS packet, the members of
   that reporting group MUST send the SSRCs of the reporting sources in
   a round-robin fashion in consecutive RTCP RGRS packets, such that all
   the SSRCs of the reporting sources are included over the course of
   several RTCP reporting intervals.

   An RTP mixer or translator that forwards RTCP SR or RR packets from
   members of a reporting group MUST also forward the corresponding RGRS
   RTCP packets.  If the RTP mixer or translator rewrites SSRC values of
   the packets it forwards, it MUST make the corresponding changes to
   the RTCP RGRS packets.

3.3.  Interactions with the RTP/AVPF Feedback Profile

   Use of the RTP/AVPF Feedback Profile [RFC4585] allows SSRCs to send
   rapid RTCP feedback requests and codec control messages.  If use of
   the RTP/AVPF profile has been negotiated in an RTP session, members
   of an RTCP reporting group can send rapid RTCP feedback and codec
   control messages following [RFC4585] and [RFC5104], as updated by
   Section 5.4 of [I-D.ietf-avtcore-rtp-multi-stream], and by the
   following considerations.

   The members of an RTCP reporting group will all see identical network
   conditions.  Accordingly, one might therefore think that it doesn't
   matter which SSRC in the reporting group sends the RTP/AVPF feedback
   or codec control messages.  There are, however, some cases where the
   sender of the feedback/codec control message has semantic importance,
   or when only a subset of the members of an RTCP reporting group might
   want to send RTP/AVPF feedback or a codec control message in response
   to a particular event.

   Each member of an RTCP reporting group SHOULD therefore send RTP/AVPF
   feedback/codec control messages independently of the other members of
   the reporting group, to respect the semantic meaning of the message
   sender.  The suppression rules of [RFC4585] will ensure that only a
   single copy of each feedback packet is (typically) generated, even if
   several members of a reporting group send the same feedback.  When an
   endpoint knows that several members of its RTCP reporting group will
   be sending identical feedback, and that the sender of the feedback is
   not semantically important, then that endpoint MAY choose to send all
   its feedback from the reporting source and deterministically suppress
   feedback packets generated by the other sources in the reporting
   group.

   It is important to note that the RTP/AVPF timing rules operate on a
   per-SSRC basis.  Using a single reporting source to send all feedback
   for a reporting group will hence limit the amount of feedback that
   can be sent to that which can be sent by one SSRC.  If this limit is
   a problem, then the reporting group can allow each of its members to
   send its own feedback, using its own SSRC.

   If the RTP/AVPF feedback messages or codec control requests are sent
   as compound RTCP packets, then those compound RTCP packets MUST
   include either an RTCP RGRS packet or an RTCP SDES RGRP item,
   depending on whether they are sent by the reporting source or a non-
   reporting source in the RTCP reporting group respectively.  The
   contents of non-compound RTCP feedback or codec control messages are
   not affected by the use of RTCP reporting groups.

3.4.  Interactions with RTCP Extended Report (XR) Packets

   When using RTCP Extended Reports (XR) [RFC3611] with RTCP reporting
   groups, it is RECOMMENDED that the reporting source is used to send
   the RTCP XR packets.  If multiple reporting sources are in use, the
   reporting source that sends the SR/RR packets that relate to a
   particular remote SSRC SHOULD send the RTCP XR reports about that
   SSRC.  This is motivated as one commonly combine the RTCP XR metrics
   with the regular report block to more fully understand the situation.
   Receiving these blocks in different compound packets reduces their
   value as the measuring intervals are not synchronized in those cases.

   Some RTCP XR report blocks are specific to particular types of media,
   so they are relevant to only some members of a reporting group.  Such
   XR reports MUST be sent by the source to which they are relevant, and
   MUST NOT be included in the common report sent by the reporting
   source.  This can mean that some sources send XR packets in a
   compound packet that contains an empty SR/RR packet and that the time
   period covered by the XR packet is different to that covered by the
   SR/RR packet.  If it is important that the XR packet and SR/RR packet
   cover the same time period, then that source SHOULD be removed from
   the RTCP reporting group, and sent standard RTCP packets.

3.5.  Middlebox Considerations

   This section discusses middlebox considerations for Reporting groups.

   (TBD: write this section)

3.6.  SDP Signalling for Reporting Groups

   This document defines the "a=rtcp-rgrp" Session Description Protocol
   (SDP) [RFC4566] attribute to indicate if the session participant is
   capable of supporting RTCP Reporting Groups for applications that use
   SDP for configuration of RTP sessions.  A participant that proposes
   the use of RTCP Reporting Groups SHALL itself support the reception
   of RTCP Reporting Groups.

   An offering client that wishes to use RTCP Reporting Groups MUST
   include the attribute "a=rtcp-rgrp" in the SDP offer.  If "a=rtcp-
   rgrp" is present in the offer SDP, the answerer that supports RTCP
   Reporting Groups and wishes to use it SHALL include the "a=rtcp-rgrp"
   attribute in the answer.

   In declarative usage of SDP, such as the Real Time Streaming Protocol
   (RTSP) [RFC2326] and the Session Announcement Protocol (SAP)
   [RFC2974], the presence of the attribute indicates that the session
   participant MAY use RTCP Reporting Groups in its RTCP transmissions.

4.  Properties of RTCP Reporting Groups

   This section provides additional information on what the resulting
   properties are with the design specified in Section 3.  The content
   of this section is non-normative.

4.1.  Bandwidth Benefits of RTCP Reporting Groups

   To understand the benefits of RTCP reporting groups, consider a
   scenario in which the two endpoints in a session each have a hundred
   sources, of which eight each are sending within any given reporting
   interval.

   For ease of analysis, we can make the simplifying approximation that
   the duration of the RTCP reporting interval is equal to the total
   size of the RTCP packets sent during an RTCP interval, divided by the
   RTCP bandwidth.  (This will be approximately true in scenarios where
   the bandwidth is not so high that the minimum RTCP interval is
   reached.)  For further simplification, we can assume RTCP senders are
   following the recommendations regarding Compound RTCP Packets in
   [I-D.ietf-avtcore-rtp-multi-stream]; thus, the per-packet transport-
   layer overhead will be small relative to the RTCP data.  Thus, only
   the actual RTCP data itself need be considered.

   In a report interval in this scenario, there will, as a baseline, be
   200 SDES packets, 184 RR packets, and 16 SR packets.  This amounts to
   approximately 6.5 kB of RTCP per report interval, assuming 16-byte
   CNAMEs and no other SDES information.

   Using the original [RFC3550] everyone-reports-on-every-sender
   feedback rules, each of the 184 receivers will send 16 report blocks,
   and each of the 16 senders will send 15.  This amounts to
   approximately 76 kB of report block traffic per interval; 92% of RTCP
   traffic consists of report blocks.

   If reporting groups are used, however, there is only 0.4 kB of
   reports per interval, with no loss of useful information.
   Additionally, there will be (assuming 16-byte RGRPs, and a single
   reporting source per reporting group) an additional 2.4 kB per cycle
   of RGRP SDES items and RGRS packets.  Put another way, the unmodified
   [RFC3550] reporting interval is approximately 8.9 times longer than
   if reporting groups are in use.

4.2.  Compatibility of RTCP Reporting Groups

   The RTCP traffic generated by receivers using RTCP Reporting Groups
   might appear, to observers unaware of these semantics, to be
   generated by receivers who are experiencing a network disconnection,
   as the non-reporting sources appear not to be receiving a given
   sender at all.

   This could be a potentially critical problem for such a sender using
   RTCP for congestion control, as such a sender might think that it is
   sending so much traffic that it is causing complete congestion
   collapse.

   However, such an interpretation of the session statistics would
   require a fairly sophisticated RTCP analysis.  Any receiver of RTCP
   statistics which eight each are sending within is just interested in information about itself needs
   to be prepared that any given reporting
   interval.

   For ease reception report might not contain
   information about a specific media source, because reception reports
   in large conferences can be round-robined.

   Thus, it is unclear to what extent such backward compatibility issues
   would actually cause trouble in practice.

5.  Security Considerations

   The security considerations of analysis, we [RFC3550] and
   [I-D.ietf-avtcore-rtp-multi-stream] apply.  If the RTP/AVPF profile
   is in use, then the security considerations of [RFC4585] (and
   [RFC5104], if used) also apply.  If RTCP XR is used, the security
   consideration of [RFC3611] and any XR report blocks used also apply.

   The RTCP SDES RGRP item is vulnerable to malicious modifications
   unless integrity protected is used.  A modification of this item's
   length field cause the parsing of the RTCP packet in which it is
   contained to fail.  Depending on the implementation, parsing of the
   full compound RTCP packet can also fail causing the whole packet to
   be discarded.  A modification to the value of this SDES item would
   make the simplifying approximation receiver of the report think that the duration sender of the report
   was a member of a different RTCP reporting group.  This will
   potentially create an inconsistency, when the RGRS reports the source
   as being in the same reporting group as another source with another
   reporting group identifier.  What impact on a receiver implementation
   such inconsistencies would have are difficult to fully predict.  One
   case is when congestion control or other adaptation mechanisms are
   used, an inconsistent report can result in a media sender to reduce
   its bit-rate.  However, a direct modification of the receiver report
   or a feedback message itself would be a more efficient attack, and
   equally costly to perform.

   The new RGRS RTCP Packet type is very simple.  The common RTCP packet
   type header shares the security risks with previous RTCP packet
   types.  Errors or modification of the RTCP reporting interval is equal length field can cause the full
   compound packet to fail header validation (see Appendix A.2 in
   [RFC3550]) resulting in the total
   size whole compound RTCP packet being
   discarded.  Modification of the RTCP packets sent during an RTCP interval, divided by SC or P fields would cause
   inconsistency when processing the RTCP bandwidth.  (This will be approximately true in scenarios where
   the bandwidth is not so high that packet, likely resulting it
   being classified as invalid.  A modification of the minimum RTCP interval is
   reached.)  For further simplification, we can assume RTCP senders are
   following PT field would
   cause the recommendations regarding Compound RTCP Packets in
   [I-D.ietf-avtcore-rtp-multi-stream]; thus, packet being interpreted under some other packet type's
   rules.  In such case the per-packet transport-
   layer overhead will result might be small relative more or less predictable but
   packet type specific.  Modification of the SSRC of packet sender
   would attribute this packet to another sender.  Resulting in a
   receiver believing the RTCP data.  Thus, only reporting group applies also for this SSRC, if
   it exists.  If it doesn't exist, unless also corresponding
   modifications are done on a SR/RR packet and a SDES packet the actual RTCP data itself need
   packet SHOULD be considered.

   In discarded.  If consistent changes are done, that
   could be part of a report interval in this scenario, there will, as resource exhaustion attack on a baseline, be
   200 SDES packets, 184 RR packets, and 16 SR packets.  This amounts to
   approximately 6.5 kB receiver
   implementation.  Modification of RTCP per report interval, assuming 16-byte
   CNAMEs and no other SDES information.

   Using the original [RFC3550] everyone-reports-on-every-sender
   feedback rules, each "List of SSRCs for the 184 receivers will send 16 report blocks,
   and each of Reporting
   Source(s)" would change the 16 senders will send 15.  This amounts SSRC the receiver expect to
   approximately 76 kB of report block traffic per interval; 92% of RTCP
   traffic consists on
   behalf of report blocks. this SSRC.  If that SSRC exist, that could potentially
   change the report group used for this SSRC.  A change to another
   reporting groups are used, however, there group belonging to another endpoint is only 0.4 kB of
   reports per interval, with no loss of useful information.
   Additionally, likely detectable as
   there will would be (assuming 16-byte RGRPs, and a single
   reporting source per reporting group) an additional 2.4 kB per cycle mismatch between the SSRC of RGRP the packet sender's
   endpoint information, transport addresses, SDES items CNAME etc and RGRS packets.  Put another way, the unmodified
   [RFC3550]
   corresponding information from the reporting interval is approximately 8.9 times longer than
   if group indicated.

   In general the reporting groups are in use.

3.8.  Consequences of RTCP Reporting Groups group is providing limited impacts attacks.
   The RTCP traffic generated by receivers using RTCP Reporting Groups
   might appear, most significant result from an deliberate attack would be to observers unaware of these semantics,
   cause the information to be
   generated by receivers who discarded or be inconsistent, including
   discard of all RTCP packets that are experiencing modified.  This causes a network disconnection,
   as lack of
   information at any receiver entity, possibly disregarding the non-reporting sources appear not to
   endpoints participation in the session.

   To protect against this type of attacks from external non trusted
   entities, integrity and source authentication SHOULD be receiving a given
   sender at all. applied.
   This could can be a potentially critical problem done, for such a sender example, by using
   RTCP for congestion control, SRTP [RFC3711] with
   appropriate key-management, other options exist as discussed in RTP
   Security Options [I-D.ietf-avtcore-rtp-security-options].

   The Report Group Identifier has a potential privacy impacting
   properties.  If this would be generated by an implementation in such
   a sender might think way that is long term stable or predictable, it could be used for
   tracking a particular end-point.  Therefore it is
   sending so much traffic RECOMMENDED that it is causing complete congestion
   collapse.

   However, such an interpretation
   be generated as a short-term persistent RGRP, following the rules for
   short-term persistent CNAMEs in [RFC7022].  The rest of the
   information revealed, i.e.  the SSRCs, the size of reporting group
   and the number of reporting sources in a reporting group is of less
   sensitive nature, considering that the session statistics SSRCs and the communication
   would
   require a fairly sophisticated RTCP analysis.  Any receiver of RTCP
   statistics which is just interested in information about itself needs
   to anyway be prepared that any given reception revealed without this extension.  By encrypting the
   report might not contain
   information about a specific media source, because reception reports
   in large conferences group extensions the SSRC values would preserved confidential,
   but can still be round-robined.

   Thus, it revealed if SRTP [RFC3711] is unclear to what extent such backward compatibility issues
   would actually cause trouble in practice.

4.  Security Considerations used.  The security considerations size of [RFC3550] the
   reporting groups and
   [I-D.ietf-avtcore-rtp-multi-stream] apply.

   (tbd: any security considerations due number of reporting sources are likely
   determinable from analysis of the packet pattern and sizes.  However,
   this information appears to these extensions?)

5. have limited value.

6.  IANA Considerations

   (Note to the RFC-Editor: please replace "TBA" with the IANA-assigned
   value, and "XXXX" with the number of this document, prior to
   publication as an RFC.)

   The IANA is requested to register one new RTCP SDES items in the
   "RTCP SDES Item Types" registry, as follows:

   Value    Abbrev      Name                         Reference
   TBA      RGRP        Reporting Group Identifier   [RFCXXXX]

           Figure 1: Item for the IANA Source Attribute Registry

   The IANA is also requested to register one new RTCP packet type as
   follows:

   Value    Abbrev      Name                                Reference
   TBA      RGRR      RGRS        Reporting Group Reporting Sources   [RFCXXXX]

    Figure 2: Item for the IANA RTCP Control Packet Types (PT) Registry

6.

   The IANA is also request to register one new SDP attribute "a=rtcp-
   rgrp":

   SDP Attribute ("att-field"):
        Attribute name:     rtcp-rgrp
        Long form:          RTCP Reporting Groups
        Type of name:       att-field
        Type of attribute:  Media or session level
        Subject to charset: No
        Purpose:            Negotiate or configure the usage of the RTCP
                            Reporting Group Extension.
        Reference:          [RFCXXXX]
        Values:             See [RFCXXXX]

7.  References

6.1.

7.1.  Normative References

   [I-D.ietf-avtcore-rtp-multi-stream]
              Lennox, J., Westerlund, M., Wu, W., and C. Perkins,
              "Sending Multiple Media Streams in a Single RTP Session",
              draft-ietf-avtcore-rtp-multi-stream-02 (work in progress),
              January 2014.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, July 2003.

   [RFC6222]

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC7022]  Begen, A., Perkins, C., and D. Wing, D., and E. Rescorla,
              "Guidelines for Choosing RTP Control Protocol (RTCP)
              Canonical Names (CNAMEs)", RFC 6222, April 2011.

6.2. 7022, September 2013.

7.2.  Informative References

   [I-D.ietf-avtcore-rtp-multi-stream]
              Lennox, J.,

   [I-D.ietf-avtcore-rtp-security-options]
              Westerlund, M., Wu, W., M. and C. Perkins,
              "Sending Multiple Media Streams in a Single "Options for Securing RTP Session",
              draft-ietf-avtcore-rtp-multi-stream-01
              Sessions", draft-ietf-avtcore-rtp-security-options-10
              (work in progress),
              July 2013. January 2014.

   [RFC2326]  Schulzrinne, H., Rao, A., and R. Lanphier, "Real Time
              Streaming Protocol (RTSP)", RFC 2326, April 1998.

   [RFC2974]  Handley, M., Perkins, C., and E. Whelan, "Session
              Announcement Protocol", RFC 2974, October 2000.

   [RFC3611]  Friedman, T., Caceres, R., and A. Clark, "RTP Control
              Protocol Extended Reports (RTCP XR)", RFC 3611, November
              2003.

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, March 2004.

   [RFC4585]  Ott, J., Wenger, S., Sato, N., Burmeister, C., and J. Rey,
              "Extended RTP Profile for Real-time Transport Control
              Protocol (RTCP)-Based Feedback (RTP/AVPF)", RFC 4585, July
              2006.

   [RFC4588]  Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
              Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
              July 2006.

   [RFC5104]  Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
              "Codec Control Messages in the RTP Audio-Visual Profile
              with Feedback (AVPF)", RFC 5104, February 2008.

   [RFC5506]  Johansson, I. and M. Westerlund, "Support for Reduced-Size
              Real-Time Transport Control Protocol (RTCP): Opportunities
              and Consequences", RFC 5506, April 2009.

   [RFC6190]  Wenger, S., Wang, Y.-K., Schierl, T., and A.
              Eleftheriadis, "RTP Payload Format for Scalable Video
              Coding", RFC 6190, May 2011.

Authors' Addresses

   Jonathan Lennox
   Vidyo, Inc.
   433 Hackensack Avenue
   Seventh Floor
   Hackensack, NJ  07601
   US

   Email: jonathan@vidyo.com

   Magnus Westerlund
   Ericsson
   Farogatan 6
   SE-164 80 Kista
   Sweden

   Phone: +46 10 714 82 87
   Email: magnus.westerlund@ericsson.com

   Qin Wu
   Huawei
   101 Software Avenue, Yuhua District
   Nanjing, Jiangsu 210012
   China

   Email: sunseawq@huawei.com

   Colin Perkins
   University of Glasgow
   School of Computing Science
   Glasgow  G12 8QQ
   United Kingdom

   Email: csp@csperkins.org