Re: [rtcweb] Plan A, respun

Eric Rescorla <ekr@rtfm.com> Fri, 17 May 2013 13:07 UTC

Return-Path: <ekr@rtfm.com>
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 7783D21F9412 for <rtcweb@ietfa.amsl.com>; Fri, 17 May 2013 06:07:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -101.701
X-Spam-Level:
X-Spam-Status: No, score=-101.701 tagged_above=-999 required=5 tests=[AWL=-1.276, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RDNS_NONE=0.1, 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 R+6ef4bmP7ZL for <rtcweb@ietfa.amsl.com>; Fri, 17 May 2013 06:07:42 -0700 (PDT)
Received: from mail-qc0-x236.google.com (mail-qc0-x236.google.com [IPv6:2607:f8b0:400d:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id 37B8521F9416 for <rtcweb@ietf.org>; Fri, 17 May 2013 06:07:42 -0700 (PDT)
Received: by mail-qc0-f182.google.com with SMTP id n1so264220qcw.27 for <rtcweb@ietf.org>; Fri, 17 May 2013 06:07:41 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-received:mime-version:x-originating-ip:in-reply-to:references :from:date:message-id:subject:to:cc:content-type:x-gm-message-state; bh=HB+Z4sCjeXm0oN3neRYhjXmso6Y/2H/8h0fukeE9Zc8=; b=oDTD9y3e9C1MLoRcAHAtDA5SJS3zmU/FmTW26mwD6c/2nqf9Zlf1vVICd6NZAwQ7FT lzseH+ftmWxfpkSbCQRuDu8vtRt3Tvzx1r1EtIqolioVKnIdniKDA/l6JdmnOz8mfMr/ oxXGo3Ft9M7BmVzAdsRQem1julL8xrIk+jbaBSXviZNhJ3rxvdfwhyCYiYZ5oh4RE0kC uxgp161HzLQBWPuf6+u6/ySiABrUSHJWEjp0zunyvdvmk1aMZ1EEkbCOkdpPpWZIecIz vPXwVkZLQtCwhR6sX+g5FDufdIrEvyomJ0K8Pz/3Inzp1pzkrTLdMZc7K3fpkvFwq2oC s2NQ==
X-Received: by 10.224.40.10 with SMTP id i10mr36805800qae.96.1368796061588; Fri, 17 May 2013 06:07:41 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.49.85.130 with HTTP; Fri, 17 May 2013 06:07:00 -0700 (PDT)
X-Originating-IP: [74.95.2.170]
In-Reply-To: <5195CEDF.9040109@alvestrand.no>
References: <51894846.3090102@nostrum.com> <518A304A.1030609@alvestrand.no> <518F6338.8070903@jitsi.org> <518F83E5.4060209@alvestrand.no> <519519DB.6050702@nostrum.com> <519524EA.3000509@alvestrand.no> <51952860.5030906@nostrum.com> <5195304B.10706@alvestrand.no> <CABcZeBO+miF-euyyKFDrpMUdnV-Ej2QaZgKmiMc2Yp08QUyz7A@mail.gmail.com> <5195CEDF.9040109@alvestrand.no>
From: Eric Rescorla <ekr@rtfm.com>
Date: Fri, 17 May 2013 06:07:00 -0700
Message-ID: <CABcZeBPt_GL2pU6RrgQ91XCW-Xyn8dyuxSTE0icGu9Yd_GPgYA@mail.gmail.com>
To: Harald Alvestrand <harald@alvestrand.no>
Content-Type: multipart/alternative; boundary="20cf3071d15605956b04dce9abba"
X-Gm-Message-State: ALoCoQlZxL//PCb8bQraM/8L2BgGHedofoAqrr18P6upcsOjiRIbXeraLM32vEEh2iFpj6kA7afJ
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, 17 May 2013 13:07:46 -0000

On Thu, May 16, 2013 at 11:31 PM, Harald Alvestrand <harald@alvestrand.no>wrote:

>  On 05/17/2013 01:28 AM, Eric Rescorla wrote:
>
>
>
> On Thu, May 16, 2013 at 12:15 PM, Harald Alvestrand <harald@alvestrand.no>wrote:
>>
>>   If the true limit at which one has to change allocation strategy were
>>>> to become 96, not 32, it actually strengthens my "falling off a cliff"
>>>> argument
>>>>
>>>
>>> And, to be clear, it's not a cliff. For any given session (without
>>> a=ssrc:), you have to allocate ceiling(streams/96) ports. It's not like you
>>> go from using one port to using 97 ports when you add the 97th stream. You
>>> go from one port to two, which will handle 192 streams.
>>>
>>
>>  Going from one port to two ports is a cliff.
>> We may have differing opinions on how tall it is.
>
>
>  Harald,
>
>  I am not following how this is a discriminating factor between Plan A and
> Plan B.
>
>  In both Plan A and Plan B, any media stream which is intended to be
> independently processable by a legacy endpoint must appear on its
> own m-line. That means it must also have its own independent ports,
> even if you are hoping to eventually be able to mux it via BUNDLE.
>
>
> I agree with this characterization - the two proposals have the same
> number of ports in the initial offer.
>
> I quibble about the characterization "any media stream which is intended
> to be
> independently processable by a legacy endpoint must appear on its
> own m-line." As Bernard has said, the field of deployed applications is
> diverse enough to make this question confusing - both "independently
> processable" and "legacy endpoint" may need further qualification in order
> to make that statement unequivocally true.
>

Well, to the extent to which there are many legacy endpoints which assume
that
each renderable entity must be on its own m-line, then presumably you
need to follow this rule to ensure interop, no?

 In both Plan A and Plan B, it is possible to indicate additional media
> streams that are not processable by a legacy endpoint but that
> will be processable by a new endpoint:
>
>  - In Plan A, this is done by marking them bundle-only
> - In Plan B, this is done by having them be additional SSRCs on one
>   of the extant m-lines.
>
>
>
>  Regardless of Plan A versus Plan B, bundle contemplates having
> multiple media flows on the same media 5-tuple. Thus, it must
> be possible to demux the flows somehow. As I read Plan A,
> it proposes using both PT and SSRC to demux whereas plan B
> only wants to use SSRC? So, the implication is that a Plan A
> endpoint must:
>
>  1. Demux on both PT and SSRC (this is trivial, I think you will agree)
>
>
> The demuxing is trivial. In fact, I don't think it's even necessary to
> describe it as "demux on PT"; you can't allow SSRC collision between two
> tracks with different PT anyway.
>

This seems to me to be true only in the trivial sense.  I.e., demuxing is
not
just a matter of separation but also of assignment. So, as Cullen has
observed, if the two m-lines use distinct PTs, the offerer can properly
demux and display the streams even before receiving the answer.


>  2. When acting as offerer, either always offer SSRC or conditionally
> offer SSRC when the # of PTs is excessive.
>
>  I don't understand why you think that plan A means more ports than
> plan B. Presumably we can simply specify that bundle requires
> SSRC muxing, in which case plan A and plan B behave identically.
>
>  What am I missing?
>
>
> This particular issue is about what happens when you run out of payload
> types to multiplex on.
>
> In Plan A as I currently understand Adam, any application that needs less
> than 96 M-lines (Adam's number) can use a single port, and use the payload
> type to indicate the M-line.
>
> If there are 97 M-lines, if I've understood Adam correctly, one could use
> two ports and two bundles, with some subset of the M-lines being allocated
> to one bundle and another subset of the M-lines allocated to the other
> bundle.
>

Yes, one could. But one could also use one port, one bundle, and demux on
SSRC.


 In Plan B, there is no difference in the mechanism used to multiplex 96
> SSRCs from the mechanism used to multiplex 97 SSRCs, and it does not matter
> for the multiplexing how many M-lines they are distributed over.
>

I would say rather that plan B *only* allows SSRC multiplexing whereas plan
A allows you to use other forms of multiplexing beside SSRC, but only under
limited circumstances.

However, I'm not sure why this is a big issue. The requirement for distinct
PTs isn't new to plan A. In fact, it's in Section 7.2 of BUNDLE:
http://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-03#section-7.2
This seems to me to be a question the working group needs to resolve
for BUNDLE and then it can just be inherited by either Plan A or Plan B.

-Ekr