Re: [MMUSIC] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description
Jonathan Lennox <jonathan@vidyo.com> Tue, 31 January 2017 17:57 UTC
Return-Path: <prvs=82043b512d=jonathan@vidyo.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id E8BD8129524; Tue, 31 Jan 2017 09:57:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.998
X-Spam-Level:
X-Spam-Status: No, score=0.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_SORBS_WEB=3.599, SPF_PASS=-0.001] autolearn=no autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1B6mGbD-Qu6B; Tue, 31 Jan 2017 09:57:30 -0800 (PST)
Received: from mx0b-00198e01.pphosted.com (mx0a-00198e01.pphosted.com [67.231.149.202]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 491211294A5; Tue, 31 Jan 2017 09:57:30 -0800 (PST)
Received: from pps.filterd (m0073109.ppops.net [127.0.0.1]) by mx0a-00198e01.pphosted.com (8.16.0.20/8.16.0.20) with SMTP id v0VHroDp021261; Tue, 31 Jan 2017 12:57:27 -0500
Received: from mail.vidyo.com ([162.209.16.214]) by mx0a-00198e01.pphosted.com with ESMTP id 288n9q9xad-1 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NOT); Tue, 31 Jan 2017 12:57:27 -0500
Received: from 492132-EXCH1.vidyo.com ([fe80::50:56ff:fe85:4f77]) by 492133-EXCH2.vidyo.com ([fe80::50:56ff:fe85:6b62%13]) with mapi id 14.03.0195.001; Tue, 31 Jan 2017 11:57:25 -0600
From: Jonathan Lennox <jonathan@vidyo.com>
To: Magnus Westerlund <magnus.westerlund@ericsson.com>
Thread-Topic: [MMUSIC] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description
Thread-Index: AQHSe+hqNyVXjtU64EysMGTN3ByD2aFTQ7wA
Date: Tue, 31 Jan 2017 17:57:25 +0000
Message-ID: <B0092C29-4ADB-4F0B-9452-0C67B33862D7@vidyo.com>
References: <1f020dc6-1ac8-b71b-aee4-a711d15f1588@ericsson.com>
In-Reply-To: <1f020dc6-1ac8-b71b-aee4-a711d15f1588@ericsson.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [160.79.219.114]
Content-Type: text/plain; charset="Windows-1252"
Content-ID: <EB35F8A750E19E4DB132292D56D6140A@vidyo.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:, , definitions=2017-01-31_08:, , signatures=0
X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 impostorscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1612050000 definitions=main-1701310151
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/rVD49yRazB0iTWj5yO1kQDoaJ4A>
Cc: "draft-ietf-rtcweb-jsep@tools.ietf.org" <draft-ietf-rtcweb-jsep@tools.ietf.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>, mmusic <mmusic@ietf.org>, "draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org" <draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org>
Subject: Re: [MMUSIC] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>, <mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>, <mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 31 Jan 2017 17:57:32 -0000
And one more question. This one has significant interop issues, I think. Should decoding contexts be assumed to be associated with streams independent of m= lines, or with streams within m= lines? Specifically, if a sender moves a video stream from one m= line to another (maintaining its PT), must it send a fresh I-frame (keyframe) at the time of the move, or can it continue sending inter frames? > On Jan 27, 2017, at 11:43 AM, Magnus Westerlund <magnus.westerlund@ericsson.com> wrote: > > MMUSIC and RTCWEB, > > Here is now a more complete text proposal that also considers the RTCP. It also goes further than what Appendix B defines in one aspect, namely explicitly considering third party RTCP reporting and what to do with it. > > Feedback is much appreciated. I plan to put this into a PR towards JSEP APPENDIX B on monday. If only to get the JSEP authors attention ;-). However, the text is really intended for the next version of BUNDLE. > > > X. Associating RTP/RTCP With Correct SDP Media Description > > As described in [RFC3550], RTP packets are associated with RTP > streams [RFC7656]. Each RTP stream is identified by an SSRC value, > and each RTP packet carries an SSRC value that is used to associate > the packet with the correct RTP stream. RTCP packets also uses SSRCs > to identify on which RTP streams any report or feedback relate to. > Thus, an RTCP packet will commonly carry multiple SSRC values, and > might therefore be providing feedback or report on multiple RTP > streams. > > In order to be able to process received RTP/RTCP packets correctly it > must be possible to associate an RTP stream with the correct "m=" > line, as the "m=" line and SDP attributes associated with the "m=" > line contain information needed to process the packets. > > As all RTP streams associated with a BUNDLE group are part of the > same RTP session and using the same address:port combination for > sending and receiving RTP/RTCP packets, the local address:port > combination cannot be used to associate an RTP stream with the > correct "m=" line. In addition, multiple RTP streams might be > associated with the same "m=" line. > > Also, as described in Section 10.1.1, the same payload type value > might be used by multiple RTP streams, in which case the payload type > value cannot be used to associate an RTP stream with the correct "m=" > line. However, there are cases where each "m=" line has unique > payload type values, and then the payload type could serve as > indicator to the relevant "m=" line the RTP stream is associated > with. > > An offerer and answerer can inform each other which SSRC values they > will use for an RTP stream by using the SDP 'ssrc' attribute > [RFC5576]. However, an offerer will not know which SSRC values the > answerer will use until the offerer has received the answer providing > > > > Name Expires July 31, 2017 [Page 2] > > Internet-Draft Abbreviated-Title January 2017 > > > that information. Due to this, before the offerer has received the > answer, the offerer will not be able to associate an RTP stream with > the correct "m=" line using the SSRC value associated with the RTP > stream. In addition, the offerer and answerer may start using new > SSRC values mid-session, without informing each other using the SDP > 'ssrc' attribute. > > In order for an offerer and answerer to always be able to associate > an RTP stream with the correct "m=" line, the offerer and answerer > using the BUNDLE extension MUST support the mechanism defined in > Section 14, where the offerer and answerer includes the > identification-tag (provided by the remote peer) associated with an > "m=" line in the RTP Streams and in RTCP SDES packets part of a > BUNDLE group. > > The mapping from an SSRC to an identification-tag is carried in RTCP > SDES packets or in RTP header extensions (Section 14). Since a > compound RTCP packet can contain multiple RTCP SDES packets, and each > RTCP SDES packet can contain multiple chunks, an RTCP packet can > contain several SSRC to identification-tag mappings. The offerer and > answerer maintain tables mapping RTP streams identified by SSRC to > "m=" lines identified by the identification-tag. These tables are > updated each time new information that affects how packets should be > processed and routed are received. > > To prepare for demultiplexing RTP streams to the correct "m=" line, > the following steps MUST be followed for each BUNDLE group based on > the SDP signalling information. > > Construct a table mapping MID to "m=" line for each "m=" line in > this BUNDLE group. Note that an "m=" line may only have one MID. > > Construct a table mapping incoming RTP streams (SSRCs) to their > "m=" line for each "m=" line in this BUNDLE group and for each RTP > stream explicitly signalled for receiving in that "m=" line. > > Construct a table mapping payload types to "m=" line for each "m=" > line in the BUNDLE group and for each payload type configured for > receiving in that "m=" line. If any payload type is configured > for receiving in more than one "m=" line in the BUNDLE group, do > not it include it in the table. > > Note that for each of these tables, there can only be one mapping for > any given key (MID, SSRC, or PT). In other words, the tables are not > multimaps. > > As "m=" lines are added or removed from the BUNDLE groups, or their > configurations are changed, the tables above MUST also be updated. > > > > Name Expires July 31, 2017 [Page 3] > > Internet-Draft Abbreviated-Title January 2017 > > > Received RTP packets that are syntactically correct are processed by > the RTP/RTCP protocol implementation for statistics etc. After this > processing they need to be routed to the higher layer context > associated with the "m=" line within the BUNDLE group. Somewhere in > the process where an received RTP packet is processed to be delivered > to the higher layer by RTP the matching step below MUST be performed: > > 1. Reception of an RTP packet for an RTP stream that has an existing > mapping in the RTP stream to m= line table. Before proceeding in > delivering the packet to the higher layer context according to > the RTP stream to "m=" line mapping table the following checks > MUST be performed: > > A. If the packet carries an RTP header extension with a SDES MID > value that is not in the table mapping MID to "m=" line, then > do not deliver the RTP packet to higher layers. > > B. If the packet carries an RTP header extension with a SDES MID > value that is in the table mapping MID to "m=" line, and the > value indicates a different "m=" line than the current RTP > stream to "m=" line mapping table, then update the RTP stream > to "m=" line mapping. > > 2. Reception of an RTP packet for an RTP stream that has no existing > mapping to an m= line. In this case the following actions MUST > be performed: > > A. If the packet carries an RTP header extension with a SDES MID > value that is in the table mapping MID to "m=" line, then > create an entry in the RTP stream to "m=" line mapping table > for this RTP stream (SSRC). Then deliver the RTP packet to > the "m=" line context of the created mapping and stop. > > B. If the packet carries a Payload Type that is in the payload > type table, then create an entry in the RTP stream to "m=" > line mapping table for this RTP stream (SSRC). Then deliver > the RTP packet to the "m=" line context of the created > mapping and stop. > > C. Otherwise do not deliver the RTP packet to higher layers. > Note, this includes unknown MID values. > > For each RTCP packet received (including each RTCP packet that is > part of a compound RTCP packet), the RTCP packet needs to be > processed by the RTP/RTCP implementation and relevant information and > data from the RTCP packets needs to be routed to the appropriate > handler for the related RTP streams. The appropriate handler is > determined by using the RTP stream to "m=" line mapping table. > > > > Name Expires July 31, 2017 [Page 4] > > Internet-Draft Abbreviated-Title January 2017 > > > On reception of any compound RTCP packet prior to dispatching the > received information and data, if there is an RTCP SDES packet > included that SHOULD be processed first. If that SDES packet > contains SDES MID entries, this can results in updates and additions > to the RTP stream to "m=" line mapping table. Thus each of the SDES > MID items are processed and the current table entries are checked if > the corresponding MID value matches the current RTP stream to "m=" > line mapping, else the entry is updated. If there is no RTP stream > to "m=" line table mapping entry for the received SDES item's SSRC, > such an entry is created. Note, that in the process of updating the > table entries, update flap suppression as discussed in Section 4.2.6 > of [RFC7941] should be considered. > > The various different RTCP packets as well as their various sub > parts, such as the various RTCP Feedback message types, relates to > the RTP streams in a couple of different ways. The currently known > patterns are the following: > > Reports on outgoing RTP streams: For all RTP streams that this > endpoint is the source of, it can expect to receive report blocks > of several types identified as relating to an outgoing stream. > The basic pattern for these blocks are that the RTCP packet header > identifies the source of the reports, as identified by an SSRC, > and containing one or more report blocks, where each report block > identifies the RTP stream, using the SSRC, the report relates to. > For this pattern the relevant report information is provided to > the higher layer associated with the "m=" line the RTP Stream to > "m=" line table identifies. The source SSRC as identifier of the > endpoint that the report originates are relevant for interpreting > the information, but not necessarily for routing. Example of this > is pattern are: > > Sender Report (SR) and Receiver Report (RR) The basic receiver > report blocks from RFC3550 start with the SSRC of the RTP > stream they report on. > > Extended Reports (XR): RFC3611 is a framework that enables a > large number of different reports. However, a large number of > these report formats are reporting on specific RTP streams and > thus each individual report of these types contains a SSRC > field to identify the RTP stream. > > RTCP Feedback Messages for outgoing RTP streams: The RFC 4585 RTCP > feedback messages allow for a number of different type of feedback > messages. However, the RTCP feedback message header contains the > SSRC identifying the source of the feedback messages as well as > the actual type of the feedback. Some of the feedback messages > also uses the target SSRC field in the header to identify which > > > > Name Expires July 31, 2017 [Page 5] > > Internet-Draft Abbreviated-Title January 2017 > > > RTP stream the feedback is related to. For these types all the > FCI entries, if multiple ones are forwarded to the identified > handler. Examples of this pattern are: > > Picture Loss Indication (PLI): RFC 4585 (PT=PSFB, FMT=1). > > Slice Loss Indication (SLI): RFC 4585 (PT=PSFB, FMT=2). > > Reference Picture Selection Indication (RPSI): RFC 4585 (PT=PSFB, > FMT=3). > > Generic NACK: [RFC4585] (PT=RTPFB and FMT=1). > > Other feedback messages includes the target SSRC in the Feedback > Control Information (FCI). Here each FCI needs to be processed > and the SSRC field identified. And the individual FCI combined > with the RTCP packet header context needs to be forwarded to the > identified handler. Example of this pattern are: > > Full Intra Request (FIR): [RFC5104] (PT=PSFB, FMT=4). > > Temporal-Spatial Trade-off Request (TSTR): [RFC5104] (PT=PSFB, > FMT=5). > > Temporal-Spatial Trade-off Notification (TSTN): This [RFC5104] > defined message (PT=PSFB, FMT=5) is actually a notifciation in > response to a TSTR this endpoint sent using the SSRC the FCI > identifies as source. > > H.271 Video Back Channel Message (VBCM): [RFC5104] (PT=PSFB, > FMT=7). > > Layer Refresh Request (LRR): [I-D.ietf-avtext-lrr] (PT=PSFB, > FMT=TBD). > > Descriptive or Notifications for an incoming RTP stream: There exist > some RTCP packet types that provides additional information or > notifies about events related to the RTP stream identified. In > these cases the RTP stream is identified using the SSRC field > value, and the information is provided to the higher layer > associated with the "m=" line for the incoming RTP stream as > identified by the current RTP stream to "m=" line table. For this > type of pattern it is common that the RTCP packets and information > is repeated, either periodically (e.g. SDES items), or for a > duration (e.g. BYE), thus suppression of repetitions can be > considered. Examples of these are: > > > > > > Name Expires July 31, 2017 [Page 6] > > Internet-Draft Abbreviated-Title January 2017 > > > Source Description (SDES) RTCP Packet: The base RTP/RTCP protocol > [RFC3550] defines SDES RTCP packets as a way of providing per > source (SSRC) specific information about the source. An SDES > packet contains zero or more chunks, where a chunk contains the > SSRC for the source being described by the one or more items > included in the chunk. Forward the SDES items in each chunk to > the RTP stream's handler. > > Goodbye (BYE) RTCP Packet: This RTP/RTCP protocol [RFC3550] > mechanism indicates that a particular RTP stream is leaving the > RTP session. Thus, a most relevant event to inform the handler > for this RTP steam of. > > Third Party Targeted Reports or Feedback: There exist some > multiparty RTP Topologies that results in that an endpoint > receives third party reports (SR [RFC3550], RR [RFC3550] or XR > [RFC3611]) as well as Feedback Messages [RFC4585] that relates to > or targets an SSRC that originates from another endpoint, and > where the source of the RTCP packet is also another endpoint. > This type of packets should be forwarded to the higher layer > function dealing with the third party reporting. And if none > exist then they can be suppressed. As the third party handler can > be focused on determining the conditions for the source of the > reports and feedback, or focused on how the RTP stream source > progresses, or both recommendations can't be made. > > APP Packets: The RTCP APP Packets [RFC3550] are a mechanism that > enables experimentation. The APP packet only specifies the source > of the packet. Thus this information can be related to any of the > "m=" lines, thus deliver a copy of the packet to each "m=" line or > an APP specific handler. > > -- > Cheers > > Magnus Westerlund > > ---------------------------------------------------------------------- > Services, Media and Network features, Ericsson Research EAB/TXM > ---------------------------------------------------------------------- > Ericsson AB | Phone +46 10 7148287 > Färögatan 6 | Mobile +46 73 0949079 > SE-164 80 Stockholm, Sweden | mailto: magnus.westerlund@ericsson.com > ---------------------------------------------------------------------- > > _______________________________________________ > mmusic mailing list > mmusic@ietf.org > https://www.ietf.org/mailman/listinfo/mmusic >
- [MMUSIC] Text proposal for Bundle regarding Assoc… Magnus Westerlund
- Re: [MMUSIC] Text proposal for Bundle regarding A… Magnus Westerlund
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Magnus Westerlund
- Re: [MMUSIC] Text proposal for Bundle regarding A… Jonathan Lennox
- Re: [MMUSIC] Text proposal for Bundle regarding A… Jonathan Lennox
- Re: [MMUSIC] Text proposal for Bundle regarding A… Magnus Westerlund
- Re: [MMUSIC] Text proposal for Bundle regarding A… Christer Holmberg
- Re: [MMUSIC] Text proposal for Bundle regarding A… Jonathan Lennox
- Re: [MMUSIC] Text proposal for Bundle regarding A… Jonathan Lennox
- Re: [MMUSIC] Text proposal for Bundle regarding A… Christer Holmberg
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Bernard Aboba
- Re: [MMUSIC] Text proposal for Bundle regarding A… Magnus Westerlund
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Magnus Westerlund
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Roni Even
- Re: [MMUSIC] Text proposal for Bundle regarding A… Cullen Jennings
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Cullen Jennings (fluffy)
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Iñaki Baz Castillo
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Bernard Aboba
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Christer Holmberg
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Magnus Westerlund
- Re: [MMUSIC] Text proposal for Bundle regarding A… Magnus Westerlund
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Cullen Jennings (fluffy)
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Christer Holmberg
- Re: [MMUSIC] [rtcweb] Text proposal for Bundle re… Justin Uberti