| 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 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) 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) choose a new reporting source | |||
| target="I-D.ietf-avtcore-rtp-multi-stream"/>.</t> | , or (c) 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) 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) 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) 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) 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/ | ||||