On Mon, 23 Jun 2003, Ramaswamy wrote:

> Hi,
>     I have some observations and based on those I have the following
> queries. I had improved the prev ASN.1 spec for the analysis. Pls find the
> spec here -
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >
> ParameterList DEFINITIONS AUTOMATIC TAGS ::=
> BEGIN
>
> --ParameterList1 { hehe } ::= hehe
>
> ValueSet INTEGER ::= { 1|3|5|7|9 }
>
> ParameterList2 { Governor , Governor:Type } ::= SEQUENCE
> {
>  value Type
> }
>
> ParameterList3 { Governor, Governor:value } ::= SEQUENCE
> {
>  val  Governor DEFAULT value
> }
>
> VS ::= SEQUENCE
> {
>  val1  ValueSet
> }
>
> PL2-1 ::= ParameterList2 {INTEGER, {0..100}}
>
> PL2-2 ::= ParameterList2 {REAL, {0|PLUS-INFINITY|MINUS-INFINITY}}
>
> PL2-3 ::= ParameterList2 {BIT STRING(SIZE(65536)), {'0'H|'1'H|'2'H|'3'H}}
>
> PL3-1 ::= ParameterList3 {REAL,0}
>
> PL3-2 ::= ParameterList3 {INTEGER,10}
>
> pl2-1 PL2-1 ::= { value 6 }
>
> pl2-2 PL2-2 ::= { value { mantissa 1, base 2, exponent 10 } }
>
> END
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> >
>
>     I am not convinced about the interpretation of PL2 presented before for
> the following reasons. Kindly correct if my inference is mistaken. This code
> is interpreted differently by different syntax checkers. In one case the
> value 'field' of PL2-1, PL2-2, PL2-3 were considered as OpenType, and in
> another place it was the 'Governor' alone that was considered not the 'Type'
> that is governed by the 'Governor'. To be precice PL2-1 was INTEGER, PL2-2
> was REAL and PL2-3 was BIT STRING(SIZE(65536)). This I infered from the fact
> that in the value - assignment pl2-2 the real value specified is not within
> the limits (single value's) of the value set and the syntax checker did not
> mention anything about the same. This led me to infer that the ValueSet
> given for 'Type' is not considered at all. I'm not very sure of the
> behaviour I mentioned in the few sentences above, but this is my inference.
>
>     In my understanding the ASN.1 language specifies as to what is OpenType
> and what is not. And further for the the 'val1' field of Type 'VS' the
> ValueSet mentioned were taked into consideration. Would the following
> inference be valid - "If a ValueSet is passed as a parameter and it
> representes a type within a constructed type (SEQ/SET/CHOICE not an object
> class) then, only the type(governor) is considered and not the value set
> itself". I understand that this cannot be the case for an ObjectSet since an
> ObjectSet would only be used in an ObjectClass. Kindly explain.

Both tools that you are using are in error.  See the following from
ITU-T X.680 (2002), clause B.6.4:

   B.6.4 If a "Type" is supplied as an actual parameter for a dummy
   parameter which is a value set dummy parameter, then all values of that
   "Type" are required to have value mappings to values in the governor of
   the value set dummy parameter. The actual parameter selects the total
   set of values in the governor which have mappings to the "Type".

So, PL2 below evaluates to:

   PL2 ::= SEQUENCE
   {
     value INTEGER (1|3|5|7|9)
   }

-------------------------------------------------------------------------
Bancroft Scott                               Toll Free    :1-888-OSS-ASN1
OSS Nokalva                                  International:1-732-302-0750
[EMAIL PROTECTED]                                 Tech Support :1-732-302-9669 x-1
1-732-302-9669 x-200                         Fax          :1-732-302-0023
http://www.oss.com

> ----- Original Message -----
> From: "Bancroft Scott" <[EMAIL PROTECTED]>
> To: "Ramaswamy" <[EMAIL PROTECTED]>
> Sent: Monday, June 23, 2003 5:06 PM
> Subject: Re: [ASN.1] Interpretation?
>
>
> > On Mon, 23 Jun 2003, Ramaswamy wrote:
> >
> > > Hi,
> > >     As part of my learning of ASN.1 I wrote the following ASN.1 spec, so
> this code serves no other purpose that aid in my understanding of the ASN.1
> language. Pls read thru the following spec -
> > >
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > > ParameterList DEFINITIONS AUTOMATIC TAGS ::=
> > > BEGIN
> > > --ParameterList1 { hehe } ::= hehe
> > > ValueSet INTEGER ::= { 1|3|5|7|9 }
> > > ParameterList2 { Governor , Governor:Type } ::= SEQUENCE
> > > {
> > >  value Type
> > > }
> > > ParameterList3 { Governor, Governor:value } ::= SEQUENCE
> > > {
> > >  val  Governor DEFAULT value
> > > }
> > > PL2 ::= ParameterList2 {INTEGER, {1|2|3|4|5}}
> > > PL3 ::= ParameterList3 {REAL,0}
> > > pl2 PL2 ::= { value 6 }
> > > END
> > >
> >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
> > >
> > >     I understand that PL3 is equivalent to the following
> > > >>>>>>>>>>>>>>>>>>
> > > PL3 ::= SEQUENCE
> > > {
> > >  val  REAL DEFAULT 0
> > > }
> > > >>>>>>>>>>>>>>>>>>
> > >
> > >     If the above interpretation is correct then how is PL2 to be
> > > interpreted?? Is it just the type that is considered, in which case
> > > what happens to the ValueSet specified. Thanking you.
> >
> > It is interpreted the same as if you had defined Type as a
> > valuesetreference and ParameterList2 were not parameterized.
> > Or put another way:
> >
> > PL2 ::= SEQUENCE
> > {
> >   value INTEGER (1|3|5|7|9)
> > }
> >
> > -------------------------------------------------------------------------
> > Bancroft Scott                               Toll Free    :1-888-OSS-ASN1
> > OSS Nokalva                                  International:1-732-302-0750
> > [EMAIL PROTECTED]                                 Tech Support :1-732-302-9669
> x-1
> > 1-732-302-9669 x-200                         Fax          :1-732-302-0023
> > http://www.oss.com
>
>

Reply via email to