Loading ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +101 −6 Original line number Diff line number Diff line Loading @@ -980,11 +980,11 @@ module NGAP_TCFunctions { f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( -, -, PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { ?, PX_PDU_SESSION_ID, ?, * } Loading Loading @@ -1128,11 +1128,11 @@ module NGAP_TCFunctions { f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( -, -, PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { ?, PX_PDU_SESSION_ID, ?, * } Loading Loading @@ -1373,6 +1373,101 @@ module NGAP_TCFunctions { } // End of function f_TC_NGAP_GNB_CMP_05 /** * @desc Testcase function for TP_NGAP_GNB_CMP_06 */ function f_TC_NGAP_GNB_CMP_06() runs on aMFNGAPComponent { // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); // TODO: hasEstablishedContextInproperly f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_InitialContextSetupRequest ( -, -, m_gUAMI, { { PX_PDU_SESSION_ID, omit, m_s_NSSAI('00'O, '000000'O), bit2oct( encvalue( m_pDUSessionResourceSetupRequestTransfer( m_pDUSessionResourceSetupRequestTransfer_mandatories( 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 )))) ), omit } }, { m_allowedNSSAI_Item( m_s_NSSAI('00'O, '000000'O) ) }, m_uESecurityCapabilities, - ) )); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse_Failed( -, -, { { PX_PDU_SESSION_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_GNB_CMP_06 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading ttcn/AtsNGAP/NGAP_TestCases.ttcn +27 −0 Original line number Diff line number Diff line Loading @@ -476,6 +476,33 @@ module NGAP_TestCases { } // End of testcase TC_NGAP_GNB_CMP_05 /** * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST contains mandatory IEs and answers with INITIAL CONTEXT SETUP RESPONSE with failed PDU session." */ testcase TC_NGAP_GNB_CMP_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_2_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_2_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_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_GNB_CMP_06 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +33 −0 Original line number Diff line number Diff line Loading @@ -1512,6 +1512,39 @@ 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 */ 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 := ? ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { PDUSessionResourceSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { id := id_PDUSessionResourceFailedToSetupListSURes, criticality := ignore, value_ := { PDUSessionResourceFailedToSetupListSURes := p_pDUSessionResourceFailedToSetupListURes } } } } } } // End of template mw_n2_InitialContextSetupResponse_Failed template (present) SuccessfulOutcome mw_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes( template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ? Loading
ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +101 −6 Original line number Diff line number Diff line Loading @@ -980,11 +980,11 @@ module NGAP_TCFunctions { f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( -, -, PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { ?, PX_PDU_SESSION_ID, ?, * } Loading Loading @@ -1128,11 +1128,11 @@ module NGAP_TCFunctions { f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( -, -, PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { ?, PX_PDU_SESSION_ID, ?, * } Loading Loading @@ -1373,6 +1373,101 @@ module NGAP_TCFunctions { } // End of function f_TC_NGAP_GNB_CMP_05 /** * @desc Testcase function for TP_NGAP_GNB_CMP_06 */ function f_TC_NGAP_GNB_CMP_06() runs on aMFNGAPComponent { // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); // TODO: hasEstablishedContextInproperly f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_InitialContextSetupRequest ( -, -, m_gUAMI, { { PX_PDU_SESSION_ID, omit, m_s_NSSAI('00'O, '000000'O), bit2oct( encvalue( m_pDUSessionResourceSetupRequestTransfer( m_pDUSessionResourceSetupRequestTransfer_mandatories( 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 )))) ), omit } }, { m_allowedNSSAI_Item( m_s_NSSAI('00'O, '000000'O) ) }, m_uESecurityCapabilities, - ) )); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse_Failed( -, -, { { PX_PDU_SESSION_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_GNB_CMP_06 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading
ttcn/AtsNGAP/NGAP_TestCases.ttcn +27 −0 Original line number Diff line number Diff line Loading @@ -476,6 +476,33 @@ module NGAP_TestCases { } // End of testcase TC_NGAP_GNB_CMP_05 /** * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST contains mandatory IEs and answers with INITIAL CONTEXT SETUP RESPONSE with failed PDU session." */ testcase TC_NGAP_GNB_CMP_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_2_1)){ log("*** " & __SCOPE__ & ": ERROR: 'PICS_NGAP_GNB_IUT and PICS_A3_2_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_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_GNB_CMP_06 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading
ttcn/LibNGAP/lib/LibNGAP_Templates.ttcn +33 −0 Original line number Diff line number Diff line Loading @@ -1512,6 +1512,39 @@ 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 */ 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 := ? ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { PDUSessionResourceSetupResponse := { protocolIEs := { { id := id_AMF_UE_NGAP_ID, criticality := ignore, value_ := { AMF_UE_NGAP_ID := p_amfUeNgapID } }, { id := id_RAN_UE_NGAP_ID, criticality := ignore, value_ := { RAN_UE_NGAP_ID := p_ranUeNgapID } }, { id := id_PDUSessionResourceFailedToSetupListSURes, criticality := ignore, value_ := { PDUSessionResourceFailedToSetupListSURes := p_pDUSessionResourceFailedToSetupListURes } } } } } } // End of template mw_n2_InitialContextSetupResponse_Failed template (present) SuccessfulOutcome mw_n2_InitialContextSetupResponse_noPDUSessionResourceSetupListSURes( template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?