Loading ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -3010,6 +3010,43 @@ module NGAP_TCFunctions { } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ /** * @desc Testcase function for TC_NGAP_GNB_TRP_03 */ function f_TC_NGAP_GNB_LRP_02() runs on aMFNGAPComponent { // Local variables // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_LocationReportingControl(-,-,-) ) ); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_LocationReport(-,-,-,-) ) ); 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_GNB_LRP_03 } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 Loading ttcn/AtsNGAP/NGAP_TestCases.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -1622,6 +1622,34 @@ module NGAP_TestCases { } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ /** * @desc "Verify that the IUT can send a LOCATION REPORT message that contains mandatory IEs to provide the UE's current location." */ testcase TC_NGAP_GNB_LRP_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_11_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_11_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_LRP_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_LRP_02 } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 Loading ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +78 −4 Original line number Diff line number Diff line Loading @@ -6905,6 +6905,41 @@ 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 */ template (value) InitiatingMessage m_n2_LocationReportingControl( 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) 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 m_n2_LocationReportingControl } group Receive { Loading @@ -6912,10 +6947,9 @@ module LibNGAP_Templates { * @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? 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) LocationReportingRequestType p_locationReportingRequestType := ? ) := { procedureCode := id_LocationReportingControl, criticality := ignore, Loading Loading @@ -6956,6 +6990,46 @@ module LibNGAP_Templates { group Send { } group Receive { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ template (present) InitiatingMessage mw_n2_LocationReport( 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) UserLocationInformation p_userLocationInformation := ?, template (present) LocationReportingRequestType p_locationReportingRequestType := ? ) := { procedureCode := id_LocationReport, criticality := ignore, value_ := { LocationReport := { 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_UserLocationInformation, criticality := ignore, value_ := { id_LocationReportingRequestType := p_userLocationInformation} }, { id := id_LocationReportingRequestType, criticality := ignore, value_ := { id_LocationReportingRequestType := p_locationReportingRequestType} } } } } } // End of template mw_n2_LocationReport } } } // End of group Location_Reporting_Messages Loading
ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +37 −0 Original line number Diff line number Diff line Loading @@ -3010,6 +3010,43 @@ module NGAP_TCFunctions { } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ /** * @desc Testcase function for TC_NGAP_GNB_TRP_03 */ function f_TC_NGAP_GNB_LRP_02() runs on aMFNGAPComponent { // Local variables // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_LocationReportingControl(-,-,-) ) ); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_LocationReport(-,-,-,-) ) ); 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_GNB_LRP_03 } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 Loading
ttcn/AtsNGAP/NGAP_TestCases.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -1622,6 +1622,34 @@ module NGAP_TestCases { } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ /** * @desc "Verify that the IUT can send a LOCATION REPORT message that contains mandatory IEs to provide the UE's current location." */ testcase TC_NGAP_GNB_LRP_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_11_3)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_11_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_LRP_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_LRP_02 } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 Loading
ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +78 −4 Original line number Diff line number Diff line Loading @@ -6905,6 +6905,41 @@ 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 */ template (value) InitiatingMessage m_n2_LocationReportingControl( 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) 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 m_n2_LocationReportingControl } group Receive { Loading @@ -6912,10 +6947,9 @@ module LibNGAP_Templates { * @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? 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) LocationReportingRequestType p_locationReportingRequestType := ? ) := { procedureCode := id_LocationReportingControl, criticality := ignore, Loading Loading @@ -6956,6 +6990,46 @@ module LibNGAP_Templates { group Send { } group Receive { /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.11.3 LOCATION REPORT */ template (present) InitiatingMessage mw_n2_LocationReport( 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) UserLocationInformation p_userLocationInformation := ?, template (present) LocationReportingRequestType p_locationReportingRequestType := ? ) := { procedureCode := id_LocationReport, criticality := ignore, value_ := { LocationReport := { 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_UserLocationInformation, criticality := ignore, value_ := { id_LocationReportingRequestType := p_userLocationInformation} }, { id := id_LocationReportingRequestType, criticality := ignore, value_ := { id_LocationReportingRequestType := p_locationReportingRequestType} } } } } } // End of template mw_n2_LocationReport } } } // End of group Location_Reporting_Messages