On Thu, 9 May 2002 [EMAIL PROTECTED] wrote:

> Hello All,
>
> I am a new comer to ASN.1, I require your help in understanding empty extensible 
>information object set
>
> I have the following ASN.1 Definition, of which I have doubt in  ExtensionSet
> (as defined in 3GPP TS 29.002 (V3.12.0)  section 17.7.11 Extension data types.  )
>
> MAP-ExtensionDataTypes {
>    ccitt identified-organization (4) etsi (0) mobileDomain (0)
>    gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version6 (6)}
>
> DEFINITIONS
> IMPLICIT TAGS
> ::=
> BEGIN
> EXPORTS
>       PrivateExtension,
>       ExtensionContainer
> ;
> MAP-EXTENSION  ::= CLASS {
>     &ExtensionType               OPTIONAL,
>     &extensionId                 OBJECT IDENTIFIER }
> ExtensionContainer ::= SEQUENCE {
>     privateExtensionList         [0]PrivateExtensionList    OPTIONAL,
>     pcs-Extensions               [1]PCS-Extensions          OPTIONAL,
>     ...}
>
> PrivateExtension ::= SEQUENCE {
>     extId                        MAP-EXTENSION.&extensionId
>                                  ({ExtensionSet}),
>     extType                          MAP-EXTENSION.&ExtensionType
>                                  ({ExtensionSet}{@extId})   OPTIONAL}
> ExtensionSet                     MAP-EXTENSION ::=
>         {...
>          -- ExtensionSet is the set of all defined private extensions
>     ...}
>
> END
>
>
> According to ( ITU-T Rec. X.681 (1997 E)), ExtensionSet is dynamically
> extensible object set , which could be expanded or contracted by the
> Application Program
>
> Doubt 1) How exactly is this( ExtensionSet) dynamic ? Which is the
> application program that shall alter this?

Your application program would alter the information object set before
using it if it is initially empty but extensible.  In most applications
such an information object set is typically not dynamically expanded; the
implementor instead at ASN.1-compile time (or at implementation time if
they are not using an ASN.1 compiler that allows dynamic expansion of
information object sets) inserts into the information object set the set
of objects that they are going to support.  The only cases that I am aware
of where information object sets are dynamically expanded are related to
some implementations of the Directory protocol; of course there may be
other cases.

> Doubt 2) How will the application Expand or contract the Object Set(
> ExtensionSet) ?

It is tool-specific.  For example, with the OSS ASN.1 Tools functions
are provided that make it easy for you to dynamically expand or contract
an information object set at runtime.  Check with your tool provider to
learn how to do expansion and contraction.  HOWEVER, my guess is that if
you look closely enough at your application protocol you will find that
you probably don't need to do dynamic expansion and contraction.

Judging by the fact that it says "PrivateExtension" in your example code
above, I would guess that "ExtensionSet" is initially empty either because
it is meant to be populated by individual implementations or because it is
meant to be populated by end-users.  I don't know your application
protocol, so I don't know which of these two cases is the right one.  In
the former case (individual implementations) you can fill in the
information object set with your private information objects either at
implementation time or at runtime.  In the other case you would need to
provide some way for your end-user to load the information object set at
runtime.  As I mentioned above, this case occurs much less often.

> I am working on a ASN.1 Definition something like this
>
> (as defined in   3GPP TS 04.31 V8.8.0 (2002-02) sec  4)Components )
>
> RRLP-Components DEFINITIONS AUTOMATIC TAGS ::=
> BEGIN
> IMPORTS
>    ExtensionContainer
> FROM MAP-ExtensionDataTypes {
>    ccitt identified-organization (4) etsi (0) mobileDomain (0)
>    gsm-Network (1) modules (3) map-ExtensionDataTypes (21) version4 (4)}
> ;
> ProtocolError ::= SEQUENCE {
>    errorCause             ErrorCodes,
>    extensionContainer     ExtensionContainer    OPTIONAL,
>      ...
> }
> END
>
> In the above definition, I have copied the required imports in to my
> ASN.1 definition since My Application environment does not have the
> module MAP-ExtensionDataTypes,( some thing like declaring functions in
> the same file instead of using #include in C terms )
>
>
> I Hope I have made myself clear

I am not sure about what you are saying starting with "I am working ...".
Please clarify if what I have said above is not sufficiently clear.

-------------------------------------------------------------------------
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