Marben Products
  |       
Company  
Products  
News  
Customer Area  
You are here :   Products >  ASN.1 Data Processing
 
ASN.1 Data Processing
ASNSDK MCE
Technical Overview



The general architecture of the ASNSDK MCE tools is depicted in the figure below. ASNSDK MCE encompasses an ASN.1 compiler and ASN.1 unaligned PER encoding/decoding engine providing C API.


Fig.1: ASNSDK MCE Technical Overview


Using the MCE ASN.1 Compiler


More than only performing syntactic and semantic checks on the input ASN.1 description, the MCE ASN.1 compiler offers the capability to easily tune the generated C API in order to directly fit to the user application structures and so to avoid intermediate memory allocation and CPU time consumption.

The MCE ASN.1 compiler takes as input:

  • The user ASN.1 description,

  • The General Mapping Algorithm (an XSL file) used to produce a default C API,

  • And optionally a Specific Mapping file (an XML file) used to modify and adapt the default C API to the user data structure.

The General Mapping Algorithm describes how each ASN.1 basic type is translated in a C data structure. A default General Mapping Algorithm is provided with the MCE ASN.1 compiler delivery. The user can modify or replace this default algorithm to fit to his general transformation rules.
The Specific Mapping file allows the user to define a specific implementation for some ASN.1 types that need particular behavior. These specific implementations will take precedence over the rules defined in the General Mapping Algorithm. With such a mechanism, you have numerous abilities to tune very finely the C API to be generated.

The MCE ASN.1 compiler gives you the ability to develop your application in several steps. In a first step, you may want to quickly develop your application focusing on the service to provide. You can start using the default C API. In a second step, performance optimizations become your main goal. You can define specific rules to remove internal copies. These specific rules can have a very local impact on the application code you have already developed.

Together with the C API, the MCE ASN.1 compiler generates also an ASN.1 table which will contain all the information required by the ASN.1 PER runtime to encode or decode any values of the input ASN.1 description.


Developing over the generated C API

The use of the API is straightforward.
In order to encode an ASN.1 value, you just have to assign a variable of the corresponding C type generated by the MCE ASN.1 Compiler and pass it to the asnUPERencode() function.
Conversely, the asnUPERdecode() function will decode an encoded buffer into the corresponding C data structure.


Customizing the MCE ASN.1 Runtime for your target environment

The MCE ASN.1 PER runtime is highly customizable to fit to any of your system requirements.
All customization points are gathered in the same include file. They fully cover basic types, memory management and stream management definitions.


Building your application

You just have to compile the MCE PER Kernel, the generated ASN.1 tables and C API.
Then link them with your application developed over the generated C API.


System Requirements

MCE ASN.1 Compiler :
  • Is available on WIN32 (95, 98, 2000, NT) and UNIX operating System.
  • Requires a Java Runtime Environment 1.2 or higher.

MCE ASN.1 encoding/decoding run-time is delivered:
  • As portable source code.
  • With a complete set of validation tests to run on the target platform.


Standards Conformance
  • X.680 : ITU-T Recommendation X.680 (1997) | ISO/IEC 8824-1:1998,
    Information Technology - Abstract Syntax Notation One (ASN.1): Specification of Basic Notation

  • X.691 : ITU-T Recommendation X.691 (1997) | ISO/IEC 8825-2:1998,
    Information Technology - ASN.1 Encoding Rules: Specification of Packed Encoding Rules (PER)

  • 3GPP TS 25331 RRC Protocol Specification


ASNSDK MCE
"A very small memory footprint ASN.1 PER runtime"



Ask for Free Trial
© Marben Products 2007 all rights reserved Sitemap  |  Add to favorites  |  Email this link  |  Webmasters  |  Terms of Use  |  Privacy