Re: [MMUSIC] [rtcweb] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description
Christer Holmberg <christer.holmberg@ericsson.com> Fri, 03 February 2017 10:42 UTC
Return-Path: <christer.holmberg@ericsson.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 10431127078; Fri, 3 Feb 2017 02:42:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.22
X-Spam-Level:
X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 isngXanBEGuT; Fri, 3 Feb 2017 02:42:39 -0800 (PST)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (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 89556129BDA; Fri, 3 Feb 2017 02:42:38 -0800 (PST)
X-AuditID: c1b4fb2d-e76b398000007e3d-82-58945e9cd894
Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by (Symantec Mail Security) with SMTP id E1.14.32317.C9E54985; Fri, 3 Feb 2017 11:42:36 +0100 (CET)
Received: from ESESSMB209.ericsson.se ([169.254.9.76]) by ESESSHC015.ericsson.se ([153.88.183.63]) with mapi id 14.03.0319.002; Fri, 3 Feb 2017 11:42:30 +0100
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: "Cullen Jennings (fluffy)" <fluffy@cisco.com>, Magnus Westerlund <magnus.westerlund@ericsson.com>
Thread-Topic: [rtcweb] [MMUSIC] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description
Thread-Index: AQHSfaJ5jrr91gBvrE2+PKFOpdD0GaFXKnMA
Date: Fri, 03 Feb 2017 10:42:30 +0000
Message-ID: <D4BA2B3D.1756C%christer.holmberg@ericsson.com>
References: <1f020dc6-1ac8-b71b-aee4-a711d15f1588@ericsson.com> <2e0ea537-d03e-f263-ad64-cdd65ecd3fb5@ericsson.com> <D701B5B7-C221-4D0E-B10A-D01D3FE5E4AD@cisco.com>
In-Reply-To: <D701B5B7-C221-4D0E-B10A-D01D3FE5E4AD@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.7.1.161129
x-originating-ip: [153.88.183.17]
Content-Type: text/plain; charset="iso-8859-1"
Content-ID: <986C7FAA008B9D46BA9ED85C3F95178E@ericsson.com>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrCIsWRmVeSWpSXmKPExsUyM2K7ve6cuCkRBn+n6FhMn/WOzWJ+xzo2 i47JbBZTlz9msVj7r53dgdVjyu+NrB5Llvxk8vhy+TNbAHMUl01Kak5mWWqRvl0CV8af7neM Baf7GCuWHZvA3sA4N7uLkZNDQsBEonndFbYuRi4OIYF1jBKXmy5DOYsYJWa+7mDqYuTgYBOw kOj+pw3SICKQLtH+4BEziM0s0MEkcWmFAogtLFAtcWDWXkaImhqJNauvsELYRhJXe46C2SwC KhJ3p61lA7F5BawlNuz9ywKxawWjxM9N05lAEpwCthIfpr4HG8QoICbx/dQaJohl4hK3nsxn grhaQGLJnvPMELaoxMvH/8AWiAroSSx/voYZ5GYJAUWJ5f1yEK16EjemTmGDsK0ler+/hLpf W2LZwtfMEPcISpyc+YRlAqP4LCTbZiFpn4WkfRaS9llI2hcwsq5iFC1OLS7OTTcy1kstykwu Ls7P08tLLdnECIzLg1t+6+5gXP3a8RCjAAejEg/vhsbJEUKsiWXFlbmHGCU4mJVEeAX9pkQI 8aYkVlalFuXHF5XmpBYfYpTmYFES5zVbeT9cSCA9sSQ1OzW1ILUIJsvEwSnVwJi+nI/398Fa mfsJSjkcaWZcG6z6Pm28OO3nkaex15bVLmYNyZxgl+opfS4nap2M647oUyHRey5ESSZ8aRT5 NrPfJnlvDwv/O63nExSW6mrI7v+78ggP/9FOIfnPC4Pkq59rGlg8czomvtsnQlph7fzf95cL SHzZ2WW88d6mV4bsizmv57A/eKbEUpyRaKjFXFScCAAhOCAjxwIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/1YD5uKaEYvG9xEvTsFmYKuhxiHU>
Cc: "draft-ietf-rtcweb-jsep@tools.ietf.org" <draft-ietf-rtcweb-jsep@tools.ietf.org>, RTCWeb IETF <rtcweb@ietf.org>, "mmusic (E-mail)" <mmusic@ietf.org>, "draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org" <draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org>
Subject: Re: [MMUSIC] [rtcweb] 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: Fri, 03 Feb 2017 10:42:42 -0000
Hi, >2) both the proposed and current text seem lacking in dealing with >multiple bundle groups No matter what text we move forward with, I think it shall be explicitly said that the procedures are per IP address:port. So, if you have multiple bundle groups, you will apply the procedures to each group, independent of each other. Regards, Christer > >> On Jan 30, 2017, at 6:18 AM, Magnus Westerlund >><magnus.westerlund@ericsson.com> wrote: >> >> Hi, >> >> I have now generated a pull request for this text, with some very minor >>changes. >> >> https://github.com/rtcweb-wg/jsep/pull/538 >> >> Cheers >> >> Magnus >> >> Den 2017-01-27 kl. 17:43, skrev Magnus Westerlund: >>> 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. >>> >> >> >> -- >> >> 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 >> ---------------------------------------------------------------------- >> >> _______________________________________________ >> rtcweb mailing list >> rtcweb@ietf.org >> https://www.ietf.org/mailman/listinfo/rtcweb >
- [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