/** * @author ETSI / TTF033 * @version $URL$ * $Id$ * @desc This module provides test cases for NGAP tests. * @copyright ETSI Copyright Notification * 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 138 413 / 3GPP TS 38.413 version 16.12 Release 16 */ module NGAP_TestCases { // LibCommon import from LibCommon_Sync all ; // LibNGAP import from NGAP_Constants language "ASN.1:2002" all; import from NGAP_CommonDataTypes language "ASN.1:2002" all; import from NGAP_IEs language "ASN.1:2002" all; import from NGAP_PDU_Contents language "ASN.1:2002" all; import from NGAP_PDU_Descriptions language "ASN.1:2002" all; import from NGAP_Containers language "ASN.1:2002" all; import from LibNGAP_TypesAndValues all; import from LibNGAP_Templates all; import from LibNGAP_Pixits all; // NGAP_Ats import from LibNGAP_TypesAndValues all; import from NGAP_TestConfiguration all; import from NGAP_TestSystem all; import from NGAP_TCFunctions all; import from NGAP_Pics all; group TC_testcase_template{ /** * @desc Verify ... *
         * Pics Selection: 
         * Configuration: 
         *     
         * 
* * @see ETSI TS * @reference ETSI TS */ testcase TC_NGAP_gNB_or_aMF_testcaseName_01() runs on /*aMFNGAPComponent*/gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb_or_amf; //or v_ngap_amf var AdditionalDLUPTNLInformationForHOItem v_test, v_test1; log(m_pDUSessionResourceSetupRequestTransfer_optionals( m_pDUSessionType(ipv4), { m_qosFlowSetupRequestItem( PX_QOS_FLOW_IDENTIFIER, m_qosFlowLevelQosParameters( m_qosCharacteristics_dynamic5QI( m_dynamic5QIDescriptor( 1,//in template (value) PriorityLevelQos p_priorityLevelQos, 0,//in template (value) PacketDelayBudget p_packetDelayBudget, m_PacketErrorRate( 0,//in template (value) PacketErrorRate.pERScalar p_pERScalar, 0//in template (value) PacketErrorRate.pERExponent p_pERExponent ))), m_allocationAndRetentionPriority( 1,//in template (value) PriorityLevelARP p_priorityLevelARP, shall_not_trigger_pre_emption,//in template (value) Pre_emptionCapability p_pre_emptionCapability, not_pre_emptable//in template (value) Pre_emptionVulnerability p_pre_emptionVulnerability, ))) }, m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel ), m_pDUSessionAggregateMaximumBitRate( PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_DL, PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_UL ))); log(m_pDUSessionResourceSetupRequestTransfer_optionals_1( m_pDUSessionType(ipv4), { m_qosFlowSetupRequestItem( PX_QOS_FLOW_IDENTIFIER, m_qosFlowLevelQosParameters( m_qosCharacteristics_dynamic5QI( m_dynamic5QIDescriptor( 1,//in template (value) PriorityLevelQos p_priorityLevelQos, 0,//in template (value) PacketDelayBudget p_packetDelayBudget, m_PacketErrorRate( 0,//in template (value) PacketErrorRate.pERScalar p_pERScalar, 0//in template (value) PacketErrorRate.pERExponent p_pERExponent ))), m_allocationAndRetentionPriority( 1,//in template (value) PriorityLevelARP p_priorityLevelARP, shall_not_trigger_pre_emption,//in template (value) Pre_emptionCapability p_pre_emptionCapability, not_pre_emptable//in template (value) Pre_emptionVulnerability p_pre_emptionVulnerability, ))) }, m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel ), m_pDUSessionAggregateMaximumBitRate( PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_DL, PX_UE_AGGREGATE_MAXIMUM_BIT_RATE_UL ))); stop; // Test control if (not PICS_NGAP_AMF_IUT) { log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up/*aMF_Up*/(v_ngap_gnb_or_amf); // Start v_test := valueof( m_additionalDLUPTNLInformationForHOItem( m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel ), { m_qosFlowItemWithDataForwarding( -, m_dataForwardingAccepted ) } )); v_test1 := valueof( m_additionalDLUPTNLInformationForHOItem( m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel ), { m_qosFlowItemWithDataForwarding( -, m_dataForwardingAccepted, m_qosFlowItemWithDataForwarding_id_CurrentQoSParaSetIndex( m_alternativeQoSParaSetIndex )) }, -, m_additionalDLUPTNLInformationForHOItem_uPTransportLayerInformation( m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel )))); v_ngap_gnb_or_amf.start(f_TC_NGAP_gNB_or_aMF_functionName_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_gNB_or_aMF_testcaseName_01 } // End of group TC_testcase_template group gNB_Role{ /** * @see ETSI TS 138 413 V16.12.0 (2023-05) 8.1 List of NGAP Elementary Procedures */ group PDU_Session_Management_Procedures{ /** * @see ETSI TS 138 413 V16.12.0 (2023-05) 8.2.1 PDU Session Resource Setup */ group PDU_Session_Resource_Setup{ /** * @desc Verify that the NG-RAN node successfully processes a PDU SESSION RESOURCE SETUP REQUEST contains mandatory IEs and answers with PDU SESSION RESOURCE SETUP RESPONSE for successfully established PDU session */ testcase TC_NGAP_GNB_PDU_01() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_01 /** * @desc Test objective "Verify that the NG-RAN node reports the establishment of the corresponding PDU session as failed if a PDU SESSION RESOURCE SETUP REQUEST contains several PDU Session ID IEs set to the same value." */ testcase TC_NGAP_GNB_PDU_02() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_02 /** * @desc Test objective "Verify that the NG-RAN node reports the establishment of the new PDU session as failed if a PDU SESSION RESOURCE SETUP REQUEST contains a PDU Session ID IE set to value that identifies an active PDU Session. NOTE: Run TP_NGAP_GNB_PDU_01 before this TP " */ testcase TC_NGAP_GNB_PDU_03() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_03 /** * @desc Test objective "Verify that the NG-RAN node reports the establishment of the corresponding PDU session as failed if a PDU SESSION RESOURCE SETUP REQUEST contains a QoS Flow Setup Request List IE in the PDU Session Resource Setup Request Transfer IE including at least one Non-GBR QoS flow but the PDU Session Aggregate Maximum Bit Rate IE is not present. " */ testcase TC_NGAP_GNB_PDU_04() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_04 } // End of group PDU_Session_Resource_Setup //8.2.2 group PDU_Session_Resource_Release{ /** * @desc Test objective "Verify that the NG-RAN node successfully processes a PDU SESSION RESOURCE RELEASE COMMAND contains mandatory IEs and answers with PDU SESSION RESOURCE RELEASE RESPONSE to release PDU session." */ testcase TC_NGAP_GNB_PDU_05() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_05()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_05 /** * @desc Test objective "Verify that the NG-RAN node successfully processes a PDU SESSION RESOURCE RELEASE COMMAND containing multiple PDU Session ID IEs set to the same value and ignore the duplication." */ testcase TC_NGAP_GNB_PDU_06() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_06()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_06 } // End of group PDU_Session_Resource_Release //8.2.3 group PDU_Session_Resource_Modify{ /** * @desc Test objective "Verify that the NG-RAN node successfully processes a PDU SESSION RESOURCE MODIFY REQUEST contains mandatory IEs and answers with PDU SESSION RESOURCE MODIFY RESPONSE for successfully modified PDU session." */ testcase TC_NGAP_GNB_PDU_07() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_3' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_07()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_07 } // End of group PDU_Session_Resource_Modify //8.2.4 group PDU_Session_Resource_Notify{ /** * @desc Test objective "Verify that the IUT can send a PDU_SESSION_RESOURCE_NOTIFY that already established QoS flow or PDU session for given UE are release." */ testcase TC_NGAP_GNB_PDU_08() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_4)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_4' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_08()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_08 } // End of group PDU_Session_Resource_Notify //8.2.5 group PDU_Session_Resource_Modify_Indication{ /** * @desc Test objective "Verify that the IUT can send a PDU_SESSION_RESOURCE_MODIFY_INDICATION to request modification of established PDU session." */ testcase TC_NGAP_GNB_PDU_09() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_1_5)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_1_5' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_PDU_09()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_PDU_09 } // End of group PDU_Session_Resource_Modify_Indication } // End of group PDU_Session_Management_Procedures //8.3 group UE_Context_Management_Procedures{ //8.3.1 group Initial_Context_Setup{ } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ } // End of group UE_Context_Modification //8.3.5 group RRC_Inactive_Transition_Report{ } // End of group RRC_Inactive_Transition_Report //8.3.6 group Connection_Establishment_Indication{ } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ } // End of group RAN_CP_Relocation_Indication //8.3.9 group Retrieve_UE_Information{ } // End of group Retrieve_UE_Information //8.3.10 group UE_Information_Transfer{ } // End of group UE_Information_Transfer //8.3.11 group UE_Context_Suspend{ } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 group UE_Mobility_Management_Procedures{ //8.4.1 group Handover_Preparation{ } // End of group Handover_Preparation //8.4.2 group Handover_Resource_Allocation{ } // End of group Handover_Resource_Allocation //8.4.3 group Handover_Notification{ } // End of group Handover_Notification //8.4.4 group Path_Switch_Request{ } // End of group Path_Switch_Request //8.4.5 group Handover_Cancellation{ } // End of group Handover_Cancellation //8.4.6 group Uplink_RAN_Status_Transfer{ } // End of group Uplink_RAN_Status_Transfer //8.4.7 group Downlink_RAN_Status_Transfer{ } // End of group Downlink_RAN_Status_Transfer //8.4.8 group Handover_Success{ } // End of group Handover_Success //8.4.9 group Uplink_RAN_Early_Status_Transfer{ } // End of group Uplink_RAN_Early_Status_Transfer //8.4.10 group Downlink_RAN_Early_Status_Transfer{ } // End of group Downlink_RAN_Early_Status_Transfer } // End of group UE_Mobility_Management_Procedures //8.5 group Paging_Procedures{ //8.5.1 group Paging{ } // End of group Paging } // End of group Paging_Procedures //8.6 group Transport_of_NAS_Messages_Procedures{ //8.6.1 group Initial_UE_Message{ } // End of group Initial_UE_Message //8.6.2 group Downlink_NAS_Transport{ } // End of group Downlink_NAS_Transport //8.6.3 group Uplink_NAS_Transport{ } // End of group Uplink_NAS_Transport //8.6.4 group NAS_Non_Delivery_Indication{ } // End of group NAS_Non_Delivery_Indication //8.6.5 group Rerout_NAS_Request{ } // End of group Rerout_NAS_Request } // End of group Transport_of_NAS_Messages_Procedures //8.7 group Interface_Management_Procedures{ //8.7.1 group NG_Setup{ } // End of group NG_Setup //8.7.2 group RAN_Configuration_Update{ } // End of group RAN_Configuration_Update //8.7.3 group AMF_Configuration_Update{ } // End of group AMF_Configuration_Update //8.7.4 group NG_Reset{ } // End of group NG_Reset //8.7.5 group Error_Indication{ } // End of group Error_Indication //8.7.6 group AMF_Status_Indication{ } // End of group AMF_Status_Indication //8.7.7 group Overload_Start{ } // End of group Overload_Start //8.7.8 group Overload_Stop{ } // End of group Overload_Stop } // End of group Interface_Management_Procedures //8.8 group Configuration_Transfer_Procedures{ //8.8.1 group Uplink_RAN_Configuration_Transfer{ } // End of group Uplink_RAN_Configuration_Transfer //8.8.2 group Downlink_RAN_Configuration_Transfer{ } // End of group Downlink_RAN_Configuration_Transfer } // End of group Configuration_Transfer_Procedures //8.9 group Warning_Message_Transmission_Procedures{ //8.9.1 group Write_Replace_Warning{ /** * @desc Verify that the NG-RAN node successfully processes a WRITE-REPLACE WARNING REQUEST containing mandatory IEs and answers with WRITE-REPLACE WARNING RESPONSE to start broadcasting of warning messages. */ testcase TC_NGAP_GNB_WTP_01() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_WTP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_WTP_01 /** * @desc "Verify that the NG-RAN node successfully processes a WRITE-REPLACE WARNING REQUEST containing Message Identifier IE and/or Serial Number IE different from those in the warning message being broadcast and if Concurent Warning Message Indicator is not present then IUT node answers with WRITE-REPLACE WARNING RESPONSE and replaces the warning message being broadcast with newly received one for that area." */ testcase TC_NGAP_GNB_WTP_02() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_WTP_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_WTP_02 } // End of group Write_Replace_Warning //8.9.2 group PWS_Cancel{ /** * @desc "Verify that the NG-RAN node successfully processes a PWS CANCEL REQUEST containing mandatory IEs and answers with PWS CANCEL RESPONSE to cancel an already ongoing broadcast warning messages in all of the cells in the NG-RAN." */ testcase TC_NGAP_GNB_WTP_03() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_WTP_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_WTP_03 } // End of group PWS_Cancel //8.9.3 group PWS_Restart_Indication{ /** * @desc "Verify that the IUT can send a PWS RESTART INDICATION to inform AMF that PWS information for some or all cells may be reloaded from the CBC if needed." */ testcase TC_NGAP_GNB_WTP_04() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_3' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_WTP_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_WTP_04 } // End of group PWS_Restart_Indication //8.9.4 group PWS_Failure_Indication{ /** * @desc "Verify that the IUT can send a PWS FAILURE INDICATION to inform AMF that ongoing PWS operation for one or more cells has failed." */ testcase TC_NGAP_GNB_WTP_05() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_8_4)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_8_4' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_WTP_05()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_WTP_05 } // End of group PWS_Failure_Indication } // End of group Warning_Message_Transmission_Procedures //8.10 group NRPPa_Transport_Procedures{ } // End of group NRPPa_Transport_Procedures //8.11 group Trace_Procedures{ //8.11.1 group Trace_Start{ /** * @desc Test objective "Verify that the IUT can send a TRACE_FAILURE_INDICATION to inform AMF that Trace Start procedure has failed due to an interaction with handover procedure." */ testcase TC_NGAP_GNB_TRP_01() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_10_1) and (not PICS_A3_10_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_10_1 and PICS_A3_10_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_TRP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_TRP_01 } // End of group Trace_Start //8.11.2 group Trace_Failure_Indication{ } // End of group Trace_Failure_Indication //8.11.3 group Deactivate_Trace{ /** * @desc Test objective "Verify that the IUT can send a TRACE_FAILURE_INDICATION to inform AMF that a Deactivate Trace procedure has failed due to an interaction with handover procedure." */ testcase TC_NGAP_GNB_TRP_02() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_10_2) and (not PICS_A3_10_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_10_2 and PICS_A3_10_3' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_TRP_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_TRP_02 } // End of group Deactivate_Trace //8.11.4 group Cell_Traffic_Trace{ /** * @desc Test objective "Verify that the IUT can send a CELL_TRAFFIC_TRACE to send the allocated Trace Recording Session Reference and Trace Reference to AMF." */ testcase TC_NGAP_GNB_TRP_03() runs on aMFNGAPComponent system TestAdapter { // Local variables var aMFNGAPComponent v_ngap_amf; // Test control if ((not PICS_NGAP_GNB_IUT) and (not PICS_A3_10_4)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_10_4' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_aMF_Up(v_ngap_amf); // Start v_ngap_amf.start(f_TC_NGAP_GNB_TRP_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_TRP_03 } // End of group Cell_Traffic_Trace } // End of group Trace_Procedures //8.12 group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 group UE_TNLA_Binding_Procedures{ //8.13.1 group UE_TNLA_Binding_Release{ } // End of group UE_TNLA_Binding_Release } // End of group UE_TNLA_Binding_Procedures //8.14 group UE_Radio_Capability_Management_Procedures{ //8.14.1 group UE_Radio_Capability_Info_Indication{ } // End of group UE_Radio_Capability_Info_Indication //8.14.2 group UE_Radio_Capability_Check{ } // End of group UE_Radio_Capability_Check //8.14.3 group UE_Radio_Capability_ID_Mapping{ } // End of group UE_Radio_Capability_ID_Mapping } // End of group UE_Radio_Capability_Management_Procedures //8.15 group Data_Usage_Reporting_Procedures{ //8.15.1 group Secondary_RAT_Data_Usage_Report{ } // End of group Secondary_RAT_Data_Usage_Report } // End of group Data_Usage_Reporting_Procedures //8.16 group RIM_Information_Transfer_Procedures{ //8.16.1 group Uplink_RIM_Information_Transfer{ } // End of group Uplink_RIM_Information_Transfer //8.16.2 group Downlink_RIM_Information_Transfer{ } // End of group Downlink_RIM_Information_Transfer } // End of group RIM_Information_Transfer_Procedures } // End of group gNB_Role group aMF_Role{ //8.2 group PDU_Session_Management_Procedures{ //8.2.1 group PDU_Session_Resource_Setup{ /** * @desc "Verify that the IUT can send a PDU SESSION RESOURCE SETUP REQUEST with at least one PDU session resource list to established PDU session." */ testcase TC_NGAP_AMF_PDU_01() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_1_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_1_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_PDU_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_PDU_01 } // End of group PDU_Session_Resource_Setup //8.2.2 group PDU_Session_Resource_Release{ /** * @desc "Verify that the IUT can send a PDU_SESSION_RESOURCE_RELEASE_COMMAND to release PDU session." */ testcase TC_NGAP_AMF_PDU_02() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_1_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_1_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_PDU_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_PDU_02 } // End of group PDU_Session_Resource_Release //8.2.3 group PDU_Session_Resource_Modify{ /** * @desc "Verify that the IUT can send a PDU_SESSION_RESOURCE_MODIFY_REQUEST to modify PDU session." */ testcase TC_NGAP_AMF_PDU_03() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_1_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_1_3' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_PDU_03()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_PDU_03 } // End of group PDU_Session_Resource_Modify //8.2.4 group PDU_Session_Resource_Notify{ } // End of group PDU_Session_Resource_Notify //8.2.5 group PDU_Session_Resource_Modify_Indication{ /** * @desc "Verify that the AMF node successfully processes a PDU_SESSION_RESOURCE_MODIFY_INDICATION contains mandatory IEs and answers with PDU_SESSION_RESOURCE_MODIFY_CONFIRM for successfully modified PDU session." */ testcase TC_NGAP_AMF_PDU_04() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_1_5)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_1_5' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_PDU_04()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_PDU_04 /** * @desc "Verify that the AMF node processes a PDU_SESSION_RESOURCE_MODIFY_INDICATION contains mandatory IEs and answers with PDU_SESSION_RESOURCE_MODIFY_CONFIRM for not successfully modified PDU session." */ testcase TC_NGAP_AMF_PDU_05() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_1_5)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_1_5' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_PDU_05()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_PDU_05 } // End of group PDU_Session_Resource_Modify_Indication } // End of group PDU_Session_Management_Procedures //8.3 group UE_Context_Management_Procedures{ //8.3.1 group Initial_Context_Setup{ } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ } // End of group UE_Context_Modification //8.3.5 group RRC_Inactive_Transition_Report{ } // End of group RRC_Inactive_Transition_Report //8.3.6 group Connection_Establishment_Indication{ } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ } // End of group RAN_CP_Relocation_Indication //8.3.9 group Retrieve_UE_Information{ } // End of group Retrieve_UE_Information //8.3.10 group UE_Information_Transfer{ } // End of group UE_Information_Transfer //8.3.11 group UE_Context_Suspend{ } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 group UE_Mobility_Management_Procedures{ //8.4.1 group Handover_Preparation{ } // End of group Handover_Preparation //8.4.2 group Handover_Resource_Allocation{ } // End of group Handover_Resource_Allocation //8.4.3 group Handover_Notification{ } // End of group Handover_Notification //8.4.4 group Path_Switch_Request{ } // End of group Path_Switch_Request //8.4.5 group Handover_Cancellation{ } // End of group Handover_Cancellation //8.4.6 group Uplink_RAN_Status_Transfer{ } // End of group Uplink_RAN_Status_Transfer //8.4.7 group Downlink_RAN_Status_Transfer{ } // End of group Downlink_RAN_Status_Transfer //8.4.8 group Handover_Success{ } // End of group Handover_Success //8.4.9 group Uplink_RAN_Early_Status_Transfer{ } // End of group Uplink_RAN_Early_Status_Transfer //8.4.10 group Downlink_RAN_Early_Status_Transfer{ } // End of group Downlink_RAN_Early_Status_Transfer } // End of group UE_Mobility_Management_Procedures //8.5 group Paging_Procedures{ //8.5.1 group Paging{ } // End of group Paging } // End of group Paging_Procedures //8.6 group Transport_of_NAS_Messages_Procedures{ //8.6.1 group Initial_UE_Message{ } // End of group Initial_UE_Message //8.6.2 group Downlink_NAS_Transport{ } // End of group Downlink_NAS_Transport //8.6.3 group Uplink_NAS_Transport{ } // End of group Uplink_NAS_Transport //8.6.4 group NAS_Non_Delivery_Indication{ } // End of group NAS_Non_Delivery_Indication //8.6.5 group Rerout_NAS_Request{ } // End of group Rerout_NAS_Request } // End of group Transport_of_NAS_Messages_Procedures //8.7 group Interface_Management_Procedures{ //8.7.1 group NG_Setup{ } // End of group NG_Setup //8.7.2 group RAN_Configuration_Update{ } // End of group RAN_Configuration_Update //8.7.3 group AMF_Configuration_Update{ } // End of group AMF_Configuration_Update //8.7.4 group NG_Reset{ } // End of group NG_Reset //8.7.5 group Error_Indication{ } // End of group Error_Indication //8.7.6 group AMF_Status_Indication{ } // End of group AMF_Status_Indication //8.7.7 group Overload_Start{ } // End of group Overload_Start //8.7.8 group Overload_Stop{ } // End of group Overload_Stop } // End of group Interface_Management_Procedures //8.8 group Configuration_Transfer_Procedures{ //8.8.1 group Uplink_RAN_Configuration_Transfer{ } // End of group Uplink_RAN_Configuration_Transfer //8.8.2 group Downlink_RAN_Configuration_Transfer{ } // End of group Downlink_RAN_Configuration_Transfer } // End of group Configuration_Transfer_Procedures //8.9 group Warning_Message_Transmission_Procedures{ //8.9.1 group Write_Replace_Warning{ /** * @desc "Verify that the IUT can send a WRITE REPLACE WARNING REQUEST to start broadcasting of warning messages." */ testcase TC_NGAP_AMF_WTP_01() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_8_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_8_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_WTP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_WTP_01 } // End of group Write_Replace_Warning //8.9.2 group PWS_Cancel{ /** * @desc "Verify that the IUT can send a PWS CANCEL REQUEST to cancel broadcasting of warning messages." */ testcase TC_NGAP_AMF_WTP_02() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_8_2)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_8_2' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_WTP_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_WTP_02 } // End of group PWS_Cancel //8.9.3 group PWS_Restart_Indication{ } // End of group PWS_Restart_Indication //8.9.4 group PWS_Failure_Indication{ } // End of group PWS_Failure_Indication } // End of group Warning_Message_Transmission_Procedures //8.10 group NRPPa_Transport_Procedures{ } // End of group NRPPa_Transport_Procedures //8.11 group Trace_Procedures{ //8.11.1 group Trace_Start{ /** * @desc "Verify that the IUT can send a TRACE_START to initiate a trace session for a UE." */ testcase TC_NGAP_AMF_TRP_01() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_10_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_10_1' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_TRP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_TRP_01 } // End of group Trace_Start //8.11.2 group Trace_Failure_Indication{ } // End of group Trace_Failure_Indication //8.11.3 group Deactivate_Trace{ /** * @desc "Verify that the IUT can send a DEACTIVATE_TRACE to deactivate a trace session for a UE." */ testcase TC_NGAP_AMF_TRP_02() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_10_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_10_3' shall be set to true for executing the TC. ***"); stop; } // Test component configuration f_cf_NGAP_gNB_Up(v_ngap_gnb); // Start v_ngap_gnb.start(f_TC_NGAP_AMF_TRP_02()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_AMF_TRP_02 } // End of group Deactivate_Trace //8.11.4 group Cell_Traffic_Trace{ } // End of group Cell_Traffic_Trace } // End of group Trace_Procedures //8.12 group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 group UE_TNLA_Binding_Procedures{ //8.13.1 group UE_TNLA_Binding_Release{ } // End of group UE_TNLA_Binding_Release } // End of group UE_TNLA_Binding_Procedures //8.14 group UE_Radio_Capability_Management_Procedures{ //8.14.1 group UE_Radio_Capability_Info_Indication{ } // End of group UE_Radio_Capability_Info_Indication //8.14.2 group UE_Radio_Capability_Check{ } // End of group UE_Radio_Capability_Check //8.14.3 group UE_Radio_Capability_ID_Mapping{ } // End of group UE_Radio_Capability_ID_Mapping } // End of group UE_Radio_Capability_Management_Procedures //8.15 group Data_Usage_Reporting_Procedures{ //8.15.1 group Secondary_RAT_Data_Usage_Report{ } // End of group Secondary_RAT_Data_Usage_Report } // End of group Data_Usage_Reporting_Procedures //8.16 group RIM_Information_Transfer_Procedures{ //8.16.1 group Uplink_RIM_Information_Transfer{ } // End of group Uplink_RIM_Information_Transfer //8.16.2 group Downlink_RIM_Information_Transfer{ } // End of group Downlink_RIM_Information_Transfer } // End of group RIM_Information_Transfer_Procedures } // End of group aMF_Role } // End of module NGAP_TestCases