Subject: Re: MEGACOHGCP10: Clarifications + Editorial corrections/comments

From: Brian Rosen <[email-masked]>
Date: Thu, 16 Sep 1999 08:54:15 -0400

You are correct.  I will change it.

Brian

> -----Original Message-----
> From: Christian Huitema [mailto:[email-masked]]
> Sent: Thursday, September 16, 1999 8:46 AM
> To: Brian Rosen; [email-masked]
> Subject: Re: MEGACOHGCP10: Clarifications + Editorial
> corrections/comments
>
>
> Brian,
>
> I note that in the syntax specification, the authentication data are
> defined as "16HEXDIG", which makes for a fixed length 64 bits
> field.  I
> don't believe that is the intent.  We should fix that at a minimum to
> 32(HEXDIG), to allow for MD5, and maybe to 32*64(HEXDIG) to allow for
> further development such as SHA.
>
> -- Christian Huitema
>

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 16 Sep 1999 19:05:57 +0000

Brian,

Would it be possible to make the following changes to the v10 ABNF.  The changes
fix the following problems:

o   Make use of case consistent: although ABNF identifiers are not case
    sensitive, the identifiers of things that the ABNF may be machine translated
    to (such as bison rules) are not.

o   Remove productions which are not referenced in the ABNF.  Useless
    productions have no place in the final standard.

o   Add productions for tokens which are referenced but which have not yet been
    defined.

Change subtractToken to SubtractToken in the subtractRequest production.

    ***************
      subtractRequest =
    !   subtractToken
        EQUAL TerminationID [LBRKT auditDescriptor RBRKT]
    ---------------
      subtractRequest =
    !   SubtractToken
        EQUAL TerminationID [LBRKT auditDescriptor RBRKT]
    ***************

Change serviceChangeToken to ServiceChangeToken in the serviceChangeRequest
and serviceChangeReply productions.

    ***************
      serviceChangeRequest =
    !   serviceChangeToken
        EQUAL TerminationID
        LBRKT serviceChangeDescriptor RBRKT

      serviceChangeReply =
    !   serviceChangeToken ( commandError /
        ( [EQUAL TerminationID] [LBRKT serviceChangeDescriptor RBRKT] ) )
    ---------------
      serviceChangeRequest =
    !   ServiceChangeToken
        EQUAL TerminationID
        LBRKT serviceChangeDescriptor RBRKT

      serviceChangeReply =
    !   ServiceChangeToken ( commandError /
        ( [EQUAL TerminationID] [LBRKT serviceChangeDescriptor RBRKT] ) )
    ***************

Remove IPv6prefix production: this production is never referenenced.

    ***************
    - IPv6prefix =
    -   hexpart SLASH 1*2DIGIT
    -
    ---------------
    ***************

Change mediaToken to MediaToken in the mediaDescriptor production.

    ***************
      mediaDescriptor =
    !   mediaToken
        LBRKT mediaParm *( COMMA mediaParm ) RBRKT
    ---------------
      mediaDescriptor =
    !   MediaToken
        LBRKT mediaParm *( COMMA mediaParm ) RBRKT
    ***************

Change octetStringParm to OctetStringParm in the octetStringParm production.

    ***************
    ! OctetStringParm =
        ( SdpToken /
        extensionParameter )
    ---------------
    ! octetStringParm =
        ( SdpToken /
        extensionParameter )
    ***************

Change ItemID to ItemId in the pkgdName production.

    ***************
      pkgdName =
        [( PackageName /
    !   "*" ) SLASH] ( ItemID /
        "*" )
    ---------------
      pkgdName =
        [( PackageName /
    !   "*" ) SLASH] ( ItemId /
        "*" )
    ***************

Change firstembedding to firstEmbedding in the embeddedSignalEvents production.

    ***************
      embeddedSignalEvents =
    !   firstembedding [COMMA firstEmbedding]
    ---------------
      embeddedSignalEvents =
    !   firstEmbedding [COMMA firstEmbedding]
    ***************

Delete the UNIT64 production: is is never referenced.

    ***************
    - UINT64 =
    -   1*20( DIGIT )
    -   ; 00-FFFFFFFFFFFFFFFF
    -
    ---------------
    ***************

Change Restchar to RestChar in the Restchar production.

    ***************
    ! Restchar =
        ";" /
        "[" /
    ---------------
    ! RestChar =
        ";" /
        "[" /
    ***************

Remove the AvgLatencyToken production: it is never referenced.

    ***************
    - AvgLatencyToken =
    -   ( "AverageLatency" /
    -   "AL" )
    -
    ---------------
    ***************

Add the DeleteToken production: it was not defined.

    ***************
    ---------------
    + DeleteToken =
    +     ( "Delete" /
    +     "DE" )
    +
    ***************

Add the DisconnectedToken production: it was not defined.

    ***************
    ---------------
    + DisconnectedToken =
    +     ( "Disconnected" /
    +     "DC" )
    +
    ***************

Change HandoffToken to HandOffToken in the HandoffToken production.

    ***************
    ! HandoffToken =
        ( "HandOff" /
        "HO" )
    ---------------
    ! HandOffToken =
        ( "HandOff" /
        "HO" )
    ***************

Delete the JitterToken production: it is never referenced.

    ***************
    - JitterToken =
    -   ( "Jitter" /
    -   "JI" )
    -
    ---------------
    ***************

Add the MediaToken, MethodToken, ModemToken, and Modem productions: there were
not defined.

    ***************
    ---------------
    + MediaToken =
    +     ( "Media" /
    +     "MA" )
    +
    + MethodToken =
    +     ( "Method" /
    +     "MT" )
    +
    + ModemToken =
    +     ( "Modem" /
    +     "MD" )
    +
    + ModeToken =
    +     ( "Mode" /
    +     "MO" )
    +
    ***************

Delete the OctetsRecvdToken and OctetsSentToken productions: they are never
referenced.

    ***************
    - OctetsRecvdToken =
    -   ( "OctetsReceived" /
    -   "OR" )
    -
    - OctetsSentToken =
    -   ( "OctetsSent" /
    -   "OT" )
    -
    ---------------
    ***************

Delete the PktsLostToken, PktsRecvdToken, and PktsSentToken productions: they
are never referenced.

    ***************
    - PktsLostToken =
    -   ( "PacketsLost" /
    -   "PL" )
    -
    - PktsRecvdToken =
    -   ( "PacketsRecived" /
    -   "PR" )
    -
    - PktsSentToken =
    -   ( "PacketsSent" /
    -   "PS" )
    -
    ---------------
    ***************

Delete the VersionToken production: it is never referenced.

    ***************
    - VersionToken =
    -   ( "Version" /
    -   "V" )
    -
    ---------------
    ***************

--
Brian F. G. Bidulock
Associate Director - New Products
Inet Technologies Inc.

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Thu, 16 Sep 1999 19:10:56 +0000

Brian,

We might want to rethink this "Modem" "Mode" thing: for lexical analyzers is it nice not to
have one token being a literal substring of another.  This is also true for several `short'
names where a single letter is used from one of the tokens and then multiple letters used for
others.  Again, one token should not be a literal substring of another, particularly where one
is a prefix of another.

"Brian F. G. Bidulock" wrote:
[snip]
> Add the MediaToken, MethodToken, ModemToken, and Modem productions: there were
[snip]

---

From: Abdallah Rayhan <[email-masked]>
Date: Thu, 16 Sep 1999 16:47:27 -0400

Brian,

Let me start by saying that ABNF is not case sensitive, but we tried to have
terminals to start with caps and PRs start with small. We might have missed
one here or there in the rush of thigns, serviceChangeToken, subtractToken,
Restchar, firstembedding, ItemID, HandoffToken, mediaToken.

Most of errors you report are due to last minute editing when we had to
agree on things. We used to have PR for statisticsDecriptor that is part
of a package now. but we forgot to remove the tokens that are referenced
in that PR. This includes: AvgLatencyToken, JitterToken, OctetRecvdToken,
PktsLostToken, PktsRecvdToken, PktsSendToken, UINT64

When Version PR was removed, we forgot to remove VersionToken.

DisconnectedToken and DeleteToken were added when they were discussed
on the list but made there way into v10 for mysterious reasons.

I dont see any problem with MethodToken, MoveToken.

As for IPv6prefix, I would blame the authors of RFC2373 because they
missed it.

PR IPv6address reads as:
IPv6address = hexpart [ ":" IPv4address ]
and should have been:
IPv6address = hexpart [ ":" IPv4address ] / IPv6prefix
Anyway, if IP6 is to be implemented the above ABNF needs the semantics
part described in RFC2373.

We will make sure these typos are corrected and thank you for your thorough
reading.

Abdallah Rayhan