Re: [MMUSIC] Text proposal for Bundle regarding Associating RTP/RTCP With Correct SDP Media Description

Magnus Westerlund <magnus.westerlund@ericsson.com> Mon, 30 January 2017 13:18 UTC

Return-Path: <magnus.westerlund@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 77CA412949E; Mon, 30 Jan 2017 05:18:59 -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 UHMLn-JW5-hp; Mon, 30 Jan 2017 05:18:57 -0800 (PST)
Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (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 98FB8129499; Mon, 30 Jan 2017 05:18:56 -0800 (PST)
X-AuditID: c1b4fb3a-d5ffb70000004068-23-588f3d3dc143
Received: from ESESSHC015.ericsson.se (Unknown_Domain [153.88.183.63]) by (Symantec Mail Security) with SMTP id B3.FF.16488.D3D3F885; Mon, 30 Jan 2017 14:18:54 +0100 (CET)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.65) with Microsoft SMTP Server id 14.3.319.2; Mon, 30 Jan 2017 14:18:53 +0100
To: "mmusic (E-mail)" <mmusic@ietf.org>, "rtcweb@ietf.org" <rtcweb@ietf.org>, "draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org" <draft-ietf-mmusic-sdp-bundle-negotiation@ietf.org>, draft-ietf-rtcweb-jsep@tools.ietf.org
References: <1f020dc6-1ac8-b71b-aee4-a711d15f1588@ericsson.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <2e0ea537-d03e-f263-ad64-cdd65ecd3fb5@ericsson.com>
Date: Mon, 30 Jan 2017 14:18:52 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.6.0
MIME-Version: 1.0
In-Reply-To: <1f020dc6-1ac8-b71b-aee4-a711d15f1588@ericsson.com>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrALMWRmVeSWpSXmKPExsUyM2K7va6dbX+Ewdp75hbTZ71js5jfsY7N YuryxywWa/+1szuweCxZ8pPJ48vlz2wBTFFcNimpOZllqUX6dglcGdM77zAWzG9irOiYe5Ct gXFfXBcjJ4eEgInExRfd7F2MXBxCAusYJVY17GEBSQgJLGeUuP2lDMQWFiiSOPCyjRmkSETg CaNE/4LHQEXsQEX2Eo+FQErYBCwkbv5oZAOxeYGiC9c2gdksAqoSs++uARspKhAj8Xb9cnaI GkGJkzOfgMU5BRwklnZOY+1i5OBgBup9sBVsK7OAvETz1tnMENdoSzQ0dbBOYOSfhaR7FkLH LCQdCxiZVzGKFqcWF+emGxnppRZlJhcX5+fp5aWWbGIEhuPBLb+tdjAefO54iFGAg1GJh3eD dV+EEGtiWXFl7iFGCQ5mJRHeSRb9EUK8KYmVValF+fFFpTmpxYcYpTlYlMR5zVbeDxcSSE8s Sc1OTS1ILYLJMnFwSjUwVl9ZZyXGZhK3ry8xYSZ72/4n31runLhvIrQlTmW226bZ85q2LC5b vT7U6KHA1bkCq59e4GtPUzyl+PwJY8xf/yJ9gfvrdp/WTj3T4RRffqhVxm2So4XG7KMyC+t7 TL+1LnqTyiu26dcttYeZ/1f7hLpmzH3+nvNbnJTbZ/bty+6ymp6r8Vc8rMRSnJFoqMVcVJwI AF2C9uFDAgAA
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/MMVLlH32IRO3PaUEb7LWuDSkthc>
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: Mon, 30 Jan 2017 13:18:59 -0000

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
----------------------------------------------------------------------