Re: [MMUSIC] Comments on ABNF in 4566bis

Paul Kyzivat <pkyzivat@alum.mit.edu> Wed, 03 December 2014 18:29 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 D1DF01A6FF1 for <mmusic@ietfa.amsl.com>; Wed, 3 Dec 2014 10:29:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.065
X-Spam-Level: *
X-Spam-Status: No, score=1.065 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, MANGLED_STOP=2.3, SPF_SOFTFAIL=0.665] 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 z7O6Hp5OozAB for <mmusic@ietfa.amsl.com>; Wed, 3 Dec 2014 10:29:49 -0800 (PST)
Received: from resqmta-ch2-10v.sys.comcast.net (resqmta-ch2-10v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:42]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 186461A1AD8 for <mmusic@ietf.org>; Wed, 3 Dec 2014 10:29:48 -0800 (PST)
Received: from resomta-ch2-07v.sys.comcast.net ([69.252.207.103]) by resqmta-ch2-10v.sys.comcast.net with comcast id P6VR1p00B2EPM31016VoJz; Wed, 03 Dec 2014 18:29:48 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.151]) by resomta-ch2-07v.sys.comcast.net with comcast id P6Vn1p00H3Ge9ey016VnDC; Wed, 03 Dec 2014 18:29:48 +0000
Message-ID: <547F569B.5040305@alum.mit.edu>
Date: Wed, 03 Dec 2014 13:29:47 -0500
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
To: Colin Perkins <csp@csperkins.org>
References: <596DA376-D525-49A2-B260-2BADB38AF2E2@csperkins.org> <547C9B29.9060801@alum.mit.edu> <57F676D2-E980-4359-87B1-BE1D764B095A@csperkins.org>
In-Reply-To: <57F676D2-E980-4359-87B1-BE1D764B095A@csperkins.org>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1417631388; bh=PW2PdHj3e6EkpmL8X6rVqu4Ns3li3Hz0ESZz0E2beLA=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=bpNnPLKK4Z55dCkWWUYoJ5oRjLsQJ0mEWCxp7mPzV5CX5qyEXBkwGyczGZEa60UeD /UmNDX8xd7lBUpMi11yqIYlZkUVbLC+0aQFqxyWxPPhGZVCK+V4g/X2DlAi2pWVG8Z YdjPB5FCiabb+2NTbbBn9zdOrDUrrv5mQQg6EXNF+esjh9Y638aoSkbnlXTvwl+tzd osLOxVdpqwWksBNAK2dKdwqaVhS8mrWbNH4IetkEJx2lcEtg9PPXCaKBIHLvQ4NUnM ix8iXs304J5GXSUACOiT5LlN3cSNda2BLGthcAYGB6OXmd3lX76wwpRF7tJ0bfJFhL jgTjGMUmHu0aA==
Archived-At: http://mailarchive.ietf.org/arch/msg/mmusic/yMvbnXLqCd5sl10FOCAjafv8UeE
Cc: mmusic@ietf.org
Subject: Re: [MMUSIC] Comments on ABNF in 4566bis
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: <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: Wed, 03 Dec 2014 18:29:51 -0000

On 12/1/14 6:39 PM, Colin Perkins wrote:

>>> *a=rtpmap:*
>>> - payload-type is an integer in the range 0-127 in RTP
>>> - encoding-name is a MIME subtype, and should have the syntax to match this
>>> - is clock-rate always an integer?
>>
>> If there is no way that larger values could ever be used then I'm fine with calling out this restriction. I’ll probably do it in text rather than in ABNF.
>
> The payload type is a 7-bit field in the RTP header, so definitely cannot be outside this range. Writing this in the text makes sense.

ok

>>> *a=type:*
>>> - I assume a registry was intended, but it’s not clear there’s any need now
>>
>> Do you mean that you don't think we need a mechanism to define further values? Or that it would be sufficient to do so with another update to this document?
>
> This list hasn’t changed in RFC 2327 in 1998. I think it’s safe to leave updates to a future revision of this document.

ok

>> Do you know if these names were intended to be case sensitive? That is an important distinction to make. And whatever choice is made will potentially have backward compatibility problems for somebody.
>
> I expect the general rule at the start of Section 5 (top of page 8) applies:
>
>     An SDP session description consists of a number of lines of text of
>     the form:
>
>        <type>=<value>
>
>     where <type> MUST be exactly one case-significant character and
>     <value> is structured text whose format depends on <type>.  In
>     general, <value> is either a number of fields delimited by a single
>     space character or a free format string, and is case-significant
>     unless a specific field defines otherwise.
>
> Hence, this is case significant.

That is how I have the syntax written now.
So I'll leave it that way unless I get some other strong argument to 
change it.

>>> *a=charset:*
>>> - This is a name from the registry at
>>> http://www.iana.org/assignments/character-sets/character-sets.xhtml and needs to follow that syntax
>>
>> In this and other cases where what goes in the SDP is a reference to something defined in a registry, I am inclined to give a simplified syntax that might be a superset of what is permitted in the registry. It doesn't matter a whole lot if it allows some invalid values, because such names will never be in the registry.
>>
>> This will help implementers. And when the exact formal definition isn't available in ABNF, or is very complex, it can also ease formal checking of the SDP ABNF.
>>
>> Given that explanation, is there anything wrong with what I have?
>
> Why not reference the correct ABNF from RFC 2978? I don’t understand the desire to put something incorrect here.

I commented on this separately.

>>> *a=sdplang:* and *a=lang:*
>>> - Should reference the RFC5646 definition
>>
>> Same comment as charset.
>
> Same answer. There’s already a standard ABNF syntax for these, and this document should refer to it rather than trying to define something new.

OK. I can do that.

>>> *a=quality:*
>>> - I thought the intent here was a real number, in the range 0…10
>>
>> What I could find only discussed quality in the context of video media, and restricted the range to 0..10 in that case. But it didn't explicitly limit (or define) the use of quality for other media. It seems reasonable to me that the same range would apply to any media where quality applies, but I wasn't sure.
>>
>> Also, should the values here be restricted to integral values, or should fractional values be allowed?
>
> I always assumed fractional values were allowed, but you’d have to check with someone who’s implemented this.

I'm happy to do that if it isn't going to break anybody.

I *could* do it so that the fraction is only permitted if it is 
non-zero, as I proposed for another field. But that doesn't necessarily 
make things better if there are uses out there that include a zero 
fractional part.

>> BTW - I just noticed I have an error in my ABNF: I limit the quality-value to an integer, which excludes zero. So I need to change the abnf in one way or another.
>>
>>> *a=fmtp:*
>>> - The format parameters are MIME media type parameters, and need to
>>> reflect their syntax.
>>
>> My understanding is that the values are whatever was in the <fmt> field of the associated m-line. What is valid there is defined for each <proto> field. For the RTP variants, it is a payload type. For UDP it is a media (sub)type. But we can't know in general what if might be for other <proto>s, since new ones could be defined in the future.
>>
>> The m-line syntax defines the fmt as a token. So I figured that the same definition should be used here.
>
> For RTP, you do know explicitly that the <format specific parameters> in the a=fmtp: line are MIME media subtype parameters, and need to conform to that syntax.

We aren't concerned with the <format specific parameters> here.
(The syntax of those is format specific.:-)

We are only concerned with the <fmt> parameter, which replicates one 
from the m-line.

For RTP m-lines this will always be an integer. But for the most part 
rtpmap is used instead of fmtp for RTP format specific parameters. There 
is text saying to use fmtp for codec-specific parameters. So I guess if 
fmtp is used with RTP then one would first need to use rtpmap to 
determine the codec, and then use rules defined by that codec to parse 
the format specific parameters.

	Thanks,
	Paul