Subject: RE: [Megaco] v2 mismatch ABNF & ASN.1 IndAudmediaParm?

From: "Kevin Boyle" <[email-masked]>
Date: Tue, 17 Jun 2003 15:30:14 -0400

Aha... I see the problem now.  In binary, you can request info about several
streams at once, but you may only request info about one stream in text.  Is
this an accurate summary?

Seeing as this would be a syntax change, we need to know if anyone would
have major heartburn over changing the syntax to fix this.  If not, I will
draft up an IG item to fix this...

Speaking personally, I think this is a beneficial change, because it makes
the syntax align between the expression of items within the media
descriptor, and the audit of items within the media descriptor, as well as
making both binary and text align in capability.

Any other comments?

Kevin

-----Original Message-----
From: Micael Karlberg [mailto:[email-masked]] 
Sent: Tuesday, June 17, 2003 1:26 PM
To: Christian Groves
Cc: [email-masked]
Subject: Re: [Megaco] v2 mismatch ABNF & ASN.1 IndAudmediaParm?

Hello Christian,

Christian Groves writes:
 > Hello Micael,
 > 
 > I don't understand what the problem is nor the comments in the ASN.1 you
are  > referring to? 

The comment ("at-most-once per item...") is in the ABNF.

 > If you are referring to the ::= SEQUENCE this is actually an ASN.1  >
construct that says that a sequence of information elements may be encoded,
in  > this case "termStateDescr" & a choice of streams. 

This is how see it also.

 > This same information is represented by the ABNF.

This I _cannot_ find!

The comment in the ABNF seems to indicate that it should be as in 
the ASN.1 but the ABNF definition of the indAudmediaDescriptor 
allow for only one value of indAudmediaParm.

Therefor my _question_ if the definition should'nt really be:

	 indAudmediaDescriptor = MediaToken LBRKT indAudmediaParm
                                 *(COMMA indAudmediaParm) RBRKT

Also, the defintion of the mediaDescriptor strikes me as _very_ similar to
my "proposal":

      mediaDescriptor = MediaToken LBRKT mediaParm 
                        *(COMMA mediaParm) RBRKT 
       
      ; at-most one terminationStateDescriptor 
      ; and either streamParm(s) or streamDescriptor(s) but not both 
      mediaParm = (streamParm / streamDescriptor /  
                    terminationStateDescriptor) 

Regards,
	/BMK

 > 
 > Regards, Christian
 > 
 > Micael Karlberg wrote:
 > > 
 > > Hi,
 > > 
 > > In draft-ietf-megaco-h248v2-04.txt there appear to be a mismatch  > >
between the ABNF and the ASN.1 regarding indAudmediaDescriptor.  > > My
question is: Should the definition of ABNF indAudmediaDescriptor  > > really
be:  > > 
 > >       indAudmediaDescriptor   = MediaToken LBRKT indAudmediaParm
 > >                                 *(COMMA indAudmediaParm) RBRKT
 > > 
 > > The comment for indAudmediaParm and the ASN.1 IndAudMediaDescriptor  >
> indicates that it should be a list. Or am I missing something?  > > 
 > > Also, see definition of mediaDescriptor!
 > > 
 > > ABNF:
 > > ----
 > >       indAudmediaDescriptor   = MediaToken LBRKT indAudmediaParm RBRKT
 > > 
 > >       ; at-most-once per item
 > >       ; and either streamParm or streamDescriptor but not both
 > >       indAudmediaParm = (indAudstreamParm / indAudstreamDescriptor /
 > >                          indAudterminationStateDescriptor)
 > > 
 > > ASN.1:
 > > -----
 > >       IndAudMediaDescriptor ::= SEQUENCE
 > >       {
 > > 
 > >          termStateDescr    IndAudTerminationStateDescriptor OPTIONAL,
 > >          streams  CHOICE
 > >                {
 > >                   oneStream      IndAudStreamParms,
 > >                   multiStream    SEQUENCE OF IndAudStreamDescriptor
 > >                } OPTIONAL,
 > >          ...
 > >       }
 > > 
 > > Regards,
 > >         /BMK
 > > 
 > > _______________________________________________
 > > Megaco mailing list
 > > [email-masked]
 > > https://www1.ietf.org/mailman/listinfo/megaco

-- 
Micael Karlberg          Ericsson AB, Älvsjö Sweden
Tel:  +46 8 727 5668     EAB/UHK/KD - OTP Product Development
ECN:  851 5668           Mail: [email-masked]
Fax:  +46 8 727 5775    

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

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

---

From: Christian Groves <[email-masked]>
Date: Wed, 18 Jun 2003 13:55:11 +1000

G'Day Kevin and Micael,

I still don't see a problem. indAudterminationAudit allows you to request
multiple values:
indAudterminationAudit   = indAudauditReturnParameter 
                            *(COMMA indAudauditReturnParameter) 

indAudauditReturnParameter = (indAudmediaDescriptor / /  
					                 indAudeventsDescriptor / 
					                 indAudsignalsDescriptor / 
					                 indAuddigitMapDescriptor / 
 					                 indAudeventBufferDescriptor /
					                 indAudstatisticsDescriptor / 
					                 indAudpackagesDescriptor)

This allows you to request several streams. So the capabilities are aligned. The
reason we have the indAudstreamParm / indAudstreamDescriptor is to allow for the
case where no streamid is given.

Regards, Christian

Kevin Boyle wrote:
> Seeing as this would be a syntax change, we need to know if anyone would have
> major heartburn over changing the syntax to fix this.  If not, I will draft up
> an IG item to fix this...
> 
> Speaking personally, I think this is a beneficial change, because it makes the
> syntax align between the expression of items within the media descriptor, and
> the audit of items within the media descriptor, as well as making both binary
> and text align in capability.
> 
> Any other comments?
> 
> Kevin
> 
> Also, the defintion of the mediaDescriptor strikes me as _very_ similar to my
> "proposal":
> 
>  > > The comment for indAudmediaParm and the ASN.1 IndAudMediaDescriptor  > >

---

From: Christian Groves <[email-masked]>
Date: Wed, 18 Jun 2003 13:55:11 +1000

G'Day Kevin and Micael,

Regards, Christian

---

From: Aleksandr Ryabin <[email-masked]>
Date: Wed, 18 Jun 2003 10:11:56 -0400

Hi Christian,

I think that Michael originally pointed out on discrepancy between
ASN.1 and ABNF. Specifically, IndAudMediaDescriptor contains
multiStream which is defined as a SEQUENCE:
         multiStream    SEQUENCE OF IndAudStreamDescriptor

Thus inside of one IndAudMediaDescriptor construction MGC can
place multiple audit instructions for different streams, while
ABNF does not allow that.

You are right, there is a way to do it, but ABNF does not match
ASN.1 in this case on how to do it. In this case ASN.1 allows two
ways to do the same thing, while ABNF only one way.

Generally speaking my personal opinion that we should minimize cases
when MGC can do same things different ways and instead fix ASN.1
spec to not allow SEQUENCE (but see more below), e.g.:
                   multiStream    IndAudStreamDescriptor

Same problem for propertyParms in IndAudLocalControlDescriptor and
in IndAudTerminationStateDescriptor (SEQUENCE OF should be removed).
But if we are to fix this then we should fix the rest if ASN.1 indAudXXX
constructions to not allow multiple audits inside of one construction and that
means turning SEQENCE into CHOICE for most of IndAudXXX constructions.

So the way I see it, ASN.1 went the "flexible" way which can be complex,
but and minimizes the final size of audit when several items needs to
be audited inside of one descriptor, while ABNF went "simple" way
which makes it strait forward, but it can get big if MGC need to audit
more then one item inside of one descriptor.

I think we should let it be since it is too much of the changes and add
flexibility of ASN.1 into ABNF in the next version which includes
adding (COMMA...) in most of indAudXXX constructions in ABNF.
At that point we should qualify with "at-most-once per item"
indAudauditReturnParameter in ABNF and IndAuditParameter in
ASN.1 do disallow "old simple" way.

Regards,
         Aleks

---

From: Aleksandr Ryabin <[email-masked]>
Date: Wed, 18 Jun 2003 10:11:56 -0400

Hi Christian,

Regards,
         Aleks

---

From: Aleksandr Ryabin <[email-masked]>
Date: Fri, 20 Jun 2003 10:53:51 -0400

Hi Christian,
Please see my comments below inline [AR].
Regards,
         Aleks

At 10:52 PM 6/18/2003, Christian Groves wrote:
>G'Day Aleksandr,
>
>Functionality wise the text and binary version I see as equivalent as you can
>ask for a list of parameters to be audited. How syntically this is acheived is
>has a difference. I don't think its necessary to change the ASN.1 as its not
>broken and would break v2 implementations. If people want to change the ABNF
>with *(COMMA mediaParm) then OK. We should also clarify that if you want
>multiple items from the same descriptor use *(COMMA ...), if you want multiple
>items in different descriptors use indAudauditReturnParameter or
>IndAuditParameter. You still need the simple way for multiple descriptors.

[AR] That is exactly what "at-most-once per item" qualifier will do.

>The question which you alluded to below is this an acceptable "Fix" (not break
>implementations) or should it wait for a version change to align?
>
>Depending on the answer to the above perhaps this could be captured in the
>implementors' guide as a new section detailing the issue and saying solution
>will be in v3. I believe we identified another issue at the May SG16 that we
>agreed would be something to look at in v3.

[AR] Generally speaking it is too big of a change, thus it should wait 
until next version,
but depending on number of current implementations of v2 out there it might as
well be added to current v2 in IG.

[AR] I'm not currently aware of any v2 implementations, thus it should be 
easy to
go with v2/IG approach. Opinions?

>As for go "flexible" or "simple" on either of the encodings there was no
>conscious decision. I simply tried to mirror existing data structures when I
>proposed the syntax in both the ASN1 and ABNF. That's why the ASN.1 has
>sequences because it mirrors previous related v1 structures. I tried to do the
>same for the ABNF but we had some last minute editing (re: local/remote 
>comment)
>and some things were changed. That's why things are as they are.
>
>Regards, Christian
>
>Aleksandr Ryabin wrote:
> >
> > Hi Christian,
> >
[snip]

---

From: Aleksandr Ryabin <[email-masked]>
Date: Fri, 20 Jun 2003 10:53:51 -0400

Hi Christian,

[snip]

---

From: Christian Groves <[email-masked]>
Date: Thu, 19 Jun 2003 12:52:16 +1000

G'Day Aleksandr,

same for the ABNF but we had some last minute editing (re: local/remote comment)

Regards, Christian

---

From: Christian Groves <[email-masked]>
Date: Thu, 19 Jun 2003 12:52:16 +1000

G'Day Aleksandr,

Regards, Christian