CSN.1
In telecommunications and computer networking, Concrete Syntax Notation One (CSN.1) is a standard and flexible notation that describes data structures for representing, encoding, transmitting, and decoding data, specifically GPRS used for cell phones. Many examples of CSN.1 encoded data structures can be found in 3GPP TS44.060 and an informative description of the CSN.1 syntax is found in 3GPP TS 24.007.
Here is an example of a CSN.1 description of a message. If the first bit is 1, an apple structure follows, which is a 5-bit Apple code. If the first bit is 0, on the other hand, a 3-bit orange code, and a 2-bit peel type follow.
<Example> ::= { 1 <Apple struct> | 0 <Orange struct> } 0; <Apple struct> ::= < Apple Code : bit(5) >; <Orange struct> ::= <Orange Code : bit(3) > <PeelType: bit(2)>;
Advantages
- It is relatively simple to understand.
- The notation is extremely compact - any bit can be addressed
Disadvantages
- It is very difficult to maintain when extensions and new releases of the protocols need to be implemented
- Creating a compiler for the language is very difficult, because the language can include expressions that refer to any named elements previously decoded.
- The CSN.1 structures listed in communication standards are not checked and are often filled with errors and non-standard notation.
See also
- Concrete Syntax Notation Specification
- Annex B of 3GPP TS 24.007 contains a detailed description of CSN.1.
- CSN1.INFO provides a complete online description of CSN.1 (including those parts not explained on TS 24.007), with examples and common pitfalls.