Re: [rtcweb] Plan A, respun

Harald Alvestrand <harald@alvestrand.no> Fri, 10 May 2013 11:12 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 B28E721F902D for <rtcweb@ietfa.amsl.com>; Fri, 10 May 2013 04:12:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -110.048
X-Spam-Level:
X-Spam-Status: No, score=-110.048 tagged_above=-999 required=5 tests=[AWL=-0.050, BAYES_00=-2.599, HTML_MESSAGE=0.001, J_CHICKENPOX_14=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 VNbx4QNj0pty for <rtcweb@ietfa.amsl.com>; Fri, 10 May 2013 04:12:47 -0700 (PDT)
Received: from eikenes.alvestrand.no (eikenes.alvestrand.no [158.38.152.233]) by ietfa.amsl.com (Postfix) with ESMTP id 45A2521F8F25 for <rtcweb@ietf.org>; Fri, 10 May 2013 04:12:47 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by eikenes.alvestrand.no (Postfix) with ESMTP id 2D80039E12F; Fri, 10 May 2013 13:12:44 +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 aR2wNwcUOHdM; Fri, 10 May 2013 13:12:43 +0200 (CEST)
Received: from [IPv6:2001:470:de0a:27:80b5:1e2b:aee2:472] (unknown [IPv6:2001:470:de0a:27:80b5:1e2b:aee2:472]) by eikenes.alvestrand.no (Postfix) with ESMTPSA id CA25339E0D2; Fri, 10 May 2013 13:12:42 +0200 (CEST)
Message-ID: <518CD62A.8090806@alvestrand.no>
Date: Fri, 10 May 2013 13:12:42 +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: Eric Rescorla <ekr@rtfm.com>
References: <51894846.3090102@nostrum.com> <518A304A.1030609@alvestrand.no> <CABcZeBOm9Fbiyyg4Fg=ZfSfxsc8K8Xwz6RJMrjwrqL6x2UR95w@mail.gmail.com>
In-Reply-To: <CABcZeBOm9Fbiyyg4Fg=ZfSfxsc8K8Xwz6RJMrjwrqL6x2UR95w@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------020302090108030709050302"
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: Fri, 10 May 2013 11:12:52 -0000

On 05/08/2013 06:25 PM, Eric Rescorla wrote:
>
>
> On Wed, May 8, 2013 at 4:00 AM, Harald Alvestrand 
> <harald@alvestrand.no <mailto:harald@alvestrand.no>> wrote:
>
>     The paragraph that worries me most is this one:
>
>         Offerers conformant to this specification MUST do one of the
>         following:
>
>         o  Use non-overlapping PT values for each m-line in any given bundle
>            group.
>
>         o  Provide distinct a=ssrc attributes for each m-line which uses
>            overlapping PT values with any other m-line.  [Technically, this
>            is a general case of the previous point.]
>
>
>     To put a blunt point on it: Either send less than ~32 streams, or
>     give a=ssrc attributes.
>
>     To me, that measn we're mandating one mechanism (PT values) for
>     small numbers of flows, and another mechanism (a=ssrc) for large
>     numbers of flows - such mechanism changes usually have
>     "interesting" properties in what happens at the changeover point.
>
>
> That doesn't sound *quite* right to me.
>
> As I read the document, implementations are free to:
>
> (a) offer entirely disjoint PTs for all the m-lines in a given bundle, in
>       which case they must consume in total less than about 96 PTs
> (b) offer a=ssrc in which case they must only guarantee that each
>       m-line doesn't internally repeat PTs (i.e., the current guarantee
>       that you don't say that 102 is both VP8 and H.264 on the same
>       m-line.)
>
> I would think that a smart implementation would try to use disjoint
> PTs to the extent possible (thus allowing early demuxing) but
> also offer a=ssrc, so that if they ran out of PTs, the transition was
> smooth. Obviously there is potential for bugs here, but this seems
> like code that would get fairly well tested in the field, no?

Well.... you WOULD think the Java spec that says that Integer(127) is a 
globally unique object while Integer(128) isn't (so that, when testing 
for object equality instead of value equality, Integer(127) == 
Integer(127), while Integer(128) != Integer(128)), wouldn't you? (note - 
I think the limit may be JVM-implementation defined, but don't quote me 
on that).

This still bites implementors fairly far out in the deployment cycle, I 
hear. Obscure limits that you hit only after significant installed base 
is deployed is not really things that make me happy.

And of course Unicode's "we'll never need more than 65.535 characters" 
is another fun one.

>
>     It would seem to me to be architecturally cleaner to insist that
>     a=ssrc be used always.
>     But in that case, I have a very large difficulty seeing the
>     important advantage this has over Plan B.
>
>
> Isn't the argument that Plan A preserves all the existing SDP negotiation
> mechanisms but allows them to be used with a high level of muxing,
> rather than reinventing some subset of them at the SDP level?

That's the argument, but a) I'm not convinced that the argument holds, 
and b) I'm worried about the cost in terms of model complexity and 
richness of edge cases like this one.