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@tech-know-ware.com =============================================