Loading ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +352 −0 Original line number Diff line number Diff line Loading @@ -4078,18 +4078,232 @@ module NGAP_TCFunctions { } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_02 */ function f_TC_NGAP_AMF_CMP_02() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); //f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a UE context release command!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextReleaseCommand ( mw_uE_NGAP_IDs_uE_NGAP_ID_pair ( mw_uE_NGAP_ID_pair ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, * ) ), ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_02 /** * @desc Testcase function for TP_NGAP_AMF_CMP_03 */ function f_TC_NGAP_AMF_CMP_03() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a UE context release command!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextReleaseCommand ( mw_uE_NGAP_IDs_aMF_UE_NGAP_ID ( PX_AMF_UE_NGAP_ID ), ? ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_03 } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_04 */ function f_TC_NGAP_AMF_CMP_04() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a PDU UE context modification procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextModificationRequest ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_04 } // 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{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_05 */ function f_TC_NGAP_AMF_CMP_05() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a PDU UE context modification procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_ConnectionEstablishmentIndication ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_05 } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_06 */ function f_TC_NGAP_AMF_CMP_06() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a AMF CP relocation indication procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_AMFCPRelocationIndication ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_06 } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ Loading @@ -4105,6 +4319,96 @@ module NGAP_TCFunctions { } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_10 */ function f_TC_NGAP_AMF_CMP_10() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_amf_UE_Has_Suspended_Context(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UEContextResumeRequest( -, -, - ) ) ); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_UEContextResumeResponse( ?, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_10 /** * @desc Testcase function for TP_NGAP_AMF_CMP_11 */ function f_TC_NGAP_AMF_CMP_11() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_amf_UE_Has_Suspended_Context(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UEContextResumeRequest( -, -, - ) ) ); f_recv_NGAP_PDU( mw_ngap_unsuccMsg( mw_n2_UEContextResumeFailure( ?, ?, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_11 } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 Loading Loading @@ -4241,6 +4545,10 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_HandoverRequest )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading Loading @@ -4273,6 +4581,28 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PathSwitchRequest( -, -, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI )), m_uESecurityCapabilities, { m_pDUSessionResourceToBeSwitchedDLItem( -, ''O // FIXME FSCOM Shall be bit2oct(encvalue(m_pathSwitchRequestTransfer)) ) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PathSwitchRequestAcknowledge )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading @@ -4298,6 +4628,28 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PathSwitchRequest( -, -, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI )), m_uESecurityCapabilities, { m_pDUSessionResourceToBeSwitchedDLItem( -, ''O // FIXME FSCOM Shall be bit2oct(encvalue(m_pathSwitchRequestTransfer)) ) } ))); f_recv_NGAP_PDU( mw_ngap_unsuccMsg( mw_n2_PathSwitchRequestFailure )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading ttcn/AtsNGAP/NGAP_TestCases.ttcn +137 −0 Original line number Diff line number Diff line Loading @@ -2217,18 +2217,155 @@ module NGAP_TestCases { } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ /** * @desc "Verify that the IUT can send a UE CONTEXT RELEASE COMMAND that contains both the AMF UE NGAP ID IE and the RAN UE NGAP ID IE." */ testcase TC_NGAP_AMF_CMP_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_2_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_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_CMP_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_CMP_02 /** * @desc "Verify that the IUT can send a UE CONTEXT RELEASE COMMAND where both the AMF UE NGAP ID IE and the RAN UE NGAP ID IE are not available." */ testcase TC_NGAP_AMF_CMP_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_2_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_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_CMP_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_CMP_03 } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ /** * @desc "Verify that the IUT can send a UE CONTEXT MODIFICATION REQUEST contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_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_2_4)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_4' 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_CMP_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_CMP_04 } // 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{ /** * @desc "Verify that the IUT can send a CONNECTION ESTABLISHMENT INDICATION that contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_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_2_6)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_6' 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_CMP_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_CMP_05 } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ /** * @desc "Verify that the IUT can send a AMF CP RELOCATION INDICATION that contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_06() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_2_7)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_6' 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_CMP_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_AMF_CMP_06 } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ Loading ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -7339,7 +7339,7 @@ module LibNGAP_Templates { template (present) InitiatingMessage mw_n2_LocationReportingFailureIndication( 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 (present) Cause p_cause := ? template (present) Cause p_cause ) := { procedureCode := id_LocationReportingFailureIndication, criticality := ignore, Loading
ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +352 −0 Original line number Diff line number Diff line Loading @@ -4078,18 +4078,232 @@ module NGAP_TCFunctions { } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_02 */ function f_TC_NGAP_AMF_CMP_02() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); //f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a UE context release command!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextReleaseCommand ( mw_uE_NGAP_IDs_uE_NGAP_ID_pair ( mw_uE_NGAP_ID_pair ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, * ) ), ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_02 /** * @desc Testcase function for TP_NGAP_AMF_CMP_03 */ function f_TC_NGAP_AMF_CMP_03() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a UE context release command!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextReleaseCommand ( mw_uE_NGAP_IDs_aMF_UE_NGAP_ID ( PX_AMF_UE_NGAP_ID ), ? ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_03 } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_04 */ function f_TC_NGAP_AMF_CMP_04() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // f_NGAP_gnb_UE_PDU_ResourceSetup(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a PDU UE context modification procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_UEContextModificationRequest ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_04 } // 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{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_05 */ function f_TC_NGAP_AMF_CMP_05() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a PDU UE context modification procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_ConnectionEstablishmentIndication ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_05 } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_06 */ function f_TC_NGAP_AMF_CMP_06() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); // TODO: hasEstablishedInitialContext f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger a AMF CP relocation indication procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_AMFCPRelocationIndication ( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID ) )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_06 } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ Loading @@ -4105,6 +4319,96 @@ module NGAP_TCFunctions { } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ /** * @desc Testcase function for TP_NGAP_AMF_CMP_10 */ function f_TC_NGAP_AMF_CMP_10() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_amf_UE_Has_Suspended_Context(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UEContextResumeRequest( -, -, - ) ) ); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_UEContextResumeResponse( ?, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_10 /** * @desc Testcase function for TP_NGAP_AMF_CMP_11 */ function f_TC_NGAP_AMF_CMP_11() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_amf_UE_Has_Suspended_Context(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_UEContextResumeRequest( -, -, - ) ) ); f_recv_NGAP_PDU( mw_ngap_unsuccMsg( mw_n2_UEContextResumeFailure( ?, ?, ? ))); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_gNB(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_CMP_11 } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 Loading Loading @@ -4241,6 +4545,10 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_HandoverRequest )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading Loading @@ -4273,6 +4581,28 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PathSwitchRequest( -, -, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI )), m_uESecurityCapabilities, { m_pDUSessionResourceToBeSwitchedDLItem( -, ''O // FIXME FSCOM Shall be bit2oct(encvalue(m_pathSwitchRequestTransfer)) ) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PathSwitchRequestAcknowledge )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading @@ -4298,6 +4628,28 @@ module NGAP_TCFunctions { log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PathSwitchRequest( -, -, m_uPTransportLayerInformation_userLocationInformationNR( m_userLocationInformationNR( m_nR_CGI, m_tAI )), m_uESecurityCapabilities, { m_pDUSessionResourceToBeSwitchedDLItem( -, ''O // FIXME FSCOM Shall be bit2oct(encvalue(m_pathSwitchRequestTransfer)) ) } ))); f_recv_NGAP_PDU( mw_ngap_unsuccMsg( mw_n2_PathSwitchRequestFailure )); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); Loading
ttcn/AtsNGAP/NGAP_TestCases.ttcn +137 −0 Original line number Diff line number Diff line Loading @@ -2217,18 +2217,155 @@ module NGAP_TestCases { } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ /** * @desc "Verify that the IUT can send a UE CONTEXT RELEASE COMMAND that contains both the AMF UE NGAP ID IE and the RAN UE NGAP ID IE." */ testcase TC_NGAP_AMF_CMP_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_2_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_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_CMP_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_CMP_02 /** * @desc "Verify that the IUT can send a UE CONTEXT RELEASE COMMAND where both the AMF UE NGAP ID IE and the RAN UE NGAP ID IE are not available." */ testcase TC_NGAP_AMF_CMP_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_2_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_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_CMP_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_CMP_03 } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ /** * @desc "Verify that the IUT can send a UE CONTEXT MODIFICATION REQUEST contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_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_2_4)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_4' 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_CMP_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_CMP_04 } // 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{ /** * @desc "Verify that the IUT can send a CONNECTION ESTABLISHMENT INDICATION that contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_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_2_6)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_6' 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_CMP_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_CMP_05 } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ /** * @desc "Verify that the IUT can send a AMF CP RELOCATION INDICATION that contains mandatory IEs." */ testcase TC_NGAP_AMF_CMP_06() runs on gNBNGAPComponent system TestAdapter { // Local variables var gNBNGAPComponent v_ngap_gnb; // Test control if ((not PICS_NGAP_AMF_IUT) and (not PICS_A4_2_7)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_2_6' 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_CMP_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_AMF_CMP_06 } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ Loading
ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +4 −4 Original line number Diff line number Diff line Loading @@ -7339,7 +7339,7 @@ module LibNGAP_Templates { template (present) InitiatingMessage mw_n2_LocationReportingFailureIndication( 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 (present) Cause p_cause := ? template (present) Cause p_cause ) := { procedureCode := id_LocationReportingFailureIndication, criticality := ignore,