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

Paul Kyzivat <pkyzivat@alum.mit.edu> Tue, 15 October 2013 18:07 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 8FE1F11E81A1 for <mmusic@ietfa.amsl.com>; Tue, 15 Oct 2013 11:07:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.267
X-Spam-Level:
X-Spam-Status: No, score=-0.267 tagged_above=-999 required=5 tests=[AWL=0.170, BAYES_00=-2.599, FH_RELAY_NODNS=1.451, HELO_MISMATCH_NET=0.611, RDNS_NONE=0.1]
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 qi5GCP3l5NFg for <mmusic@ietfa.amsl.com>; Tue, 15 Oct 2013 11:07:22 -0700 (PDT)
Received: from qmta10.westchester.pa.mail.comcast.net (qmta10.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:17]) by ietfa.amsl.com (Postfix) with ESMTP id 3762911E814C for <mmusic@ietf.org>; Tue, 15 Oct 2013 11:07:20 -0700 (PDT)
Received: from omta03.westchester.pa.mail.comcast.net ([76.96.62.27]) by qmta10.westchester.pa.mail.comcast.net with comcast id dW631m0040bG4ec5AW7KPL; Tue, 15 Oct 2013 18:07:19 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.164]) by omta03.westchester.pa.mail.comcast.net with comcast id dW7K1m00k3ZTu2S3PW7K0t; Tue, 15 Oct 2013 18:07:19 +0000
Message-ID: <525D8456.1070600@alum.mit.edu>
Date: Tue, 15 Oct 2013 14:07:18 -0400
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: mmusic@ietf.org
References: <525D649E.5040608@nostrum.com>
In-Reply-To: <525D649E.5040608@nostrum.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1381860439; bh=QV2wcy21agnFH/S3IXeX7d58oHw5sdxK2bLTGe5SGLc=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=U9V70+Gm52MNQhWdxBngdTZA+W43nReDRWICYjA4qkWwc4fInP2bvHmmrNmmZQ77/ tn6dQpRyzoamDusHRyk/dq6hzOGZkYJtJEk3JyPsDqh8TuhTDuPFOvbzprxVF5gnuo 9fCbpsccCavYJB4cD8xQlM83JRzGea/xyzvuQU7Q6XE6dMd+7SGBTXJJ3Oe+OAUbCs zUEdD0zpwp/np/ionkWrd9YsHw4ucXcz3aBfD7m519YE5Pwz6Uux1wzHKcGanhblGw dcrOSlJkH8yexgIZuxX6A4CsG424rW79DNhiaqPYpXk4LSTMc76ZhkWbHmeiBksy3d fACcXTwWeHb2w==
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, 15 Oct 2013 18:07:34 -0000

Adam,

I agree with most of your analysis. Comment inline.

On 10/15/13 11:51 AM, Adam Roach 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. 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.

I don't understand this last point. We are only talking about 
bundle-only lines that are either going to use the address and port of 
the bundle (defined elsewhere) or aren't going to be used at all.

IMO we *could* use an invalid address (pick one) as the indicator if the 
port number is a problem.

OTOH, I'm not convinced this is better. I can imagine problems arising 
from this too.

	Thanks,
	Paul

> 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
>