Re: [rtcweb] Plan A, respun

Harald Alvestrand <harald@alvestrand.no> Sun, 12 May 2013 14:54 UTC

Return-Path: <harald@alvestrand.no>
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 DB34921F8D92 for <rtcweb@ietfa.amsl.com>; Sun, 12 May 2013 07:54:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -109.699
X-Spam-Level:
X-Spam-Status: No, score=-109.699 tagged_above=-999 required=5 tests=[AWL=-0.300, BAYES_00=-2.599, J_CHICKENPOX_14=0.6, J_CHICKENPOX_17=0.6, RCVD_IN_DNSWL_HI=-8, USER_IN_WHITELIST=-100]
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 rG6ieJNTss-5 for <rtcweb@ietfa.amsl.com>; Sun, 12 May 2013 07:54:14 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 7737D21F8D14 for <rtcweb@ietf.org>; Sun, 12 May 2013 07:54:14 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 482F339E125; Sun, 12 May 2013 16:54:13 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at eikenes.alvestrand.no
Received: from eikenes.alvestrand.no ([127.0.0.1]) by localhost (eikenes.alvestrand.no [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id anrbdkN0QUvE; Sun, 12 May 2013 16:54:12 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:11a7:a70e:3e57:aa15] (unknown [IPv6:2001:470:de0a:27:11a7:a70e:3e57:aa15]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id 186AB39E070; Sun, 12 May 2013 16:54:12 +0200 (CEST)
Message-ID: <518FAD13.9050503@alvestrand.no>
Date: Sun, 12 May 2013 16:54:11 +0200
From: Harald Alvestrand <harald@alvestrand.no>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130329 Thunderbird/17.0.5
MIME-Version: 1.0
To: Emil Ivov <emcho@jitsi.org>
References: <51894846.3090102@nostrum.com> <518A304A.1030609@alvestrand.no> <518F6338.8070903@jitsi.org> <518F83E5.4060209@alvestrand.no> <518F9280.6070803@jitsi.org>
In-Reply-To: <518F9280.6070803@jitsi.org>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] Plan A, respun
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: Sun, 12 May 2013 14:54:20 -0000

On 05/12/2013 03:00 PM, Emil Ivov wrote:
> On 12.05.13, 14:58, Harald Alvestrand wrote:
>> On 05/12/2013 11:39 AM, Emil Ivov wrote:
>>> Coming back to this for a sec:
>>>
>>> On 08.05.13, 14:00, Harald Alvestrand wrote:
>>>> To put a blunt point on it: Either send less than ~32 streams, or give
>>>> a=ssrc attributes.
>>> Wouldn't it make more sense to either send ~32 streams or you don't use
>>> bundle? If you run out of PTs for a single m-line then you may also
>>> reconsider use of rtcp-mux.
>> So you're saying that when using 1-31 streams, we use a single port
>> pair, but when we use 32 streams, we use 32 port pairs?
> Most certainly not! I am suggesting that if you fill up your PT space
> you could stop using bundle for your (presumably two, audio and video)
> m= lines. So rather than using a single port for RTP, you'll fall back
> to using two ports for audio and video.
Hmmm... how would you do that? Since you're using one M-line per video 
source (remember, this is plan A, not plan B), you're using the PT 
number for getting back to your M-line, which means that you're now 
creating more than one bundle, each bundle being limited to 32 PTs (and 
therefore 32 M-lines).

Plan A is certainly creating an use case for more than one bundle, but 
it's still implying code that swings into action at the 32 track 
boundary, and is unused before that.

>
> If you start lacking numbers again, you could consider turning off
> rtcp-mux which would again almost double your choices (presuming that
> you limited yourself to using the 96-127 range because you wanted to
> make rtcp demuxing easier).
>
> Just to clarify, I consider Plan B's use of m= lines (i.e. 1 m=line for
> many SSRCs) very natural and in-line with RTP design. I am not arguing
> against this. (I would actually strongly argue against the alternative).

Thanks for the clarification!

>
>> I hadn't even considered the possibility of driving off that particular
>> cliff at that boundary.
> Fortunately I don't think anyone is.
>
>>> It seems to me that the consequences of not using bundle in some
>>> specific scenarios, especially in cases where trickle ICE is also
>>> supported, are far lesser than requiring everyone to support
>>> pre-announcement of SSRCs.
>> Why?
>>
>> Remember: In Plan B, the only applications who have to support
>> pre-announcement of SSRCs are those that want to send more than one
>> media stream in a single RTP session.
> And it is exactly those applications that I am worried about. Imagine I
> am a conference focus that remotely controls an RTP translator. I would
> hence invite you with a single m= line for audio and a single m=line for
> video.
>
> On either of these you would end up getting a bunch of SSRCs for all the
> other participants. Or maybe you would just get one if the translator
> decides to mix rather than translate for some reason.
>
> Either way I can't send you all SSRCs in advance because there's know
> way for me to learn those of the other participants unless I use some
> unnecessary, unnecessarily complicated and unnecessarily time-consuming,
> signalling.

Or you could signal none of them and depend on the fallback case in 
draft-ietf-mmusic-msid to handle them in a consistent manner, and use 
other methods to figure out how to handle them...

>
>> Any application that is satisfied with having mulitple RTP sessions
>> corresponding to multiple M-lines can just signal as they're used to,
>> without BUNDLE or SSRC signalling (although it will work a lot better if
>> they use a=content consistently).
> Again, that's not the kind of alternative that I was arguing for.
>
> Emil
>
>