Hi,

Extension are used to say that future version may contain more data than
what is there at present. I.e. V3 will have the data from V1, V2 and it
additions more from V3. I believe that the definition must have been as
follows -

V1: RoutingInfoForSM-Res::= SEQUENCE {
       imsi                    IMSI,
       locationInfoWithLMSI            [0] LocationInfoWithLMSI,
       mwd-Set         [2] BOOLEAN     OPTIONAL,
       ...}

V3: RoutingInfoForSM-Res ::= SEQUENCE {
       imsi                    IMSI,
       locationInfoWithLMSI    [0] LocationInfoWithLMSI,
       mwd-Set         [2] BOOLEAN     OPTIONAL,
       ...
       extensionContainer      [4] ExtensionContainer  OPTIONAL,
}
The extension marker helps ensure backward compatibility as follows. Since
RoutingInfoForSM-Res in V3 has the fields of V1 when a V1 based encoder /
decoder intercepts a message from V3 it only interprets the fields that it
understands and skips the rest. Thus this does not break the way older
versions interpret the data from newer versions.
On 3/5/07, Marcelo Nahum (QA/EMC) <[EMAIL PROTECTED]> wrote:

 I'm quite new to ASN.1 and have a question related to extension
containers.

Are extension containers used also for backward compatibility ?

For example, regarding the different versions of the GSM MAP standard (
29.002), extension containers seem to be there where an old version of the
standard had a deprecated entry.

V1:

RoutingInfoForSM-Res::= SEQUENCE {
        imsi                    IMSI,
        locationInfoWithLMSI            [0] LocationInfoWithLMSI,
        mwd-Set         [2] BOOLEAN     OPTIONAL,
        ...}

V3:
RoutingInfoForSM-Res ::= SEQUENCE {
        imsi                    IMSI,
        locationInfoWithLMSI    [0] LocationInfoWithLMSI,
        extensionContainer      [4] ExtensionContainer  OPTIONAL,
        ...}

If I parse a V1 request using a V3 parser, will the extension container
contain the mwd-Set value ?

IMHO this ain't a valid usage of extension marker across versions of an
asn.1 spec. If you actually intended the one I mentioned above, then YES.

In my understanding, a V3 encoder / decoder receiving a V1 data will fail
saying that expected field (with tag [4]) was not there unless the field in
the extension was OPTIONAL. This is where you can use the
ExtensionAndException notation to raise exceptions when the fields past the
extension marker are not found.

Hope this throws some clarity to the problem you stated.

Cheerios
Ramaswamy

Thank you in advance,
Marcelo



_______________________________________________
Asn1 mailing list
[email protected]
http://lists.asn1.org/mailman/listinfo/asn1




--
"Chaos is the rule in nature, not an exception"

http://ramaswamy.r.googlepages.com
_______________________________________________
Asn1 mailing list
[email protected]
http://lists.asn1.org/mailman/listinfo/asn1

Reply via email to