[comp.protocols.iso.dev-environ] PElementID

mdeslauriers@ccrit.doc.CDN (Michel Deslauriers) (01/21/91)

This msg. concern the ASN.1 part of ISODE.
The comments in the file psap.h says that the value range for ASN1 Tag Numbers
(represented by PElementID) is : 0 .. 16383

After few tries, it seems that an ID overflow occurs if the ID is bigger than
8191.

This means only 13 bits (PE_ID_BITS) are available instead of 14.

Am I rigth?


Michel Deslauriers  (Canadian Research Center).


mdeslauriers@ccrit.doc.cdn

mrose@CHEETAH.CA.PSI.COM (Marshall Rose) (01/22/91)

A reply was sent to you last week, but the message was returned.

Please provide the evidence you have which suggests this.  Send it to
bug-isode@nisc.psi.net

/mtr

OSmith@acorn.co.uk (Owen Smith) (01/22/91)

In article <409*mdeslauriers@ccrit.doc.cdn> mdeslauriers@ccrit.doc.CDN
(Michel Deslauriers) writes:

>The comments in the file psap.h says that the value range for ASN1 Tag
>Numbers is : 0 .. 16383
>
>After few tries, it seems that an ID overflow occurs if the ID is bigger
>than 8191.
>
>This means only 13 bits (PE_ID_BITS) are available instead of 14.

Although I am not familiar with the ISODE code, this sounds correct. It takes
2 bits to represent the Class (Universal, Application, Context and Private)
and 1 bit to represent the Form (Cons and Prim) which leaves you with 13 bits.
Some other implementations have allowed 14 bits of ID by trying to work
out the Form at encoding time based on the presence of prim or cons pointers.
However, this scheme has difficulty telling the difference between a zero
length primitive and an empty constructor. Maybe ISODE used to do this but
doesn't anymore (due to above problem) and the comments in psap.h are out
of date?

The views expressed are my own and are not necessarily those of Acorn.