AVTCORE WG

Internet Engineering Task Force (IETF)                         J. Lennox
Internet-Draft                                                     Vidyo
Intended status:
Request for Comments: 8861                                   8x8 / Jitsi
Category: Standards Track                                  M. Westerlund
Expires: September 3, 2016
ISSN: 2070-1721                                                 Ericsson
                                                                   Q. Wu
                                                                  Huawei
                                                              C. Perkins
                                                   University of Glasgow
                                                           March 2, 2016
                                                            January 2021

   Sending Multiple RTP Streams in a Single RTP Session: Grouping RTCP RTP
    Control Protocol (RTCP) Reception Statistics and Other Feedback
          draft-ietf-avtcore-rtp-multi-stream-optimisation-12

Abstract

   RTP allows multiple RTP streams to be sent in a single session, session but
   requires each Synchronisation Synchronization Source (SSRC) to send RTCP RTP Control
   Protocol (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 cases, most of these RTCP reception reports are
   unnecessary, since all SSRCs of an endpoint are normally 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 an Internet Standards Track document.

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

   Internet-Drafts are draft documents valid the IETF community.  It has
   received public review and has been approved for a maximum publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of six months RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be updated, replaced, or obsoleted by other documents obtained 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 September 3, 2016.
   https://www.rfc-editor.org/info/rfc8861.

Copyright Notice

   Copyright (c) 2016 2021 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)
   (https://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.  RTCP Reporting Groups . . . . . . . . . . . . . . . . . . . .   3
     3.1.  Semantics and Behaviour Behavior of RTCP Reporting Groups  . . . .   4
     3.2.  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  . . . . .   6
     3.3.  Interactions with the RTP/AVPF Feedback Profile . . . . .   8
     3.4.  Interactions with RTCP Extended Report (XR) Packets . . .   9
     3.5.  Middlebox Considerations  . . . . . . . . . . . . . . . .   9
     3.6.  SDP Signalling Signaling for Reporting Groups . . . . . . . . . . .  10
   4.  Properties of RTCP Reporting Groups . . . . . . . . . . . . .  12
     4.1.  Bandwidth Benefits of RTCP Reporting Groups . . . . . . .  12
     4.2.  Compatibility of RTCP Reporting Groups  . . . . . . . . .  13
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .  13
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  15
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  16
     7.1.  Normative References  . . . . . . . . . . . . . . . . . .  16
     7.2.  Informative References  . . . . . . . . . . . . . . . . .  16
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  18

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 data at once,
   once and can also support participants sending multiple simultaneous
   RTP 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 RTP
   streams are described in [RFC3550] [RFC3550], with some clarifications in
   [I-D.ietf-avtcore-rtp-multi-stream].
   [RFC8108].

   An RTP endpoint will have one or more synchronisation sources Synchronization Sources
   (SSRCs).  It will have at least one RTP Stream, stream, and thus at least one
   SSRC, for each media source it sends, and it might use multiple SSRCs
   per media source when using media scalability features [RFC6190],
   forward error correction, RTP retransmission [RFC4588], or similar
   mechanisms.  An endpoint that is not sending any RTP stream, streams will
   have at least one SSRC to use for reporting and any feedback
   messages.  Each SSRC has to send RTCP sender reports RTP Control Protocol (RTCP) Sender
   Reports (SRs) corresponding to the RTP packets it
   sends, sends and receiver reports Receiver
   Reports (RRs) for traffic it receives.  (SRs and RRs are described in
   [RFC3550].)  That is, every SSRC will send RTCP packets to report on
   every other SSRC.  This rule is simple, but it can be quite
   inefficient for endpoints that send large numbers of RTP streams in a
   single RTP session.  Consider a session comprising ten participants,
   each sending three media sources, each media source associated with their
   its own RTP stream.  There will be 30 SSRCs in such an RTP session,
   and each of those 30 SSRCs will send an RTCP Sender Report/
   Receiver Report SR/RR packet (containing
   several report blocks) per reporting interval as each SSRC reports on
   all the others.  However, the three SSRCs comprising each participant
   are commonly co-located such that they see identical reception
   quality.  If there was a way to indicate that several SSRCs are co-located, 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, extension: RTCP Reporting Groups.
   This extension is used to indicate the SSRCs that originate from the
   same endpoint, endpoint and therefore have identical reception quality, hence
   allowing the endpoints to suppress unnecessary RTCP reception quality
   reports.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  RTCP Reporting Groups

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

3.1.  Semantics and Behaviour Behavior of RTCP Reporting Groups

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

   An endpoint that has combined its SSRCs into an RTCP reporting group Reporting Group
   will choose one (or a subset) of those SSRCs to act as "reporting
   source(s)" for that RTCP reporting group. Reporting Group.  A reporting source will
   send RTCP SR/RR reception quality reports on behalf of the other
   members of the RTCP reporting group. Reporting Group.  A reporting source MUST
   suppress the RTCP SR/RR reports that relate to other members of the
   reporting group,
   Reporting Group and only report on remote SSRCs.  The other members
   (non reporting
   (non-reporting sources) of the RTCP reporting group Reporting Group will suppress
   their RTCP reception quality reports, reports and will instead send an RTCP RGRS
   Reporting Group Reporting Sources (RGRS) packet (see Section 3.2.2)
   to indicate that they are part of an RTCP
   reporting group Reporting 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 Reporting Group MAY use more
   than one reporting source.  If several SSRCs are acting as reporting
   sources for an RTCP reporting group, Reporting Group, then each reporting source MUST
   have non-overlapping sets of remote SSRCs it reports on.

   An endpoint MUST NOT create an RTCP reporting group Reporting Group that comprises
   only a single local SSRC (i.e., an RTCP reporting group Reporting Group where the
   reporting source is the only member of the group), unless it is
   anticipated that the group might have additional SSRCs added to it in
   the future.

   If a reporting source leaves the RTP session (i.e., if it sends a an
   RTCP BYE packet, packet or it leaves the session without sending a BYE under
   according to the rules of [RFC3550] section [RFC3550], Section 6.3.7), the remaining
   members of the RTCP
   reporting group Reporting Group MUST either (a) have another reporting source,
   source -- if one
   exists, exists -- report on the remote SSRCs that the
   leaving SSRC had reported on, (b) choose a new reporting source, or
   (c) disband the RTCP reporting
   group Reporting Group and begin sending reception
   quality reports following per [RFC3550] and [I-D.ietf-avtcore-rtp-multi-stream]. [RFC8108].

   The RTCP timing rules assign different bandwidth fractions to senders
   and receivers.  This lets senders transmit RTCP reception quality
   reports more often than receivers.  If a reporting source in an RTCP
   reporting group
   Reporting Group is a receiver, receiver but one or more non-reporting SSRCs in
   the RTCP reporting group Reporting Group are senders, then the endpoint MAY treat the
   reporting source as a sender for the purpose of RTCP bandwidth
   allocation, increasing its RTCP bandwidth allocation, provided it
   also treats one of the senders as if it were a receiver and makes the
   corresponding reduction in RTCP bandwidth for that SSRC.  However,
   the application needs to consider the impact on the frequency of
   transmitting of the synchronization information included in RTCP
   Sender Reports. SRs.

3.2.  Identifying Members of an RTCP Reporting Group

   When RTCP Reporting Groups are in use, the other SSRCs in the RTP
   session need to be able to identify which SSRCs are members of an
   RTCP reporting group. Reporting Group.  Two RTCP extensions are defined to support
   this: the RTCP RGRP SDES Reporting Group (RGRP) Source Description (SDES) item
   is used by the reporting source(s) to identify an RTCP reporting group, Reporting
   Group, and the RTCP RGRS packet is used by other members of an RTCP reporting group
   Reporting Group to identify the reporting source(s).

3.2.1.  Definition and Use of the RTCP RGRP SDES Item

   This document defines a new RTCP RGRP SDES item to identify an RTCP
   reporting group.
   Reporting Group.  The motivation for giving a reporting group Reporting Group an
   identify
   identifier is to ensure that (1) the RTCP reporting group Reporting Group and its
   member SSRCs can be correctly associated when there are multiple
   reporting
   sources, sources and to ensure that (2) a reporting SSRC can be associated with the
   correct reporting group Reporting Group if an SSRC collision occurs.

   This document defines the RTCP Source Description (SDES) RGRP SDES item.  The RTCP SDES RGRP SDES
   item MUST be sent by the reporting sources in a
   reporting group, Reporting Group and
   MUST NOT be sent by other members of the
   reporting group Reporting Group or by SSRCs
   that are not members of any RTCP
   reporting group. Reporting Group.  Specifically,
   every reporting source in an RTCP
   reporting group Reporting Group MUST include an
   RTCP SDES packet containing an RGRP item 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).

   Syntactically, the format of the RTCP SDES RGRP SDES item is identical to
   that of the RTCP SDES CNAME item [RFC7022], except that the SDES item
   type field MUST have value RGRP=(TBA) RGRP=11 instead of CNAME=1.  The value of
   the RTCP SDES RGRP SDES item MUST be chosen with the same concerns about
   global uniqueness and the same privacy considerations as the RTCP
   SDES CNAME.  The value of the RTCP SDES RGRP SDES item MUST be stable
   throughout the lifetime of the reporting group, Reporting Group, even if some or all
   of the reporting sources change their SSRC due to collisions, collisions or if
   the set of reporting sources changes.

      Note to RFC Editor: please replace (TBA) in the above paragraph
      with the RTCP SDES item type number assigned to the RGRP item,
      then delete this note.

   An RTP mixer or translator that forwards RTCP SR or RR packets from
   members of a reporting group Reporting Group MUST forward the corresponding RTCP SDES RGRP
   SDES items as well, even if it otherwise strips SDES items other than
   the CNAME item.

3.2.2.  Definition and Use of the RTCP RGRS Packet

   A new RTCP packet type is defined to allow the members of an RTCP
   reporting group
   Reporting Group to identify the reporting sources for that group.
   This allows participants in an RTP session to distinguish an SSRC
   that is sending empty RTCP reception reports because it is a member
   of an RTCP reporting group, Reporting Group from an SSRC that is sending empty RTCP
   reception reports because it is not receiving any traffic.  It also
   explicitly identifies the reporting sources, allowing other members
   of the RTP session to (1) know which SSRCs are acting as the
   reporting sources for an RTCP reporting group, Reporting Group and allowing them to (2) detect if RTCP
   packets from any of the reporting sources are being lost.

   The format of the RTCP RGRS packet is defined below.  It comprises
   the 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 group Reporting Group of which the packet sender is a 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) PT=RGRS(212)  |             length            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     SSRC of packet sender                     |
   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
   :          List of SSRC(s) for the Reporting Source(s)          :
   :                              ...                              :
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

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

   version (V):  2 bits  2-bit unsigned integer.  This field identifies the RTP
      version.  The current RTP version is 2.

   padding (P):  1 bit.  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):  5 bits  5-bit unsigned integer.  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):  8 bits  8-bit unsigned integer.  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. 212.

   Length:  16 bits  16-bit unsigned integer.  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 SRs and receiver reports RRs [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:  32 bits.  The SSRC of the sender of this
      packet.

   List of SSRCs for the Reporting Source(s):  A variable length size number (as
      indicated by the SC header field) of the 32 bit 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 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
   Reporting Group than can fit into an RTCP RGRS packet, the members of
   that reporting group 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 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

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

   The members of an RTCP reporting group Reporting Group will all see identical network
   conditions.  Accordingly, one might therefore think that it doesn't
   matter which SSRC in the reporting group Reporting Group sends the RTP/AVPF feedback
   or codec control messages.  There might be, however, 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 Reporting Group might
   want to send RTP/AVPF feedback or a codec control message in response
   to a particular event.  For example, an RTP video sender might choose
   to treat packet loss feedback received from SSRCs known to be audio
   receivers with less urgency than feedback that it receives from video
   receivers when deciding what packets to retransmit, and a multimedia
   receiver using reporting groups Reporting Groups might want to choose the outgoing
   SSRC for feedback packets to reflect this.

   Each member of an RTCP reporting group Reporting Group SHOULD therefore send RTP/AVPF
   feedback/codec control messages independently of the other members of
   the reporting group, 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 Reporting Group send the same feedback.  When an
   endpoint knows that several members of its RTCP reporting group Reporting Group will
   be sending identical feedback, 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. 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 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 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 SDES item,
   depending on whether they are sent by the reporting source or a non-
   reporting
   non-reporting source in the RTCP reporting group Reporting Group, respectively.  The
   contents of non-compound noncompound RTCP feedback or codec control messages are
   not affected by the use of RTCP reporting groups. Reporting Groups.

3.4.  Interactions with RTCP Extended Report (XR) Packets

   When using RTCP Extended Reports Report (XR) packets [RFC3611] with RTCP reporting
   groups,
   Reporting Groups, it is RECOMMENDED that the reporting source is be 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
   value, as the measuring intervals are not synchronized in those
   cases.

   Some RTCP XR report blocks are specific to particular types of media, media
   and might be relevant to only some members of a reporting group. Reporting Group.  For
   example, it would make no sense for an SSRC that is receiving video
   to send a VoIP Voice over IP (VoIP) metric RTCP XR report block.  Such media specific
   media-specific RTCP XR report blocks MUST be sent by the SSRC to
   which they are relevant, relevant and MUST NOT be included in the common report
   sent by the reporting source.  This might mean that some SSRCs send
   RTCP XR packets in compound RTCP packets that contain an empty RTCP
   SR/RR packet, packet and that the time period covered by the RTCP XR packet
   is different to from that covered by the RTCP SR/RR packet.  If it is
   important that the RTCP XR packet and RTCP SR/RR packet cover the
   same time period, then that source SHOULD be removed from the RTCP reporting group,
   Reporting Group, and send standard RTCP packets be sent instead.

3.5.  Middlebox Considerations

   Many different types of middlebox middleboxes are used with RTP.  RTCP reporting
   groups
   Reporting Groups are potentially relevant to those types of RTP middlebox
   middleboxes that have their own SSRCs and generate RTCP reports for
   the traffic they receive.  RTP middleboxes that do not have their own SSRC,
   SSRC and that
   don't do not send RTCP reports on the traffic they receive, receive
   cannot use the RTCP reporting groups Reporting Group extension, since they generate no
   RTCP reports to that group.

   An RTP middlebox that has several SSRCs of its own can use the RTCP
   reporting groups
   Reporting Group extension to group the RTCP reports it generates.
   This can occur, for example, if a middlebox is acting as an RTP mixer
   for both audio and video flows that are multiplexed onto a single RTP
   session, where the middlebox has one SSRC for the audio mixer and one
   for the video mixer part, and when the middlebox wants to avoid cross
   reporting
   cross-reporting between audio and video.

   A middlebox cannot use the RTCP reporting groups Reporting Group extension to group
   RTCP packets from the SSRCs that it is forwarding.  It can, however,
   group the RTCP packets from the SSRCs it is forwarding into compound
   RTCP packets packets, following the rules in Section 6.1 of [RFC3550] and
   Section 5.3 of [I-D.ietf-avtcore-rtp-multi-stream]. [RFC8108].  If the middlebox is using RTCP reporting groups Reporting
   Groups for its own SSRCs, it MAY include RTCP packets from the SSRCs
   that it is forwarding as part of the compound RTCP packets its
   reporting source generates.

   A middlebox that forwards RTCP SR or RR packets sent by members of a
   reporting group
   Reporting Group MUST forward the corresponding RTCP SDES RGRP SDES items,
   as described in Section 3.2.1.  A middlebox that forwards RTCP SR or
   RR packets sent by member members of a reporting group Reporting Group MUST also forward the
   corresponding RTCP RGRS packets, as described in Section 3.2.2.
   Failure to forward these packets can cause compatibility problems, as
   described in Section 4.2.

   If a middlebox rewrites SSRC values in the RTP and RTCP packets that
   it is forwarding, then it MUST make the corresponding changes in RTCP
   SDES packets containing RGRP items and in RTCP RGRS packets, to allow
   them to be associated with the rewritten SSRCs.

3.6.  SDP Signalling Signaling 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.  It is a property attribute, attribute
   and hence takes no value.  The multiplexing category
   [I-D.ietf-mmusic-sdp-mux-attributes] [RFC8859] is
   IDENTICAL, as the functionality applies on at the RTP session level.  A
   participant that proposes the use of RTCP Reporting Groups SHALL
   itself support the reception of RTCP Reporting Groups.  The formal
   definition of this attribute is: is as follows:

      Name:  rtcp-rgrp
      Value:  None
      Usage Level:  session, media
      Charset Dependent:  no
      Example:  a=rtcp-rgrp

   When using SDP Offer/Answer [RFC3264], the following procedures are
   to be used:

   o

   Generating the initial SDP offer:
      If the offerer supports the RTCP
      reporting group extensions, Reporting Group extensions and is
      willing to accept RTCP packets containing those extensions, then
      it MUST include an "a=rtcp-rgrp" attribute in the initial offer.
      If the offerer does not support RTCP reporting groups extensions, Reporting Group extensions or
      is not willing to accept RTCP packets containing those extensions,
      then it MUST NOT include the "a=rtcp-rgrp" attribute in the offer.

   o

   Generating the SDP answer:
      If the SDP offer contains an "a=rtcp-
      rgrp" "a=rtcp-rgrp" attribute, and if the
      answerer supports RTCP reporting
      groups Reporting Groups and is willing to receive
      RTCP packets using the RTCP
      reporting groups Reporting Group extensions, then the
      answerer MAY include an "a=rtcp-rgrp" attribute in the answer and
      MAY send RTCP packets containing the RTCP reporting groups Reporting Group
      extensions.  If the offer does not contain an "a=rtcp-rgrp"
      attribute, or if the offer does contain such an attribute but the
      answerer does not wish to accept RTCP packets using the RTCP reporting groups
      Reporting Group extensions, then the answer MUST NOT include an
      "a=rtcp-rgrp" attribute.

   o

   Offerer Processing processing of the SDP Answer: answer:
      If the SDP answer contains an "a=rtcp-rgrp" attribute, attribute and the
      corresponding offer also contained an "a=rtcp-rgrp" attribute,
      then the offerer MUST be prepared to accept and process RTCP
      packets that contain the
      reporting groups extension, Reporting Group extensions and MAY send
      RTCP packets that contain the reporting groups extension. Reporting Group extensions.  If the
      SDP answer contains an "a=rtcp-rgrp" attribute, attribute but the
      corresponding offer did not contain the "a=rtcp-rgrp" attribute,
      then the offerer MUST reject the call.  If the SDP answer does not
      contain an "a=rtcp-rgrp" attribute, then the offerer MUST NOT send
      packets containing the RTCP reporting groups extensions, Reporting Group extensions and does
      not need to process
      packet packets containing the RTCP reporting groups Reporting Group
      extensions.

   In declarative usage of SDP, such as the Real Time Real-Time Streaming Protocol
   (RTSP) [RFC2326] [RFC7826] 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.
   An implementation that doesn't explicitly support RTCP Reporting
   Groups MAY join a an RTP session as long as it has been verified that
   the implementation doesn't suffer from the problems discussed in
   Section 4.2.

4.  Properties of RTCP Reporting Groups

   This section provides additional information on what the resulting
   properties are with (i.e., resulting effects or impacts) as related to the
   design specified in Section 3.  The content of this section is non-normative. non-
   normative.

4.1.  Bandwidth Benefits of RTCP Reporting Groups

   To understand the benefits of RTCP reporting groups, 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  To further simplification, simplify, we can assume that RTCP senders are
   following the recommendations regarding Compound compound RTCP Packets packets in
   [I-D.ietf-avtcore-rtp-multi-stream];
   [RFC8108]; thus, the per-packet transport-
   layer 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 KB of RTCP packets per report interval, assuming
   16-byte CNAMEs and no other SDES information.

   Using the original [RFC3550] everyone-reports-on-every-sender "everyone reports on every sender" feedback rules, rules
   [RFC3550], 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 KB of report block traffic per interval; 92% of RTCP traffic
   consists of report blocks.

   If reporting groups Reporting Groups are used, however, there is only 0.4 kB KB of
   reports per interval, with no loss of useful information.
   Additionally, there will be (assuming 16-byte RGRPs, RGRPs and a single
   reporting source per reporting group) Reporting Group) an additional 2.4 kB KB per cycle
   of RTCP RGRP SDES items and RGRS packets.  Put another way, the
   unmodified
   [RFC3550] reporting interval per [RFC3550] is approximately 9 times
   longer than if
   reporting groups 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 that is just interested in information about itself needs
   to be prepared for the possibility that any given 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 the extent to which such backward compatibility backward-compatibility issues would
   actually cause trouble in practice. practice is unclear.

5.  Security Considerations

   The security considerations of [RFC3550] and
   [I-D.ietf-avtcore-rtp-multi-stream] [RFC8108] 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 considerations of [RFC3611] and [RFC3611], including security
   considerations regarding any XR report blocks used used, also apply.

   The RTCP SDES RGRP SDES item is vulnerable to malicious modifications
   unless integrity protected protection is used.  A modification of this item's
   length field cause causes 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 fail, causing the whole packet to
   be discarded.  A modification to of the value of this SDES item would
   make the receiver of the report think that the sender of the report
   was a member of a different RTCP reporting group. Reporting Group.  This will
   potentially create an inconsistency, when the RGRS reports the source
   as being in the same reporting group Reporting Group as another source with another
   reporting group
   Reporting Group identifier.  What impact  The impacts on a receiver implementation
   that such inconsistencies would have could cause are difficult to fully predict.
   One case is that when congestion control or other adaptation
   mechanisms are used, an inconsistent report can result in a media
   sender to reduce reducing its bit-rate. bitrate.  However, a direct modification of the receiver report
   RR or a feedback message itself would be a more efficient attack, attack and
   would be equally costly to perform.

   The new RGRS RTCP Packet packet type is very simple.  The common RTCP packet
   type header shares the same security risks with as those that affect
   previous RTCP packet types.  Errors or modification of the length
   field can cause the full compound packet to fail header validation
   (see Appendix A.2 in
   [RFC3550]) of [RFC3550]), resulting in the whole compound RTCP
   packet being discarded.  Modification of the SC field or the P fields field
   would cause an inconsistency when processing the RTCP packet, likely
   resulting it in the packet being classified as invalid.  A modification
   of the PT field would cause the packet being to be interpreted under according to
   some other packet type's rules.  In such case a case, the result might be
   more or less predictable but would be specific to the packet type specific. type.
   Modification of the SSRC "SSRC of packet sender sender" field would attribute
   this packet to another sender.  Resulting sender, resulting in a receiver believing that
   the reporting group applies Reporting Group also applies for this SSRC, if it exists.  If it
   doesn't exist, unless also corresponding modifications are also done on a an
   SR/RR packet and a an SDES packet packet, the RTCP packet SHOULD be discarded.
   If consistent changes are done, that such a scenario could be part of a
   resource exhaustion attack on a receiver implementation.
   Modification of the "List of SSRCs for the Reporting Source(s)" field
   would change the SSRC the receiver expect expects to report on behalf of
   this SSRC.  If that SSRC exist, that exists, this situation could potentially
   change the report group Reporting Group used for this SSRC.  A change to another
   reporting group
   Reporting Group belonging to another endpoint is likely detectable detectable,
   as there would be a mismatch between the SSRC of the packet sender's
   endpoint information, transport addresses, SDES CNAME etc CNAME, etc., and the
   corresponding information from the reporting group Reporting Group indicated.

   In general general, the reporting group Reporting Group is providing limited impacts attacks. limited-impact attacks
   on the endpoints.  The most significant result from an a deliberate
   attack would be to cause the information to be discarded or be
   inconsistent, including
   discard the discarding of all RTCP packets that are
   modified.  This causes a lack of information at any receiver entity,
   possibly disregarding the
   endpoints endpoint's participation in the session.

   To protect against this type of such attacks from external non trusted non-trusted entities,
   integrity and source authentication SHOULD be applied.  This can be
   done, for example, by using SRTP the Secure Real-time Transport Protocol
   (SRTP) [RFC3711] with appropriate key-management, key management; other options exist
   exist, as discussed in "Options for Securing RTP
   Security Options Sessions" [RFC7201].

   The Report Reporting Group Identifier has a potential privacy impacting
   properties. properties that could potentially
   impact privacy.  If this would identifier were to be generated by an
   implementation in such a way that is long term makes it long-term stable or
   predictable, it could be used for tracking a particular end-point.  Therefore endpoint.
   Therefore, it is RECOMMENDED that it 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. i.e., the SSRCs,
   the size of reporting group the Reporting Group, and the number of reporting sources
   in a reporting group Reporting Group, is of a less sensitive nature, considering that
   the SSRCs and the communication would anyway be revealed without this extension.
   extension anyway.  By encrypting the
   report group extensions Reporting Group extensions, the
   confidentiality of the SSRC values would preserved confidential, be preserved, but the values
   can still be revealed if SRTP [RFC3711] is used.  The size of the
   reporting groups
   Reporting Groups and the number of reporting sources are likely
   determinable from analysis of the packet pattern and sizes.  However,
   this information appears to have limited value.

6.  IANA Considerations

   (Note to the RFC-Editor: in the following, please replace "TBA" with
   the IANA-assigned value, and "XXXX" with the number of this document,
   then delete this note)

   The

   IANA is requested to register one has registered a new RTCP RGRP SDES items item in the
   "RTCP "RTP SDES Item
   Types" registry, as follows:

        +=======+========+============================+===========+
        | Value | Abbrev | Name                       | Reference
      TBA |
        +=======+========+============================+===========+
        | 11    | RGRP   | Reporting Group Identifier | RFC 8861  |
        +-------+--------+----------------------------+-----------+

             Table 1: New RTCP RGRP SDES Item: Reporting Group
                                 Identifier   [RFCXXXX]

   The definition of the RTCP SDES RGRP SDES item is given in Section 3.2.1
   of this memo.

   The

   IANA is also requested to register one has registered a new RTCP packet type in the "RTCP Control
   Packet Types (PT)" Registry registry, as follows:

    +=======+========+===================================+===========+
    | Value | Abbrev | Name                              | Reference
      TBA |
    +=======+========+===================================+===========+
    | 212   | RGRS   | Reporting Group Reporting Sources | RFC 8861  |
    +-------+--------+-----------------------------------+-----------+

     Table 2: New RTCP Packet Type: Reporting Group Reporting Sources  [RFCXXXX]

   The definition of the RTCP RGRS packet type is given in Section 3.2.2
   of this memo.

   The

   IANA is has also requested to register one registered a new SDP attribute: attribute.

   SDP Attribute ("att-field"):

      Contact Name:         IESG

      Contact Email:        iesg@ietf.org

      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              To negotiate or configure the use of the
                            RTCP Reporting Group Extension. extension

      Reference:          [RFCXXXX]
         Values:            RFC 8861

      Value:                None

      Mux Category:         IDENTICAL

   The definition of the "a=rtcp-rgrp" SDES attribute is given in
   Section 3.6 of this memo.

7.  References

7.1.  Normative References

   [I-D.ietf-avtcore-rtp-multi-stream]
              Lennox, J., Westerlund, M., Wu, Q., and C. Perkins,
              "Sending Multiple RTP Streams in a Single RTP Session",
              draft-ietf-avtcore-rtp-multi-stream-11 (work in progress),
              December 2015.

   [I-D.ietf-mmusic-sdp-mux-attributes]
              Nandakumar, S., "A Framework for SDP Attributes when
              Multiplexing", draft-ietf-mmusic-sdp-mux-attributes-12
              (work in progress), January 2016.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              DOI 10.17487/RFC3264, June 2002,
              <http://www.rfc-editor.org/info/rfc3264>.
              <https://www.rfc-editor.org/info/rfc3264>.

   [RFC3550]  Schulzrinne, H., Casner, S., Frederick, R., and V.
              Jacobson, "RTP: A Transport Protocol for Real-Time
              Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
              July 2003, <http://www.rfc-editor.org/info/rfc3550>. <https://www.rfc-editor.org/info/rfc3550>.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
              July 2006, <http://www.rfc-editor.org/info/rfc4566>. <https://www.rfc-editor.org/info/rfc4566>.

   [RFC7022]  Begen, A., Perkins, C., Wing, D., and E. Rescorla,
              "Guidelines for Choosing RTP Control Protocol (RTCP)
              Canonical Names (CNAMEs)", RFC 7022, DOI 10.17487/RFC7022,
              September 2013, <http://www.rfc-editor.org/info/rfc7022>.

7.2.  Informative References

   [RFC2326]  Schulzrinne, H., Rao, A., <https://www.rfc-editor.org/info/rfc7022>.

   [RFC8108]  Lennox, J., Westerlund, M., Wu, Q., and R. Lanphier, "Real Time
              Streaming C. Perkins,
              "Sending Multiple RTP Streams in a Single RTP Session",
              RFC 8108, DOI 10.17487/RFC8108, March 2017,
              <https://www.rfc-editor.org/info/rfc8108>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8859]  Nandakumar, S., "A Framework for Session Description
              Protocol (RTSP)", (SDP) Attributes When Multiplexing", RFC 2326, 8859,
              DOI 10.17487/RFC2326, April 1998,
              <http://www.rfc-editor.org/info/rfc2326>. 10.17487/RFC8859, January 2021,
              <https://www.rfc-editor.org/info/rfc8859>.

7.2.  Informative References

   [RFC2974]  Handley, M., Perkins, C., and E. Whelan, "Session
              Announcement Protocol", RFC 2974, DOI 10.17487/RFC2974,
              October 2000, <http://www.rfc-editor.org/info/rfc2974>. <https://www.rfc-editor.org/info/rfc2974>.

   [RFC3611]  Friedman, T., Ed., Caceres, R., Ed., and A. Clark, Ed.,
              "RTP Control Protocol Extended Reports (RTCP XR)",
              RFC 3611, DOI 10.17487/RFC3611, November 2003,
              <http://www.rfc-editor.org/info/rfc3611>.
              <https://www.rfc-editor.org/info/rfc3611>.

   [RFC3711]  Baugher, M., McGrew, D., Naslund, M., Carrara, E., and K.
              Norrman, "The Secure Real-time Transport Protocol (SRTP)",
              RFC 3711, DOI 10.17487/RFC3711, March 2004,
              <http://www.rfc-editor.org/info/rfc3711>.
              <https://www.rfc-editor.org/info/rfc3711>.

   [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,
              DOI 10.17487/RFC4585, July 2006,
              <http://www.rfc-editor.org/info/rfc4585>.
              <https://www.rfc-editor.org/info/rfc4585>.

   [RFC4588]  Rey, J., Leon, D., Miyazaki, A., Varsa, V., and R.
              Hakenberg, "RTP Retransmission Payload Format", RFC 4588,
              DOI 10.17487/RFC4588, July 2006,
              <http://www.rfc-editor.org/info/rfc4588>.
              <https://www.rfc-editor.org/info/rfc4588>.

   [RFC5104]  Wenger, S., Chandra, U., Westerlund, M., and B. Burman,
              "Codec Control Messages in the RTP Audio-Visual Profile
              with Feedback (AVPF)", RFC 5104, DOI 10.17487/RFC5104,
              February 2008, <http://www.rfc-editor.org/info/rfc5104>. <https://www.rfc-editor.org/info/rfc5104>.

   [RFC5506]  Johansson, I. and M. Westerlund, "Support for Reduced-Size
              Real-Time Transport Control Protocol (RTCP): Opportunities
              and Consequences", RFC 5506, DOI 10.17487/RFC5506, April
              2009, <http://www.rfc-editor.org/info/rfc5506>. <https://www.rfc-editor.org/info/rfc5506>.

   [RFC6190]  Wenger, S., Wang, Y., Y.-K., Schierl, T., and A.
              Eleftheriadis, "RTP Payload Format for Scalable Video
              Coding", RFC 6190, DOI 10.17487/RFC6190, May 2011,
              <http://www.rfc-editor.org/info/rfc6190>.
              <https://www.rfc-editor.org/info/rfc6190>.

   [RFC7201]  Westerlund, M. and C. Perkins, "Options for Securing RTP
              Sessions", RFC 7201, DOI 10.17487/RFC7201, April 2014,
              <http://www.rfc-editor.org/info/rfc7201>.
              <https://www.rfc-editor.org/info/rfc7201>.

   [RFC7826]  Schulzrinne, H., Rao, A., Lanphier, R., Westerlund, M.,
              and M. Stiemerling, Ed., "Real-Time Streaming Protocol
              Version 2.0", RFC 7826, DOI 10.17487/RFC7826, December
              2016, <https://www.rfc-editor.org/info/rfc7826>.

Authors' Addresses

   Jonathan Lennox
   Vidyo,
   8x8, Inc.
   433 Hackensack Avenue
   Seventh Floor
   Hackensack, / Jitsi
   Jersey City, NJ  07601
   US 07302
   United States of America

   Email: jonathan@vidyo.com jonathan.lennox@8x8.com

   Magnus Westerlund
   Ericsson
   Farogatan 2
   Torshamnsgatan 23
   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: bill.wu@huawei.com

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

   Email: csp@csperkins.org