Re: [rtcweb] A problem with both A and B

Paul Kyzivat <pkyzivat@alum.mit.edu> Wed, 22 May 2013 15:39 UTC

Return-Path: <pkyzivat@alum.mit.edu>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6D7EA21F955C for <rtcweb@ietfa.amsl.com>; Wed, 22 May 2013 08:39:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.284
X-Spam-Level:
X-Spam-Status: No, score=0.284 tagged_above=-999 required=5 tests=[AWL=-0.479, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, J_CHICKENPOX_14=0.6, J_CHICKENPOX_55=0.6, RDNS_NONE=0.1]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wMzTmEZRe82c for <rtcweb@ietfa.amsl.com>; Wed, 22 May 2013 08:39:08 -0700 (PDT)
Received: from qmta02.westchester.pa.mail.comcast.net (qmta02.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:24]) by ietfa.amsl.com (Postfix) with ESMTP id BAFE721F95DC for <rtcweb@ietf.org>; Wed, 22 May 2013 08:39:04 -0700 (PDT)
Received: from omta09.westchester.pa.mail.comcast.net ([76.96.62.20]) by qmta02.westchester.pa.mail.comcast.net with comcast id ezfR1l0030SCNGk513f4Qn; Wed, 22 May 2013 15:39:04 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta09.westchester.pa.mail.comcast.net with comcast id f3f31l01C3ZTu2S3V3f3fC; Wed, 22 May 2013 15:39:04 +0000
Message-ID: <519CE696.1010606@alum.mit.edu>
Date: Wed, 22 May 2013 11:39:02 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: rtcweb@ietf.org
References: <BLU403-EAS40305B2D015B786CC67EB9293AC0@phx.gbl> <CABkgnnXX3zoeKqjFxjsfMgaGGRM0JzymaeWfA13LEjUZ4tGF9Q@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B1C373EF0@ESESSMB209.ericsson.se> <519A4C9A.6020501@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B1C374F13@ESESSMB209.ericsson.se> <519BD580.7080205@alum.mit.edu> <519C86EF.5080601@ericsson.com>
In-Reply-To: <519C86EF.5080601@ericsson.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 8bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1369237144; bh=cJv0QA/iVTqfuGOAtNn0LJWhu0MIahZ9J+Da+5bo/Ms=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=MN/uH09vncc0yfItGSuvO9pIoHAE8HzlDrVf8Hfa/j9kEsEQ0CdR3MalxHQrG5XQf W3vYS/EonJcWxjLi8yr5YAiSXWsSm5tEKzGVOyWgubNtUI7zd5sfKNjvEe/PY4C+VL c1Pamqq88ce2Y5kPPDHFFloEY6iDVfqK53doL+ApGzOM1+q9ppZWOEqdv0f7Qd37gz SADTcjR/OQc49LYhE+KnlAFFL/QKSMPAYHhZAaj4vAYtUAqRQJXwB4OqVvZhcJTlxG EKJfe/L50nT8VoIlVJlHNA7lZkX/vIMeyrcKCDmRDy7C+JukPEUtVWUaLfkBjjuDEo G6nuwczV0EBUQ==
Subject: Re: [rtcweb] A problem with both A and B
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 22 May 2013 15:39:13 -0000

On 5/22/13 4:50 AM, Stefan Håkansson LK wrote:
> I think this was a good summary.
>
> But regarding "a mechanism for describing the role and intent of each
> RTP stream in the RTP session.", do we really need that? Isn't the
> combination of ssrc and the msid draft sufficient?
>
> Together the clearly identify how ssrc's map into PC-streams and
> PC-tracks, and the application can convey the remaining info (e.g.
> PC-stream xx represents the speaker audio+video, yy the room video etc.)
> needed in any way it likes .

My statements were not intended to be rtcweb-specific. The bundling 
stuff is going to be a more general SDP extension. IMO the problems that 
rtcweb and clue have encountered that need this are just the tip of the 
iceberg.

My point about the role/intent is that the application must have some 
means to determine this. It doesn't always need to be in SDP. But the 
old approach that is mostly based on the cases being so simple that it 
is always obvious without signaling are now breaking down. And in the 
case of SIP apps there are few mechanisms to build on other than SDP.

	Thanks,
	Paul

> Stefan
>
> On 2013-05-21 22:13, Paul Kyzivat wrote:
>> On 5/21/13 3:20 AM, Christer Holmberg wrote:
>>> Hi,
>>>
>>>>> I don't think it's a BUNDLE issue whether adding/removing of streams
>>>>> require an O/A exchange or not. It's an SDP, and SDP O/A, issue.
>>>>>
>>>>> BUNDLE is about sharing a 5-tuple.
>>>>
>>>> I don't agree.
>>>>
>>>> RTP is already able to support multiple RTP streams sharing an RTP
>>>> session (and 5-tuple).
>>>>
>>>> What BUNDLE is about is describing that in SDP.
>>>> And that includes how SDP O/A works.
>>>
>>> Multiple RTP streams can already share an RTP session today, using
>>> multiple SSRCs per m- line :)
>>>
>>> If adding a new stream means adding a new m- line, then an SDP O/A is
>>> obviously needed - bundle or no bundle.
>>>
>>> If adding a new stream means adding a new SSRC, within an existing m-,
>>> then it is also an SDP O/A issue - bundle or no bundle.
>>
>> AFAIK there is wide agreement that an RTP *session* can carry multiple
>> RTP streams.
>>
>> An SDP O/A exchange negotiating an RTP m-line pair establishes an RTP
>> session. There is disagreement whether it is permissible for the
>> resulting RTP session to carry multiple RTP streams. The specs are
>> ambiguous on this point. Clearly there are well identified cases where
>> they do, and we aren't likely to rule those incorrect. Its also clear
>> that some of these cases start out sending a single SSRC, and then later
>> "add" another. (It may actually be a substitution.)
>>
>> So it seems clear to me that you may add an RTP stream to an RTP session
>> described by an m-line without doing another O/A exchange.
>>
>> What is lacking in such cases is a mechanism for describing the role and
>> intent of each RTP stream in the RTP session. In some cases it is
>> possible to get by without this, by assuming that the two ends have
>> consistent *assumptions* about how to infer the role/intent. But there
>> are many cases where this isn't enough.
>>
>> Extra SDP syntax has been defined in an ad hoc way to get at bits and
>> pieces of this problem. E.g., the a=ssrc attribute. What has already
>> been defined doesn't seem suficient for all the new cases we are no
>> discussing.
>>
>> BUNDLE is *another* proposal for addressing part or all of this problem.
>> But BUNDLE brings along another problem: for BUNDLE to be useful, it
>> must be possible to associate each RTP packet with one of the bundled
>> m-lines. Without BUNDLE we don't have that problem.
>>
>> To summarize:
>>
>> - without bundle, we need a mechanism for describing the role/intent
>>    of each RTP stream in the RTP session. *If* we choose to describe
>>    that with SDP, then we need an O/A exchange each time we add
>>    an RTP stream.
>>
>> - with BUNDLE and Plan A, the assumption is that each m-line in the
>>    bundle describes a single RTP stream, and so the other SDP stuff
>>    in that media section can be used to describe the role/intent of
>>    that RTP stream. By design this requires a new m-line for each
>>    RTP stream, so adding one requires an O/A. We then assume that there
>>    is enough stuff in each media section to decide which m-line each
>>    packet should be associated with.
>>
>> - with BUNDLE and Plan B, there may be multiple RTP streams per
>>    m-line. As in Plan A we need to associate each packet with one of
>>    the m-lines. Like the no-bundle case we still need some mechanism
>>    to describe the role/intent if the individual RTP streams.
>>    In some cases (e.g., a=ssrc) the same info that classifies to
>>    an m-line may also specify the role of each stream. That case
>>    also leads to an O/A for each stream add.
>>
>>    If you have a non-SDP way to discover the role/intent of each
>>    RTP stream, and you use a way of classifying to one of the
>>    bundled m-lines *without* enumerating every RTP stream, then
>>    you can perhaps avoid an O/A for each stream add. E.g., if you
>>    just bundle one audio and one video m-line, and use PT to
>>    distinguish those.
>>
>> Note: in above I said Plan A uses an m-line for each RTP stream. That
>> isn't always the case. There are some cases (at least in clue) where
>> each m-line is intended to describe a "flow" (clue capture) that may
>> correspond to different RTP streams over time, or that might include
>> supporting FEC streams, etc. Depending on your assumptions about this
>> case it may start to take on some of the characteristics of Plan B.
>>
>>      Thanks,
>>      Paul
>>
>> _______________________________________________
>> rtcweb mailing list
>> rtcweb@ietf.org
>> https://www.ietf.org/mailman/listinfo/rtcweb
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>