Re: [MMUSIC] BUNDLE and DATA CHANNEL - Paul's example

Paul Kyzivat <pkyzivat@alum.mit.edu> Mon, 29 April 2013 17:06 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 48C4121F9E43 for <mmusic@ietfa.amsl.com>; Mon, 29 Apr 2013 10:06:04 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.763
X-Spam-Level:
X-Spam-Status: No, score=0.763 tagged_above=-999 required=5 tests=[AWL=-0.600, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, J_CHICKENPOX_111=0.6, J_CHICKENPOX_12=0.6, J_CHICKENPOX_15=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 D8FYrHzL1oBc for <mmusic@ietfa.amsl.com>; Mon, 29 Apr 2013 10:05:59 -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 EC4F821F9E47 for <mmusic@ietf.org>; Mon, 29 Apr 2013 10:05:58 -0700 (PDT)
Received: from omta01.westchester.pa.mail.comcast.net ([76.96.62.11]) by qmta02.westchester.pa.mail.comcast.net with comcast id Vt3P1l0060EZKEL51t5yBS; Mon, 29 Apr 2013 17:05:58 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta01.westchester.pa.mail.comcast.net with comcast id Vt5y1l0053ZTu2S3Mt5yvf; Mon, 29 Apr 2013 17:05:58 +0000
Message-ID: <517EA875.1020002@alum.mit.edu>
Date: Mon, 29 Apr 2013 13:05:57 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130328 Thunderbird/17.0.5
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>
References: <7594FB04B1934943A5C02806D1A2204B1C3682C9@ESESSMB209.ericsson.se>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1C3682C9@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=1367255158; bh=8JUmJIggvGYMtuJm4Q6mSlBFgChTsGVR9B4gSQCFmXY=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=eRYCY/eD+LGIXxrX2/5QM+v0lLShVHaYuSkpKaqq/Ire54ZVKiMwQ19k8qZiN8q7q XOoNh8hqPKEYaXYuWQSzwEuu/jG87NnxoFl2/B8wu4jLnJKU0/8b6/G7Xb7kmpBG6/ 9kAUKs38GShWZ6KnfSKtDlJpg0pZyVXrY8RD/5c4nD1/JEs9/XY/ADvVW6dTA35Jkq ipwJ4P6WL1DMwKM8smZSW081ltwTHUJyRVuK/AfcVgT7BLZ06Cmx7nl31MQjHPz6q7 AWqKKAEqVf4m1rKJkRx34AysFTDyw2cUhnEWNcbJ92K++KLc3kIEWGR3ZkVkmMiyIx pV6wWWihXNxTA==
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] BUNDLE and DATA CHANNEL - Paul's example
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
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: <http://www.ietf.org/mail-archive/web/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, 29 Apr 2013 17:06:04 -0000

On 4/29/13 10:41 AM, Christer Holmberg wrote:
>
> Hi,
>
>> For instance, consider the following:
>>
>>         ...
>>         c=IN IP4 host.biloxi.com
>>         a=group:BUNDLE m1 m2 m3 m4
>>         m=audio 20000 RTP/SAVPF 0
>>         a=mid:m1
>>         a=ssrc:12345 cname:user@example.com
>>         a=max-send-ssrc:{*:1}
>>         a=max-recv-ssrc:{*:1}
>>         ...
>>         m=video 20000 RTP/SAVPF 96 98
>>         a=mid:m2
>>         a=ssrc:5678 cname:user@example.com
>>         a=max-send-ssrc:{*:1}
>>         a=max-recv-ssrc:{*:1}
>>         ...
>>         m=video 20000 RTP/SAVPF 96 98
>>         a=mid:m3
>>         a=max-send-ssrc:{*:4}
>>         a=max-recv-ssrc:{*:4}
>>         ...
>>         m=application 20000 DTLS/SCTP ...
>>         a=mid:m4
>>         ...
>>
>> We have four bundled m-lines. We have one proto (RTP/SAVPF) in three
>> m-lines, and another (DTLS/SCTP) in the other m-line. From a protocol
>> layering perspective we have:
>>
>>     m1      m2      m3      m4
>>     =====   =====   =====   ====
>>     SAVPF   SAVPF   SAVPF   SCTP
>>     RTP     RTP     RTP     DTLS
>>     UDP     UDP     UDP     UDP
>>     IP      IP      IP      IP
>>
>> So, the first demux that must be done is to distinguish RTP from DTLS.
>> DTLS has been designed to have a field that distinguishes it from
>> RTP/RTCP/ICE, so that can perhaps be considered a default demux
>> algorithm for that.
>
> Correct.
>
>> Because there is only one SCTP m-line, that is enough to identify those
>> packets that should be bound to m4.
>
> In your example there is only one SCTP m- line, and in WebRTC I guess it will also be the case, but SDP doesn't prevent you from using multiple SCTP m- lines - unless BUNDLE explicitly forbids it, that is.

I agree. If we want to support that, then the obvious way (for 
DTLS/SCTP) is via SCTP port. That depends on there being a way to 
specify the SCTP with DTLS/SCTP. That has come and gone from the SDP 
proposal for SCTP.

If we were talking about just plain SCTP then I don't think bundling 
makes any sense.

And for SCTP/DTLS I suppose it might be possible to bundle with some 
other things running over DTLS. I'm not sure if we want to think about 
that now.

>> But we need to use something else to sort out the RTP.
>>
>> In this example, payload type can be used to distinguish audio from
>> video. But there may be cases where that isn't possible. If we want to
>> allow this mechanism, then perhaps we need some way to signal that it
>> should be used. Or *maybe* we could count on it being inferred. Assuming
>> that is used, then it is sufficient to identify those packets that
>> belong to m1.
>>
>> Or, because m1 is marked as having at most one ssrc, and the ssrc value
>> (1234) is specified, that could be used to bind packets to m1.
>>
>> Similarly, RTP packets having ssrc=5678 can be bound to m2.
>>
>> m3 supports multiple unspecified SSRCs. Since there is only one m-line
>> that does, all the packets with pt 96 or 98 and with an ssrc other than
>> 1234 or 5678 can be bound to m3.
>>
>> I'm undecided if we can count on inferring this decision logic from
>> existing signaling options, or if we ought to signal the choices more
>> explicitly.
>
> At least I think that, based on e-mail discussions, we most likely cannot rely on unique payload type values for each RTP flow.

What I saw from the discussions was the possibility of bundling *one* 
audio m-line and *one* video m-line, and potentially running multiple 
flows within each of those. In that usage, using PT for demux is feasible.

> (Nothing of course forbids users from using unique payload type values.)

Its unclear to me how the usage of bundlling is going to evolve. So I 
don't have a clear idea how much flexibility we need to allow for a 
multitude of different demux strategies.

BTW, another demux strategy appears if you use bundling with the shim 
proposal.

To me the key is to provide a framework for signalling the mux/demux 
strategy in SDP. And part of that is deciding whether the strategy is 
declarative or negotiated in O/A. (It is hard for me to see how it could 
be *negotiated* in one O/A cycle. So I'm imagining that the offer makes 
a proposal and it succeeds or fails - with failure meaning no bundling.)

	Thanks,
	Paul