H.248: Binary Encoding
Pete Cordell
pete at TECH-KNOW-WARE.COM
Mon Oct 18 17:14:07 EDT 1999
Brian,
There's no muddling. The line would be:
Add{<termID> blah, blah, blah}
And before you tell me that there's no separator between <termID> and blah,
you'll have to first convince me how it's impossible to read this sentence
and how a C compiler can not parse the statement "unsigned int param1;" !
I think the change is minor. The syntax has changed a lot over the previous
months. Relatively speaking I think the sweat is minor, and let's face, who
said they could stop sweating!!! (And spilling a bit of sweat is preferable
to spilling lots of blood if we go back to a text vs. binary war!!!)
Pete
=============================================
Pete Cordell
pete at tech-know-ware.com
=============================================
-----Original Message-----
From: Brian Rosen <brosen at ENG.FORE.COM>
To: ITU-SG16 at MAILBAG.INTEL.COM <ITU-SG16 at MAILBAG.INTEL.COM>
Date: 18 October 1999 16:39
Subject: Re: H.248: Binary Encoding
>The reason why the ABNF is usually
>token=id LBRKT param *(COMMA param) RBRKT
>is because the id is what the command operates ON,
>whereas the parameters are what the operation DOES.
>
>Add=<termiD>{blah, blah, blah}
>or
>Stream=<streamID>{...
>or
>Context=<ContextID{
>
>The bracketed items are the parameters to the command.
>All parameters (uniformly now, I believe) are descriptors.
>
>Making the command
>Add{<termID>, blah, blah, blah}
>Muddies the id and the parameters.
>
>I don't feel all that strongly about this change other than
>it's way too late to make it. It was suggested any time in
>the last 4 months we have been dealing with syntax issues,
>it could have been examined, weighed, and a judgment call
>made on it. Now, it seems to me that it breaks too many
>things we are trying to not change. People's parsers for
>example, the current ABNF (which has a lot of sweat in
>reviewers time) for another.
>
>It seems more reasonable to fix the compiler at this late date.
>
>Brian
>
>> -----Original Message-----
>> From: Pete Cordell [mailto:pete at tech-know-ware.com]
>> Sent: Sunday, October 17, 1999 7:43 AM
>> To: ITU-SG16 at mailbag.cps.intel.com
>> Subject: Re: H.248: Binary Encoding
>>
>>
>> Hi All,
>>
>> I'd like to propose a few things for discussion that might
>> make the ABNF248
>> and ABNF1711 more aligned. In particular, one difference
>> between the two is
>> the number of brackets.
>>
>> ABNF248 has a lot of constructs of the following:
>>
>> token EQUAL id LBRKT param *( COMMA param ) RBRKT
>> token LBRKT param *( COMMA param ) RBRKT
>>
>> and also does (which I suppose is the general case):
>> token [ EQUAL id ] LBRKT param *( COMMA param ) RBRKT
>>
>> ABNF1711 naturally has the following structure:
>>
>> message = *( parameter )
>> parameter = *( tag EQUAL ) value-field *( COMMA value-field )
>> value-field = value / tag / "{" *( parameter ) "}"
>>
>> This is close to what is in ABNF248 if we move the position
>> of LBRKT around
>> in the first case:
>>
>> token EQUAL LBRKT id param *( COMMA param ) RBRKT
>>
>> and add an EQUAL in the second case:
>>
>> token EQUAL LBRKT param *( COMMA param ) RBRKT
>>
>> Unfortunately an optional untagged item at the beginning of a
>> construct is a
>> problem for ABNF1711. This is because in general (although
>> not necessarily
>> in the megaco case) it would make the identification of parameters
>> ambiguous. This means that the third variant ideally needs to be:
>>
>> token EQUAL LBRKT ( id / "-" ) param *( COMMA param ) RBRKT
>>
>> This doesn't seem a radical change to ABNF248, and even if
>> the code is hand
>> crafted ought to be fairly easy to accommodate. Naturally,
>> any use of tools
>> should make this even easier. In my opinion it also looks
>> more intuitive,
>> although I guess it's a bit boring and lacks a bit of
>> designer flair!!!
>>
>> Is it possible to discuss such changes?
>>
>> Pete
>>
>> P.S. The corresponding ASN.1 for the above are:
>>
>> token ::= SEQUENCE { id AS ? id, param AS ? SEQUENCE OF param }
>> token ::= SEQUENCE { param AS ? SEQUENCE OF param }
>> token ::= SEQUENCE { id AS ? CHOICE { present AS ? INTEGER, none AS -
>> NULL },
>> param AS ? SEQUENCE OF param }
>>
>> =============================================
>> Pete Cordell
>> pete at tech-know-ware.com
>> =============================================
>>
>
More information about the sg16-avd
mailing list