Methodology

This API has been developed in the Java programming language, using Objective Systems' ASN1C compiler to generate the structures and encode/decode functions. In order to be able to generate code for 3GPP specifications not using ASN.1, we added to ASN1C the ability to parse CSN.1, along with the ability to use configuration directives and custom code to refine the encoding/decoding of messages and information elements that we approximated using ASN.1 notation. The configuration directives are made effective by using the '-3gl3' command-line option with ASN1C. Our white paper, "Using ASN.1 to Describe 3GPP Messages", describes how messages were approximated using ASN.1. (Note that this paper does not reflect our more recently capability to directly compile CSN.1 notation.)

The end result is an API that consists of Java types similar to what a user would get by compiling a standard ASN.1 specification. The other benefit of this approach is that in addition to encode/decode functions, supporting functions, such as print, can be generated from the definitions.

Note that one or more ASN.1 modules are associated with each of the above 3GPP specifications. In some of these modules, PDU ("Protocol Definition Unit") types are defined. These PDU types are used to represent an entire group of (or possibly all) messages from that module. Common fields are also factored out into the PDU type.

For each module, a separate Java package under com.objsys.nas contains the classes for that module. The Java packages are given in the following table:

Table 1. Module Packages

com.objsys.nas.TS24008IES

Information elements defined in 24.008

com.objsys.nas.TS24301IES

Information elements defined in 24.301.

com.objsys.nas.TS24301Msgs

Messages and information elements defined in 24.301. Type PDU is the toplevel type for these messages.

com.objsys.nas.TS24501IES

Information elements defined in 24.501.

com.objsys.nas.TS24501Msgs

Messages and information elements defined in 24.501. Type PDU is the toplevel type for these messages.