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

Paul Kyzivat <pkyzivat@alum.mit.edu> Tue, 21 May 2013 20:14 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 3383121F95E7 for <rtcweb@ietfa.amsl.com>; Tue, 21 May 2013 13:14:00 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.013
X-Spam-Level:
X-Spam-Status: No, score=-0.013 tagged_above=-999 required=5 tests=[AWL=-0.176, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, J_CHICKENPOX_14=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 zqfmmEg1ybDV for <rtcweb@ietfa.amsl.com>; Tue, 21 May 2013 13:13:54 -0700 (PDT)
Received: from qmta03.westchester.pa.mail.comcast.net (qmta03.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:32]) by ietfa.amsl.com (Postfix) with ESMTP id 40DA721F95D0 for <rtcweb@ietf.org>; Tue, 21 May 2013 13:13:54 -0700 (PDT)
Received: from omta17.westchester.pa.mail.comcast.net ([76.96.62.89]) by qmta03.westchester.pa.mail.comcast.net with comcast id ek1H1l03Y1vXlb853kDt4L; Tue, 21 May 2013 20:13:53 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta17.westchester.pa.mail.comcast.net with comcast id ekDt1l00N3ZTu2S3dkDt0z; Tue, 21 May 2013 20:13:53 +0000
Message-ID: <519BD580.7080205@alum.mit.edu>
Date: Tue, 21 May 2013 16:13:52 -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: Christer Holmberg <christer.holmberg@ericsson.com>
References: <BLU403-EAS40305B2D015B786CC67EB9293AC0@phx.gbl> <CABkgnnXX3zoeKqjFxjsfMgaGGRM0JzymaeWfA13LEjUZ4tGF9Q@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B1C373EF0@ESESSMB209.ericsson.se> <519A4C9A.6020501@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B1C374F13@ESESSMB209.ericsson.se>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1C374F13@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1369167233; bh=FS0q/iRBDYdyHCzIokOLMTcpiUHiIYKbKbBOhOVlwnQ=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=GBTJwYxR2PlHG57Z5UlZEpMssk//27Ox58PfiK5hV/ppnRY2sZiJLW+qbn0SQ9+Jd o9T+v1y51AURYK4KbhbREAFBJtTO2exgnMYrMfCYZ/xNAUCQqWLkCoCRaFA5YKZiBi k/I8zFNMNVUD702eLmB8Mp89UehpZOv3M+zJOmimCXgdrXgEm4wkA9r6ZUDL6M8mT6 ryxE88canByAwqwfvahIrux1tOlHhGcF9TZliYbvsIpatZJAxRBn4wCxIMH97PUeIv sLN9MvjbhCgqx9wDJRJemrsJ4z9OglVUb+vuCvLE52TU7P/it80izltye9w7QkK49N 3RXnTF9ZSK+Ow==
Cc: "rtcweb@ietf.org" <rtcweb@ietf.org>
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: Tue, 21 May 2013 20:14:00 -0000

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