rfc8861xml2.original.xml   rfc8861.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd"> <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">
<?rfc toc="yes" ?>
<?rfc strict="yes" ?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std"
<?rfc compact="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc symrefs="yes" ?>
<rfc category="std"
docName="draft-ietf-avtcore-rtp-multi-stream-optimisation-12" docName="draft-ietf-avtcore-rtp-multi-stream-optimisation-12"
ipr="trust200902" updates=""> number="8861" ipr="trust200902" updates="" obsoletes=""
submissionType="IETF" consensus="true" xml:lang="en" tocInclude="true" sort
Refs="true" symRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 2.35.0 -->
<front> <front>
<title abbrev="Grouping RTCP Reception Statistics">Sending Multiple RTP <title abbrev="Grouping RTCP Reception Statistics">Sending Multiple RTP
Streams in a Single RTP Session: Grouping RTCP Reception Statistics and Streams in a Single RTP Session: Grouping RTP Control Protocol (RTCP) Recept ion Statistics and
Other Feedback</title> Other Feedback</title>
<author fullname="Jonathan Lennox" initials="J." surname="Lennox"> <seriesInfo name="RFC" value="8861"/>
<organization abbrev="Vidyo">Vidyo, Inc.</organization>
<author fullname="Jonathan Lennox" initials="J." surname="Lennox">
<organization abbrev="8x8 / Jitsi">8x8, Inc. / Jitsi</organization>
<address> <address>
<postal> <postal>
<street>433 Hackensack Avenue</street> <city>Jersey City</city>
<street>Seventh Floor</street>
<city>Hackensack</city>
<region>NJ</region> <region>NJ</region>
<code>07302</code>
<code>07601</code> <country>United States of America</country>
<country>US</country>
</postal> </postal>
<email>jonathan.lennox@8x8.com</email>
<email>jonathan@vidyo.com</email>
</address> </address>
</author> </author>
<author fullname="Magnus Westerlund" initials="M." surname="Westerlund"> <author fullname="Magnus Westerlund" initials="M." surname="Westerlund">
<organization>Ericsson</organization> <organization>Ericsson</organization>
<address> <address>
<postal> <postal>
<street>Farogatan 2</street> <street>Torshamnsgatan 23</street>
<city>Kista</city>
<city>SE-164 80 Kista</city> <code>164 80</code>
<country>Sweden</country> <country>Sweden</country>
</postal> </postal>
<phone>+46 10 714 82 87</phone>
<email>magnus.westerlund@ericsson.com</email> <email>magnus.westerlund@ericsson.com</email>
</address> </address>
</author> </author>
<author fullname="Qin Wu" initials="Q." surname="Wu"> <author fullname="Qin Wu" initials="Q." surname="Wu">
<organization>Huawei</organization> <organization>Huawei</organization>
<address> <address>
<postal> <postal>
<street>101 Software Avenue, Yuhua District</street> <street>101 Software Avenue, Yuhua District</street>
<city>Nanjing, Jiangsu 210012</city> <city>Nanjing, Jiangsu 210012</city>
<country>China</country> <country>China</country>
</postal> </postal>
<email>bill.wu@huawei.com</email> <email>bill.wu@huawei.com</email>
</address> </address>
</author> </author>
<author fullname="Colin Perkins" initials="C. " surname="Perkins"> <author fullname="Colin Perkins" initials="C. " surname="Perkins">
<organization>University of Glasgow</organization> <organization>University of Glasgow</organization>
<address> <address>
<postal> <postal>
<street>School of Computing Science</street> <street>School of Computing Science</street>
<city>Glasgow</city> <city>Glasgow</city>
<code>G12 8QQ</code> <code>G12 8QQ</code>
<country>United Kingdom</country> <country>United Kingdom</country>
</postal> </postal>
<email>csp@csperkins.org</email> <email>csp@csperkins.org</email>
</address> </address>
</author> </author>
<date month="January" year="2021"/>
<date/> <keyword>RGRP</keyword>
<keyword>SDES</keyword>
<workgroup>AVTCORE WG</workgroup> <keyword>XR</keyword>
<keyword>Reporting</keyword>
<keyword>Group</keyword>
<abstract> <abstract>
<t>RTP allows multiple RTP streams to be sent in a single session, but <t>RTP allows multiple RTP streams to be sent in a single session but
requires each Synchronisation Source (SSRC) to send RTCP reception requires each Synchronization Source (SSRC) to send RTP Control Protocol
quality reports for every other SSRC visible in the session. This causes (RTCP)
reception quality reports for every other SSRC visible in the session. Thi
s causes
the number of RTCP reception reports to grow with the number of SSRCs, 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 rather than the number of endpoints. In many cases, most of these RTCP
reception reports are unnecessary, since all SSRCs of an endpoint are reception reports are unnecessary, since all SSRCs of an endpoint are
normally co-located and see the same reception quality. This memo normally co-located and see the same reception quality. This memo
defines a Reporting Group extension to RTCP to reduce the reporting defines a Reporting Group extension to RTCP to reduce the reporting
overhead in such scenarios.</t> overhead in such scenarios.</t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="introduction" title="Introduction"> <section anchor="introduction" numbered="true" toc="default">
<t>The Real-time Transport Protocol (RTP) <xref target="RFC3550"/> is a <name>Introduction</name>
<t>The Real-time Transport Protocol (RTP) <xref target="RFC3550" format="d
efault"/> is a
protocol for group communication, supporting multiparty multimedia protocol for group communication, supporting multiparty multimedia
sessions. A single RTP session can support multiple participants sending sessions. A single RTP session can support multiple participants sending
at once, and can also support participants sending multiple simultaneous data at once and can also support participants sending multiple simultaneo us
RTP streams. Examples of the latter might include a participant with RTP streams. Examples of the latter might include a participant with
multiple cameras who chooses to send multiple views of a scene, or a 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 participant that sends audio and video flows multiplexed in a single RTP
session. Rules for handling RTP sessions containing multiple RTP streams session. Rules for handling RTP sessions containing multiple RTP streams
are described in <xref target="RFC3550"/> with some clarifications in are described in <xref target="RFC3550" format="default"/>, with some clar
<xref target="I-D.ietf-avtcore-rtp-multi-stream"/>.</t> ifications in
<xref target="RFC8108" format="default"/>.</t>
<t>An RTP endpoint will have one or more synchronisation sources <t>An RTP endpoint will have one or more Synchronization Sources
(SSRCs). It will have at least one RTP Stream, and thus SSRC, for each (SSRCs). It will have at least one RTP stream, and thus at least one SSRC,
media source it sends, and might use multiple SSRCs per media source for each
when using <xref target="RFC6190">media scalability features</xref>, media source it sends, and it might use multiple SSRCs per media source
forward error correction, <xref target="RFC4588">RTP when using <xref target="RFC6190" format="default">media scalability featu
res</xref>,
forward error correction, <xref target="RFC4588" format="default">RTP
retransmission</xref>, or similar mechanisms. An endpoint that is not retransmission</xref>, or similar mechanisms. An endpoint that is not
sending any RTP stream, will have at least one SSRC to use for reporting sending any RTP streams will have at least one SSRC to use for reporting
and any feedback messages. Each SSRC has to send RTCP sender reports and any feedback messages. Each SSRC has to send RTP Control Protocol
corresponding to the RTP packets it sends, and receiver reports for (RTCP) Sender Reports (SRs) corresponding to the RTP packets it sends
traffic it receives. That is, every SSRC will send RTCP packets to and Receiver Reports (RRs) for traffic it receives. (SRs and RRs are
report on every other SSRC. This rule is simple, but can be quite described in <xref target="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 inefficient for endpoints that send large numbers of RTP streams in a
single RTP session. Consider a session comprising ten participants, each single RTP session. Consider a session comprising ten participants, each
sending three media sources, each with their own RTP stream. There will sending three media sources, each media source associated with its own RTP stream. There will
be 30 SSRCs in such an RTP session, and each of those 30 SSRCs will send be 30 SSRCs in such an RTP session, and each of those 30 SSRCs will send
an RTCP Sender Report/Receiver Report packet (containing several report an RTCP SR/RR packet (containing several report
blocks) per reporting interval as each SSRC reports on all the others. blocks) per reporting interval as each SSRC reports on all the others.
However, the three SSRCs comprising each participant are commonly However, the three SSRCs comprising each participant are commonly
co-located such that they see identical reception quality. If there was co-located such that they see identical reception quality. If there was
a way to indicate that several SSRCs are co-located, and see the same 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 reception quality, then two-thirds of those RTCP reports could be
suppressed. This would allow the remaining RTCP reports to be sent more suppressed. This would allow the remaining RTCP reports to be sent more
often, while keeping within the same RTCP bandwidth fraction.</t> often, while keeping within the same RTCP bandwidth fraction.</t>
<t>This memo defines such an RTCP extension: RTCP Reporting Groups. This
<t>This memo defines such an RTCP extension, RTCP Reporting Groups. This
extension is used to indicate the SSRCs that originate from the same extension is used to indicate the SSRCs that originate from the same
endpoint, and therefore have identical reception quality, hence allowing endpoint and therefore have identical reception quality, hence allowing
the endpoints to suppress unnecessary RTCP reception quality the endpoints to suppress unnecessary RTCP reception quality
reports.</t> reports.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Terminology"> <name>Terminology</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
document are to be interpreted as described in <xref "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
target="RFC2119"/>.</t> "<bcp14>SHOULD NOT</bcp14>",
"<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are
to be interpreted as described in BCP&nbsp;14 <xref target="RFC2119"/>
<xref target="RFC8174"/> when, and only when, they appear in all
capitals, as shown here.</t>
</section> </section>
<section anchor="reportgroups" numbered="true" toc="default">
<section anchor="reportgroups" title="RTCP Reporting Groups"> <name>RTCP Reporting Groups</name>
<t>An RTCP Reporting Group is a set of synchronization sources (SSRCs) <t>An RTCP Reporting Group is a set of SSRCs that are co&nbhy;located at a
that are co-located at a single endpoint (which could be an end host or single endpoint (which could be an end host or
a middlebox) in an RTP session. Since they are co-located, every SSRC in a middlebox) in an RTP session. Since they are co-located, every SSRC in
the RTCP reporting group will have an identical view of the network the RTCP Reporting Group will have an identical view of the network
conditions, and see the same lost packets, jitter, etc. This allows a conditions and will see the same lost packets, jitter, etc. This allows a
single representative to send RTCP reception quality reports on behalf single representative to send RTCP reception quality reports on behalf
of the rest of the reporting group, reducing the number of RTCP packets of the rest of the Reporting Group, reducing the number of RTCP packets
that need to be sent without loss of information.</t> that need to be sent without loss of information.</t>
<section numbered="true" toc="default">
<section title="Semantics and Behaviour of RTCP Reporting Groups"> <name>Semantics and Behavior of RTCP Reporting Groups</name>
<t>A group of co-located SSRCs that see identical network conditions <t>A group of co-located SSRCs that see identical network conditions
can form an RTCP reporting group. If reporting groups are in use, an 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 RTP endpoint with multiple SSRCs <bcp14>MAY</bcp14> put those SSRCs into
group if their view of the network is identical; i.e., if they report 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. SSRCs 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 with different views of the network <bcp14>MUST NOT</bcp14> be put into
reporting group.</t> the same
Reporting Group.</t>
<t>An endpoint that has combined its SSRCs into an RTCP reporting <t>An endpoint that has combined its SSRCs into an RTCP Reporting
group will choose one (or a subset) of those SSRCs to act as Group will choose one (or a subset) of those SSRCs to act as
"reporting source(s)" for that RTCP reporting group. A reporting "reporting source(s)" for that RTCP Reporting Group. A reporting
source will send RTCP SR/RR reception quality reports on behalf of the source will send RTCP SR/RR reception quality reports on behalf of the
other members of the RTCP reporting group. A reporting source MUST other members of the RTCP Reporting Group. A reporting source <bcp14>MUS T</bcp14>
suppress the RTCP SR/RR reports that relate to other members of the suppress the RTCP SR/RR reports that relate to other members of the
reporting group, and only report on remote SSRCs. The other members Reporting Group and only report on remote SSRCs. The other members
(non reporting sources) of the RTCP reporting group will suppress (non-reporting sources) of the RTCP Reporting Group will suppress
their RTCP reception quality reports, and instead send an RTCP RGRS their RTCP reception quality reports and will instead send an
packet (see <xref target="sec-rgrs"/>) to indicate that they are part RTCP Reporting Group Reporting Sources (RGRS)
of an RTCP reporting group and give the SSRCs of the reporting packet (see <xref target="sec-rgrs" format="default"/>) to indicate that
they are part
of an RTCP Reporting Group and give the SSRCs of the reporting
sources.</t> sources.</t>
<t>If there are large numbers of remote SSRCs in the RTP session, then <t>If there are large numbers of remote SSRCs in the RTP session, then
the reception quality reports generated by the reporting source might the reception quality reports generated by the reporting source might
grow too large to fit into a single compound RTCP packet, forcing the 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 reporting source to use a round-robin policy to determine what remote
SSRCs it includes in each compound RTCP packet, and so reducing the SSRCs it includes in each compound RTCP packet, and so reducing the
frequency of reports on each SSRC. To avoid this, in sessions with frequency of reports on each SSRC. To avoid this, in sessions with
large numbers of remote SSRCs, an RTCP reporting group MAY use more large numbers of remote SSRCs, an RTCP Reporting Group <bcp14>MAY</bcp14 > use more
than one reporting source. If several SSRCs are acting as reporting than one reporting source. If several SSRCs are acting as reporting
sources for an RTCP reporting group, then each reporting source MUST sources for an RTCP Reporting Group, then each reporting source <bcp14>M UST</bcp14>
have non-overlapping sets of remote SSRCs it reports on.</t> have non-overlapping sets of remote SSRCs it reports on.</t>
<t>An endpoint <bcp14>MUST NOT</bcp14> create an RTCP Reporting Group th
<t>An endpoint MUST NOT create an RTCP reporting group that comprises at comprises
only a single local SSRC (i.e., an RTCP reporting group where the only a single local SSRC (i.e., an RTCP Reporting Group where the
reporting source is the only member of the group), unless it is reporting source is the only member of the group), unless it is
anticipated that the group might have additional SSRCs added to it in anticipated that the group might have additional SSRCs added to it in
the future.</t> the future.</t>
<t>If a reporting source leaves the RTP session (i.e., if it sends an
<t>If a reporting source leaves the RTP session (i.e., if it sends a RTCP BYE packet or it leaves the session without sending a BYE
RTCP BYE packet, or leaves the session without sending BYE under the according to the
rules of <xref target="RFC3550"/> section 6.3.7), the remaining rules of <xref target="RFC3550" sectionFormat="comma" section="6.3.7"/>)
members of the RTCP reporting group MUST either (a) have another , the remaining
reporting source, if one exists, report on the remote SSRCs the members of the RTCP Reporting Group <bcp14>MUST</bcp14> (a)&nbsp;have an
leaving SSRC reported on, (b) choose a new reporting source, or (c) other
disband the RTCP reporting group and begin sending reception quality reporting source -- if one exists -- report on the remote SSRCs that
reports following <xref target="RFC3550"/> and <xref the leaving SSRC had reported on, (b)&nbsp;choose a new reporting source
target="I-D.ietf-avtcore-rtp-multi-stream"/>.</t> , or (c)&nbsp;disband the RTCP Reporting Group and begin sending reception quali
ty
reports per <xref target="RFC3550" format="default"/> and <xref target="
RFC8108" format="default"/>.</t>
<t>The RTCP timing rules assign different bandwidth fractions to <t>The RTCP timing rules assign different bandwidth fractions to
senders and receivers. This lets senders transmit RTCP reception senders and receivers. This lets senders transmit RTCP reception
quality reports more often than receivers. If a reporting source in an quality reports more often than receivers. If a reporting source in an
RTCP reporting group is a receiver, but one or more non-reporting RTCP Reporting Group is a receiver but one or more non-reporting
SSRCs in the RTCP reporting group are senders, then the endpoint MAY SSRCs in the RTCP Reporting Group are senders, then the endpoint <bcp14>
MAY</bcp14>
treat the reporting source as a sender for the purpose of RTCP treat the reporting source as a sender for the purpose of RTCP
bandwidth allocation, increasing its RTCP bandwidth allocation, bandwidth allocation, increasing its RTCP bandwidth allocation,
provided it also treats one of the senders as if it were a receiver 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. and makes the corresponding reduction in RTCP bandwidth for that SSRC.
However, the application needs to consider the impact on the frequency However, the application needs to consider the impact on the frequency
of transmitting of the synchronization information included in RTCP of transmitting of the synchronization information included in RTCP SRs.
Sender Reports.</t> </t>
</section> </section>
<section numbered="true" toc="default">
<section title="Identifying Members of an RTCP Reporting Group"> <name>Identifying Members of an RTCP Reporting Group</name>
<t>When RTCP Reporting Groups are in use, the other SSRCs in the RTP <t>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 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 Reporting Group. Two RTCP extensions are defined to support this: the
RTCP RGRP SDES item is used by the reporting source(s) to identify an RTCP Reporting Group (RGRP) Source Description (SDES) item is used by th
RTCP reporting group, and the RTCP RGRS packet is used by other e reporting source(s) to identify an
members of an RTCP reporting group to identify the reporting RTCP Reporting Group, and the RTCP RGRS packet is used by other
members of an RTCP Reporting Group to identify the reporting
source(s).</t> source(s).</t>
<section anchor="sec-rgrp" numbered="true" toc="default">
<section anchor="sec-rgrp" <name>Definition and Use of the RTCP RGRP SDES Item</name>
title="Definition and Use of the RTCP RGRP SDES Item"> <t>This document defines a new RTCP RGRP SDES item to identify an RTCP
<t>This document defines a new RTCP SDES item to identify an RTCP Reporting Group. The motivation for giving a Reporting Group an
reporting group. The motivation for giving a reporting group an identifier is to ensure that (1)&nbsp;the RTCP Reporting Group and its
identify is to ensure that the RTCP reporting group and its member member
SSRCs can be correctly associated when there are multiple reporting SSRCs can be correctly associated when there are multiple reporting
sources, and to ensure that a reporting SSRC can be associated with sources and (2)&nbsp;a reporting SSRC can be associated with
the correct reporting group if an SSRC collision occurs.</t> the correct Reporting Group if an SSRC collision occurs.</t>
<t>This document defines the RTCP RGRP SDES item.
<t>This document defines the RTCP Source Description (SDES) RGRP The RTCP RGRP SDES item <bcp14>MUST</bcp14> be sent by the reporting sources
item. The RTCP SDES RGRP item MUST be sent by the reporting sources in a Reporting Group and <bcp14>MUST NOT</bcp14> be sent by other memb
in a reporting group, and MUST NOT be sent by other members of the ers of the
reporting group or by SSRCs that are not members of any RTCP Reporting Group or by SSRCs that are not members of any RTCP
reporting group. Specifically, every reporting source in an RTCP Reporting Group. Specifically, every reporting source in an RTCP
reporting group MUST include an RTCP SDES packet containing an RGRP Reporting Group <bcp14>MUST</bcp14> include an RTCP SDES packet contai
ning an RGRP
item in every compound RTCP packet in which it sends an RR or SR item in every compound RTCP packet in which it sends an RR or SR
packet (i.e., in every RTCP packet it sends, unless <xref packet (i.e., in every RTCP packet it sends, unless <xref target="RFC5
target="RFC5506">Reduced-Size RTCP</xref> is in use).</t> 506" format="default">Reduced-Size RTCP</xref> is in use).</t>
<t>Syntactically, the format of the RTCP SDES RGRP item is identical <t>Syntactically, the format of the RTCP RGRP SDES item is identical
to that of the <xref target="RFC7022">RTCP SDES CNAME item</xref>, to that of the <xref target="RFC7022" format="default">RTCP SDES CNAME
except that the SDES item type field MUST have value RGRP=(TBA) item</xref>,
instead of CNAME=1. The value of the RTCP SDES RGRP item MUST be except that the SDES item type field <bcp14>MUST</bcp14> have value RG
RP=11
instead of CNAME=1. The value of the RTCP RGRP SDES item <bcp14>MUST</
bcp14> be
chosen with the same concerns about global uniqueness and the same chosen with the same concerns about global uniqueness and the same
privacy considerations as the RTCP SDES CNAME. The value of the RTCP privacy considerations as the RTCP SDES CNAME. The value of the RTCP
SDES RGRP item MUST be stable throughout the lifetime of the RGRP SDES item <bcp14>MUST</bcp14> be stable throughout the lifetime o
reporting group, even if some or all of the reporting sources change f the
their SSRC due to collisions, or if the set of reporting sources Reporting Group, even if some or all of the reporting sources change
their SSRC due to collisions or if the set of reporting sources
changes.</t> changes.</t>
<t><list style="empty">
<t>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.</t>
</list></t>
<t>An RTP mixer or translator that forwards RTCP SR or RR packets <t>An RTP mixer or translator that forwards RTCP SR or RR packets
from members of a reporting group MUST forward the corresponding from members of a Reporting Group <bcp14>MUST</bcp14> forward the corr
RTCP SDES RGRP items as well, even if it otherwise strips SDES items esponding
RTCP RGRP SDES items as well, even if it otherwise strips SDES items
other than the CNAME item.</t> other than the CNAME item.</t>
</section> </section>
<section anchor="sec-rgrs" numbered="true" toc="default">
<section anchor="sec-rgrs" <name>Definition and Use of the RTCP RGRS Packet</name>
title="Definition and Use of the RTCP RGRS Packet">
<t>A new RTCP packet type is defined to allow the members of an RTCP <t>A new RTCP packet type is defined to allow the members of an RTCP
reporting group to identify the reporting sources for that group. Reporting Group to identify the reporting sources for that group.
This allows participants in an RTP session to distinguish an SSRC This allows participants in an RTP session to distinguish an SSRC
that is sending empty RTCP reception reports because it is a member that is sending empty RTCP reception reports because it is a member
of an RTCP reporting group, from an SSRC that is sending empty RTCP of an RTCP Reporting Group from an SSRC that is sending empty RTCP
reception reports because it is not receiving any traffic. It also reception reports because it is not receiving any traffic. It also
explicitly identifies the reporting sources, allowing other members explicitly identifies the reporting sources, allowing other members
of the RTP session to know which SSRCs are acting as the reporting of the RTP session to (1)&nbsp;know which SSRCs are acting as the repo
sources for an RTCP reporting group, and allowing them to detect if rting
sources for an RTCP Reporting Group and (2)&nbsp;detect if
RTCP packets from any of the reporting sources are being lost.</t> RTCP packets from any of the reporting sources are being lost.</t>
<t>The format of the RTCP RGRS packet is defined below. It comprises <t>The format of the RTCP RGRS packet is defined below. It comprises
the fixed RTCP header that indicates the packet type and length, the 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 SSRC of the packet sender, and a list of reporting sources for the
RTCP reporting group of which the packet sender is a member.</t> RTCP Reporting Group of which the packet sender is a member.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[
<figure>
<artwork><![CDATA[
0 1 2 3 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 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 | |V=2|P| SC | PT=RGRS(212) | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SSRC of packet sender | | SSRC of packet sender |
+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
: List of SSRC(s) for the Reporting Source(s) : : List of SSRC(s) for the Reporting Source(s) :
: ... : : ... :
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure> <t>The fields in the RTCP RGRS packet have the following definitions:
</t>
<t>The fields in the RTCP RGRS packet have the following definition: <dl newline="false" spacing="normal">
<list style="hanging"> <dt>version (V):</dt>
<t hangText="version (V):">2 bits unsigned integer. This field <dd>2-bit unsigned integer. This field
identifies the RTP version. The current RTP version is 2.</t> identifies the RTP version. The current RTP version is 2.</dd>
<dt>padding (P):</dt>
<t hangText="padding (P):">1 bit. If set, the padding bit <dd>1 bit. If set, the padding bit
indicates that the RTCP packet contains additional padding indicates that the RTCP packet contains additional padding
octets at the end that are not part of the control information octets at the end that are not part of the control information
but are included in the length field. See <xref but are included in the length field. See <xref target="RFC3550" f
target="RFC3550"/>.</t> ormat="default"/>.</dd>
<dt>Source Count (SC):</dt>
<t hangText="Source Count (SC):">5 bits unsigned integer. <dd>5-bit unsigned integer.
Indicates the number of reporting source SSRCs that are included Indicates the number of reporting source SSRCs that are included
in this RTCP packet. As the RTCP RGRS packet MUST NOT be not in this RTCP packet. As the RTCP RGRS packet <bcp14>MUST NOT</bcp1
sent by reporting sources, all the SSRCs in the list of 4> be sent by reporting sources, all the SSRCs in the list of
reporting sources will be different from the SSRC of the packet reporting sources will be different from the SSRC of the packet
sender. Every RTCP RGRS packet MUST contain at least one sender. Every RTCP RGRS packet <bcp14>MUST</bcp14> contain at leas
reporting source SSRC.</t> t one
reporting source SSRC.</dd>
<t hangText="Payload type (PT):">8 bits unsigned integer. The <dt>Payload type (PT):</dt>
<dd>
<t>8-bit unsigned integer. The
RTCP packet type number that identifies the packet as being an RTCP packet type number that identifies the packet as being an
RTCP RGRS packet. The RGRS RTCP packet has the value [TBA]. RTCP RGRS packet. The RGRS RTCP packet has the value 212.
<list style="empty"> </t>
<t>Note to RFC Editor: please replace [TBA] here, and in the </dd>
packet format diagram above, with the RTCP packet type that <dt>Length:</dt>
IANA assigns to the RTCP RGRS packet.</t> <dd>16-bit unsigned integer. The length of
</list></t>
<t hangText="Length:">16 bits unsigned integer. The length of
this packet in 32-bit words minus one, including the header and this packet in 32-bit words minus one, including the header and
any padding. This is in line with the definition of the length any padding. This is in line with the definition of the length
field used in RTCP sender and receiver reports <xref field used in RTCP SRs and RRs <xref target="RFC3550" format="defa
target="RFC3550"/>. Since all RTCP RGRS packets include at least ult"/>. Since all RTCP RGRS packets include at least
one reporting source SSRC, the length will always be 2 or one reporting source SSRC, the length will always be 2 or
greater.</t> greater.</dd>
<dt>SSRC of packet sender:</dt>
<t hangText="SSRC of packet sender:">32 bits. The SSRC of the <dd>32 bits. The SSRC of the
sender of this packet.</t> sender of this packet.</dd>
<dt>List of SSRCs for the Reporting Source(s):</dt>
<t hangText="List of SSRCs for the Reporting Source(s):">A <dd>A variable number (as indicated by the SC header field) of
variable length size (as indicated by SC header field) of the 32 32&nbhy;bit SSRC values of the reporting sources for the
bit SSRC values of the reporting sources for the RTCP Reporting RTCP Reporting Group of which the packet sender is a member.</dd>
Group of which the packet sender is a member.</t> </dl>
</list></t> <t>Every source that belongs to an RTCP Reporting Group but is not a
reporting source <bcp14>MUST</bcp14> include an RTCP RGRS packet in ev
<t>Every source that belongs to an RTCP reporting group but is not a ery compound
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 in which it sends an RR or SR packet (i.e., in every
RTCP packet it sends, unless <xref target="RFC5506"> Reduced-Size RTCP packet it sends, unless <xref target="RFC5506" format="default">
RTCP</xref> is in use). Each RTCP RGRS packet MUST contain the SSRC Reduced-Size
RTCP</xref> is in use). Each RTCP RGRS packet <bcp14>MUST</bcp14> cont
ain the SSRC
identifier of at least one reporting source. If there are more identifier of at least one reporting source. If there are more
reporting sources in an RTCP reporting group than can fit into an reporting sources in an RTCP Reporting Group than can fit into an
RTCP RGRS packet, the members of that reporting group MUST send the RTCP RGRS packet, the members of that Reporting Group <bcp14>MUST</bcp
14> send the
SSRCs of the reporting sources in a round-robin fashion in SSRCs of the reporting sources in a round-robin fashion in
consecutive RTCP RGRS packets, such that all the SSRCs of the consecutive RTCP RGRS packets, such that all the SSRCs of the
reporting sources are included over the course of several RTCP reporting sources are included over the course of several RTCP
reporting intervals.</t> reporting intervals.</t>
<t>An RTP mixer or translator that forwards RTCP SR or RR packets <t>An RTP mixer or translator that forwards RTCP SR or RR packets
from members of a reporting group MUST also forward the from members of a Reporting Group <bcp14>MUST</bcp14> also forward the
corresponding RGRS RTCP packets. If the RTP mixer or translator corresponding RGRS RTCP packets. If the RTP mixer or translator
rewrites SSRC values of the packets it forwards, it MUST make the rewrites SSRC values of the packets it forwards, it <bcp14>MUST</bcp14 > make the
corresponding changes to the RTCP RGRS packets.</t> corresponding changes to the RTCP RGRS packets.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Interactions with the RTP/AVPF Feedback Profile"> <name>Interactions with the RTP/AVPF Feedback Profile</name>
<t>Use of the RTP/AVPF Feedback Profile <xref target="RFC4585"/> <t>The use of the RTP/AVPF Feedback Profile <xref target="RFC4585" forma
t="default"/>
allows SSRCs to send rapid RTCP feedback requests and codec control 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 messages. If the use of the RTP/AVPF profile has been negotiated in an R
session, members of an RTCP reporting group can send rapid RTCP TP
feedback and codec control messages following <xref target="RFC4585"/> session, members of an RTCP Reporting Group can send rapid RTCP
and <xref target="RFC5104"/>, as updated by Section 5.4 of <xref feedback and codec control messages per <xref target="RFC5104"
target="I-D.ietf-avtcore-rtp-multi-stream"/>, and by the following format="default"/>, per <xref target="RFC4585" format="default"/>
considerations.</t> as updated by <xref target="RFC8108" sectionFormat="of"
section="5.4"/>, and by the following considerations.</t>
<t>The members of an RTCP reporting group will all see identical <t>The members of an RTCP Reporting Group will all see identical
network conditions. Accordingly, one might therefore think that it network conditions. Accordingly, one might therefore think that it
doesn't matter which SSRC in the reporting group sends the RTP/AVPF doesn't matter which SSRC in the Reporting Group sends the RTP/AVPF
feedback or codec control messages. There might be, however, cases feedback or codec control messages. There might be, however, cases
where the sender of the feedback/codec control message has semantic where the sender of the feedback/codec control message has semantic
importance, or when only a subset of the members of an RTCP reporting 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 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 in response to a particular event. For example, an RTP video sender
might choose to treat packet loss feedback received from SSRCs known might choose to treat packet loss feedback received from SSRCs known
to be audio receivers with less urgency than feedback that it receives to be audio receivers with less urgency than feedback that it receives
from video receivers when deciding what packets to retransmit, and a from video receivers when deciding what packets to retransmit, and a
multimedia receiver using reporting groups might want to choose the multimedia receiver using Reporting Groups might want to choose the
outgoing SSRC for feedback packets to reflect this.</t> outgoing SSRC for feedback packets to reflect this.</t>
<t>Each member of an RTCP Reporting Group <bcp14>SHOULD</bcp14> therefor
<t>Each member of an RTCP reporting group SHOULD therefore send e send
RTP/AVPF feedback/codec control messages independently of the other RTP/AVPF feedback/codec control messages independently of the other
members of the reporting group, to respect the semantic meaning of the members of the Reporting Group, to respect the semantic meaning of the
message sender. The suppression rules of <xref target="RFC4585"/> will message sender. The suppression rules of <xref target="RFC4585" format="
default"/> will
ensure that only a single copy of each feedback packet is (typically) ensure that only a single copy of each feedback packet is (typically)
generated, even if several members of a reporting group send the same generated, even if several members of a Reporting Group send the same
feedback. When an endpoint knows that several members of its RTCP feedback. When an endpoint knows that several members of its RTCP
reporting group will be sending identical feedback, and that the Reporting Group will be sending identical feedback and that the
sender of the feedback is not semantically important, then that sender of the feedback is not semantically important, that
endpoint MAY choose to send all its feedback from the reporting source endpoint <bcp14>MAY</bcp14> choose to send all its feedback from the rep
orting source
and deterministically suppress feedback packets generated by the other and deterministically suppress feedback packets generated by the other
sources in the reporting group.</t> sources in the Reporting Group.</t>
<t>It is important to note that the RTP/AVPF timing rules operate on a <t>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 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 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 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 problem, then the Reporting Group can allow each of its members to
send its own feedback, using its own SSRC.</t> send its own feedback, using its own SSRC.</t>
<t>If the RTP/AVPF feedback messages or codec control requests are <t>If the RTP/AVPF feedback messages or codec control requests are
sent as compound RTCP packets, then those compound RTCP packets MUST sent as compound RTCP packets, then those compound RTCP packets <bcp14>M
include either an RTCP RGRS packet or an RTCP SDES RGRP item, UST</bcp14>
include either an RTCP RGRS packet or an RTCP RGRP SDES item,
depending on whether they are sent by the reporting source or a depending on whether they are sent by the reporting source or a
non-reporting source in the RTCP reporting group respectively. The non&nbhy;reporting source in the RTCP Reporting Group, respectively. The
contents of non-compound RTCP feedback or codec control messages are contents of noncompound RTCP feedback or codec control messages are
not affected by the use of RTCP reporting groups.</t> not affected by the use of RTCP Reporting Groups.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Interactions with RTCP Extended Report (XR) Packets"> <name>Interactions with RTCP Extended Report (XR) Packets</name>
<t>When using RTCP Extended Reports (XR) <xref target="RFC3611"/> with <t>When using RTCP Extended Report (XR) packets <xref target="RFC3611" f
RTCP reporting groups, it is RECOMMENDED that the reporting source is ormat="default"/> with
RTCP Reporting Groups, it is <bcp14>RECOMMENDED</bcp14> that the reporti
ng source be
used to send the RTCP XR packets. If multiple reporting sources are in 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 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 a particular remote SSRC <bcp14>SHOULD</bcp14> send the RTCP XR reports about that
SSRC. This is motivated as one commonly combine the RTCP XR metrics SSRC. This is motivated as one commonly combine the RTCP XR metrics
with the regular report block to more fully understand the situation. with the regular report block to more fully understand the situation.
Receiving these blocks in different compound packets reduces their Receiving these blocks in different compound packets reduces their
value as the measuring intervals are not synchronized in those value, as the measuring intervals are not synchronized in those
cases.</t> cases.</t>
<t>Some RTCP XR report blocks are specific to particular types of <t>Some RTCP XR report blocks are specific to particular types of
media, and might be relevant to only some members of a reporting media and might be relevant to only some members of a Reporting
group. For example, it would make no sense for an SSRC that is Group. For example, it would make no sense for an SSRC that is
receiving video to send a VoIP metric RTCP XR report block. Such media receiving video to send a Voice over IP (VoIP) metric RTCP XR report blo
specific RTCP XR report blocks MUST be sent by the SSRC to which they ck. Such
are relevant, and MUST NOT be included in the common report sent by media-specific RTCP XR report blocks <bcp14>MUST</bcp14> be sent by the
SSRC to which they
are relevant and <bcp14>MUST NOT</bcp14> be included in the common repor
t sent by
the reporting source. This might mean that some SSRCs send RTCP XR the reporting source. This might mean that some SSRCs send RTCP XR
packets in compound RTCP packets that contain an empty RTCP SR/RR packets in compound RTCP packets that contain an empty RTCP SR/RR
packet, and that the time period covered by the RTCP XR packet is packet and that the time period covered by the RTCP XR packet is
different to that covered by the RTCP SR/RR packet. If it is important different 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 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 period, then that source <bcp14>SHOULD</bcp14> be removed from the RTCP
group, and send standard RTCP packets instead.</t> Reporting
Group, and standard RTCP packets be sent instead.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Middlebox Considerations"> <name>Middlebox Considerations</name>
<t>Many different types of middlebox are used with RTP. RTCP reporting <t>Many different types of middleboxes are used with RTP. RTCP Reporting
groups are potentially relevant to those types of RTP middlebox that Groups are potentially relevant to those types of RTP middleboxes that
have their own SSRCs and generate RTCP reports for the traffic they have their own SSRCs and generate RTCP reports for the traffic they
receive. RTP middleboxes that do not have their own SSRC, and that receive. RTP middleboxes that do not have their own SSRC and that do not
don't send RTCP reports on the traffic they receive, cannot use the send RTCP reports on the traffic they receive cannot use the
RTCP reporting groups extension, since they generate no RTCP reports RTCP Reporting Group extension, since they generate no RTCP reports
to group.</t> to that group.</t>
<t>An RTP middlebox that has several SSRCs of its own can use the RTCP <t>An RTP middlebox that has several SSRCs of its own can use the RTCP
reporting groups extension to group the RTCP reports it generates. Reporting Group extension to group the RTCP reports it generates.
This can occur, for example, if a middlebox is acting as an RTP mixer 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 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 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 for the video mixer part, and when the middlebox wants to avoid
reporting between audio and video.</t> cross-reporting between audio and video.</t>
<t>A middlebox cannot use the RTCP Reporting Group extension to group
<t>A middlebox cannot use the RTCP reporting groups extension to group
RTCP packets from the SSRCs that it is forwarding. It can, however, RTCP packets from the SSRCs that it is forwarding. It can, however,
group the RTCP packets from the SSRCs it is forwarding into compound group the RTCP packets from the SSRCs it is forwarding into compound
RTCP packets following the rules in Section 6.1 of <xref RTCP packets, following the rules in <xref target="RFC3550" sectionForma
target="RFC3550"/> and Section 5.3 of <xref t="of" section="6.1"/> and <xref target="RFC8108" sectionFormat="of" section="5.
target="I-D.ietf-avtcore-rtp-multi-stream"/>. If the middlebox is 3"/>. If the middlebox is
using RTCP reporting groups for its own SSRCs, it MAY include RTCP using RTCP Reporting Groups for its own SSRCs, it <bcp14>MAY</bcp14> inc
lude RTCP
packets from the SSRCs that it is forwarding as part of the compound packets from the SSRCs that it is forwarding as part of the compound
RTCP packets its reporting source generates.</t> RTCP packets its reporting source generates.</t>
<t>A middlebox that forwards RTCP SR or RR packets sent by members of <t>A middlebox that forwards RTCP SR or RR packets sent by members of
a reporting group MUST forward the corresponding RTCP SDES RGRP items, a Reporting Group <bcp14>MUST</bcp14> forward the corresponding RTCP
as described in <xref target="sec-rgrp"/>. A middlebox that forwards RGRP SDES items,
RTCP SR or RR packets sent by member of a reporting group MUST also as described in <xref target="sec-rgrp" format="default"/>. A middlebox
forward the corresponding RTCP RGRS packets, as described in <xref that forwards
target="sec-rgrs"/>. Failure to forward these packets can cause RTCP SR or RR packets sent by members of a Reporting Group <bcp14>MUST</
compatibility problems, as described in <xref target="compat"/>.</t> bcp14> also
forward the corresponding RTCP RGRS packets, as described in <xref targe
t="sec-rgrs" format="default"/>. Failure to forward these packets can cause
compatibility problems, as described in <xref target="compat" format="de
fault"/>.</t>
<t>If a middlebox rewrites SSRC values in the RTP and RTCP packets <t>If a middlebox rewrites SSRC values in the RTP and RTCP packets
that it is forwarding, then it MUST make the corresponding changes in that it is forwarding, then it <bcp14>MUST</bcp14> make the correspondin g changes in
RTCP SDES packets containing RGRP items and in RTCP RGRS packets, to RTCP SDES packets containing RGRP items and in RTCP RGRS packets, to
allow them to be associated with the rewritten SSRCs.</t> allow them to be associated with the rewritten SSRCs.</t>
</section> </section>
<section anchor="sdp" numbered="true" toc="default">
<section anchor="sdp" title="SDP Signalling for Reporting Groups"> <name>SDP Signaling for Reporting Groups</name>
<t>This document defines the "a=rtcp-rgrp" <xref <t>This document defines the "a=rtcp-rgrp" <xref target="RFC4566" format
target="RFC4566">Session Description Protocol (SDP)</xref> attribute ="default">Session Description Protocol (SDP)</xref> attribute
to indicate if the session participant is capable of supporting RTCP to indicate if the session participant is capable of supporting RTCP
Reporting Groups for applications that use SDP for configuration of Reporting Groups for applications that use SDP for configuration of
RTP sessions. It is a property attribute, and hence takes no value. RTP sessions. It is a property attribute and hence takes no value.
The <xref target="I-D.ietf-mmusic-sdp-mux-attributes">multiplexing The <xref target="RFC8859" format="default">multiplexing
category</xref> is IDENTICAL, as the functionality applies on RTP category</xref> is IDENTICAL, as the functionality applies at the RTP
session level. A participant that proposes the use of RTCP Reporting session level. A participant that proposes the use of RTCP Reporting
Groups SHALL itself support the reception of RTCP Reporting Groups. Groups <bcp14>SHALL</bcp14> itself support the reception of RTCP Reporti
The formal definition of this attribute is:</t> ng Groups.
The formal definition of this attribute is as follows:</t>
<figure> <ul empty="true"><li>
<artwork><![CDATA[ <dl spacing="compact">
Name: rtcp-rgrp <dt>Name:</dt><dd>rtcp-rgrp</dd>
Value: <dt>Value:</dt><dd>None</dd>
Usage Level: session, media <dt>Usage Level:</dt><dd>session, media</dd>
Charset Dependent: no <dt>Charset Dependent:</dt><dd>no</dd>
Example: <dt>Example:</dt><dd>a=rtcp-rgrp</dd>
a=rtcp-rgrp </dl>
]]></artwork> </li>
</figure> </ul>
<t>When using SDP Offer/Answer <xref target="RFC3264"/>, the following <t>When using SDP Offer/Answer <xref target="RFC3264" format="default"/>
procedures are to be used: <list style="symbols"> , the following
<t>Generating the initial SDP offer: If the offerer supports the procedures are to be used: </t>
RTCP reporting group extensions, and is willing to accept RTCP <dl newline="true" spacing="normal">
packets containing those extensions, then it MUST include an <dt>Generating the initial SDP offer:</dt>
<dd>If the offerer supports the
RTCP Reporting Group extensions and is willing to accept RTCP
packets containing those extensions, then it <bcp14>MUST</bcp14> inc
lude an
"a=rtcp-rgrp" attribute in the initial offer. If the offerer does "a=rtcp-rgrp" attribute in the initial offer. If the offerer does
not support RTCP reporting groups extensions, or is not willing to not support RTCP Reporting Group extensions or is not willing to
accept RTCP packets containing those extensions, then it MUST NOT accept RTCP packets containing those extensions, then it <bcp14>MUST
include the "a=rtcp-rgrp" attribute in the offer.</t> NOT</bcp14>
include the "a=rtcp-rgrp" attribute in the offer.</dd>
<t>Generating the SDP answer: If the SDP offer contains an <dt>Generating the SDP answer:</dt>
"a=rtcp-rgrp" attribute, and if the answerer supports RTCP <dd>If the SDP offer contains an
reporting groups and is willing to receive RTCP packets using the "a=rtcp&nbhy;rgrp" attribute, and if the answerer supports RTCP
RTCP reporting groups extensions, then the answerer MAY include an Reporting Groups and is willing to receive RTCP packets using the
"a=rtcp-rgrp" attribute in the answer and MAY send RTCP packets RTCP Reporting Group extensions, then the answerer <bcp14>MAY</bcp14
containing the RTCP reporting groups extensions. If the offer does > include an
"a=rtcp-rgrp" attribute in the answer and <bcp14>MAY</bcp14> send RT
CP packets
containing the RTCP Reporting Group extensions. If the offer does
not contain an "a=rtcp-rgrp" attribute, or 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 contain such an attribute but the answerer does not wish to accept
RTCP packets using the RTCP reporting groups extensions, then the RTCP packets using the RTCP Reporting Group extensions, then the
answer MUST NOT include an "a=rtcp-rgrp" attribute.</t> answer <bcp14>MUST NOT</bcp14> include an "a=rtcp-rgrp" attribute.</
dd>
<t>Offerer Processing of the SDP Answer: If the SDP answer <dt>Offerer processing of the SDP answer:</dt>
contains an "a=rtcp-rgrp" attribute, and the corresponding offer <dd>If the SDP answer
also contained an "a=rtcp-rgrp" attribute, then the offerer MUST contains an "a=rtcp-rgrp" attribute and the corresponding offer
also contained an "a=rtcp-rgrp" attribute, then the offerer <bcp14>M
UST</bcp14>
be prepared to accept and process RTCP packets that contain the be prepared to accept and process RTCP packets that contain the
reporting groups extension, and MAY send RTCP packets that contain Reporting Group extensions and <bcp14>MAY</bcp14> send RTCP packets
the reporting groups extension. If the SDP answer contains an that contain
"a=rtcp-rgrp" attribute, but the corresponding offer did not the Reporting Group extensions. If the SDP answer contains an
contain the "a=rtcp-rgrp" attribute, then the offerer MUST reject "a=rtcp-rgrp" attribute but the corresponding offer did not
contain the "a=rtcp&nbhy;rgrp" attribute, then the offerer <bcp14>MU
ST</bcp14> reject
the call. If the SDP answer does not contain an "a=rtcp-rgrp" the call. If the SDP answer does not contain an "a=rtcp-rgrp"
attribute, then the offerer MUST NOT send packets containing the attribute, then the offerer <bcp14>MUST NOT</bcp14> send packets con
RTCP reporting groups extensions, and does not need to process taining the
packet containing the RTCP reporting groups extensions.</t> RTCP Reporting Group extensions and does not need to process
</list></t> packets containing the RTCP Reporting Group extensions.</dd>
</dl>
<t>In declarative usage of SDP, such as the <xref <t>In declarative usage of SDP, such as the <xref target="RFC7826" forma
target="RFC2326">Real Time Streaming Protocol (RTSP)</xref> and the t="default">Real-Time Streaming Protocol (RTSP)</xref> and the
<xref target="RFC2974">Session Announcement Protocol (SAP)</xref>, the <xref target="RFC2974" format="default">Session Announcement Protocol (S
presence of the attribute indicates that the session participant MAY AP)</xref>, the
presence of the attribute indicates that the session participant <bcp14>
MAY</bcp14>
use RTCP Reporting Groups in its RTCP transmissions. An implementation use RTCP Reporting Groups in its RTCP transmissions. An implementation
that doesn't explicitly support RTCP Reporting Groups MAY join a RTP that doesn't explicitly support RTCP Reporting Groups <bcp14>MAY</bcp14> join an RTP
session as long as it has been verified that the implementation session as long as it has been verified that the implementation
doesn't suffer from the problems discussed in <xref doesn't suffer from the problems discussed in <xref target="compat" form
target="compat"/>.</t> at="default"/>.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Properties of RTCP Reporting Groups"> <name>Properties of RTCP Reporting Groups</name>
<t>This section provides additional information on what the resulting <t>This section provides additional information on what the resulting
properties are with the design specified in <xref properties are (i.e., resulting effects or impacts) as related to the desi
target="reportgroups"/>. The content of this section is gn specified in <xref target="reportgroups"
format="default"/>. The content of this section is
non-normative.</t> non-normative.</t>
<section anchor="reportgroups-bw" numbered="true" toc="default">
<section anchor="reportgroups-bw" <name>Bandwidth Benefits of RTCP Reporting Groups</name>
title="Bandwidth Benefits of RTCP Reporting Groups"> <t>To understand the benefits of RTCP Reporting Groups, consider a
<t>To understand the benefits of RTCP reporting groups, consider a
scenario in which the two endpoints in a session each have a hundred scenario in which the two endpoints in a session each have a hundred
sources, of which eight each are sending within any given reporting sources, of which eight each are sending within any given reporting
interval.</t> interval.</t>
<t>For ease of analysis, we can make the simplifying approximation <t>For ease of analysis, we can make the simplifying approximation
that the duration of the RTCP reporting interval is equal to the total 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 size of the RTCP packets sent during an RTCP interval, divided by the
RTCP bandwidth. (This will be approximately true in scenarios where RTCP bandwidth. (This will be approximately true in scenarios where
the bandwidth is not so high that the minimum RTCP interval is the bandwidth is not so high that the minimum RTCP interval is
reached.) For further simplification, we can assume RTCP senders are reached.) To further simplify, we can assume that RTCP senders are
following the recommendations regarding Compound RTCP Packets in <xref following the recommendations regarding compound RTCP packets in <xref t
target="I-D.ietf-avtcore-rtp-multi-stream"/>; thus, the per-packet arget="RFC8108" format="default"/>; thus, the per-packet
transport-layer overhead will be small relative to the RTCP data. transport-layer overhead will be small relative to the RTCP data.
Thus, only the actual RTCP data itself need be considered.</t> Thus, only the actual RTCP data itself need be considered.</t>
<t>In a report interval in this scenario, there will, as a baseline, <t>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 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 to approximately 6.5 KB of RTCP packets per report interval, assuming 16 -byte
CNAMEs and no other SDES information.</t> CNAMEs and no other SDES information.</t>
<t>Using the original "everyone reports on every sender" feedback rules
<t>Using the original <xref target="RFC3550"/> <xref target="RFC3550" format="default"/>, each of the 184
everyone-reports-on-every-sender feedback rules, each of the 184
receivers will send 16 report blocks, and each of the 16 senders will 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 send 15. This amounts to approximately 76 KB of report block traffic
per interval; 92% of RTCP traffic consists of report blocks.</t> per interval; 92% of RTCP traffic consists of report blocks.</t>
<t>If Reporting Groups are used, however, there is only 0.4 KB of
<t>If reporting groups are used, however, there is only 0.4 kB of
reports per interval, with no loss of useful information. reports per interval, with no loss of useful information.
Additionally, there will be (assuming 16-byte RGRPs, and a single Additionally, there will be (assuming 16-byte RGRPs and a single
reporting source per reporting group) an additional 2.4 kB per cycle reporting source per Reporting Group) an additional 2.4 KB per cycle
of RGRP SDES items and RGRS packets. Put another way, the unmodified of RTCP RGRP SDES items and RGRS packets. Put another way, the unmodifie
<xref target="RFC3550"/> reporting interval is approximately 9 times d
longer than if reporting groups are in use.</t> reporting interval per <xref target="RFC3550" format="default"/> is appr
oximately 9 times
longer than if Reporting Groups are in use.</t>
</section> </section>
<section anchor="compat" numbered="true" toc="default">
<section anchor="compat" title="Compatibility of RTCP Reporting Groups"> <name>Compatibility of RTCP Reporting Groups</name>
<t>The RTCP traffic generated by receivers using RTCP Reporting Groups <t>The RTCP traffic generated by receivers using RTCP Reporting Groups
might appear, to observers unaware of these semantics, to be generated might appear, to observers unaware of these semantics, to be generated
by receivers who are experiencing a network disconnection, as the by receivers who are experiencing a network disconnection, as the
non-reporting sources appear not to be receiving a given sender at non-reporting sources appear not to be receiving a given sender at
all.</t> all.</t>
<t>This could be a potentially critical problem for such a sender <t>This could be a potentially critical problem for such a sender
using RTCP for congestion control, as such a sender might think that using RTCP for congestion control, as such a sender might think that
it is sending so much traffic that it is causing complete congestion it is sending so much traffic that it is causing complete congestion
collapse.</t> collapse.</t>
<t>However, such an interpretation of the session statistics would <t>However, such an interpretation of the session statistics would
require a fairly sophisticated RTCP analysis. Any receiver of RTCP require a fairly sophisticated RTCP analysis. Any receiver of RTCP
statistics which is just interested in information about itself needs statistics that is just interested in information about itself needs
to be prepared that any given reception report might not contain to be prepared for the possibility that any given reception report might
not contain
information about a specific media source, because reception reports information about a specific media source, because reception reports
in large conferences can be round-robined.</t> in large conferences can be round-robined.</t>
<t>Thus, the extent to which such backward-compatibility
<t>Thus, it is unclear to what extent such backward compatibility issues would actually cause trouble in practice is unclear.</t>
issues would actually cause trouble in practice.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Security Considerations"> <name>Security Considerations</name>
<t>The security considerations of <xref target="RFC3550"/> and <xref <t>The security considerations of <xref target="RFC3550" format="default"/
target="I-D.ietf-avtcore-rtp-multi-stream"/> apply. If the RTP/AVPF > and <xref target="RFC8108" format="default"/> apply. If the RTP/AVPF
profile is in use, then the security considerations of <xref profile is in use, then the security considerations of <xref target="RFC45
target="RFC4585"/> (and <xref target="RFC5104"/>, if used) also apply. 85" format="default"/> (and <xref target="RFC5104" format="default"/>, if used)
If RTCP XR is used, the security consideration of <xref also apply.
target="RFC3611"/> and any XR report blocks used also apply.</t> If RTCP XR is used, the security considerations of <xref
target="RFC3611" format="default"/>, including security considerations reg
<t>The RTCP SDES RGRP item is vulnerable to malicious modifications arding any XR report blocks used, also apply.</t>
unless integrity protected is used. A modification of this item's length <t>The RTCP RGRP SDES item is vulnerable to malicious modifications
field cause the parsing of the RTCP packet in which it is contained to unless integrity protection is used. A modification of this item's length
field causes the parsing of the RTCP packet in which it is contained to
fail. Depending on the implementation, parsing of the full compound RTCP fail. Depending on the implementation, parsing of the full compound RTCP
packet can also fail causing the whole packet to be discarded. A packet can also fail, causing the whole packet to be discarded. A
modification to the value of this SDES item would make the receiver of modification 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 the report think that the sender of the report was a member of a
different RTCP reporting group. This will potentially create an different RTCP Reporting Group. This will potentially create an
inconsistency, when the RGRS reports the source as being in the same inconsistency, when the RGRS reports the source as being in the same
reporting group as another source with another reporting group Reporting Group as another source with another Reporting Group
identifier. What impact on a receiver implementation such identifier. The impacts on a receiver implementation that such
inconsistencies would have are difficult to fully predict. One case is inconsistencies could cause are difficult to fully predict. One case is
when congestion control or other adaptation mechanisms are used, an that when congestion control or other adaptation mechanisms are used, an
inconsistent report can result in a media sender to reduce its bit-rate. inconsistent report can result in a media sender reducing its bitrate.
However, a direct modification of the receiver report or a feedback However, a direct modification of the RR or a feedback
message itself would be a more efficient attack, and equally costly to message itself would be a more efficient attack and would be equally costl
y to
perform.</t> perform.</t>
<t>The new RGRS RTCP packet type is very simple. The common RTCP packet
<t>The new RGRS RTCP Packet type is very simple. The common RTCP packet type header shares the same security risks as those that affect previous R
type header shares the security risks with previous RTCP packet types. TCP packet types.
Errors or modification of the length field can cause the full compound Errors or modification of the length field can cause the full compound
packet to fail header validation (see Appendix A.2 in <xref packet to fail header validation (see <xref target="RFC3550" sectionFormat
target="RFC3550"/>) resulting in the whole compound RTCP packet being ="of" section="A.2"/>), resulting in the whole compound RTCP packet being
discarded. Modification of the SC or P fields would cause inconsistency discarded. Modification of the SC field or the P field would cause an inco
when processing the RTCP packet, likely resulting it being classified as nsistency
invalid. A modification of the PT field would cause the packet being when processing the RTCP packet, likely resulting in the packet being clas
interpreted under some other packet type's rules. In such case the sified as
result might be more or less predictable but packet type specific. invalid. A modification of the PT field would cause the packet to be
Modification of the SSRC of packet sender would attribute this packet to interpreted according to some other packet type's rules. In such a case, t
another sender. Resulting in a receiver believing the reporting group he
applies also for this SSRC, if it exists. If it doesn't exist, unless result might be more or less predictable but would be specific to the pack
also corresponding modifications are done on a SR/RR packet and a SDES et type.
packet the RTCP packet SHOULD be discarded. If consistent changes are Modification of the "SSRC of packet sender" field would attribute this pac
done, that could be part of a resource exhaustion attack on a receiver ket to
another sender, resulting in a receiver believing that the Reporting
Group also applies for this SSRC, if it exists. If it doesn't exist, unles
s
corresponding modifications are also done on an SR/RR packet and an SDES
packet, the RTCP packet <bcp14>SHOULD</bcp14> be discarded. If consistent
changes are
done, such a scenario could be part of a resource exhaustion attack on a r
eceiver
implementation. Modification of the "List of SSRCs for the Reporting implementation. Modification of the "List of SSRCs for the Reporting
Source(s)" would change the SSRC the receiver expect to report on behalf Source(s)" field would change the SSRC the receiver expects to report on b
of this SSRC. If that SSRC exist, that could potentially change the ehalf
report group used for this SSRC. A change to another reporting group of this SSRC. If that SSRC exists, this situation could potentially change
belonging to another endpoint is likely detectable as there would be a the
Reporting Group used for this SSRC. A change to another Reporting Group
belonging to another endpoint is likely detectable, as there would be a
mismatch between the SSRC of the packet sender's endpoint information, mismatch between the SSRC of the packet sender's endpoint information,
transport addresses, SDES CNAME etc and the corresponding information transport addresses, SDES CNAME, etc., and the corresponding information
from the reporting group indicated.</t> from the Reporting Group indicated.</t>
<t>In general, the Reporting Group is providing limited-impact attacks
<t>In general the reporting group is providing limited impacts attacks. on the endpoints. The most significant result from a deliberate attack wo
The most significant result from an deliberate attack would be to cause uld be to cause
the information to be discarded or be inconsistent, including discard of the information to be discarded or be inconsistent, including the
discarding of
all RTCP packets that are modified. This causes a lack of information at all RTCP packets that are modified. This causes a lack of information at
any receiver entity, possibly disregarding the endpoints participation any receiver entity, possibly disregarding the endpoint's participation
in the session.</t> in the session.</t>
<t>To protect against such attacks from external non-trusted
<t>To protect against this type of attacks from external non trusted entities, integrity and source authentication <bcp14>SHOULD</bcp14> be app
entities, integrity and source authentication SHOULD be applied. This lied. This
can be done, for example, by using <xref target="RFC3711">SRTP</xref> can be done, for example, by using <xref target="RFC3711"
with appropriate key-management, other options exist as discussed in format="default">the Secure Real-time Transport Protocol (SRTP)</xref>
<xref target="RFC7201">RTP Security Options</xref>.</t> with appropriate key management; other options exist, as discussed in
<xref target="RFC7201" format="default">"Options for Securing RTP Sessions
<t>The Report Group Identifier has a potential privacy impacting "</xref>.</t>
properties. If this would be generated by an implementation in such a <t>The Reporting Group Identifier has properties that could potentially
way that is long term stable or predictable, it could be used for impact privacy. If this identifier were to be generated by an implementati
tracking a particular end-point. Therefore it is RECOMMENDED that it be on in a
way that makes it long-term stable or predictable, it could be used for
tracking a particular endpoint. Therefore, it is <bcp14>RECOMMENDED</bcp14
> that it be
generated as a short-term persistent RGRP, following the rules for generated as a short-term persistent RGRP, following the rules for
short-term persistent CNAMEs in <xref target="RFC7022"/>. The rest of short-term persistent CNAMEs in <xref target="RFC7022" format="default"/>.
the information revealed, i.e. the SSRCs, the size of reporting group The rest of
and the number of reporting sources in a reporting group is of less the information revealed, i.e., the SSRCs, the size of the Reporting Group
,
and the number of reporting sources in a Reporting Group, is of a less
sensitive nature, considering that the SSRCs and the communication would sensitive nature, considering that the SSRCs and the communication would
anyway be revealed without this extension. By encrypting the report be revealed without this extension anyway. By encrypting the Reporting
group extensions the SSRC values would preserved confidential, but can Group extensions, the confidentiality of the SSRC values would be preserve
still be revealed if <xref target="RFC3711">SRTP</xref> is used. The d, but
size of the reporting groups and number of reporting sources are likely the values can
determinable from analysis of the packet pattern and sizes. However, still be revealed if <xref target="RFC3711" format="default">SRTP</xref>
is used. The
size of the 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.</t> this information appears to have limited value.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="IANA Considerations"> <name>IANA Considerations</name>
<t>(Note to the RFC-Editor: in the following, please replace "TBA" with <t>IANA has registered a new RTCP RGRP SDES item in the
the IANA-assigned value, and "XXXX" with the number of this document, "RTP SDES Item Types" registry, as follows:</t>
then delete this note)</t>
<t>The IANA is requested to register one new RTCP SDES items in the
"RTCP SDES Item Types" registry, as follows:</t>
<figure>
<artwork><![CDATA[
Value Abbrev Name Reference
TBA RGRP Reporting Group Identifier [RFCXXXX]
]]></artwork>
</figure>
<t>The definition of the RTCP SDES RGRP item is given in <xref
target="sec-rgrp"/> of this memo.</t>
<t>The IANA is also requested to register one new RTCP packet type in <table anchor="new-RTCP-SDES-item">
the "RTCP Control Packet Types (PT)" Registry as follows:</t> <name>New RTCP RGRP SDES Item: Reporting Group Identifier</name>
<thead>
<tr>
<th>Value</th>
<th>Abbrev</th>
<th>Name</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>11</td>
<td>RGRP</td>
<td>Reporting Group Identifier</td>
<td>RFC 8861</td>
</tr>
</tbody>
</table>
<figure> <t>The definition of the RTCP RGRP SDES item is given in <xref
<artwork><![CDATA[ target="sec-rgrp" format="default"/> of this memo.</t>
Value Abbrev Name Reference
TBA RGRS Reporting Group Reporting Sources [RFCXXXX]
]]></artwork>
</figure>
<t>The definition of the RTCP RGRS packet type is given in <xref <t>IANA has registered a new RTCP packet type in
target="sec-rgrs"/> of this memo.</t> the "RTCP Control Packet Types (PT)" registry, as follows:</t>
<t>The IANA is also requested to register one new SDP attribute:</t> <table anchor="new-RTCP-packet-type">
<name>New RTCP Packet Type: Reporting Group Reporting Sources</name>
<thead>
<tr>
<th>Value</th>
<th>Abbrev</th>
<th>Name</th>
<th>Reference</th>
</tr>
</thead>
<tbody>
<tr>
<td>212</td>
<td>RGRS</td>
<td>Reporting Group Reporting Sources</td>
<td>RFC 8861</td>
</tr>
</tbody>
</table>
<figure> <t>The definition of the RTCP RGRS packet type is given in <xref target="s
<artwork><![CDATA[ ec-rgrs" format="default"/> of this memo.</t>
SDP Attribute ("att-field"): <t>IANA has also registered a new SDP attribute.</t>
Attribute name: rtcp-rgrp <t>SDP Attribute ("att-field"):</t>
Long form: RTCP Reporting Groups <ul empty="true" spacing="normal"><li>
Type of name: att-field <dl indent="22" spacing="normal">
Type of attribute: Media or session level <dt>Contact Name:</dt><dd>IESG</dd>
Subject to charset: No <dt>Contact Email:</dt><dd>iesg@ietf.org</dd>
Purpose: Negotiate or configure the use of the RTCP <dt>Attribute name:</dt><dd>rtcp-rgrp</dd>
Reporting Group Extension. <dt>Long form:</dt><dd>RTCP Reporting Groups</dd>
Reference: [RFCXXXX] <dt>Type of name:</dt><dd>att-field</dd>
Values: None <dt>Type of attribute:</dt><dd>Media or session level</dd>
]]></artwork> <dt>Subject to charset:</dt><dd>No</dd>
</figure> <dt>Purpose:</dt><dd>To negotiate or configure the use of the RTCP Reporti
ng Group extension</dd>
<dt>Reference:</dt><dd>RFC 8861</dd>
<dt>Value:</dt><dd>None</dd>
<dt>Mux Category:</dt><dd>IDENTICAL</dd>
</dl>
</li>
</ul>
<t>The definition of the "a=rtcp-rgrp" SDES attribute is given in <xref <t>The definition of the "a=rtcp-rgrp" SDES attribute is given in <xref ta
target="sdp"/> of this memo.</t> rget="sdp" format="default"/> of this memo.</t>
</section> </section>
</middle> </middle>
<back> <back>
<references title="Normative References"> <references>
<?rfc include="reference.RFC.2119"?> <name>References</name>
<references>
<?rfc include='reference.RFC.3264'?> <name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.3550'?> FC.2119.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.4566'?> FC.3264.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.7022'?> FC.3550.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include="reference.I-D.ietf-avtcore-rtp-multi-stream"?> FC.4566.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.I-D.ietf-mmusic-sdp-mux-attributes'?> FC.7022.xml"/>
</references> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.8174.xml"/>
<references title="Informative References"> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
<?rfc include='reference.RFC.2326'?> FC.8108.xml"/>
<?rfc include='reference.RFC.2974'?>
<?rfc include='reference.RFC.3611'?>
<?rfc include='reference.RFC.3711'?>
<?rfc include='reference.RFC.4585'?>
<?rfc include='reference.RFC.4588'?>
<?rfc include='reference.RFC.5104'?>
<?rfc include='reference.RFC.5506'?>
<?rfc include='reference.RFC.6190'?>
<?rfc include='reference.RFC.7201'?> <!-- draft-ietf-mmusic-sdp-mux-attributes (RFC 8859) -->
<reference anchor="RFC8859" target="https://www.rfc-editor.org/info/rfc8859">
<front>
<title>A Framework for Session Description Protocol (SDP) Attributes When Mu
ltiplexing</title>
<author initials="S" surname="Nandakumar" fullname="Suhas Nandakumar">
<organization/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8859"/>
<seriesInfo name="DOI" value="10.17487/RFC8859"/>
</reference>
</references>
<references>
<name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.2974.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3611.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.3711.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4585.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.4588.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5104.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.5506.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.6190.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7201.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R
FC.7826.xml"/>
</references>
</references> </references>
</back> </back>
</rfc> </rfc>
 End of changes. 161 change blocks. 
539 lines changed or deleted 614 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/