Enhancements History

NOTE: These products are sold by technology (5G or LTE/EPC), programming language (C or C++), and major 3GPP release (13, 14, 15, or 16). Therefore, enhancements that are listed in one product section on this page may not apply to products in other sections.



OSS NAS Tools for C, C++ for 5G

5G NAS 3GPP release 16

version 8.3.5 for 5G NAS 3GPP release 16.8.0
  • In the "QoS flow descriptions" information element, when the parameter identifier indicates "averaging window", the parameter contents field is two octets in length. Previously, the parameter contents field was three octets in length.
version 8.3.4 for 5G NAS 3GPP release 16.8.0
  • The new ossNASFindUPULists() NAS/C helper API function is now available. The function extracts into an output array the lengths and positions of the encodings of the UE parameters update list(s) that are present in a binary DL NAS transport message. Also, it allows you to calculate and verify the checksum of the UE parameters update list after decoding a message or to calculate and insert the checksum into a newly encoded message.
  • The sNSSAI and eapMessage fields of the NetworkSliceSpecificAuthentificationCommand, NetworkSliceSpecificAuthentificationComplete, and aNetworkSliceSpecificAuthentificationResult types are now mandatory as specified by the standard. Previously, to encode the corresponding messages correctly the user had to mark both fields in the bitmask as present; the decoder failed on valid messages.
version 8.3.3 for 5G NAS 3GPP release 16.8.0
  • The NAS LTE and NAS 5GS libraries can now be used at the same time in an application. Previously, this was not possible due to name conflicts.
version 8.3.2 for 5G NAS 3GPP release 16.8.0
  • For some of the QoS rule operations, table 9.11.4.13.1 (Chapter 9.11.4.13) in TS 24.501 specifies the presence or absence of the QoS rule precedence and QoS flow identifier fields. For other operations, the standard does not explicitly specify whether these fields are absent or present.
    In this version of the OSS NAS/C 5G Tools, the QoS rule precedence and QoS flow identifier fields are optional. Previously, unless the standard indicated otherwise, these fields were treated as mandatory.
    NOTE: It is the responsibility of the application to make sure that when the optional segregationAndQFI field is present in a NAS message passed to ossNASEncode(), the antecedent optional qosRulePrecedence field is also present.
version 8.3.1 for 5G NAS 3GPP release 16.8.0
  • The ossNASPrintPDU() API function now prints the value of a read-only field "as is" and prefixes it with the <!--AUTO--> comment.
  • For consistency with other instances of the Mapped HPLMN Slice Differentiator, the type of the NAS5GS1680_MappedSNSSAIContentEntry structure's mappedHPLMNSD field is changed from ossOctetString to NAS5GS1680_SD, which is OSS_UINT32.
version 8.3.0 for 5G NAS 3GPP release 16.8.0
  • Support for NAS 3GPP Release 16.8.0.
  • Support for encoding/decoding of URSP (UE Route Selection Policy) information within a NAS message (3GPP TS 24.526 Release 16.8.0). URSP is a network slice feature that provides a way to manage network slice information for the UE.
version 8.2.0 for 5G NAS 3GPP release 16.7.0
  • Support for NAS 5G 3GPP release 16.7.0 has been added.

5G NAS 3GPP release 15

version 7.1.8 for 5G NAS 3GPP release 15.6.0
  • The ossNASPrintPDU() API function now prints the value of a read-only field "as is" and prefixes it with the <!--AUTO--> comment.
version 7.1.6 - 7.1.7 for 5G NAS 3GPP release 15.6.0
  • New ossNASJSON2Binary and ossNASXML2Binary API functions.
  • The "operatorSpecific" alternative in the NAS5GS1560_TprotocolOrContainerUE and NAS5GS1560_TprotocolOrContainerNW structures is renamed to "operatorSpecificContainer".
  • New JSON2Binary() and XML2Binary() methods that convert textual JSON or XML NAS messages to binary encoded form.
  • New decodeJSON() and decodeXML() methods that decode JSON or XML encoded NAS messages. The decoded messages, which can be optionally modified, can then be re-encoded to binary NAS messages using the encode() method.
  • New methods that retrieve the Extended protocol discriminator, Message type, PDU session identity, and Procedure transaction identity IEs of a binary NAS message even when the message decoding fails with an unrecoverable error. These methods are useful when preparing an error response as specified in Section 7 of 3GPP TS 24.501.
version 7.1.0 for 5G NAS 3GPP release 15.6.0
  • Support for NAS 5G 3GPP release 15.6.0 has been added.
version 7.1.0 for 5G NAS 3GPP release 15.4.0
  • Support for 5G NAS 3GPP release 15.4.0 has been added.
version 7.0.0 for 5G NAS 3GPP release 15.2.1
  • Support for 5G NAS 3GPP release 15.2.1 has been added.


OSS NAS Tools for C, C++ for LTE/EPC

NAS 3GPP Release 16

version 8.2.1 for NAS 3GPP release 16.7.0
  • The NAS LTE and NAS 5GS libraries can now be used at the same time in an application. Previously, this was not possible due to name conflicts.
version 8.2.0 for NAS 3GPP release 16.7.0
  • Support for NAS 3GPP release 16.7.0 has been added.
version 8.0.0 for NAS 3GPP release 16.3.0
  • Support for NAS 3GPP release 16.3.0 has been added.

NAS 3GPP Release 15

version 7.2.1 for NAS 3GPP release 15.8.0
  • New JSON2Binary() and XML2Binary() methods that convert textual JSON or XML NAS messages to binary encoded form.
  • New decodeJSON() and decodeXML() methods that decode JSON or XML encoded NAS messages. The decoded messages, which can be optionally modified, can then be re-encoded to binary NAS messages using the encode() method.
  • New methods that retrieve the Extended protocol discriminator, Message type, PDU session identity, and Procedure transaction identity IEs of a binary NAS message even when the message decoding fails with an unrecoverable error. These methods are useful when preparing an error response as specified in Section 7 of 3GPP TS 24.301.
version 7.2.0 for NAS 3GPP release 15.8.0
  • Support for NAS 3GPP release 15.8.0 has been added.
version 7.1.1 for NAS 3GPP release 15.5.0
  • Support for NAS 3GPP release 15.5.0 has been added.
  • An MNC value can consist of two or three digits. Previously, it was thought that a two-digit MNC value stored in a PDU was always represented by a string of size 3, where its digits were augmented with the padding space character. Now the encoder accepts MNC strings of size 2. The decoder now decodes a two-digit MNC value into a string of size 2 by default. The new OSSNAS_OLD_MNC_WITH_SPACE runtime flag restores the old decoder behavior (the decoded string is size 3 with a trailing space).
  • The new OSS NAS API function, ossNASBinary2JSON(), is added to NAS/C. This function converts a binary NAS message to a JSON document. The similar binary2JSON() method is added to NAS/C++.
  • The OSS NAS/C API ossNASBinary2XML() and ossNASPrintPDU() functions (binary2XML() and print() methods for OSS NAS/C++) now produce an XML document in accordance with ITU-T Recommendation X.693: "Information technology ASN.1 encoding rules: XML Encoding Rules (XER)". The following changes were implemented:
    • Each SEQUENCE OF SomeType element, where SomeType is a BOOLEAN type, is now represented as "true" or "false" instead of "<SomeType>true</SomeType>" or "<SomeType>false</SomeType>".
    • A SomeType ASN.1 type field, where SomeType is a NULL type, is now represented as "<SomeType/>". Previously, it could be omitted.
    • Each SEQUENCE OF SomeType element, where SomeType is a CHOICE type, is now represented as the corresponding CHOICE alternative. Previously, the alternative was additionally wrapped by <SomeType> and </SomeType> tags.
    • The new OSSNAS_OLDXML runtime flag restores the old behavior of the functions.
version 7.0.0 for NAS 3GPP release 15.4.0
  • Support for NAS 3GPP release 15.4.0 has been added.

NAS 3GPP Release 14

version 6.3.0 for NAS 3GPP release 14.9
  • Support for NAS 3GPP release 14.9 has been added.
version 6.1.0 for NAS 3GPP release 14.4
  • The decoding of certain variable-length IEs ending with one or more optional octets (UE network capability IE, Mobile station classmark 3 IE, and MS network capability IE) has been modified so any missing optional octets at the end of the IE are treated as zeros. This allows the decoding operation to proceed without error even when an IE is sent that lacks one or more fields at the end, provided that the octets that would have carried the missing fields are marked as optional in the relevant technical specification.
version 6.0.0 for NAS 3GPP release 14.4
  • Support for NAS 3GPP release 14.4 has been added.

NAS 3GPP Release 13

version 5.3.0 for NAS 3GPP release 13.12
  • Support for NAS 3GPP release 13.12 has been added.
version 5.1.0 for NAS 3GPP release 13.10
  • Support for NAS 3GPP release 13.10 has been added.
  • The decoding of certain variable-length IEs ending with one or more optional octets (UE network capability IE, Mobile station classmark 3 IE, and MS network capability IE) has been modified so any missing optional octets at the end of the IE are treated as zeros. This allows the decoding operation to proceed without error even when an IE is sent that lacks one or more fields at the end, provided that the octets that would have carried the missing fields are marked as optional in the relevant technical specification. This could occur when the sender intentionally omits one or more trailing zero octets from those IEs (e.g., in order to save space) or when the sender uses an older NAS release and the NAS release used by the recipient extends the definition of those IEs by one or more octets.

    The parts of the NAS*.h header file that correspond to the three IEs in question have been modified in a non-backward-compatible way. If you have existing code that uses the NAS API, you must make minor changes to your code to support the new structures.
version 5.0.0 for NAS 3GPP release 13.7
  • Support for NAS 3GPP release 13.7 has been added.
  • A new API has been added that returns the warning or error message number along with a detailed description of that message. Warning messages could tell the user that an NAS message that conforms to an earlier NAS release has been received.
  • New sample programs have been added:
    • "decodeESMContainer" demonstrates how to decode an "Activate Default EPSBearer ContextRequest" ESM message from an ESM message container IE of an "Attach Accept" EMM message.
    • "encryption" demonstrates how to encode and decode a Security Protected NAS message.
    • "ESMEncDecNW" demonstrates how to encode and decode ESM messages by network.