Loading ttcn/AtsNGAP/NGAP_Pics.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ module NGAP_Pics { modulepar boolean PICS_A4_10_2 := false; //AMF - Trace procedure - TRACE FAILURE INDICATION messages modulepar boolean PICS_A4_10_3 := false; //AMF - Trace procedure - DEACTIVATE TRACE messages modulepar boolean PICS_A4_10_4 := false; //AMF - Trace procedure - CELL TRAFFIC TRACE messages modulepar boolean PICS_A4_11_1 := false; //AMF - Location Reporting Procedures - LOCATION REPORTING CONTROL modulepar boolean PICS_A4_11_2 := false; //AMF - Location Reporting Procedures - LOCATION REPORTING FAILURE INDICATION modulepar boolean PICS_A4_11_3 := false; //AMF - Location Reporting Procedures - LOCATION REPORT modulepar boolean PICS_A4_12_1 := false; //AMF - TNLA procedure - UE TNLA BINDING RELEASE REQUEST messages Loading ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +72 −0 Original line number Diff line number Diff line Loading @@ -2448,6 +2448,45 @@ module NGAP_TCFunctions { group Paging_Procedures{ //8.5.1 group Paging{ /** * @desc Testcase function for TC_NGAP_AMF_PAG_01 */ function f_TC_NGAP_AMF_PAG_01() 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 Paging!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_Paging( mw_uEPagingIdentity_fiveG_S_TMSI( mw_fiveG_S_TMSI(-,-,-,-) ),{ mw_tAIListForPagingItem( mw_tAI(-,-,-) )} ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_AMF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } } // End of group Paging } // End of group Paging_Procedures //8.6 Loading Loading @@ -3418,6 +3457,39 @@ module NGAP_TCFunctions { group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ /** * @desc Testcase function for TC_NGAP_AMF_LRP_01 */ function f_TC_NGAP_AMF_LRP_01() 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 Location Reporting Control procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_LocationReportingControl(-,-,-) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_AMF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_LRP_01 } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ Loading ttcn/AtsNGAP/NGAP_TestCases.ttcn +53 −0 Original line number Diff line number Diff line Loading @@ -1635,6 +1635,32 @@ module NGAP_TestCases { group Paging_Procedures{ //8.5.1 group Paging{ /** * @desc "Verify that the IUT can send a PAGING message to enable the AMF to page a UE." */ testcase TC_NGAP_aMF_PAG_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_4_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_4_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_PAG_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of group Paging } // End of group Paging_Procedures //8.6 Loading Loading @@ -2172,6 +2198,33 @@ module NGAP_TestCases { group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ /** * @desc "Verify that the IUT can send a LOCATION REPORTING CONTROL message that contains mandatory IEs to request a report of the UE's current location." */ testcase TC_NGAP_AMF_LRP_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_11_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_11_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_LRP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ Loading ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +35 −0 Original line number Diff line number Diff line Loading @@ -6405,6 +6405,41 @@ module LibNGAP_Templates { group Send { } group Receive { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ template (present) InitiatingMessage mw_n2_LocationReportingControl( 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 (value) LocationReportingRequestType p_locationReportingRequestType := m_locationReportingRequestType(direct, cell) //TODO: do we need PX here? ) := { procedureCode := id_LocationReportingControl, criticality := ignore, value_ := { LocationReportingControl := { 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_LocationReportingRequestType, criticality := ignore, value_ := { id_LocationReportingRequestType := p_locationReportingRequestType} } } } } } // End of template mw_n2_LocationReportingControl } } //9.2.11.2 Loading
ttcn/AtsNGAP/NGAP_Pics.ttcn +1 −0 Original line number Diff line number Diff line Loading @@ -128,6 +128,7 @@ module NGAP_Pics { modulepar boolean PICS_A4_10_2 := false; //AMF - Trace procedure - TRACE FAILURE INDICATION messages modulepar boolean PICS_A4_10_3 := false; //AMF - Trace procedure - DEACTIVATE TRACE messages modulepar boolean PICS_A4_10_4 := false; //AMF - Trace procedure - CELL TRAFFIC TRACE messages modulepar boolean PICS_A4_11_1 := false; //AMF - Location Reporting Procedures - LOCATION REPORTING CONTROL modulepar boolean PICS_A4_11_2 := false; //AMF - Location Reporting Procedures - LOCATION REPORTING FAILURE INDICATION modulepar boolean PICS_A4_11_3 := false; //AMF - Location Reporting Procedures - LOCATION REPORT modulepar boolean PICS_A4_12_1 := false; //AMF - TNLA procedure - UE TNLA BINDING RELEASE REQUEST messages Loading
ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +72 −0 Original line number Diff line number Diff line Loading @@ -2448,6 +2448,45 @@ module NGAP_TCFunctions { group Paging_Procedures{ //8.5.1 group Paging{ /** * @desc Testcase function for TC_NGAP_AMF_PAG_01 */ function f_TC_NGAP_AMF_PAG_01() 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 Paging!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_Paging( mw_uEPagingIdentity_fiveG_S_TMSI( mw_fiveG_S_TMSI(-,-,-,-) ),{ mw_tAIListForPagingItem( mw_tAI(-,-,-) )} ) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_AMF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } } // End of group Paging } // End of group Paging_Procedures //8.6 Loading Loading @@ -3418,6 +3457,39 @@ module NGAP_TCFunctions { group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ /** * @desc Testcase function for TC_NGAP_AMF_LRP_01 */ function f_TC_NGAP_AMF_LRP_01() 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 Location Reporting Control procedure!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_LocationReportingControl(-,-,-) ) ); f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Testbody done. ***"); // Postamble f_postamble_NGAP_AMF(); f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Postamble done. ***"); } // End of function f_TC_NGAP_AMF_LRP_01 } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ Loading
ttcn/AtsNGAP/NGAP_TestCases.ttcn +53 −0 Original line number Diff line number Diff line Loading @@ -1635,6 +1635,32 @@ module NGAP_TestCases { group Paging_Procedures{ //8.5.1 group Paging{ /** * @desc "Verify that the IUT can send a PAGING message to enable the AMF to page a UE." */ testcase TC_NGAP_aMF_PAG_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_4_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_4_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_PAG_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } // End of group Paging } // End of group Paging_Procedures //8.6 Loading Loading @@ -2172,6 +2198,33 @@ module NGAP_TestCases { group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ /** * @desc "Verify that the IUT can send a LOCATION REPORTING CONTROL message that contains mandatory IEs to request a report of the UE's current location." */ testcase TC_NGAP_AMF_LRP_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_11_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_AMF_IUT and PICS_A4_11_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_LRP_01()); // synchronize PTC on 1 sychronization points f_serverSyncNClientsAndStop(1, {c_prDone, c_tbDone, c_poDone}); f_cf_Down/*gNBoraMF*/(); } } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ Loading
ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +35 −0 Original line number Diff line number Diff line Loading @@ -6405,6 +6405,41 @@ module LibNGAP_Templates { group Send { } group Receive { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.1 LOCATION REPORTING CONTROL */ template (present) InitiatingMessage mw_n2_LocationReportingControl( 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 (value) LocationReportingRequestType p_locationReportingRequestType := m_locationReportingRequestType(direct, cell) //TODO: do we need PX here? ) := { procedureCode := id_LocationReportingControl, criticality := ignore, value_ := { LocationReportingControl := { 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_LocationReportingRequestType, criticality := ignore, value_ := { id_LocationReportingRequestType := p_locationReportingRequestType} } } } } } // End of template mw_n2_LocationReportingControl } } //9.2.11.2