Many Thanks for the response Bruno.

Pardon me for my ignorance on ASN.1.  Consider the snippet given in the end.

My Understanding is :

ExtensionContainer defines a list of Information Elements I can add to
existing Message.
PrivateExtensionList is the list of such Information Element
PrivateExtension is one such information Element defined by an ID and Type.
The ID and Type elements refer to the Base Extension class "MAP-EXTENSION"

1) Now do we actually require "ExtensionSet" definition when we could have
defined the information element in the "PrivateExtension" component itself
?   My guess is that we are using a Set here because we can have multiple
object instances for the Extension Class.

2) When you say  " When the decoder decodes the PrivateExtension type (in
the PrivateExtensionList), knowing the extId component it can search for
that id in the extensions set and find what is the type to be used for
decoding the extType component. " , do you mean the tag identification ? Can
you throw more light on Object Identifier ?


MAP-EXTENSION ::= CLASS {
&ExtensionType OPTIONAL,
&extensionId OBJECT IDENTIFIER }

ExtensionContainer ::= SEQUENCE {
privateExtensionList [0] PrivateExtensionList OPTIONAL,
...}

PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
PrivateExtension


PrivateExtension ::= SEQUENCE {
extId MAP-EXTENSION.&extensionId
({ExtensionSet}),
extType MAP-EXTENSION.&ExtensionType
({ExtensionSet}{@extId}) OPTIONAL
}

maxNumOfPrivateExtensions INTEGER ::= 10

ExtensionSet MAP-EXTENSION ::=
{...
-- ExtensionSet is the set of all defined private extensions
}


Thanks.



Best Regards
Varun

On Wed, Apr 13, 2011 at 10:11 PM, Bruno.Konik <[email protected]>wrote:

> Hello Varun,
>
>
>
> You can write something like that :
>
>
>
> ExtensionSet MAP-EXTENSION ::= {
>
>       ...,
>
>       {&ExtensionType MyType, &extensionId myOID} |
>
>       myObj
>
> }
>
>
>
> myOID OBJECT IDENTIFIER ::= {1 2 3 4 5 6} -– an object identifier that
> identifies your extension
>
> MyType ::= INTEGER -– the type of your extension
>
>
>
> myObj MAP-EXTENSION ::= {&ExtensionType MyOtherType, &extensionId
> myOtherOID }
>
>
>
>
>
> You must define an information object within the information object set
> ExtensionSet. The object must specify an extensionId field and an
> ExtensionType field. The constraint ({ExtensionSet}{@extId}) on the
> PrivateExtension extType component means that the type of this extType
> component is identified by the id  contained in the extId component within
> the ExtensionSet.
>
> When the decoder decodes the PrivateExtension type (in the
> PrivateExtensionList), knowing the extId component it can search for that id
> in the extensions set and find what is the type to be used for decoding the
> extType component.
>
>
>
> The standard for that is X681
> http://www.itu.int/itu-t/recommendations/rec.aspx?rec=x.681.
>
>
>
> I hope this will help you,
>
>
>
> Bruno Konik
>
> uniGone
>
>
>
>
>
> *De :* [email protected] [mailto:[email protected]] *De la part de
> * Varun Gupta
> *Envoyé :* mercredi 13 avril 2011 17:55
> *À :* [email protected]
> *Objet :* [Asn1] Regarding ASN's Extension Containers Utility.
>
>
>
>
>
> Hi
>
>
>
> I understand that the purpose of using Extension Containers is to add new
> information Elements in the existing Messages.
>
> Would it be possible for someone to give me a document reference or certain
> examples on using Extension Containers.
>
>
>
> Below is an extact from 3GPP MAP interface document . In case I want to add
> an IE in private extension containers , How do I do it ?
>
> What is the relevance of Extension ID , Extension Type ?
>
>
>
> ExtensionContainer ::= SEQUENCE {
> privateExtensionList [0]PrivateExtensionList OPTIONAL,
> pcs-Extensions [1]PCS-Extensions OPTIONAL,
> ...}
> ETSI
> 3GPP TS 29.002 version 9.0.0 Release 9 419 ETSI TS 129 002 V9.0.0 (2010-02)
> SLR-ArgExtensionContainer ::= SEQUENCE {
> privateExtensionList [0]PrivateExtensionList OPTIONAL,
> slr-Arg-PCS-Extensions [1]SLR-Arg-PCS-Extensions OPTIONAL,
> ...}
> PrivateExtensionList ::= SEQUENCE SIZE (1..maxNumOfPrivateExtensions) OF
> PrivateExtension
> PrivateExtension ::= SEQUENCE {
> extId MAP-EXTENSION.&extensionId
> ({ExtensionSet}),
> extType MAP-EXTENSION.&ExtensionType
> ({ExtensionSet}{@extId}) OPTIONAL}
> maxNumOfPrivateExtensions INTEGER ::= 10
> ExtensionSet MAP-EXTENSION ::=
> {...
> -- ExtensionSet is the set of all defined private extensions
> }
> -- Unsupported private extensions shall be discarded if received.
> PCS-Extensions ::= SEQUENCE {
> ...}
> SLR-Arg-PCS-Extensions ::= SEQUENCE {
> ...,
> na-ESRK-Request
>
>
>
>
>
> Thanks
>
>
>
>
>
> Best Regards
>
> Varun
>
>
>
_______________________________________________
Asn1 mailing list
[email protected]
http://lists.asn1.org/mailman/listinfo/asn1

Reply via email to