Re: [AVTCORE] BUNDLE and same payload type in different "bundled" m= lines

Magnus Westerlund <magnus.westerlund@ericsson.com> Fri, 11 March 2016 08:51 UTC

Return-Path: <magnus.westerlund@ericsson.com>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2813512D59C for <avt@ietfa.amsl.com>; Fri, 11 Mar 2016 00:51:29 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 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] 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 BU-VGwAiZCpk for <avt@ietfa.amsl.com>; Fri, 11 Mar 2016 00:51:27 -0800 (PST)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 67D7012D59B for <avt@ietf.org>; Fri, 11 Mar 2016 00:51:12 -0800 (PST)
X-AuditID: c1b4fb2d-f79836d000006396-c2-56e286fd896e
Received: from ESESSHC019.ericsson.se (Unknown_Domain [153.88.183.75]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id 33.67.25494.DF682E65; Fri, 11 Mar 2016 09:51:09 +0100 (CET)
Received: from [127.0.0.1] (153.88.183.153) by smtp.internal.ericsson.com (153.88.183.77) with Microsoft SMTP Server id 14.3.248.2; Fri, 11 Mar 2016 09:50:59 +0100
To: =?UTF-8?Q?I=c3=b1aki_Baz_Castillo?= <ibc@aliax.net>, Bernard Aboba <bernard.aboba@gmail.com>
References: <CALiegf=ipwHpMVo2H12-FspsEx2EP8dBkabLHmDta-WWoor_zg@mail.gmail.com> <61AB25C3-A41F-44B4-B2C4-8A2F8E202B8E@gmail.com> <CALiegfmc=mrX9tYW8WJXQvV2fA8Q2+LddDYqQQTorFyeNQgNCg@mail.gmail.com>
From: Magnus Westerlund <magnus.westerlund@ericsson.com>
Message-ID: <56E286F2.7070002@ericsson.com>
Date: Fri, 11 Mar 2016 09:50:58 +0100
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.6.0
MIME-Version: 1.0
In-Reply-To: <CALiegfmc=mrX9tYW8WJXQvV2fA8Q2+LddDYqQQTorFyeNQgNCg@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"; format=flowed
Content-Transfer-Encoding: 8bit
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBLMWRmVeSWpSXmKPExsUyM2K7t+7ftkdhBteXKVq87FnJbrFh339m i+n7bByYPc41vGf32DnrLrvHkiU/mQKYo7hsUlJzMstSi/TtErgypuxvYS74b1Ax8f9d5gbG DvUuRg4OCQETid6F3F2MnECmmMSFe+vZuhi5OIQEDjNKLG3oZYJwljNK7Hi5ih2kSlggVGLF pjWsILaIQJLE9mNLmCGKTjFKrJx4jxVkKrOAosSkdkmQGjYBC4mbPxrZQGxeAW2Jc5t+MIHY LAKqEl1rm1hAbFGBGInj784xQtQISpyc+YQFZAynQKDE19s2IGFmoDEz559nhLDlJZq3zmYG sYWARjY0dbBOYBSchaR7FpKWWUhaFjAyr2IULU4tLs5NNzLWSy3KTC4uzs/Ty0st2cQIDN+D W37r7mBc/drxEKMAB6MSD2/Bn4dhQqyJZcWVuYcYJTiYlUR4P1Q9ChPiTUmsrEotyo8vKs1J LT7EKM3BoiTOy/bpcpiQQHpiSWp2ampBahFMlomDU6qBcdVav/0Vbs5CpQJCP1+q1Jj1hV/3 dV/U6ratSXJ7VeLtc0l6ucdCTOWO1E92knNmycqMvKlc8MF28Z1bsqpLVd+tPXyovPV7ipDn utMbNlxar+RuVLA3US5pxh9p8d0v9W/fifklanj+eozPDwN9tlPHbtbNKnar0yxnmztJVv2z xp/tAuzMSizFGYmGWsxFxYkA2Gc/U1sCAAA=
Archived-At: <http://mailarchive.ietf.org/arch/msg/avt/K1VKFEZsXWSvixwvDyjV8nkMQ7c>
Cc: "avt@ietf.org" <avt@ietf.org>
Subject: Re: [AVTCORE] BUNDLE and same payload type in different "bundled" m= lines
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 11 Mar 2016 08:51:29 -0000

Den 2016-03-10 kl. 23:44, skrev Iñaki Baz Castillo:
> 2016-03-09 23:29 GMT+01:00 Bernard Aboba <bernard.aboba@gmail.com>om>:
>> [BA] What specific text in BUNDLE mandates this? In particular, the
>> VP8 decoder can decode anything that the encoder can send, so the
>> streams from the different participants do not require unique
>> decoder settings. So AFAICT the SFU could send N streams to a given
>> participant, each using PT=100, but with N distinct SSRCs.
>
> At the end it happens that RFC 3550 (RTP) defines "RTP session" as
> all the stuff sent by an RTP participant over a specific transport
> (5-tuple), and it mandates PT to be unique within a "RTP session".
>
> Due to that, it seems that legacy middleboxes/endpoints just take
> the PT to identify codecs.
>
> Then BUNDLE arrives and a "RTP session" no longer identifies a
> single transport for a single RTP participant. But legacy systems
> still assume that, so PT must remain unique.

I don't really agree to this characterization of Bundle. Bundle is SDP
solution for how one adds media source level information around the RTP
streams that all are sent within a single RTP session.

In non offer/answer usage of SDP, like in SAP and RTSP the m= lines
represents a RTP session, not a media source. In these cases you don't
have any information about the specific RTP streams, there is an
assumption that there will be sent one or more per direction in these
usages.

>
> I don't yet understand why the same PT value can be used for
> different bundled streams if they refer to the same
> codec+configuration, since those PTs now belong to different streams.
> But I don't care too much about that.
>

To be clear, from a high level it exists a possibility to define usages
of the RTP that would define the PT value to be scoped on SSRC basis,
rather then RTP session level. However the devil is in the details and
such a usage would require careful review of existing specifications to
find where there might be issues. I am especially worried about issues
in the RTCP parts, for cases where PT information are used. Normally
this is clearly done in the context of an SSRC. But, to be certain there
are no issues one has to review things.  I am also expecting that more
than one RTP stack implementation are unable to support this without
modifications, possibly extensive ones. This as the data structures for
the PT are associated with the RTP session rather than individual SSRCs.

I want to be clear that if one like to pursue this idea of redefining 
what PT are scoped by, then this requires AVTCORE work to create a 
specification for such a usage. If that is a new profile or something 
else that will have to be for future discussions.


So, I would like to make sure that we are on a common understanding what 
a SFU have to do with the RTP streams to make it possible to re-use the PTs.

So if we start with A and B communicating across an SFU. I will continue 
this from your example when you raised this in MMUSIC:

1) mid: alice-audio,  codec: opus,  payload: 100, ssrc: 1111
2) mid: bob-audio,   codec: g722,  payload: 100, ssrc: 2222

This would mean that Carol receives an SDP with two "m=audio"
sections using BUNDLE:


   m=audio [...] 100
   a=sendonly
   a=mid:alice-audio
   a=rtpmap:100 opus/48000/2
   a=ssrc:1111 cname:foo
   [...]
   m=audio [...] 100
   a=sendonly
   a=mid:bob-audio
   a=rtpmap:100 g722/48000
   a=ssrc:2222 cname:bar
   [...]

So from my perspective what the conference signalling server has to send 
Carol is an SDP that looks like this:

This would mean that Carol receives an SDP with two "m=audio"
sections using BUNDLE:


   m=audio [...] 100
   a=sendonly
   a=mid:alice-audio
   a=rtpmap:100 opus/48000/2
   a=ssrc:1111 cname:foo
   [...]
   m=audio [...] 101
   a=sendonly
   a=mid:bob-audio
   a=rtpmap:101 g722/48000
   a=ssrc:2222 cname:bar
   [...]


Then the SFU will need to change all RTP packets with PT=100 from Bob to 
PT=101 when forwarding them to Carol. The packets from Alice it can 
leave unchanged from an PT perspective.

If David joins the session and can do both codecs and offers like this:

m=audio [...] 98 99
a=sendrecv
a=rtpmap:98 opus/48000/2
a=rtpmap:99 g722/48000
a=ssrc:4444 cname:groo

Then I expect the conference server to determine that these 
configurations are identical to already existing ones and answer:

m=audio [...] 98
a=sendonly
a=mid:alice-audio
a=rtpmap:98 opus/48000/2
a=ssrc:1111 cname:foo
[...]
m=audio [...] 99
a=sendonly
a=mid:bob-audio
a=rtpmap:99 g722/48000
a=ssrc:2222 cname:bar
[...]
m=audio [...] 98 99
a=sendonly
a=mid:carol-audio
a=rtpmap:98 opus/48000/2
a=rtpmap:99 g722/48000
a=ssrc:3333 cname:skog
[...]
m=audio [...] 100 101
i=M block for David's audio stream
a=recv
a=rtpmap:100 opus/48000/2
a=rtpmap:101 g722/48000

So the SFU will translate the PTs towards Dave, to match what Dave 
accepts receiving. The SFU request Dave's endpoint to use the PTs it has 
defined as its common reception table out of the ones the Dave support.

Yes, using RTP middleboxes and SDP offer/answer do result in that one 
will have to specific PT values in use on each leg. It is very difficult 
to get this aligned to between the legs.

Your proposal is one way to avoid that translation. Which would require 
certain changes and issues. Another possibility would be to try to 
address it in the signalling system. Because having the possibility for 
the central controller to dictate the actual configuration within the 
capabilities of the endpoints would simplify certain things. 
Unfortunately both have issues to resolve and significant legacy inertia.

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