Applies to: NAS/C 5G r15.6.0 v7.1.8
What's New in NAS/C 5G r15.6.0 v7.1.8
- The ossNASPrintPDU() API function now prints the value of a
read-only field "as is" and prefixes it with the <!--AUTO--> comment. Previously, read-only
fields were always printed as 0. Note that the application does not need to
set a read-only field because the ossNASEncode() function ignores
its value and sets the corresponding value in the encoded message as required by the
3GPP NAS technical specification. Therefore the values of read-only fields
in a NAS message printed by ossNASPrintPDU() are irrelevant if
the message will be passed to ossNASEncode().
What's New in NAS/C 5G r15.6.0 v7.1.6-7.1.7
- The following new API functions are available:
int ossNASJSON2Binary(OssNASGlobal *world, int *pdunum, OssBuf *input, OssBuf *output);
int ossNASXML2Binary(OssNASGlobal *world, int *pdunum, OssBuf *input, OssBuf *output);
- The "operatorSpecific" alternative in the NAS5GS1560_TprotocolOrContainerUE and
NAS5GS1560_TprotocolOrContainerNW structures is renamed to
What's New in NAS/C 5G r15.6.0 v7.1.5
The following new API functions are available:
OSS_UINT32 ossNASGetPduSessionIdentity (OssNASGlobal *world);
ossBoolean ossNASHasPduSessionIdentity (OssNASGlobal *world);
ossBoolean ossNASHasProcedureTransactionIdentity (OssNASGlobal *world);
OSS_UINT32 ossNASGetProcedureTransactionIdentity (OssNASGlobal *world);
OSS_UINT32 ossNASGetExtendedProtocolDiscriminator (OssNASGlobal *world);
ossBoolean ossNASHasExtendedProtocolDiscriminator (OssNASGlobal *world);
OSS_UINT32 ossNASGetMessageType (OssNASGlobal *world);
ossBoolean ossNASHasMessageType (OssNASGlobal *world);
NAS applications can use these ossNASGet*() functions to retrieve the corresponding IE
values of a binary NAS message even when the message decoding fails with an
unrecoverable error, provided these values are present in the message;
otherwise, the functions will return a value of 0XFFFF. These functions are useful when preparing an error response as specified in Section 7 of 3GPP TS 24.501.
To support a mappedEPSBearerContexts IE with an IEI value of 7F from older
3GPP releases (prior to R15.3.0), one more optional IE is added to the
PDU SESSION MODIFY COMMAND/REQUEST messages:
/* $CEF IEI '75'H; IEL 4..65535 WIDTH 16 */ OPTIONAL,
/* $CEF IEI '7F'H; IEL 4..65535 WIDTH 16 */ OPTIONAL,
The NAS application must make sure that it encodes only one of the two
IEI values, depending on its conformance to the 3GPP Release. The NAS
decoder assumes that only one of the IEI values is present in the input
message. If both IEI values are present, the decoder attempts to decode
If the decoded IE has IEI 7F ('comprehension required') and it is
syntactically incorrect or occurs out of sequence, the decoder reports an
If the decoded IE has IEI 75 (no 'comprehension required') and it is
syntactically incorrect or occurs out of sequence, the decoder discards the
IE without generating an error.
Defects in mapping NAS messages to the annotated ASN.1 specification are
fixed. Some of the modifications result in changes to the ossnas.h header
file, particularly the following:
- Misspelled names are corrected:
NAS5GS1560_PDUSesionCause -> NAS5GS1560_PDUSessionCause
upuMACIAAUSF -> upuMACIAUSF
- The C-representation of 5GSTMSI IE is changed from ossOctetString to
- The third alternative in the NAS5GS1560_TprotocolOrContainerUE structure
is renamed from unknownContainer to operatorSpecific. Its representation
is changed from ossOctetString to "struct OperatorSpecific" where the
structure is introduced so that the MCCMNC IE this container always starts
with is made available.
- The C-representation of PayloadContainerContents is changed from
ossOctetString to a structure that holds the automatically decoded
container contents, taking into account the container type and the
What's New in NAS/C 5G r15.6.0 v7.1.4
The ossNASDecode() API function now always ignores a truncated optional
Information Element at the end of a message.
Previously, it could return a non-zero error code in this case.
The ossNASDecode() API function now returns the new error code 71 and the
"Too short message" error message when, according to 3GPP TS 24.301/24.501
7.2.1, the input message should be ignored because it is too short to
contain a message type Information Element.
Previously, other error codes were returned in this case.
When a mandatory Information Element is missing, the ossNASDecode() API
function now always returns code 17 (OSSNAS_AttemptToReadPastEndOfEncodedData).
Previously, in some cases it returned code 19
What's New in NAS/C 5G r15.6.0 v7.1.3
- The GFBRUplink, GFBRDownlink, MFBRUplink, MFBRDownlink, AveragingWindow,
and EPSBearerIdentityOctet IEs and IE elements are now correctly encoded
and properly handled by the decoder. Previously, they could be encoded without
the preceding length field. Also, the decoder could mishandle them.
- The T3512 value IE of Registration Accept message is now correctly
handled as GPRS timer 3. Previously, it was handled as GPRS timer 2.
- The Selected PDU session type and Selected SSC mode IEs of PDU Session
Establishment Accept message is now encoded in the correct order.
Previously, their half-octet encodings were swapped within the octet.
What's New in NAS/C 5G r15.6.0 v7.1.2
- The 5GS tracking area identity list IE is now handled correctly.
Previously, it was not possible to set the "number of elements" field of
the "Partial tracking area identity list of type 01" to a non-zero value.
What's New in NAS/C 5G r15.6.0 v7.1.1
- The new OSS NAS API function, ossNASDecodeJSON(), has been added. This function decodes a JSON-encoded NAS message into a specified variable of the corresponding NASmessage type. The optionally modified decoded message can then be re-encoded to a binary NAS message by the ossNASEncode() function.
- The new OSS NAS API function, ossNASDecodeXML(), has been added. This function decodes a JSON-encoded NAS message into a specified variable of the corresponding NASmessage type. The optionally modified decoded message can then be re-encoded to a binary NAS message by the ossNASEncode() function.
This documentation applies to the OSS NAS Tools for C for 5G v7.1.8 for 3GPP Release 15.6.0.
Copyright © 2022 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 OSS NAS Tools for C for 5G is associated with a specific license and related unique license number. That license determines, among other things, what functions of the OSS NAS Tools for C for 5G are available to you.