Re: [MMUSIC] Bundle-only, Port 0, and other options

Eric Rescorla <ekr@rtfm.com> Tue, 22 October 2013 04:25 UTC

Return-Path: <ekr@rtfm.com>
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 E18AC11E8330 for <mmusic@ietfa.amsl.com>; Mon, 21 Oct 2013 21:25:52 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.976
X-Spam-Level:
X-Spam-Status: No, score=-102.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-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 0L7bPmIXKdSR for <mmusic@ietfa.amsl.com>; Mon, 21 Oct 2013 21:25:47 -0700 (PDT)
Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by ietfa.amsl.com (Postfix) with ESMTP id B8F1311E833F for <mmusic@ietf.org>; Mon, 21 Oct 2013 21:25:38 -0700 (PDT)
Received: by mail-wi0-f172.google.com with SMTP id ez12so4953136wid.11 for <mmusic@ietf.org>; Mon, 21 Oct 2013 21:25:38 -0700 (PDT)
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=3OATKh/+rDtsixJP9idAMZPaK/1k9Vz6VrkKDguY5yI=; b=fZDqIQ+iVDsVwzNcjMXxxwh95t8+cvw/L7m6FlC9qVw3um7dMLLeReu00+67v+vO4y 2OYhMPuKcFKC3NAWuNxWy9WGHTT+TlWCYkqMJAhGKAS6ehHv9VJHZvvhfUr8dDT2G02t IfU+qNRzeNQMgqv1VgOKa0yb9AU5zSG317sPw71GlkeyODcWItnEoGuqSeGasSjllyeL 754ZqittRHdvxKArpK6JZCiZShq7Nbu9hE746Su0+DsWSmwX/+B56WSfEzxKaEYWfC7V TmBjfIYJ102MhvlTO5NMJ4GxOuTS7OFip5vCaFza3XaaISaRWdI4t4eCtK9aF4Q3G8Xa Qi1A==
X-Gm-Message-State: ALoCoQnF1epOzhQPOKFrteQd3p30SqdSoeGcBsfZRFvxg5+iqC4EQo9j9BEwHWNSsHTSx1b6O4Rx
X-Received: by 10.180.24.197 with SMTP id w5mr12484309wif.8.1382415937945; Mon, 21 Oct 2013 21:25:37 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.216.152.137 with HTTP; Mon, 21 Oct 2013 21:24:57 -0700 (PDT)
X-Originating-IP: [74.95.2.168]
In-Reply-To: <525D649E.5040608@nostrum.com>
References: <525D649E.5040608@nostrum.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Mon, 21 Oct 2013 21:24:57 -0700
Message-ID: <CABcZeBPv2NoyRPqbDTnsOWxt23c-M=AVoLn5mBH6dKjiCVJRWg@mail.gmail.com>
To: Adam Roach <adam@nostrum.com>
Content-Type: multipart/alternative; boundary="f46d044286e2e9d56604e94cca45"
Cc: "mmusic@ietf.org" <mmusic@ietf.org>
Subject: Re: [MMUSIC] Bundle-only, Port 0, and other options
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: Tue, 22 Oct 2013 04:25:53 -0000

On Tue, Oct 15, 2013 at 8:51 AM, Adam Roach <adam@nostrum.com> wrote:

>  There's been a bit of a brouhaha (from small but disproportionately vocal
> quarters) around the use of port zero in an offer for bundle-only lines. So
> I wanted to take a step back and see whether we could untangle this knot a
> bit.
>
> The key property that we need here is that bundle-only lines must be
> formed in a way that causes them to be rejected by non-bundling agents, but
> accepted by bundling agents
>

Just for clarity, it must be rejected in such a way that failure to compelte
ICE, etc. does not lead to connection failure.

-Ekr


> . Since bundle deals with ports, that seems like an extremely natural
> place to make the distinction. It has the spectacular advantage of being
> defined in a crystal clear way in RFC 3264:
>
>   "A port number of zero in the offer indicates that the
>    stream is offered but MUST NOT be used.  This has no useful semantics
>    in an initial offer, but is allowed for reasons of completeness..."
>
>   "A stream that is offered with a port of zero MUST be marked with port
>    zero in the answer."
>
> By overriding this second normative statement for bundle clients, we turn
> it into an extremely well-defined extension point.
>
> ----------------------------------------------------------------------
>
> But this is exactly the approach that is causing people heartburn, so
> let's look at other potential ways of achieving the goal. In a media
> section, there are only a small handful of fields that an implementation is
> required to read and understand:
>
>   m=<media> <port>/<number of ports> <proto> <fmt> ...
>   c=<nettype> <addrtype> <connection-address>
>
> Taken one-by-one:
>
>
>    1. Extending "media" would be somewhat problematic, since we use this
>    information extensively in our use cases. We would effectively have to
>    register bundle-only variations on "audio," "video," and "application" (at
>    a minimum), which is horribly inelegant.
>
>     2. Port is discussed above.
>
>     3. Setting "number of ports" to zero would clearly have the semantics
>    that we're interested in here. The down-side of using this approach is that
>    (in my experience) there are a lot of implementations that simply ignore
>    the "number of ports" field, and a small handful that simply choke when it
>    is present.
>
>     4. Proto is an interesting one. Right now, we use RTP/SAVPF and
>    DTLS/SCTP. We could conceivably additionally register RTP/SAVPF/BUNDLEONLY
>    and DTLS/SCTP/BUNDLEONLY, which would presumably be rejected by non-bundle
>    clients as unrecognized.
>
>     5. Fmt isn't really an option -- we need to use it to identify
>    formats.
>
>     6. Moving on to the c= line (which, if present, is mandatory to
>    parse, understand, and honor), nettype is pretty much hardwired to "IN." We
>    could register an "IN-BUNDLEONLY" option, but there's a good chance that
>    implementations don't really look at the value of this field, so they
>    wouldn't reject the new value.
>
>     7. Addrtype is necessary for indicating IP4 versus IP6. We could
>    register IP4-BUNDLEONLY and IP6-BUNDLEONLY, but this is approximately as
>    elegant as option #1.
>
>     8. Overloading connection-address would be dicey, since it ruins the
>    ability to send different streams to different places. While WebRTC might
>    not care too much about these use cases, they *are* important in other
>    contexts.
>
> In summary: of the above options, the strongest option still seems to be
> "port," followed (perhaps) by "proto." We could probably force "media" or
> "addrtype" to work, but these would be pretty messy. I think "number of
> ports" and "nettype" are at high risk of being ignored by non-bundle
> implementations (i.e., they won't trigger the failure we want), and we need
> to maintain the existing meanings for "fmt" and "connection-address".
>
> Even more tersely: if we don't want to port zero, I think the only other
> realistic option is registering new "proto" values.
>
> /a
>
> _______________________________________________
> mmusic mailing list
> mmusic@ietf.org
> https://www.ietf.org/mailman/listinfo/mmusic
>
>