[MMUSIC] RID negotiation enhancements

Adam Roach <adam@nostrum.com> Mon, 02 November 2015 05:24 UTC

Return-Path: <adam@nostrum.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 AC0E01B4691 for <mmusic@ietfa.amsl.com>; Sun, 1 Nov 2015 21:24:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 3iYHophrgG41 for <mmusic@ietfa.amsl.com>; Sun, 1 Nov 2015 21:24:21 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (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 0AF4B1B4690 for <mmusic@ietf.org>; Sun, 1 Nov 2015 21:24:21 -0800 (PST)
Received: from dhcp-34-223.meeting.ietf94.jp (dhcp-34-223.meeting.ietf94.jp [133.93.34.223]) (authenticated bits=0) by nostrum.com (8.15.2/8.14.9) with ESMTPSA id tA25OJXd004316 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO) for <mmusic@ietf.org>; Sun, 1 Nov 2015 23:24:20 -0600 (CST) (envelope-from adam@nostrum.com)
To: "mmusic@ietf.org" <mmusic@ietf.org>
From: Adam Roach <adam@nostrum.com>
Message-ID: <5636F382.3010402@nostrum.com>
Date: Mon, 02 Nov 2015 14:24:18 +0900
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/KefPZWdDZlrwCbWehYNC3rDIbos>
Subject: [MMUSIC] RID negotiation enhancements
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: Mon, 02 Nov 2015 05:24:22 -0000

In the MMUSIC meeting today, I brought up two proposed enhancements to 
the parameter extensibility mechanism.

I will mention the first one only in passing, as it did not receive any 
support in the room (and several people spoke out in opposition to it). 
It generally floated the idea of "soft constraints" that the offerer 
proposes, but doesn't want the RID to be removed if they cannot be 
honored (for whatever reason). If this sounds compelling to you, read 
the concrete proposal in the MMUSIC slides and comment on it.

Given the feedback at the meeting, I do not

The second proposed enhancement was to treat constraints in the send 
direction differently than those in the receive direction. It has been 
observed that it should not matter if the answerer doesn’t understand a 
constraint on a stream that it will receive. If the stream is being 
constrained in a way it doesn’t understand, why should it care?

Based on this, it would seem to make sense to have the answerer simply 
remove unsupported parameters from any received “a=rid:x send” lines 
(i.e. for streams the answerer will be receiving). This makes the rules 
different based on whether the line is “send” or “recv”

So, for example, if an offer contains:

    a=rid:1 recv max-br=64000;max-goats=72
    a=rid:2 recv max-br=64000
    a=rid:3 recv max-br=32000;max-goats=16
    a=rid:4 recv max-br=32000
    a=simulcast:recv rid=1,2;3,4

The the answerer, who doesn’t understand max-goats, would respond:

    a=rid:2 send max-br=64000
    a=rid:4 send max-br=32000
    a=simulcast:send rid=2;4

That's consistent with what's in the current document.

If we simply reverse the direction of the streams, we get different 
behavior:

Offer:

    a=rid:1 send max-br=64000;max-goats=72
    a=rid:2 send max-br=64000
    a=rid:3 send max-br=32000;max-goats=16
    a=rid:4 send max-br=32000
    a=simulcast:send rid=1,2;3,4

The answer omits the constraints that it doesn't understand, but keeps 
the RID lines:

    a=rid:1 recv max-br=64000
    a=rid:2 recv max-br=64000
    a=rid:3 recv max-br=32000
    a=rid:4 recv max-br=32000
    a=simulcast:recv rid=1,2;3,4

[In practice, the offerer wouldn't actually do this -- it would only 
offer rids 1 and 3; I only include 2 and 4 in the example to show the 
difference in behavior between the two directions]

We didn't discuss this, but it seems like a no-brainer. Does anyone have 
a concrete reason we *shouldn't* change the processing rules to behave 
this way?

/a