Re: [MMUSIC] Open Issues: draft-ietf-mmusic-sdp-simulcast-03

Peter Thatcher <pthatcher@google.com> Thu, 22 October 2015 21:06 UTC

Return-Path: <pthatcher@google.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 184F41B41B0 for <mmusic@ietfa.amsl.com>; Thu, 22 Oct 2015 14:06:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.388
X-Spam-Level:
X-Spam-Status: No, score=-1.388 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_RP_MATCHES_RCVD=-0.01] autolearn=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id RarTnzJBG3ZX for <mmusic@ietfa.amsl.com>; Thu, 22 Oct 2015 14:06:21 -0700 (PDT)
Received: from mail-oi0-x231.google.com (mail-oi0-x231.google.com [IPv6:2607:f8b0:4003:c06::231]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2D7C11B41D8 for <mmusic@ietf.org>; Thu, 22 Oct 2015 14:05:48 -0700 (PDT)
Received: by oies66 with SMTP id s66so55174067oie.1 for <mmusic@ietf.org>; Thu, 22 Oct 2015 14:05:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=VIfITVu5RV0BRRHeXu8vpiZyCzyw3M6UPEV0bwz1ApM=; b=IbWkRBkG+kpjtZjrme/RqlbX+K7VV7AGXwGpymnq2bDt55SXwDp3XHCe/s/dngQ3bV 3AXLaYOr6zFuGPbTPejOZM69V/87aglyURY++QjdcDWWcSWAJdQtBj3jemBCh7yCXRAx 3Q2BHL0d/cUBZXeDhXsAG3Zqh7fkgCfW2imR2NkSQVafxcUMAE81Lrh+/H5JpSv0Tz+W rwfiFcuShkOMsdYVPy0v2/u4eO+DsO6k6h703T0tFeld8dQGZ8nYzINXcRagOgbGhv+8 hOgtgMTCEnGz1yCFMY9l4jyS1x6wBDHtSOGZWbGopfQ1ojuN6YxUe0iHuBruq9IECU+C QNWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc:content-type; bh=VIfITVu5RV0BRRHeXu8vpiZyCzyw3M6UPEV0bwz1ApM=; b=BtrXcE9woomV1Y+EqQtJbwmUyhi8LSlicHBVlCM7duxUzrljSByhkp7NimS7KpAH0H rmIq2XknDNIBcW8zoAs88WxxyHv7AgfDo758mr9Ax3lTV1hLvBHELARxjl1w5K44msAm Oc8bv+cUBjUr2QNugBiu7QsSasxdoMCsWTtoph+ZIEvjsQceWEMAa0mn9+H2u7nKC9Yu WWWy4DmTxlRgXMq1GSO3Mdhw9JYDn05EqJZ7Z6J/xWEuRfboOzFMUgPXQV8rQL3mDhlf x8NN3Z4Jfub8lWFMWnK4QviekHrRAWj3yQlf0ikxSFmzv4dVFLR1dLAJ/oOweh2rN9Qq O7Eg==
X-Gm-Message-State: ALoCoQnpjM4WDYuRKA8yx7XjR4Mk18t13dNF2x9l7tDk9GtvVh+0PrBU8/JLjwZk3G4XsudbKk/j
X-Received: by 10.202.104.201 with SMTP id o70mr11832683oik.126.1445547947428; Thu, 22 Oct 2015 14:05:47 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.202.79.19 with HTTP; Thu, 22 Oct 2015 14:05:08 -0700 (PDT)
In-Reply-To: <56294C8A.1030205@nostrum.com>
References: <56294C8A.1030205@nostrum.com>
From: Peter Thatcher <pthatcher@google.com>
Date: Thu, 22 Oct 2015 14:05:08 -0700
Message-ID: <CAJrXDUGEkh6iP-dLXF-zESi0pzGy1WvM+E084tC9nv=CmSs6Ng@mail.gmail.com>
To: Adam Roach <adam@nostrum.com>
Content-Type: multipart/alternative; boundary=001a1140978ce9c2840522b7db7e
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/aTJL3HFgIM-4aGz-_f2_BoX6p48>
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] Open Issues: draft-ietf-mmusic-sdp-simulcast-03
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 22 Oct 2015 21:06:24 -0000

To me, making PT-based simulcast mandatory is not an option compatible with
WebRTC 1.0.  If we make it mandatory, then we make these drafts unusable
for WebRTC 1.0.   If we're rushing to get this work done for WebRTC 1.0, we
might as well make it usable for it, which means making PT-based simulcast
optional.

In other words, I'm fine with #2 or #4, but not #1 or #3.



On Thu, Oct 22, 2015 at 1:52 PM, Adam Roach <adam@nostrum.com> wrote:

> I see no reason for us to all get in the same room to start hashing out
> the few open issues remaining on the simulcast draft. Going through my
> email and the draft itself, I see a only a very small handful of things
> that appear to be in need of a group decision. (I'm limiting myself to
> Simulcast in this email, and treating RID separately.)
>
> If anyone -- and the draft authors in particular -- think we have more
> than these three open issues (one of which is a bikeshed color), please
> speak up quickly: once we're closed on all open issues, I think this draft
> is in reasonable shape to ask the chairs to WGLC.
>
> The draft currently says:
>
>       Editor's note: The RID identification mechanism currently lacks a
>       declarative use definition.  As declarative use may also not
>       follow unified plan with a single media source per '"m="-line, it
>       is uncertain if declarative can be defined for the mechanism in
>       its current shape.
>
>
> The motivation for RID stems from the fact that we can run out of PTs in
> offer/answer exchanges, since the offer necessarily needs to include a
> broad variety of options, which are typically whittled down to a tiny
> fraction of the offered PTs in an answer. In the declarative model, this
> dynamic isn't at play: the stream sender is simply announcing the nature of
> the streams it will send, and there's nothing the recipient of that
> declaration has to say on the matter. If I plan to send three simulcast
> streams, I'm going to use three PTs, rather than the multiplicative
> explosion that can result in offer/answer (without RID).
>
> To that end, I would propose that we simply say RID-based simulcast is
> inapplicable in a declarative context, and that declarative uses of
> simulcast use PT only.
>
> ____
>
> The draft currently says:
>
>    An offerer that is capable of using both simulcast stream
>    identification methods MAY include one "a=simulcast" line per
>    identification method in the offer.  Note that it is in general not
>    expected that the "pt" identification method will provide feature
>    parity with the "rid" method, and the different "a=simulcast" lines
>    can therefore express different use of simulcast functionality.
>    However, for some configurations the different identification methods
>    can be equivalent.
>
>    An answerer receiving an offer listing both simulcast stream
>    identification methods MUST choose only one and remove the other from
>    the answer.  An answerer not supporting a simulcast stream
>    identification method in the offer MUST remove the non-supported
>    "a=simulcast" line from the answer, possibly falling back to not
>    using simulcast at all.
>
>
> This is clearly aimed at making one or both of the PT and RID
> identifications mechanisms optional. The document does not contain (as far
> as I've found) normative language requiring support of one or the other.
> Although there are other possible combinations, it seems that we have a
> small handful of superficially plausible approaches for offer/answer usage.
> I'm sure someone will point out if I've missed something sensible:
>
>
>    1. PT is mandatory to implement, mandatory to include in offer. RID is
>    optional to implement, and may be included alongside PT in an offer.
>    2. RID is mandatory to implement, mandatory to include in offer. PT is
>    optional to implement, and may be included alongside RID in an offer.
>    3. Both PT and RID are mandatory to implement; the offerer can elect
>    to use either.
>    4. Neither PT nor RID are mandatory to implement. The offerer includes
>    one or both, depending on what it supports.
>
>
> #1 has the benefit of not requiring the extra machinery for the RID SDES
> and extension header for all implementations. This seems like a very mild
> advantage, given that it forces burning PTs on all possible simulcast
> variations, which pretty much defeats the reason for doing RID in the first
> place. Unless I'm mis-analyzing this, there's no way this could possible be
> viable.
>
> #2 avoids all the shortcomings documented in section 8.2 of simulcast-03,
> and avoids the "PT exhaustion issue." The additional bandwidth described in
> section 8.3 should be negligibly small: on the order of 4 additional bytes
> on a small handful of packets at stream startup, and periodically
> throughout the stream (e.g., when I-frames are transmitted).
> #3 avoids the PT exhaustion issue for #1, although it imposes the
> implementation complexity of both mechanisms on all implementations. Given
> that RID is significantly more flexible than PT, it's unclear why any
> implementation would choose to ever *send* PT in an offer under this model.
> Effectively, this resolves to a model of "everyone implements both but only
> ever uses RID." If that's where we're headed, let's just pull PT from the
> spec altogether.
>
> #4 avoids the mandatory complexity described in #3, although it remains
> unclear why anyone would choose to implement only PT under this model
> (again, referring back to the limitations of using PT). You'll have some
> RID-only implementations, and some PT/RID implementations. In other words,
> if we write this down, the implementation reality will actually be #2.
> (And, if it isn't, then we'll have groups of mutually incompatible
> implementations, whenever a PT-only client meets a RID-only client).
>
>
> I've heard it stated, in private conversations, that some parties wish to
> make PT mandatory to implement and RID optional to implement. That resolves
> to #1, which isn't workable (as I describe above). The only other option I
> can think of that is congruent with this statement would be making PT
> mandatory to implement, making RID optional to implement, and making both
> optional to include in an offer. In other words, you could have a RID-only
> offer, a PT-only offer, or an offer with both RID and PT. However, if the
> offer uses only RID, and the other end has not implemented the
> (optional-to-implement) RID mechanism, then you simply have a failure to
> interoperate.
>
>
> Based on the foregoing, it seems that the only sensible recommendation
> (other than removing PT altogether) is something like #2. I know that's
> backwards from what some people have been expecting; as a concession to
> people how want things to work that way, I tried to come up with some
> option that could sensibly make PT mandatory and RID optional, but I just
> don't see it. If you see a flaw in my analysis, point it out.
>
> ____
>
>
> BIKESHED TIME! I think Martin is correct that the "space-colon" delimiter
> is unaesthetic; I'll go further and point out that it appears to be
> unprecedented (I could be missing something), which will make it
> unnecessary parsing exception as compared to other attributes. Mo's point
> that we want a colon is well-taken, but that doesn't justify the space. It
> seems that the current formulation was selected to make the ABNF easy to
> write. To that end, I've put together a formulation for the "just a colon"
> format.
>
> sc-attr     = "a=simulcast:" sc-str-list [WSP sc-str-list] [WSP sc-pause-list]
>
>
> Is there any reason we can't make the format consistent with all the other
> "a=foo:bar" syntaxes out there, as described by this rule?
>
>
> ____
>
> [minor nit for simulcast authors: in SDP examples, the "a=extmap" lines
> should use "urn:ietf:params:rtp-hdrext:sdes:rid" instead of
> "urn:ietf:params:rtp-hdrext:rid". I think the rid draft doesn't get this
> right in its examples either; I'll queue it up to be fixed in the next
> version.]
>
> /a
>
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
>
>