Abstract Syntax Notation.1 (ASN.1) is a formal notation or a language used to describe data structures. With ASN.1, the data structures are described independent of programming language used and they can be encoded and decoded independent of platforms used to send, receive and process them. This makes ASN.1 a versatile method to describe data structures in telecommunications and networking.
ASN.1 is a joint standard of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T).
A simple example, describing a message with a parameter name and an integer value.
Message ::= SEQUENCE { parameter PrintableString, value INTEGER (0..65535) }
Using that ASN.1 message description, we can encode the following message:
hitchhiker Message ::= { parameter "meaningoflife", value 42 }
The message, encoded in UPER format as per the ASN.1 description becomes:
0D DB 97 0E ED 3B B3 EF CD B3 4E 6C A0 05 40
This message can be transmitted to the receiving side. The receiving side can, using the same ASN.1 Message description, easily decode that message back to the original format without ambiguity.
ASN.1 is used by protocol developers to represent data structures which are defined as a part of a standards document. The main advantage of using ASN.1 to represent data structures is that it is independent of programming language or platform as well as it is both human and machine readable.
An ASN.1 Toolset contains:
The Effnet ASN.1 5G Toolset:
The toolset is currently delivered as ASN.1 C++ encoder/decoder run-time libraries.
The Effnet ASN.1 5G Toolset will be continuously updated as the related standards evolve.
The Effnet ASN.1 5G Toolset is used in both the Effnet 5G UE Protocol Stack and the Effnet 5G gNB Protocol Stack.