From 3f0bbb76dfe87f0fa2e6864877475549837a3824 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:41:57 +0200 Subject: [PATCH 01/13] cosmetic: LibNGAP_*.ttcn: Fix trailing whitespace --- .../lib/LibNGAP_EncdecDeclarations.ttcn | 14 +- ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn | 206 ++++++++--------- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 212 +++++++++--------- 3 files changed, 216 insertions(+), 216 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_EncdecDeclarations.ttcn b/ttcn/LibNGAP/lib/LibNGAP_EncdecDeclarations.ttcn index 6a044f3..173ee77 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_EncdecDeclarations.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_EncdecDeclarations.ttcn @@ -7,7 +7,7 @@ * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. -* @see ETSI TS +* @see ETSI TS */ module LibNGAP_EncdecDeclarations { @@ -16,18 +16,18 @@ module LibNGAP_EncdecDeclarations { import from NGAP_IEs language "ASN.1:2002" all; external function fx_enc_NGAP_PDU (NGAP_PDU p) return bitstring - with {extension "prototype(convert) encode(PER:ALIGNED)"} + with {extension "prototype(convert) encode(PER:ALIGNED)"} external function fx_dec_NGAP_PDU (inout bitstring pdu, out NGAP_PDU p) return integer with {extension "prototype(sliding) decode(PER:ALIGNED)"} //TODO: if no additional type in TypesAndvalues remove //external function fx_enc_ProtocolIE (ProtocolIE p) return bitstring - // with {extension "prototype(convert) encode(LibNGAP_codec)"} + // with {extension "prototype(convert) encode(LibNGAP_codec)"} //external function fx_dec_ProtocolIE (inout bitstring pdu, out ProtocolIE p) return integer // with {extension "prototype(sliding) decode(LibNGAP_codec)"} /*external function fx_enc_NGAP_IEs (NGAP_IEs p) return bitstring - with {extension "prototype(convert) encode(LibNGAP_codec)"} + with {extension "prototype(convert) encode(LibNGAP_codec)"} external function fx_dec_NGAP_IEs (inout bitstring pdu, out NGAP_IEs p) return integer with {extension "prototype(sliding) decode(LibNGAP_codec)"}*/ //external function dec_PDUSessionResourceSetupResponseTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceSetupResponseTransfer p) return integer @@ -52,7 +52,7 @@ module LibNGAP_EncdecDeclarations { //with {extension "prototype(sliding) decode(LibNGAP_codec)"} external function fx_enc_PDUSessionResourceReleaseCommandTransfer(NGAP_IEs.PDUSessionResourceReleaseCommandTransfer p) return bitstring - with {extension "prototype(convert) encode(PER:ALIGNED)"} + with {extension "prototype(convert) encode(PER:ALIGNED)"} external function fx_dec_PDUSessionResourceReleaseResponseTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceReleaseResponseTransfer p) return integer @@ -60,7 +60,7 @@ module LibNGAP_EncdecDeclarations { //with {extension "prototype(sliding) decode(LibNGAP_codec)"} external function fx_enc_PDUSessionResourceReleaseResponseTransfer(NGAP_IEs.PDUSessionResourceReleaseResponseTransfer p) return bitstring - with {extension "prototype(convert) encode(PER:ALIGNED)"} + with {extension "prototype(convert) encode(PER:ALIGNED)"} external function fx_dec_PDUSessionResourceModifyConfirmTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceModifyConfirmTransfer p) return integer @@ -78,7 +78,7 @@ module LibNGAP_EncdecDeclarations { external function fx_enc_PDUSessionResourceModifyIndicationTransfer(NGAP_IEs.PDUSessionResourceModifyIndicationTransfer p) return bitstring with {extension "prototype(convert) encode(PER:ALIGNED)"} - + external function fx_dec_PDUSessionResourceModifyIndicationUnsuccessfulTransfer(inout bitstring pdu, out NGAP_IEs.PDUSessionResourceModifyIndicationUnsuccessfulTransfer p) return integer with {extension "prototype(sliding) decode(PER:ALIGNED)"} //with {extension "prototype(sliding) decode(LibNGAP_codec)"} diff --git a/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn index 9c38442..b45fe10 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn @@ -7,7 +7,7 @@ * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. -* @see ETSI TS +* @see ETSI TS */ module LibNGAP_Pixits { @@ -32,12 +32,12 @@ module LibNGAP_Pixits { */ group LibNGAP_Pixit_Parameters { - /** + /** * @desc boolean (This is an operator option, not a protocol option), True, if IPv6 addresses are used */ modulepar boolean PX_IPv6 := false; - /** + /** * @desc enumerated (This is an operator option, not a protocol option) */ modulepar TransportProtocol PX_NGAP_TRANSPORT_PROTOCOL := SCTP_E; @@ -49,195 +49,195 @@ module LibNGAP_Pixits { */ group LibNGAP_Timers { - /** + /** * @desc float for TWait default value for waiting an operator action */ modulepar float PX_NGAP_TWAIT:= 30.0; } // End of group NGAP_Timers - /** + /** * @desc Unique identifier assigned by the AMF to the UE for NGAP signaling purposes - * @see EETSI TS 138 413 V16.12.0 (2023-05)TSI + * @see EETSI TS 138 413 V16.12.0 (2023-05)TSI */ modulepar AMF_UE_NGAP_ID PX_AMF_UE_NGAP_ID := 102; - /** + /** * @desc This IE carries an identifier assigned by the RAN to the UE for the purposes of NGAP signaling - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar RAN_UE_NGAP_ID PX_RAN_UE_NGAP_ID := 1; - /** + /** * @desc The identifier for the PDU session - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar PDUSessionID PX_PDU_SESSION_ID := 0; - /** + /** * @desc Single Network Slice Selection Assistance Information - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar SST PX_SST := '01'O; - /** + /** * @desc Single Network Slice Selection Assistance Information - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar Oct3 PX_SD := '000000'O; - /** - * @desc - * @see ETSI TS 138 413 V16.12.0 (2023-05) + /** + * @desc + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar TransportLayerAddress PX_TRANSPORT_LAYER_ADDRESS := oct2bit('0a0000a2'O); // 10.0.0.162 - /** - * @desc - * @see ETSI TS 138 413 V16.12.0 (2023-05) + /** + * @desc + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar TransportLayerAddress PX_SOURCE_TRANSPORT_LAYER_ADDRESS := oct2bit('0a0000a2'O); // 10.0.0.162 - /** - * @desc - * @see ETSI TS 138 413 V16.12.0 (2023-05) + /** + * @desc + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar TransportLayerAddress PX_MC_TRANSPORT_LAYER_ADDRESS := oct2bit('0a0000a2'O); // 10.0.0.162 - /** + /** * @desc GPRS Tunneling Protocol - Tunnel Endpoint Identifier - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar GTP_TEID PX_GTP_TEID := '4f485cc3'O; - /** + /** * @desc To identify QoS flow - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar QosFlowIdentifier PX_QOS_FLOW_IDENTIFIER := 1; - /** + /** * @desc To Indicate alternative sets of QoS parameters for the QoS flow * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.10 GBR QoS Flow Information */ modulepar AlternativeQoSParaSetIndex PX_ALTERNATIVE_QOS_PARA_SET_INDEX := 1; - /** + /** * @desc To indicate the QoS parameters set which can currently be fulfilled * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.153 Alternative QoS Parameters Set Notify Index */ modulepar AlternativeQoSParaSetNotifyIndex PX_ALTERNATIVE_QOS_PARA_SET_NOTIFY_INDEX := 0; - /** + /** * @desc The Mobile Country Code (MCC) and Mobile Network Code (MNC) * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.3.5 PLMN Identity */ modulepar PLMNIdentity PX_PLMN_IDENTITY := '00f110'O; // MCC: 1, MNC: 01 - /** + /** * @desc The leftmost bits of the E-UTRA Cell Identity IE correspond to the ng-eNB ID * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.9 E-UTRA CGI */ modulepar EUTRACellIdentity PX_EUTRA_CELL_IDENTITY := hex2bit('1234501'H); modulepar NRCellIdentity PX_NR_CELL_IDENTITY := hex2bit('123450123'H); - /** + /** * @desc - * @see ETSI TS 138 413 V16.12.0 (2023-05) + * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar octetstring PX_PDU_SESSION_RESOURCE_RELEASE_COMMAND_TRANSFER := '1000'O; - /** + /** * @desc The expected activity time in seconds * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.94 Expected UE Activity Behaviour */ modulepar ExpectedActivityPeriod PX_EXPECTED_ACTIVITY_PERIOD := 10; - /** + /** * @desc The expected idle time in seconds * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.94 Expected UE Activity Behaviour */ modulepar ExpectedIdlePeriod PX_EXPECTED_IDLE_PERIOD := 10; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_INITIAL_SETUP_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_UE_CONTEXT_RELEASE_COMMAND_CAUSE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_UE_CONTEXT_MODIFICATION_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_UE_CONTEXT_SUSPEND_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_UE_CONTEXT_RESUME_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_HANDOVER_REQUIRED := resource_optimisation_handover; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_HANDOVER_PREPARATION_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_HANDOVER_REQUEST := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_HANDOVER_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_HANDOVER_CANCEL := unspecified; - - /** + + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_CAUSE_MULTIPLE_LOCATION_REPORTING := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_NG_SETUP_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ modulepar CauseRadioNetwork PX_RAN_CONFIGURATION_UPDATE_FAILURE := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ @@ -248,7 +248,7 @@ module LibNGAP_Pixits { modulepar CauseProtocol PX_xxx_2 := unspecified; - /** + /** * @desc To indicate the reason for a particular event for the NGAP protocol * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.2 Cause */ @@ -257,97 +257,97 @@ module LibNGAP_Pixits { modulepar CauseMisc PX_xxx_4 := unspecified; - /** + /** * @desc To indicate the RRC state of the UE * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.92 RRC State */ modulepar RRCState PX_RRC_STATE := inactive; - /** + /** * @desc To identify the AMF within the global 5G network - * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause + * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause */ modulepar AMFPointer PX_AMF_POINTER:= '000001'B; - /** + /** * @desc To identify the AMF within the global 5G network - * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause + * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause */ modulepar AMFRegionID PX_AMF_REGION_ID:= '10000000'B; - /** + /** * @desc To identify the AMF within the global 5G network - * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause + * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause */ modulepar AMFSetID PX_AMF_SET_ID:= '0000000100'B; - /** - * @desc + /** + * @desc * @see ETSI TS 133 401 */ modulepar UL_NAS_MAC PX_UL_NAS_MAC := '0000000000000000'B; - /** - * @desc + /** + * @desc * @see ETSI TS 133 401 */ modulepar UL_NAS_Count PX_UL_NAS_COUNT := '00000'B; - /** - * @desc + /** + * @desc * @see ETSI TS 133 401 */ modulepar DL_NAS_MAC PX_DL_NAS_MAC := '0000000000000000'B; - /** + /** * @desc To indicate the reason for RRC Connection Establishment/Resume * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.111 RRC Establishment Cause */ modulepar RRCEstablishmentCause PX_RRC_ESTABLISHMENT_CAUSE := notAvailable; - /** + /** * @desc To indicate the reason for RRC Connection Establishment/Resume * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.111 RRC Establishment Cause */ modulepar RRCEstablishmentCause PX_RRC_RESUME_CAUSE := notAvailable; - /** + /** * @desc To indicate which kind of handover was triggered in the source side * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.22 Handover Type */ modulepar HandoverType PX_HANDOVER_TYPE := intra5gs; - /** + /** * @desc To indicates the UE Aggregate Maximum Bit Rate as specified in TS 23.501 in the downlink direction (bit/s) * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.58 UE Aggregate Maximum Bit Rate */ modulepar BitRate PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_DL := 100000000; - /** + /** * @desc To indicates the UE Aggregate Maximum Bit Rate as specified in TS 23.501 in the uplink direction (bit/s) * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.58 UE Aggregate Maximum Bit Rate */ modulepar BitRate PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_UL := 1000000; - /** + /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ modulepar NRencryptionAlgorithms PX_NR_ENCRYPTION_ALGORITHMS; - /** + /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ modulepar NRintegrityProtectionAlgorithms PX_NR_INTEGRITY_PROTECTION_ALGORITHMS; - /** + /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ modulepar EUTRAencryptionAlgorithms PX_EUTRA_ENCRYPTION_ALGORITHMS; - /** + /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ @@ -357,49 +357,49 @@ module LibNGAP_Pixits { modulepar SecurityKey PX_NEXT_HOP_NH; - /** + /** * @desc Contains the DRB ID * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.53 DRB ID */ modulepar DRB_ID PX_DRB_ID := 1; - /** + /** * @desc To indicate the Paging DRX as defined in TS 38.304 and TS 36.304 * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.90 Paging DRX */ modulepar PagingDRX PX_PAGING_DRX := v32; - /** + /** * @desc To uniquely identify the AMF * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.3.21 AMF Name */ modulepar AMFName PX_AMF_NAME := "amarisoft.amf.5gc.mnc001.mcc001.3gppnetwork.org"; - /** + /** * @desc Human readable name of the NG-RAN node * @see ETSI TS 138 413 V16.12.0 (2023-05) */ modulepar RANNodeName PX_RAN_NODE_NAME := "gnb0012345"; - /** + /** * @desc To identify the warning message * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.35 Message Identifier */ modulepar MessageIdentifier PX_MESSAGE_IDENTIFIER := '0000000000000000'B; - /** + /** * @desc To identifies a particular message from the source and type indicated by the Message Identifier and is altered every time the message with a given Message Identifier is changed * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.36 Serial Number */ modulepar SerialNumber PX_SERIAL_NUMBER := '0000000000000000'B; - /** + /** * @desc To indicate the periodicity of the warning message to be broadcast * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.49 Repetition Period */ modulepar RepetitionPeriod PX_REPETITION_PERIOD := 3; - /** + /** * @desc To indicate the number of times a message is to be broadcast * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.38 Number of Broadcasts Requested */ @@ -432,20 +432,20 @@ module LibNGAP_Pixits { modulepar FiveQI PX_FIVE_QI; modulepar bitstring PX_GNB_ID; - + /** * @desc To indicate IMEISV value with a mask, to identify a terminal model without identifying an individual Mobile Equipment. * @see 138 413 V16.12.0 (2023-05) Clause 9.3.1.54 Masked IMEISV - */ + */ modulepar bitstring PX_MaskedIMEISV; - + /** * @desc To indicate local configuration for RRM strategies such as camp priorities in Idle mode and control of inter-RAT/inter-frequency handover in Active mode * @see 138 413 V16.12.0 (2023-05) Clause 9.3.1.61 Index to RAT/Frequency Selection Priority */ modulepar integer PX_Index_to_RAT_Frequency_Selection_Priority; - /** + /** * @desc eNB Identity. * @see ETSI TS 136 413 Clause 9.2.1.37 Global eNB ID */ @@ -453,7 +453,7 @@ module LibNGAP_Pixits { // homeENB_ID := '0000000000000000000000000000'B //}; - /** + /** * @desc eNB Identity. * @see ETSI TS 136 413 Clause 9.2.1.37 Global eNB ID */ @@ -461,100 +461,100 @@ module LibNGAP_Pixits { // homeENB_ID := '1100000000000000000000000000'B // }; - /** + /** * @desc Cell Identity. */ //modulepar CellIdentity PX_CELL_ID := '0000000000000000000000000000'B; - /** + /** * @desc The TAC is used to uniquely identify a Tracking Area Code. * @see ETSI TS 136 413 Clause 9.2.3.7 TAC */ - /** + /** * @desc To uniquely identify a Tracking Area Code * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.3.10 TAC */ //modulepar TAC PX_TAC := '000000'O; modulepar TAC PX_TACode := '000000'O; - /** + /** * @desc The MME Group ID. */ //modulepar MME_Group_ID PX_MME_GROUP_ID := '0000'O; - /** + /** * @desc The MME Code to uniquely identify an MME within an MME pool area. * @see ETSI TS 136 413 Clause 9.2.3.12 MMEC */ //modulepar MME_Code PX_MME_CODE := '01'O; - /** + /** * @desc The relative processing capacity of an MME with respect to the other MMEs in the pool in order to load-balance MMEs within a pool defined in TS 23.401. * @see ETSI TS 136 413 Clause 9.2.3.17 Relative MME Capacity */ //modulepar RelativeMMECapacity PX_RELATIVE_MME_CAPACITY := 128; - /** + /** * @desc The Message Identifier IE identifies a warning message. * @see ETSI TS 136 413 Clause 9.2.1.44 Message Identifier */ //modulepar MessageIdentifier PX_MESSAGE_IDENTIFIER := oct2bit('0000'O); - /** + /** * @desc The Serial Number IE identifies a particular message from the source and type indicated by the Message Identifie. * @see ETSI TS 136 413 Clause 9.2.1.45 Serial Number */ //modulepar SerialNumber PX_SERIAL_NUMBER := oct2bit('0000'O); - /** + /** * @desc The Repetition Period IE indicates the periodicity of the warning message to be broadcast. * @see ETSI TS 136 413 Clause 9.2.1.48 Repetition Period */ //modulepar RepetitionPeriod PX_REPETITION_PERIOD := 1; - /** + /** * @desc The Number of Broadcast Requested IE indicates the number of times a message is to be broadcast. * @see ETSI TS 136 413 Clause 9.2.1.49 Number of Broadcasts Requested */ //modulepar NumberOfBroadcasts PX_NUMBER_OF_BROADCASTS_REQUESTED := 1; - /** + /** * @desc The Emergency Area ID IE is used to indicate the area which has the emergency impact. * @see ETSI TS 136 413 Clause 9.2.1.47 Emergency Area ID */ //modulepar EmergencyAreaID PX_EMERGENCY_AREA_ID := '000000'O; - /** + /** * @desc Event Type. * @see ETSI TS 136 413 Clause 9.2.1.34 Request Type */ //modulepar EventType PX_EVENT_TYPE := direct; - /** + /** * @desc Report Area. * @see ETSI TS 136 413 Clause 9.2.1.34 Request Type */ //modulepar ReportArea PX_REPORT_AREA := ecgi; - /** + /** * @desc The E-UTRAN Trace ID. * @see ETSI TS 136 413 Clause 9.2.1.4 Trace Activation */ //modulepar E_UTRAN_Trace_ID PX_EUTRAN_TRACE_ID := '0000000000000000'O; - /** + /** * @desc The interfaces to trace. * @see ETSI TS 136 413 Clause 9.2.1.4 Trace Activation */ //modulepar InterfacesToTrace PX_INTERFACES_TO_TRACE := '00000000'B; - /** + /** * @desc The trace depth. * @see ETSI TS 136 413 Clause 9.2.1.4 Trace Activation */ //modulepar TraceDepth PX_TRACE_DEPTH := medium; - /** + /** * @desc Transport Layer Address. * @see ETSI TS 136 413 Clause 9.2.2.1 Transport Layer Address */ diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 366aa23..53a9dac 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -1118,7 +1118,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1153,7 +1153,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_InitialContextSetupRequest_optional_TraceActivation - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ @@ -1181,7 +1181,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1216,7 +1216,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_InitialContextSetupRequest_optional_MobilityRestriction - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ @@ -1229,22 +1229,22 @@ module LibNGAP_Templates { in template (value) UESecurityCapabilities p_uESecurityCapabilities, in template (value) SecurityKey p_nextHopNH := PX_NEXT_HOP_NH, in template (value) UERadioCapability p_uERadioCapability, - in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, - in template (value) MaskedIMEISV p_maskedIMEISV := PX_MaskedIMEISV, - in template (value) NAS_PDU p_nasPdu, - in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, - in template (value) RRCInactiveTransitionReportRequest p_rRCInactiveTransitionReportRequest, + in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, + in template (value) MaskedIMEISV p_maskedIMEISV := PX_MaskedIMEISV, + in template (value) NAS_PDU p_nasPdu, + in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, + in template (value) RRCInactiveTransitionReportRequest p_rRCInactiveTransitionReportRequest, in template (value) RedirectionVoiceFallback p_redirectionVoiceFallback, in template (value) LocationReportingRequestType p_locationReportingRequestType, - in template (value) SRVCCOperationPossible p_sRVCCOperationPossible, - in template (value) IAB_Authorized p_iAB_Authorized, + in template (value) SRVCCOperationPossible p_sRVCCOperationPossible, + in template (value) IAB_Authorized p_iAB_Authorized, in template (value) Enhanced_CoverageRestriction p_enhanced_CoverageRestriction, - in template (value) Extended_ConnectedTime p_extended_ConnectedTime := PX_EXTENDED_CONNECTED_TIME, - in template (value) UE_DifferentiationInfo p_uE_DifferentiationInfo, - in template (value) NRUESidelinkAggregateMaximumBitrate p_nRUESidelinkAggregateMaximumBitrate, - in template (value) LTEUESidelinkAggregateMaximumBitrate p_lTEUESidelinkAggregateMaximumBitrate, - in template (value) UERadioCapabilityID p_uERadioCapabilityID - + in template (value) Extended_ConnectedTime p_extended_ConnectedTime := PX_EXTENDED_CONNECTED_TIME, + in template (value) UE_DifferentiationInfo p_uE_DifferentiationInfo, + in template (value) NRUESidelinkAggregateMaximumBitrate p_nRUESidelinkAggregateMaximumBitrate, + in template (value) LTEUESidelinkAggregateMaximumBitrate p_lTEUESidelinkAggregateMaximumBitrate, + in template (value) UERadioCapabilityID p_uERadioCapabilityID + ) := { procedureCode := id_InitialContextSetup, criticality := reject, @@ -1260,7 +1260,7 @@ module LibNGAP_Templates { id := id_RAN_UE_NGAP_ID, criticality := reject, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, + }, { id := id_GUAMI, criticality := reject, @@ -1270,7 +1270,7 @@ module LibNGAP_Templates { id := id_PDUSessionResourceSetupListCxtReq, criticality := reject, value_ := { PDUSessionResourceSetupListCxtReq := p_pDUSessionResourceSetupListCxtReq } - }, + }, { id := id_AllowedNSSAI, criticality := reject, @@ -1285,7 +1285,7 @@ module LibNGAP_Templates { id := id_SecurityKey, criticality := reject, value_ := { SecurityKey := p_nextHopNH } - }, + }, { id := id_UERadioCapability, criticality := ignore, @@ -1300,32 +1300,32 @@ module LibNGAP_Templates { id := id_MaskedIMEISV, criticality := ignore, value_ := { MaskedIMEISV := p_maskedIMEISV } - }, + }, { id := id_NAS_PDU, criticality := ignore, value_ := { NAS_PDU := p_nasPdu } - }, + }, { id := id_EmergencyFallbackIndicator, criticality := reject, value_ := { EmergencyFallbackIndicator := p_emergencyFallbackIndicator} - }, + }, { id := id_RRCInactiveTransitionReportRequest, criticality := ignore, value_ := { RRCInactiveTransitionReportRequest := p_rRCInactiveTransitionReportRequest} - }, + }, { id := id_RedirectionVoiceFallback, criticality := ignore, value_ := { RedirectionVoiceFallback := p_redirectionVoiceFallback } - } , + } , { id := id_LocationReportingRequestType, criticality := ignore, value_ := { LocationReportingRequestType := p_locationReportingRequestType } - }, + }, { id := id_SRVCCOperationPossible, criticality := ignore, @@ -1335,22 +1335,22 @@ module LibNGAP_Templates { id := id_IAB_Authorized, criticality := ignore, value_ := { IAB_Authorized := p_iAB_Authorized } - }, + }, { id := id_Enhanced_CoverageRestriction, criticality := ignore, value_ := { Enhanced_CoverageRestriction := p_enhanced_CoverageRestriction } - }, + }, { id := id_Extended_ConnectedTime, criticality := ignore, value_ := { Extended_ConnectedTime := p_extended_ConnectedTime } - }, + }, { id := id_UE_DifferentiationInfo, criticality := ignore, value_ := { UE_DifferentiationInfo := p_uE_DifferentiationInfo } - }, + }, { id := id_NRUESidelinkAggregateMaximumBitrate, criticality := ignore, @@ -1360,19 +1360,19 @@ module LibNGAP_Templates { id := id_LTEUESidelinkAggregateMaximumBitrate, criticality := ignore, value_ := { LTEUESidelinkAggregateMaximumBitrate := p_lTEUESidelinkAggregateMaximumBitrate } - }, + }, { id := id_UERadioCapabilityID, criticality := reject, value_ := { UERadioCapabilityID := p_uERadioCapabilityID } - } - - + } + + } } } } // End of template m_n2_InitialContextSetupRequest_differentOptionals - + } // End of group Send group Receive { @@ -1511,7 +1511,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_PDUInitialContextSetupResponse - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.2 INITIAL CONTEXT SETUP RESPONSE */ @@ -1915,8 +1915,8 @@ module LibNGAP_Templates { } } } // End of template m_n2_UEContextModificationRequest - - + + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.7 UE CONTEXT MODIFICATION REQUEST */ @@ -1955,7 +1955,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UEContextModificationRequest_optional1 - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.7 UE CONTEXT MODIFICATION REQUEST */ @@ -1963,14 +1963,14 @@ module LibNGAP_Templates { in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, in template (value) RANPagingPriority p_rANPagingPriority := 1, // RAN_Paging_Priority // TODO: do we need PIXIT here? - in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, + in template (value) IndexToRFSP p_indexToRFSP := PX_Index_to_RAT_Frequency_Selection_Priority, in template (value) UEAggregateMaximumBitRate p_uEAggregateMaximumBitRate, // UE_Aggregate_Maximum_Bit_Rate containing in template (value) UESecurityCapabilities p_uESecurityCapabilities, // UE_Security_Capabilities containing in template (value) EmergencyFallbackIndicator p_emergencyFallbackIndicator, // Emergency_Fallback_Indicator, in template (value) GUAMI p_gUAMI, // New_GUAMI containing in template (value) IAB_Authorized p_iAB_Authorized, // IAB_Authorized, - in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing - in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, + in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing + in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, in template (value) RGLevelWirelineAccessCharacteristics p_rGLevelWirelineAccessCharacteristics := '00'O // RG_Level_Wireline_Access_Characteristics // TODO: do we need a PIXIT here? ) := { procedureCode := id_UEContextModification, @@ -2030,18 +2030,18 @@ module LibNGAP_Templates { criticality := ignore, value_ := { IAB_Authorized := p_iAB_Authorized } }, - // in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing + // in template (value) PC5QoSParameters p_pC5QoSParameters, // PC5_QoS_Parameters containing { id := id_PC5QoSParameters, criticality := ignore, value_ := { PC5QoSParameters := p_pC5QoSParameters } - }, - // in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, + }, + // in template (value) UERadioCapabilityID p_uERadioCapabilityID := PX_U_E_RADIO_CAPABILITY_ID, // UE_Radio_Capability_ID, { id := id_UERadioCapabilityID, criticality := reject, value_ := { UERadioCapabilityID := p_uERadioCapabilityID } - }, + }, // in template (value) RGLevelWirelineAccessCharacteristics p_rGLevelWirelineAccessCharacteristics // RG_Level_Wireline_Access_Characteristics { id := id_RGLevelWirelineAccessCharacteristics, @@ -2737,7 +2737,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UEContextSuspendRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.16 UE CONTEXT SUSPEND REQUEST */ @@ -6027,7 +6027,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { RANConfigurationUpdate := { - protocolIEs := { + protocolIEs := { { id := id_SupportedTAList, criticality := reject, @@ -6073,7 +6073,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { RANConfigurationUpdate := { - protocolIEs := { + protocolIEs := { { id := id_SupportedTAList, criticality := reject, @@ -6206,10 +6206,10 @@ module LibNGAP_Templates { } // End of template m_n2_AMFConfigurationUpdate template (value) InitiatingMessage m_n2_AMFConfigurationUpdate_tnl( - //in template (value) AMFName p_AMFName, - in template (value) ServedGUAMIList p_servedGUAMIList, + //in template (value) AMFName p_AMFName, + in template (value) ServedGUAMIList p_servedGUAMIList, //in template (value) RelativeAMFCapacity p_relativeAMFCapacity, - in template (value) PLMNSupportList p_pLMNSupportList, + in template (value) PLMNSupportList p_pLMNSupportList, in template (value) AMF_TNLAssociationToAddList p_aMF_TNLAssociationToAddList, //in template (value) AMF_TNLAssociationToRemoveList p_aMF_TNLAssociationToRemoveList, in template (value) AMF_TNLAssociationToUpdateList p_aMF_TNLAssociationToUpdateList//, @@ -6229,7 +6229,7 @@ module LibNGAP_Templates { id := id_ServedGUAMIList, criticality := reject, value_ := { ServedGUAMIList := p_servedGUAMIList } - }, + }, //{ id := id_RelativeAMFCapacity, // criticality := ignore, // value_ := { RelativeAMFCapacity := p_relativeAMFCapacity} @@ -6287,14 +6287,14 @@ module LibNGAP_Templates { } } } // End of template mw_n2_AMFConfigurationUpdate - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.6.7 AMF CONFIGURATION UPDATE */ template (present) InitiatingMessage mw_n2_AMFConfigurationUpdate_options( template (present) AMFName p_aMFName := ?, - template ServedGUAMIList p_servedGUAMIList := *, - template PLMNSupportList p_pLMNSupportList := * + template ServedGUAMIList p_servedGUAMIList := *, + template PLMNSupportList p_pLMNSupportList := * ) := { procedureCode := id_AMFConfigurationUpdate, criticality := reject, @@ -6310,7 +6310,7 @@ module LibNGAP_Templates { id := id_ServedGUAMIList, criticality := reject, value_ := { ServedGUAMIList := p_servedGUAMIList } - }, + }, { id := id_PLMNSupportList, criticality := ignore, @@ -6759,7 +6759,7 @@ module LibNGAP_Templates { criticality := reject, value_ := { OverloadStart := { - protocolIEs := { + protocolIEs := { { id := id_OverloadStartNSSAIList, criticality := ignore, @@ -7434,7 +7434,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_DownlinkUEAssociatedNRPPaTransport - + } } //9.2.9.2 @@ -7521,7 +7521,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UplinkUEAssociatedNRPPaTransport - + } } //9.2.9.3 @@ -7584,7 +7584,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_DownlinkNonUEAssociatedNRPPaTransport - + } } //9.2.9.4 @@ -7647,7 +7647,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UplinkNonUEAssociatedNRPPaTransport - + } } } // End of group NRPPa_Transport_Messages @@ -8120,7 +8120,7 @@ module LibNGAP_Templates { //9.2.11.1 group LOCATION_REPORTING_CONTROL{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ @@ -8153,10 +8153,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReportingControl - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ @@ -8189,13 +8189,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReportingControl - + } } //9.2.11.2 group LOCATION_REPORTING_FAILURE_INDICATION{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.2 LOCATION REPORTING FAILURE INDICATION */ @@ -8228,10 +8228,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReportingFailureIndication - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.2 LOCATION REPORTING FAILURE INDICATION */ @@ -8264,13 +8264,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReportingFailureIndication - + } } //9.2.11.3 group LOCATION_REPORT{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8299,7 +8299,7 @@ module LibNGAP_Templates { id := id_UserLocationInformation, criticality := ignore, value_ := { UserLocationInformation := p_userLocationInformation } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8309,7 +8309,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_LocationReport - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8344,7 +8344,7 @@ module LibNGAP_Templates { id := id_UEPresenceInAreaOfInterestList, criticality := ignore, value_ := { UEPresenceInAreaOfInterestList := p_uEPresenceInAreaOfInterestList } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8357,7 +8357,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8386,7 +8386,7 @@ module LibNGAP_Templates { id := id_UserLocationInformation, criticality := ignore, value_ := { UserLocationInformation := p_userLocationInformation } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8396,7 +8396,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_LocationReport - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ @@ -8431,7 +8431,7 @@ module LibNGAP_Templates { id := id_UEPresenceInAreaOfInterestList, criticality := ignore, value_ := { UEPresenceInAreaOfInterestList := p_uEPresenceInAreaOfInterestList } - }, + }, { id := id_LocationReportingRequestType, criticality := ignore, @@ -8451,7 +8451,7 @@ module LibNGAP_Templates { //9.2.12.1 group UE_TNLA_BINDING_RELEASE_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.12.1 UE TNLA BINDING RELEASE REQUEST */ @@ -8478,10 +8478,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UETNLABindingReleaseRequest - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.12.1 UE TNLA BINDING RELEASE REQUEST */ @@ -8508,8 +8508,8 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UETNLABindingReleaseRequest - - + + } } } // End of group UE_TNLA_Binding_Messages @@ -8519,7 +8519,7 @@ module LibNGAP_Templates { //9.2.13.1 group UE_RADIO_CAPABILITY_INFO_INDICATION{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8552,7 +8552,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityInfoIndication - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8597,10 +8597,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityInfoIndication_options - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8633,7 +8633,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityInfoIndication - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.1 UE RADIO CAPABILITY INFO INDICATION */ @@ -8684,7 +8684,7 @@ module LibNGAP_Templates { //9.2.13.2 group UE_RADIO_CAPABILITY_CHECK_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8711,7 +8711,7 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityCheckRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8750,10 +8750,10 @@ module LibNGAP_Templates { } } } // End of template m_n2_UERadioCapabilityCheckRequest_options - + } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8780,7 +8780,7 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityCheckRequest - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.2 UE RADIO CAPABILITY CHECK REQUEST */ @@ -8819,13 +8819,13 @@ module LibNGAP_Templates { } } } // End of template mw_n2_UERadioCapabilityCheckRequest_options - + } } //9.2.13.3 group UE_RADIO_CAPABILITY_CHECK_RESPONSE{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -8900,7 +8900,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -8978,7 +8978,7 @@ module LibNGAP_Templates { //9.2.13.4 group UE_RADIO_CAPABILITY_ID_MAPPING_REQUEST{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9002,7 +9002,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9029,7 +9029,7 @@ module LibNGAP_Templates { //9.2.13.5 group UE_RADIO_CAPABILITY_ID_MAPPING_RESPONSE{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9092,7 +9092,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.13.3 UE RADIO CAPABILITY CHECK RESPONSE */ @@ -9162,7 +9162,7 @@ module LibNGAP_Templates { //9.2.14.1 group SECONDARY_RAT_DATA_USAGE_REPORT{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.14.1 SECONDARY RAT DATA USAGE REPORT */ @@ -9243,7 +9243,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.14.1 SECONDARY RAT DATA USAGE REPORT */ @@ -9331,7 +9331,7 @@ module LibNGAP_Templates { //9.2.15.1 group UPLINK_RIM_INFORMATION_TRANSFER{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 UPLINK RIM INFORMATION TRANSFER */ @@ -9355,7 +9355,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 UPLINK RIM INFORMATION TRANSFER */ @@ -9382,7 +9382,7 @@ module LibNGAP_Templates { //9.2.15.2 group DOWNLINK_RIM_INFORMATION_TRANSFER{ group Send { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 DownLINK RIM INFORMATION TRANSFER */ @@ -9406,7 +9406,7 @@ module LibNGAP_Templates { } group Receive { - + /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.15.1 DownLINK RIM INFORMATION TRANSFER */ -- GitLab From 66a0f8cbe77d5114ae91984c4e8731b04475fa10 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:35:19 +0200 Subject: [PATCH 02/13] LibNGAP_Pixits: fix modulepar without default value assigned to template Otherwise titan errors during startup when trying to assign unbound values to template parameters in NGAP_Templates.ttcn. --- ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn | 42 ++++++++++++++-------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn index b45fe10..48d14f5 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Pixits.ttcn @@ -333,29 +333,29 @@ module LibNGAP_Pixits { * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ - modulepar NRencryptionAlgorithms PX_NR_ENCRYPTION_ALGORITHMS; + modulepar NRencryptionAlgorithms PX_NR_ENCRYPTION_ALGORITHMS := '0000000000000000'B; /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ - modulepar NRintegrityProtectionAlgorithms PX_NR_INTEGRITY_PROTECTION_ALGORITHMS; + modulepar NRintegrityProtectionAlgorithms PX_NR_INTEGRITY_PROTECTION_ALGORITHMS := '0000000000000000'B; /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ - modulepar EUTRAencryptionAlgorithms PX_EUTRA_ENCRYPTION_ALGORITHMS; + modulepar EUTRAencryptionAlgorithms PX_EUTRA_ENCRYPTION_ALGORITHMS := '0000000000000000'B; /** * @desc Each position in the bitmap represents an encryption algorithm * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.3.1.86 UE Security Capabilities */ - modulepar EUTRAintegrityProtectionAlgorithms PX_EUTRA_INTEGRITY_PROTECTION_ALGORITHMS; + modulepar EUTRAintegrityProtectionAlgorithms PX_EUTRA_INTEGRITY_PROTECTION_ALGORITHMS := '0000000000000000'B; - modulepar NextHopChainingCount PX_NEXT_HOP_CHAINING_COUNT; + modulepar NextHopChainingCount PX_NEXT_HOP_CHAINING_COUNT := 0; - modulepar SecurityKey PX_NEXT_HOP_NH; + modulepar SecurityKey PX_NEXT_HOP_NH := '0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'B; /** * @desc Contains the DRB ID @@ -405,45 +405,45 @@ module LibNGAP_Pixits { */ modulepar NumberOfBroadcastsRequested PX_NUMBER_OF_BROADCASTS_REQUESTED := 4; - modulepar octetstring PX_SOURCE_TO_TARGET_TRANSPARENT_CONTAINER; + modulepar octetstring PX_SOURCE_TO_TARGET_TRANSPARENT_CONTAINER := ''O; modulepar EPS_TAC PX_EPS_TAC := '0000'O; - modulepar Bit20 PX_MACRO_NGENB_ID; + modulepar Bit20 PX_MACRO_NGENB_ID := '00000000000000000000'B; - modulepar Bit18 PX_SHORT_MACRO_NGENB_ID; + modulepar Bit18 PX_SHORT_MACRO_NGENB_ID := '000000000000000000'B; - modulepar Bit21 PX_LONG_MACRO_NGENB_ID; + modulepar Bit21 PX_LONG_MACRO_NGENB_ID := '000000000000000000000'B; - modulepar Bit10 PX_UE_IDENTITY_INDEX_VALUE; + modulepar Bit10 PX_UE_IDENTITY_INDEX_VALUE := '0000000000'B; - modulepar PeriodicRegistrationUpdateTimer PX_PERIODIC_REGISTRATION_UPDATE_TIMER; + modulepar PeriodicRegistrationUpdateTimer PX_PERIODIC_REGISTRATION_UPDATE_TIMER := '00000000'B; - modulepar NGRANTraceID PX_NGRAN_TRACE_ID; + modulepar NGRANTraceID PX_NGRAN_TRACE_ID := '0000000000000000'O; - modulepar InterfacesToTrace PX_INTERFACES_TO_TRACE; + modulepar InterfacesToTrace PX_INTERFACES_TO_TRACE := '00000000'B; - modulepar UERadioCapabilityID PX_U_E_RADIO_CAPABILITY_ID; + modulepar UERadioCapabilityID PX_U_E_RADIO_CAPABILITY_ID := ''O; - modulepar Extended_ConnectedTime PX_EXTENDED_CONNECTED_TIME; + modulepar Extended_ConnectedTime PX_EXTENDED_CONNECTED_TIME := 0; - modulepar BitRate PX_UE_SIDELINK_AGGREGATE_MAXIMUM_BIT_RATE; + modulepar BitRate PX_UE_SIDELINK_AGGREGATE_MAXIMUM_BIT_RATE := 0; - modulepar FiveQI PX_FIVE_QI; + modulepar FiveQI PX_FIVE_QI := 0; - modulepar bitstring PX_GNB_ID; + modulepar bitstring PX_GNB_ID := '0000000000000000000000'B; /** * @desc To indicate IMEISV value with a mask, to identify a terminal model without identifying an individual Mobile Equipment. * @see 138 413 V16.12.0 (2023-05) Clause 9.3.1.54 Masked IMEISV */ - modulepar bitstring PX_MaskedIMEISV; + modulepar bitstring PX_MaskedIMEISV := '0000000000000000000000000000000000000000000000000000000000000000'B; /** * @desc To indicate local configuration for RRM strategies such as camp priorities in Idle mode and control of inter-RAT/inter-frequency handover in Active mode * @see 138 413 V16.12.0 (2023-05) Clause 9.3.1.61 Index to RAT/Frequency Selection Priority */ - modulepar integer PX_Index_to_RAT_Frequency_Selection_Priority; + modulepar integer PX_Index_to_RAT_Frequency_Selection_Priority := 0; /** * @desc eNB Identity. -- GitLab From ba72c6748d019de7868f857ae1eb2ba7ac0e89ad Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:40:27 +0200 Subject: [PATCH 03/13] LibNGAP_Templates: Fix criticality of PLMNSupportList IE in NGSetupResponse The criticality rejected is specified in 3GPP TS 38.413 version 18.5.0 Release 18, both in the ASN.1 definition of "NGSetupResponseIEs NGAP-PROTOCOL-IES", as well as section 9.2.6.2. open5gs-amfd is correctly sending reject there. --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 53a9dac..1074bec 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -5797,7 +5797,7 @@ module LibNGAP_Templates { }, { id := id_PLMNSupportList, - criticality := ignore, + criticality := reject, value_ := { PLMNSupportList := p_plmnSuppList } } } @@ -5839,8 +5839,8 @@ module LibNGAP_Templates { value_ := { RelativeAMFCapacity := p_relativeAmfCap } }, { - id := id_PLMNSupportList, - criticality := ignore, + id := id_PLMNSupportList, + criticality := reject, value_ := { PLMNSupportList := p_plmnSuppList } } } @@ -5877,7 +5877,7 @@ module LibNGAP_Templates { }, { id := id_PLMNSupportList, - criticality := ignore, + criticality := reject, value_ := { PLMNSupportList := p_plmnSuppList } }, { @@ -5919,7 +5919,7 @@ module LibNGAP_Templates { }, { id := id_PLMNSupportList, - criticality := ignore, + criticality := reject, value_ := { PLMNSupportList := p_plmnSuppList } }, { -- GitLab From a3856eb4169e353d3721d83633c1b767283eec8e Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:47:09 +0200 Subject: [PATCH 04/13] LibNGAP_Templates: Fix wrong id set on PWSFailureIndication templates --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 1074bec..1cd0138 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -7291,7 +7291,7 @@ module LibNGAP_Templates { in template (value) PWSFailedCellIDList p_pWSFailedCellIDList, in template (value) GlobalRANNodeID p_globalRANNodeID ) := { - procedureCode := id_PWSRestartIndication, + procedureCode := id_PWSFailureIndication, criticality := ignore, value_ := { PWSFailureIndication := { @@ -7322,7 +7322,7 @@ module LibNGAP_Templates { template (present) PWSFailedCellIDList p_pWSFailedCellIDList := ?, template (present) GlobalRANNodeID p_globalRANNodeID := ? ) := { - procedureCode := id_PWSRestartIndication, + procedureCode := id_PWSFailureIndication, criticality := ignore, value_ := { PWSFailureIndication := { -- GitLab From c9cdc4e5e39438742f69c83323db7dda353a079c Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:55:12 +0200 Subject: [PATCH 05/13] LibNGAP_Templates: Fix criticality of several NGAP messages As defined in ASN.1 in 3GPP TS 38.413 section 9.4.3. --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 74 ++++++++++++------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 1cd0138..e7d28f1 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -688,7 +688,7 @@ module LibNGAP_Templates { ) := { procedureCode := id_PDUSessionResourceNotify, - criticality := reject, + criticality := ignore, value_ := { PDUSessionResourceNotify := { protocolIEs := { @@ -726,7 +726,7 @@ module LibNGAP_Templates { ) := { procedureCode := id_PDUSessionResourceNotify, - criticality := reject, + criticality := ignore, value_ := { PDUSessionResourceNotify := { protocolIEs := { @@ -1676,7 +1676,7 @@ module LibNGAP_Templates { in template (value) PDUSessionResourceListCxtRelReq p_pDUSessionResourceListCxtRelReq ) := { procedureCode := id_UEContextReleaseRequest, - criticality := reject, + criticality := ignore, value_ := { UEContextReleaseRequest := { protocolIEs := { @@ -1713,7 +1713,7 @@ module LibNGAP_Templates { template (present) Cause p_cause := ? ) := { procedureCode := id_UEContextReleaseRequest, - criticality := reject, + criticality := ignore, value_ := { UEContextReleaseRequest := { protocolIEs := { @@ -2246,7 +2246,7 @@ module LibNGAP_Templates { in template (value) UserLocationInformation p_userLocationInformation ) := { procedureCode := id_RRCInactiveTransitionReport, - criticality := reject, + criticality := ignore, value_ := { RRCInactiveTransitionReport := { protocolIEs := { @@ -2289,7 +2289,7 @@ module LibNGAP_Templates { template (present) UserLocationInformation p_userLocationInformation := ? ) := { procedureCode := id_RRCInactiveTransitionReport, - criticality := reject, + criticality := ignore, value_ := { RRCInactiveTransitionReport := { protocolIEs := { @@ -4146,7 +4146,7 @@ module LibNGAP_Templates { in template (value) UserLocationInformation p_userLocationInformation ) := { procedureCode := id_HandoverNotification, - criticality := reject, + criticality := ignore, value_ := { HandoverNotify := { protocolIEs := { @@ -4183,7 +4183,7 @@ module LibNGAP_Templates { template (present) UserLocationInformation p_userLocationInformation := ? ) := { procedureCode := id_HandoverNotification, - criticality := reject, + criticality := ignore, value_ := { HandoverNotify := { protocolIEs := { @@ -4641,7 +4641,7 @@ module LibNGAP_Templates { in template (value) RANStatusTransfer_TransparentContainer p_rANStatusTransfer_TransparentContainer ) := { procedureCode := id_UplinkRANStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { UplinkRANStatusTransfer := { protocolIEs := { @@ -4675,7 +4675,7 @@ module LibNGAP_Templates { template (present) RANStatusTransfer_TransparentContainer p_rANStatusTransfer_TransparentContainer := ? ) := { procedureCode := id_UplinkRANStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { UplinkRANStatusTransfer := { protocolIEs := { @@ -4716,7 +4716,7 @@ module LibNGAP_Templates { in template (value) RANStatusTransfer_TransparentContainer p_rANStatusTransfer_TransparentContainer ) := { procedureCode := id_DownlinkRANStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANStatusTransfer := { protocolIEs := { @@ -4753,7 +4753,7 @@ module LibNGAP_Templates { template (present) RANStatusTransfer_TransparentContainer p_rANStatusTransfer_TransparentContainer := ? ) := { procedureCode := id_DownlinkRANStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANStatusTransfer := { protocolIEs := { @@ -4793,7 +4793,7 @@ module LibNGAP_Templates { in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID ) := { procedureCode := id_HandoverSuccess, - criticality := reject, + criticality := ignore, value_ := { HandoverSuccess := { protocolIEs := { @@ -4824,7 +4824,7 @@ module LibNGAP_Templates { template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ? ) := { procedureCode := id_HandoverSuccess, - criticality := reject, + criticality := ignore, value_ := { HandoverSuccess := { protocolIEs := { @@ -4938,7 +4938,7 @@ module LibNGAP_Templates { in template (value) EarlyStatusTransfer_TransparentContainer p_earlyStatusTransfer_TransparentContainer ) := { procedureCode := id_DownlinkRANEarlyStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANEarlyStatusTransfer := { protocolIEs := { @@ -4975,7 +4975,7 @@ module LibNGAP_Templates { template (present) EarlyStatusTransfer_TransparentContainer p_earlyStatusTransfer_TransparentContainer := ? ) := { procedureCode := id_DownlinkRANEarlyStatusTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANEarlyStatusTransfer := { protocolIEs := { @@ -5022,7 +5022,7 @@ module LibNGAP_Templates { in template (value) TAIListForPaging p_tAIListForPaging ) := { procedureCode := id_Paging, - criticality := reject, + criticality := ignore, value_ := { Paging := { protocolIEs := { @@ -5053,7 +5053,7 @@ module LibNGAP_Templates { template (present) TAIListForPaging p_tAIListForPaging := ? ) := { procedureCode := id_Paging, - criticality := reject, + criticality := ignore, value_ := { Paging := { protocolIEs := { @@ -5097,7 +5097,7 @@ module LibNGAP_Templates { in template (value) RRCEstablishmentCause p_rrcEstCause := PX_RRC_ESTABLISHMENT_CAUSE ) := { procedureCode := id_InitialUEMessage, - criticality := reject, + criticality := ignore, value_ := { InitialUEMessage := { protocolIEs := { @@ -5218,7 +5218,7 @@ module LibNGAP_Templates { template (present) RRCEstablishmentCause p_rrcEstCause := ? ) := { procedureCode := id_InitialUEMessage, - criticality := reject, + criticality := ignore, value_ := { InitialUEMessage := { protocolIEs := { @@ -5264,7 +5264,7 @@ module LibNGAP_Templates { in template (value) NAS_PDU p_nasPdu ) := { procedureCode := id_DownlinkNASTransport, - criticality := reject, + criticality := ignore, value_ := { DownlinkNASTransport := { protocolIEs := { @@ -5301,7 +5301,7 @@ module LibNGAP_Templates { template (present) NAS_PDU p_nasPdu := ? ) := { procedureCode := id_DownlinkNASTransport, - criticality := reject, + criticality := ignore, value_ := { DownlinkNASTransport := { protocolIEs := { @@ -5343,7 +5343,7 @@ module LibNGAP_Templates { in template (value) UserLocationInformation p_userLocationInformation ) := { procedureCode := id_UplinkNASTransport, - criticality := reject, + criticality := ignore, value_ := { UplinkNASTransport := { protocolIEs := { @@ -5386,7 +5386,7 @@ module LibNGAP_Templates { template (present) UserLocationInformation p_userLocationInformation := ? ) := { procedureCode := id_UplinkNASTransport, - criticality := reject, + criticality := ignore, value_ := { UplinkNASTransport := { protocolIEs := { @@ -5433,7 +5433,7 @@ module LibNGAP_Templates { in template (value) Cause p_cause := m_cause_nas(PX_CAUSE_NAS_NON_DELIVERY_INDICATION) ) := { procedureCode := id_NASNonDeliveryIndication, - criticality := reject, + criticality := ignore, value_ := { NASNonDeliveryIndication := { protocolIEs := { @@ -5476,7 +5476,7 @@ module LibNGAP_Templates { template (present) Cause p_cause := ? ) := { procedureCode := id_NASNonDeliveryIndication, - criticality := reject, + criticality := ignore, value_ := { NASNonDeliveryIndication := { protocolIEs := { @@ -6464,7 +6464,7 @@ module LibNGAP_Templates { in template (value) UnavailableGUAMIList p_unavailableGUAMIList ) := { procedureCode := id_AMFStatusIndication, - criticality := reject, + criticality := ignore, value_ := { AMFStatusIndication := { protocolIEs := { @@ -6489,7 +6489,7 @@ module LibNGAP_Templates { template (present) UnavailableGUAMIList p_unavailableGUAMIList := ? ) := { procedureCode := id_AMFStatusIndication, - criticality := reject, + criticality := ignore, value_ := { AMFStatusIndication := { protocolIEs := { @@ -6620,7 +6620,7 @@ module LibNGAP_Templates { */ template (value) InitiatingMessage m_n2_ErrorIndication := { procedureCode := id_ErrorIndication, - criticality := reject, + criticality := ignore, value_ := { ErrorIndication := { protocolIEs := { } @@ -6637,7 +6637,7 @@ module LibNGAP_Templates { in template (value) Cause p_cause ) := { procedureCode := id_ErrorIndication, - criticality := reject, + criticality := ignore, value_ := { ErrorIndication := { protocolIEs := { @@ -6724,7 +6724,7 @@ module LibNGAP_Templates { */ template (value) InitiatingMessage m_n2_OverloadStart := { procedureCode := id_OverloadStart, - criticality := reject, + criticality := ignore, value_ := { OverloadStart := { protocolIEs := { } @@ -6741,7 +6741,7 @@ module LibNGAP_Templates { */ template (present) InitiatingMessage mw_n2_OverloadStart := { procedureCode := id_OverloadStart, - criticality := reject, + criticality := ignore, value_ := { OverloadStart := { protocolIEs := { } @@ -6756,7 +6756,7 @@ module LibNGAP_Templates { template (present) OverloadStartNSSAIList p_overloadStartNSSAIList:= ? ):= { procedureCode := id_OverloadStart, - criticality := reject, + criticality := ignore, value_ := { OverloadStart := { protocolIEs := { @@ -6828,7 +6828,7 @@ module LibNGAP_Templates { */ template (value) InitiatingMessage m_n2_UplinkRANConfigurationTransfer := { procedureCode := id_UplinkRANConfigurationTransfer, - criticality := reject, + criticality := ignore, value_ := { UplinkRANConfigurationTransfer := { protocolIEs := { } @@ -6845,7 +6845,7 @@ module LibNGAP_Templates { */ template (present) InitiatingMessage mw_n2_UplinkRANConfigurationTransfer := { procedureCode := id_UplinkRANConfigurationTransfer, - criticality := reject, + criticality := ignore, value_ := { UplinkRANConfigurationTransfer := { protocolIEs := { } @@ -6866,7 +6866,7 @@ module LibNGAP_Templates { */ template (value) InitiatingMessage m_n2_DownlinkRANConfigurationTransfer := { procedureCode := id_DownlinkRANConfigurationTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANConfigurationTransfer := { protocolIEs := { } @@ -6883,7 +6883,7 @@ module LibNGAP_Templates { */ template (present) InitiatingMessage mw_n2_DownlinkRANConfigurationTransfer := { procedureCode := id_DownlinkRANConfigurationTransfer, - criticality := reject, + criticality := ignore, value_ := { DownlinkRANConfigurationTransfer := { protocolIEs := { } -- GitLab From b01d28b37a5cc13ac19e52b6bb7e6adee2a0876d Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 14:57:40 +0200 Subject: [PATCH 06/13] LibNGAP_Templates: Fix wrong IEs passed to InitialContextSetupResponse --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 26 ++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index e7d28f1..cdf8f56 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -1448,12 +1448,12 @@ module LibNGAP_Templates { template (value) SuccessfulOutcome m_n2_InitialContextSetupResponse( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, - in template (value) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes + in template (value) PDUSessionResourceSetupListCxtRes p_pDUSessionResourceSetupListCxtRes ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + InitialContextSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, @@ -1466,9 +1466,9 @@ module LibNGAP_Templates { value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { - id := id_PDUSessionResourceSetupListSURes, + id := id_PDUSessionResourceSetupListCxtRes, criticality := ignore, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } + value_ := { PDUSessionResourceSetupListCxtRes := p_pDUSessionResourceSetupListCxtRes } } } } @@ -1485,12 +1485,12 @@ module LibNGAP_Templates { template (present) SuccessfulOutcome mw_n2_InitialContextSetupResponse( template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, - template (present) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes := ? + template (present) PDUSessionResourceSetupListCxtRes p_pDUSessionResourceSetupListCxtRes := ? ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + InitialContextSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, @@ -1503,9 +1503,9 @@ module LibNGAP_Templates { value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { - id := id_PDUSessionResourceSetupListSURes, + id := id_PDUSessionResourceSetupListCxtRes, criticality := ignore, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } + value_ := { PDUSessionResourceSetupListCxtRes := p_pDUSessionResourceSetupListCxtRes } } } } @@ -1518,12 +1518,12 @@ module LibNGAP_Templates { template (present) SuccessfulOutcome mw_n2_InitialContextSetupResponse_Failed( template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, - template (present) PDUSessionResourceFailedToSetupListSURes p_pDUSessionResourceFailedToSetupListURes := ? + template (present) PDUSessionResourceFailedToSetupListCxtRes p_pDUSessionResourceFailedToSetupListCxtRes := ? ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + InitialContextSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, @@ -1536,9 +1536,9 @@ module LibNGAP_Templates { value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { - id := id_PDUSessionResourceFailedToSetupListSURes, + id := id_PDUSessionResourceFailedToSetupListCxtRes, criticality := ignore, - value_ := { PDUSessionResourceFailedToSetupListSURes := p_pDUSessionResourceFailedToSetupListURes } + value_ := { PDUSessionResourceFailedToSetupListCxtRes := p_pDUSessionResourceFailedToSetupListCxtRes } } } } @@ -1552,7 +1552,7 @@ module LibNGAP_Templates { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + InitialContextSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, -- GitLab From 523479b9787783f14564e1a28085c3dc348eb4c4 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:13:49 +0200 Subject: [PATCH 07/13] LibNGAP_Templates: Fix wrong procedureCode in PDUSessionResourceReleaseCommand templates --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index cdf8f56..c0a1541 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -302,7 +302,7 @@ module LibNGAP_Templates { in template (value) PDUSessionResourceToReleaseListRelCmd p_pDUSessionResourceToReleaseListRelCmd ) := { - procedureCode := id_PDUSessionResourceToReleaseListRelCmd, + procedureCode := id_PDUSessionResourceRelease, criticality := reject, value_ := { PDUSessionResourceReleaseCommand := { @@ -339,7 +339,7 @@ module LibNGAP_Templates { template (present) PDUSessionResourceToReleaseListRelCmd p_pDUSessionResourceToReleaseListRelCmd := ? ) := { - procedureCode := id_PDUSessionResourceToReleaseListRelCmd, + procedureCode := id_PDUSessionResourceRelease, criticality := reject, value_ := { PDUSessionResourceReleaseCommand := { -- GitLab From d70fb7869d0de158750344adfe259e2de59746c3 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:17:15 +0200 Subject: [PATCH 08/13] LibNGAP_Templates: Support passing optional NAS-PDU to PDUSessionResourceReleaseCommand --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 90 +++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index c0a1541..c0406c9 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -327,6 +327,51 @@ module LibNGAP_Templates { } } // End of template m_n2_PDUSessionResourceReleaseCommand + function f_ts_n2_PDUSessionResourceReleaseCommand(template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + template (omit) NAS_PDU p_nAS_PDU, + template (value) PDUSessionResourceToReleaseListRelCmd p_pDUSessionResourceToReleaseListRelCmd) + return template (value) InitiatingMessage { + var template (value) InitiatingMessage pdu := { + procedureCode := id_PDUSessionResourceRelease, + criticality := reject, + value_ := { + PDUSessionResourceReleaseCommand := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := reject, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := reject, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } + } + } + } + } + }; + var integer idx := lengthof(pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs); + + if (isvalue(p_nAS_PDU)) { + pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs[idx] := + { + id := id_NAS_PDU, + criticality := ignore, + value_ := { nAS_PDU := p_nAS_PDU } + }; + idx := idx + 1; + } + + pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs[idx] := + { id := id_PDUSessionResourceToReleaseListRelCmd, + criticality := reject, + value_ := { PDUSessionResourceToReleaseListRelCmd := p_pDUSessionResourceToReleaseListRelCmd } + }; + return pdu; + } + } // End of group Send group Receive { @@ -364,6 +409,51 @@ module LibNGAP_Templates { } } // End of template mw_n2_PDUSessionResourceReleaseCommand + function f_tr_n2_PDUSessionResourceReleaseCommand(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, + template NAS_PDU p_nAS_PDU := omit, + template (present) PDUSessionResourceToReleaseListRelCmd p_pDUSessionResourceToReleaseListRelCmd := ?) + return template (present) InitiatingMessage { + var template (present) InitiatingMessage pdu := { + procedureCode := id_PDUSessionResourceRelease, + criticality := reject, + value_ := { + PDUSessionResourceReleaseCommand := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := reject, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := reject, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } + } + } + } + } + }; + var integer idx := lengthof(pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs); + + if (not istemplatekind(p_nAS_PDU, "omit")) { + pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs[idx] := + { + id := id_NAS_PDU, + criticality := ignore, + value_ := { nAS_PDU := p_nAS_PDU } + }; + idx := idx + 1; + } + + pdu.value_.PDUSessionResourceReleaseCommand.protocolIEs[idx] := + { id := id_PDUSessionResourceToReleaseListRelCmd, + criticality := reject, + value_ := { PDUSessionResourceToReleaseListRelCmd := p_pDUSessionResourceToReleaseListRelCmd } + }; + return pdu; + } + } // End of group Receive } // End of group PDU_SESSION_RESOURCE_RELEASE_COMMAND -- GitLab From c16c0a7fb27e03a861a2d65083ebdb0b13820282 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:24:33 +0200 Subject: [PATCH 09/13] LibNGAP_Templates: Fixes and improvements for UEContextReleaseComplete The existing templates for UEContextReleaseComplete were completelly wrong, probably due to copy-paste when introducing them. This commit fixes all those problems and allows passing optional parameters. * procedureCode was wrong * Criticality of several fields was wrong * Type of resource list was wrong, and marked as mandatory while it was optional. --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 160 +++++++++++++++++++----- 1 file changed, 132 insertions(+), 28 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index c0406c9..2470571 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -1904,36 +1904,88 @@ module LibNGAP_Templates { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.6 UE CONTEXT RELEASE COMPLETE */ - template (value) SuccessfulOutcome m_n2_UEContextReleaseComplete( - in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, - in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, - in template (value) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes - ) := { - procedureCode := id_InitialContextSetup, + template (value) SuccessfulOutcome m_n2_UEContextReleaseComplete(template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID) + := { + procedureCode := id_UEContextRelease, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + UEContextReleaseComplete := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, - criticality := reject, + criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, - criticality := reject, + criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, - { - id := id_PDUSessionResourceSetupListSURes, - criticality := reject, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } } } } } } // End of template m_n2_UEContextReleaseComplete + function f_ts_n2_UEContextReleaseComplete(template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + template (omit) UserLocationInformation p_userLocationInformation := omit, + template (omit) InfoOnRecommendedCellsAndRANNodesForPaging p_infoOnRecommendedCellsAndRANNodesForPaging := omit, + template (omit) PDUSessionResourceListCxtRelCpl p_pDUSessionResourceListCxtRelCpl := omit, + template (omit) CriticalityDiagnostics p_criticalityDiagnostics := omit, + template (omit) PagingAssisDataforCEcapabUE p_pagingAssisDataforCEcapabUE := omit) + return template (value) SuccessfulOutcome { + + var template (value) SuccessfulOutcome pdu := m_n2_UEContextReleaseComplete(p_amfUeNgapID, p_ranUeNgapID); + var integer idx := lengthof(pdu.value_.UEContextReleaseComplete.protocolIEs); + + if (isvalue(p_userLocationInformation)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_UserLocationInformation, + criticality := ignore, + value_ := { UserLocationInformation := p_userLocationInformation } + }; + idx := idx + 1; + } + + if (isvalue(p_infoOnRecommendedCellsAndRANNodesForPaging)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_InfoOnRecommendedCellsAndRANNodesForPaging, + criticality := reject, + value_ := { InfoOnRecommendedCellsAndRANNodesForPaging := p_infoOnRecommendedCellsAndRANNodesForPaging } + }; + idx := idx + 1; + } + + if (isvalue(p_pDUSessionResourceListCxtRelCpl)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PDUSessionResourceListCxtRelCpl, + criticality := reject, + value_ := { PDUSessionResourceListCxtRelCpl := p_pDUSessionResourceListCxtRelCpl } + }; + idx := idx + 1; + } + + if (isvalue(p_criticalityDiagnostics)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_CriticalityDiagnostics, + criticality := ignore, + value_ := { CriticalityDiagnostics := p_criticalityDiagnostics } + }; + idx := idx + 1; + } + + if (isvalue(p_pagingAssisDataforCEcapabUE)) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PagingAssisDataforCEcapabUE, + criticality := ignore, + value_ := { PagingAssisDataforCEcapabUE := p_pagingAssisDataforCEcapabUE } + } + idx := idx + 1; + } + return pdu; + } + } // End of group Send group Receive { @@ -1941,36 +1993,88 @@ module LibNGAP_Templates { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.6 UE CONTEXT RELEASE COMPLETE */ - template (present) SuccessfulOutcome mw_n2_UEContextReleaseComplete( - template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, - template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, - template (present) PDUSessionResourceSetupListSURes p_pDUSessionResourceSetupListSURes := ? - ) := { - procedureCode := id_InitialContextSetup, + template (present) SuccessfulOutcome mw_n2_UEContextReleaseComplete(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?) + := { + procedureCode := id_UEContextRelease, criticality := reject, value_ := { - PDUSessionResourceSetupResponse := { + UEContextReleaseComplete := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, - criticality := reject, + criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, - criticality := reject, + criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } - }, - { - id := id_PDUSessionResourceSetupListSURes, - criticality := reject, - value_ := { PDUSessionResourceSetupListSURes := p_pDUSessionResourceSetupListSURes } } } } } } // End of template mw_n2_UEContextReleaseComplete + function f_tr_n2_UEContextReleaseComplete(template (present) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + template (present) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + template UserLocationInformation p_userLocationInformation := omit, + template InfoOnRecommendedCellsAndRANNodesForPaging p_infoOnRecommendedCellsAndRANNodesForPaging := omit, + template PDUSessionResourceListCxtRelCpl p_pDUSessionResourceListCxtRelCpl := omit, + template CriticalityDiagnostics p_criticalityDiagnostics := omit, + template PagingAssisDataforCEcapabUE p_pagingAssisDataforCEcapabUE := omit) + return template (present) SuccessfulOutcome { + + var template (present) SuccessfulOutcome pdu := m_n2_UEContextReleaseComplete(p_amfUeNgapID, p_ranUeNgapID); + var integer idx := lengthof(pdu.value_.UEContextReleaseComplete.protocolIEs); + + if (not istemplatekind(p_userLocationInformation, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_UserLocationInformation, + criticality := ignore, + value_ := { UserLocationInformation := p_userLocationInformation } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_infoOnRecommendedCellsAndRANNodesForPaging, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_InfoOnRecommendedCellsAndRANNodesForPaging, + criticality := reject, + value_ := { InfoOnRecommendedCellsAndRANNodesForPaging := p_infoOnRecommendedCellsAndRANNodesForPaging } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_pDUSessionResourceListCxtRelCpl, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PDUSessionResourceListCxtRelCpl, + criticality := reject, + value_ := { PDUSessionResourceListCxtRelCpl := p_pDUSessionResourceListCxtRelCpl } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_criticalityDiagnostics, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_CriticalityDiagnostics, + criticality := ignore, + value_ := { CriticalityDiagnostics := p_criticalityDiagnostics } + }; + idx := idx + 1; + } + + if (not istemplatekind(p_pagingAssisDataforCEcapabUE, "omit")) { + pdu.value_.UEContextReleaseComplete.protocolIEs[idx] := { + id := id_PagingAssisDataforCEcapabUE, + criticality := ignore, + value_ := { PagingAssisDataforCEcapabUE := p_pagingAssisDataforCEcapabUE } + } + idx := idx + 1; + } + return pdu; + } + } // End of group Receive } // End of group UE_CONTEXT_RELEASE_COMPLETE -- GitLab From e4db7a9d40bccb2b26927aa32321f4b6b87fc370 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:28:55 +0200 Subject: [PATCH 10/13] LibNGAP_Templates: Add missing mandatory IE Cause to m_n2_UEContextReleaseRequest --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 2470571..7937414 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -1763,7 +1763,8 @@ module LibNGAP_Templates { template (value) InitiatingMessage m_n2_UEContextReleaseRequest( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, - in template (value) PDUSessionResourceListCxtRelReq p_pDUSessionResourceListCxtRelReq + in template (value) PDUSessionResourceListCxtRelReq p_pDUSessionResourceListCxtRelReq, + in template (value) Cause p_cause ) := { procedureCode := id_UEContextReleaseRequest, criticality := ignore, @@ -1784,6 +1785,11 @@ module LibNGAP_Templates { id := id_PDUSessionResourceListCxtRelReq, criticality := reject, value_ := { PDUSessionResourceListCxtRelReq := p_pDUSessionResourceListCxtRelReq } + }, + { + id := id_Cause, + criticality := ignore, + value_ := { Cause := p_cause } } } } -- GitLab From c4c597f83d0d3a26b6a6b6d3304d93d51877adb4 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:32:02 +0200 Subject: [PATCH 11/13] LibNGAP_Templates: Add template for UEContextReleaseReq without PDU Session List That's the only optional IE in the message. Add a separate template to be able to transmit with that IE set, similar to what's already done in m_n2_InitialContextSetupRequest_withPDUSessionList(). --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 7937414..17eb74f 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -1761,6 +1761,36 @@ module LibNGAP_Templates { * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.4 UE CONTEXT RELEASE REQUEST */ template (value) InitiatingMessage m_n2_UEContextReleaseRequest( + in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, + in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, + in template (value) Cause p_cause + ) := { + procedureCode := id_UEContextReleaseRequest, + criticality := ignore, + value_ := { + UEContextReleaseRequest := { + protocolIEs := { + { + id := id_AMF_UE_NGAP_ID, + criticality := reject, + value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } + }, + { + id := id_RAN_UE_NGAP_ID, + criticality := reject, + value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } + }, + { + id := id_Cause, + criticality := ignore, + value_ := { Cause := p_cause } + } + } + } + } + } // End of template m_n2_UEContextReleaseRequest + + template (value) InitiatingMessage m_n2_UEContextReleaseRequest_withPDUSessionList( in template (value) AMF_UE_NGAP_ID p_amfUeNgapID := PX_AMF_UE_NGAP_ID, in template (value) RAN_UE_NGAP_ID p_ranUeNgapID := PX_RAN_UE_NGAP_ID, in template (value) PDUSessionResourceListCxtRelReq p_pDUSessionResourceListCxtRelReq, @@ -1794,7 +1824,7 @@ module LibNGAP_Templates { } } } - } // End of template m_n2_UEContextReleaseRequest + } // End of template m_n2_UEContextReleaseRequest_withPDUSessionList } // End of group Send -- GitLab From 0d480268d0613488d752a6bb39c38bf6c363e2cb Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 16:35:22 +0200 Subject: [PATCH 12/13] LibNGAP_Templates: Fix wrong IE Id in m_n2_PDUSessionResourceModifyResponse() --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index 17eb74f..bfbe512 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -647,7 +647,7 @@ module LibNGAP_Templates { value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { - id := id_PDUSessionResourceModifyListModReq, + id := id_PDUSessionResourceModifyListModRes, criticality := reject, value_ := { PDUSessionResourceModifyListModRes := p_pDUSessionResourceModifyListModRes } -- GitLab From 4cf000f00a0301b9c5f1ae30c1ba72cb05e9f921 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Mon, 25 Aug 2025 19:52:28 +0200 Subject: [PATCH 13/13] LibNGAP_Templates: Introduce generic NGSetupFailure template f_mw_n2_NGSetupFailure() Use one template containing all possible optional IEs instead of having different templates containing optional subsets. --- ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn | 34 ++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn index bfbe512..7f58d59 100644 --- a/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +++ b/ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn @@ -6206,18 +6206,46 @@ module LibNGAP_Templates { value_ := { NGSetupFailure := { protocolIEs := { - *, { id := id_Cause, criticality := ignore, value_ := { Cause := p_cause } - }, - * + } } } } } // End of template mw_n2_NGSetupFailure + function f_mw_n2_NGSetupFailure(template (present) Cause p_cause := ?, + template TimeToWait p_timeToWait := omit, + template CriticalityDiagnostics p_criticalityDiagnostics := omit) + return template (present) UnsuccessfulOutcome { + + var template (present) UnsuccessfulOutcome pdu := mw_n2_NGSetupFailure(p_cause); + var integer idx := lengthof(pdu.value_.NGSetupFailure.protocolIEs); + + /* Time to Wait */ + if (not istemplatekind(p_timeToWait, "omit")) { + pdu.value_.NGSetupFailure.protocolIEs[idx] := { + id := id_TimeToWait, + criticality := ignore, + value_ := { TimeToWait := p_timeToWait } + }; + idx := idx + 1; + } + + /* Criticality Diagnostics */ + if (not istemplatekind(p_criticalityDiagnostics, "omit")) { + pdu.value_.NGSetupFailure.protocolIEs[idx] := { + id := id_CriticalityDiagnostics, + criticality := ignore, + value_ := { CriticalityDiagnostics := p_criticalityDiagnostics } + }; + idx := idx + 1; + } + return pdu; + } // End of f_mw_mw_n2_NGSetupFailure + } // End of group Receive } // End of group NG_SETUP_FAILURE -- GitLab