NAS/C++ Encoder Decoder Library for LTE/EPC Documentation

Applies to: NAS/C++ LTE/EPC r13.10.0 v5.2.1


The OSS NAS/C++ Encoder/Decoder is an add-on to the OSS ASN.1/C++ Tools, and provides C++ access to the OSS NAS/C Encoder/Decoder. The OSS NAS/C Encoder/Decoder facilitates the creation of user applications that produce, encode, decode, and process messages conforming to 3GPP TS 24.301 (Non-Access-Stratum protocol). This version of the OSS NAS/C++ Encoder/Decoder supports 3GPP NAS version 13.10.0. Contact OSS Nokalva at if you need to support a different version of NAS.

The tool consists of

  • A series of header files containing OSS NAS/C++ Encoder/Decoder class declarations, function prototypes and type definitions.
  • Dynamic libraries capable of converting an encoded binary NAS message into an in-memory representation utilizing the OSS NAS/C++ Encoder/Decoder classes, and vice versa.

The OSS NAS/C++ Encoder/Decoder API (application program interface) is a collection of functions and classes designed to be called by your application to encode, decode, and perform auxiliary operations on messages (or protocol data units) specified in 3GPP TS 24.301 (NAS) v.13.10.0.

Features of the OSS NAS/C++ Encoder/Decoder include

  • Encoding and decoding NAS protocol data units
  • Printing encoded or unencoded NAS protocol data units in XML form
  • Copying NAS protocol data units to different destinations
  • Comparing unencoded or decoded NAS protocol data units

To use the API described in this document, you must include the provided C++ header file corresponding to the 3GPP NAS release version you plan to use: NAS13100.h. You must also link your application with the OSS NAS/C++ Encoder/Decoder and ASN.1/C++ libraries. For example, to use the shared libraries on Linux, link with the import library and the and ASN.1/C++ libraries. The resulting application requires access to the dynamic libraries while running, so locate the libraries in the current directory or add their location to the LD_LIBRARY_PATH environment variable.

For more information about how to compile and link an application that uses the OSS NAS/C++ Encoder/Decoder API and for sample programs, see the /samples and /samples-static subdirectories included in your package.

The OSS NAS/C++ Encoder/Decoder is an OSS ASN.1/C++ Tools add-on. It uses the ASN.1/C++ runtime classes, for example, to access the components of a decoded message. Therefore, the ASN.1/C++ runtime must be installed on the same computer as the OSS NAS/C++ Encoder/Decoder.

This documentation applies to the NAS/C++ Encoder Decoder Library for LTE/EPC v5.2.1 for 3GPP Release 13.10.0.

Copyright © 2020 OSS Nokalva, Inc. All rights reserved.
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means electronic, mechanical, photocopying, recording or otherwise, without the prior permission of OSS Nokalva, Inc.
Every distributed copy of the NAS/C++ Encoder Decoder Library for LTE/EPC is associated with a specific license and related unique license number. That license determines, among other things, what functions of the NAS/C++ Encoder Decoder Library for LTE/EPC are available to you.