Subject: [Megaco] Re: IG 6.79 "Cancelling Event Detection" breaks ABNF

From: Troy Cauble <[email-masked]>
Date: Tue, 09 Oct 2001 12:40:27 -0400

Greetings,

This old thread had some fairly serious problems that were never
resolved.  I am proposing changes for the problems in the text
encoding.  There is a larger issue to the ASN.1 problems -- I
will start another thread for that.

BACKGROUND

I'm told that auditItem's use in auditReturnParameter is to
represent empty descriptors.

   auditReturnParameter = (mediaDescriptor / modemDescriptor /
                           muxDescriptor / eventsDescriptor /
                           signalsDescriptor / digitMapDescriptor /
                     observedEventsDescriptor / eventBufferDescriptor /
                           statisticsDescriptor / packagesDescriptor /
                            errorDescriptor / auditItem )

   auditItem            = ( MuxToken / ModemToken / MediaToken /
                           SignalsToken / EventBufferToken /
                           DigitMapToken / StatsToken / EventsToken /
                           ObservedEventsToken / PackagesToken )

But some of the descriptors in auditReturnParameter already have
empty forms.  This is the crux of problems #1, #2 (text) and #4 below.

PROPOSED CHANGES that fix #1, #2 (text) and #4 below

   signalsDescriptor    = SignalsToken [ LBRKT signalParm
                          *(COMMA signalParm) RBRKT ]

   auditReturnParameter = (mediaDescriptor / modemDescriptor /
                           muxDescriptor / eventsDescriptor /
                           signalsDescriptor / digitMapDescriptor /
                     observedEventsDescriptor / eventBufferDescriptor /
                           statisticsDescriptor / packagesDescriptor /
                            errorDescriptor / auditReturnItem )

   auditReturnItem      = ( MuxToken / ModemToken / MediaToken /
                           DigitMapToken / StatsToken /
                           ObservedEventsToken / PackagesToken )

   auditItem            = ( auditReturnItem / SignalsToken /
                           EventBufferToken / EventsToken )

An alternative approach would be to create empty forms for
the other 7 descriptors represented by auditItem and remove
the auditItem from auditReturnParameter.  But then those 
empty forms could be used elsewhere (ammParameter, notifyRequest) 
where they're apparantly not needed.

-troy

Troy Cauble wrote:
> 
> A summary of the problems discussed in this thread.
> 
> 1) In the text encoding, some empty descriptors have the form
>    "Signals {}" while others have "Events".
> 
> In a Termination Audit:
> 
> 2) There are two line encodings for an empty Signals descriptor
>    (text and ASN.1).
> 
> 3) There are two line encodings each for an empty Events descriptor
>    or Event Buffer descriptor (ASN.1 only).
> 
> 4) In the text encoding, EventsToken and EventBufferToken each
>    have reduce/reduce conflicts because they can represent either
>    an auditItem token or an empty descriptor in the auditReturnParameter.
> 
> -troy
> 
> 
> 
> "Rosen, Brian" wrote:
> >
> > I agree with Tom; we did a pass over the ABNF to try to make
> > all of the empty forms not have braces.  The choice was
> > completely arbitrary, and as I recall, we decided since it
> > didn't make any real difference, shorter was better.
> > If we missed one, we goofed.
> >
> > Tom, the problem here seems to be real.  As Troy says, you will get
> > a reduce conflict in a rules-based parser with this ambiguity.
> > I'm pretty sure you can ignore the problem, but it's poor design
> > practice.  You will recall all of the effort Abdallah and Nancy
> > went through to test out these kinds of things as we developed
> > the ABNF.  The IG change wasn't verified in the same way, thus
> > we have this problem.  We need to decide what to do.
> >
> > Brian
> >
> > > > Tom-PT Taylor wrote:
> > > >
> > > > I'm the one responsible for all this.  I suppose I should
> > > dig up the thread.
> > > > Anyway, the intention was definitiely to provide a way of
> > > signalling empty
> > > > descriptors.  I think we chose rather arbitrarily between
> > > the desc{} and desc
> > > > form, opting for the latter.
> > >

_______________________________________________
Megaco mailing list
[email-masked]
http://www1.ietf.org/mailman/listinfo/megaco