Loading ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +95 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,101 @@ module NGAP_TCFunctions { } // End of function f_TC_NGAP_GNB_CMP_03 /** * @desc Testcase function for TP_NGAP_GNB_CMP_04 */ function f_TC_NGAP_GNB_CMP_04() runs on aMFNGAPComponent { // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); f_NGAP_amf_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_InitialContextSetupRequest_optional_MobilityRestriction ( -, -, 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, -, m_mobilityRestrictionList( PX_PLMN_IDENTITY ) ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { 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_04 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading ttcn/AtsNGAP/NGAP_TestCases.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,34 @@ module NGAP_TestCases { f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_CMP_03 /** * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST with optional field Mobility Restriction List and answers with INITIAL CONTEXT SETUP RESPONSE with successfully established UE context." */ testcase TC_NGAP_GNB_CMP_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_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_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_CMP_04 } // 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 +64 −0 Original line number Diff line number Diff line Loading @@ -1082,6 +1082,70 @@ module LibNGAP_Templates { } } } } /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ template (value) InitiatingMessage m_n2_InitialContextSetupRequest_optional_MobilityRestriction( 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) GUAMI p_gUAMI, in template (value) PDUSessionResourceSetupListCxtReq p_pDUSessionResourceSetupListCxtReq, in template (value) AllowedNSSAI p_allowedNSSAI, in template (value) UESecurityCapabilities p_uESecurityCapabilities, in template (value) SecurityKey p_nextHopNH := PX_NEXT_HOP_NH, in template (value) MobilityRestrictionList p_mobilityRestrictionList := m_mobilityRestrictionList ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { InitialContextSetupRequest := { 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_GUAMI, criticality := reject, value_ := { GUAMI := p_gUAMI } }, { id := id_PDUSessionResourceSetupListCxtReq, criticality := reject, value_ := { PDUSessionResourceSetupListCxtReq := p_pDUSessionResourceSetupListCxtReq } }, { id := id_AllowedNSSAI, criticality := reject, value_ := { AllowedNSSAI := p_allowedNSSAI } }, { id := id_UESecurityCapabilities, criticality := reject, value_ := { UESecurityCapabilities := p_uESecurityCapabilities } }, { id := id_SecurityKey, criticality := reject, value_ := { SecurityKey := p_nextHopNH } }, { id := id_TraceActivation, criticality := ignore, value_ := { MobilityRestrictionList := p_mobilityRestrictionList } } } } } } } // End of group Send Loading
ttcn/AtsNGAP/NGAP_TCFunctions.ttcn +95 −0 Original line number Diff line number Diff line Loading @@ -1141,6 +1141,101 @@ module NGAP_TCFunctions { } // End of function f_TC_NGAP_GNB_CMP_03 /** * @desc Testcase function for TP_NGAP_GNB_CMP_04 */ function f_TC_NGAP_GNB_CMP_04() runs on aMFNGAPComponent { // Preamble f_NGAP_amf_init(); f_NGAP_amf_UE_Register(); f_NGAP_amf_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_InitialContextSetupRequest_optional_MobilityRestriction ( -, -, 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, -, m_mobilityRestrictionList( PX_PLMN_IDENTITY ) ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_InitialContextSetupResponse( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { { 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_04 } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ Loading
ttcn/AtsNGAP/NGAP_TestCases.ttcn +28 −0 Original line number Diff line number Diff line Loading @@ -421,6 +421,34 @@ module NGAP_TestCases { f_cf_Down/*gNBoraMF*/(); } // End of testcase TC_NGAP_GNB_CMP_03 /** * @desc Test objective "Verify that the NG-RAN node successfully processes a INITIAL CONTEXT SETUP REQUEST with optional field Mobility Restriction List and answers with INITIAL CONTEXT SETUP RESPONSE with successfully established UE context." */ testcase TC_NGAP_GNB_CMP_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_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_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_CMP_04 } // 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 +64 −0 Original line number Diff line number Diff line Loading @@ -1082,6 +1082,70 @@ module LibNGAP_Templates { } } } } /** * @see ETSI TS 138 413 V16.12.0 (2023-05) Clause 9.2.2.1 INITIAL CONTEXT SETUP REQUEST */ template (value) InitiatingMessage m_n2_InitialContextSetupRequest_optional_MobilityRestriction( 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) GUAMI p_gUAMI, in template (value) PDUSessionResourceSetupListCxtReq p_pDUSessionResourceSetupListCxtReq, in template (value) AllowedNSSAI p_allowedNSSAI, in template (value) UESecurityCapabilities p_uESecurityCapabilities, in template (value) SecurityKey p_nextHopNH := PX_NEXT_HOP_NH, in template (value) MobilityRestrictionList p_mobilityRestrictionList := m_mobilityRestrictionList ) := { procedureCode := id_InitialContextSetup, criticality := reject, value_ := { InitialContextSetupRequest := { 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_GUAMI, criticality := reject, value_ := { GUAMI := p_gUAMI } }, { id := id_PDUSessionResourceSetupListCxtReq, criticality := reject, value_ := { PDUSessionResourceSetupListCxtReq := p_pDUSessionResourceSetupListCxtReq } }, { id := id_AllowedNSSAI, criticality := reject, value_ := { AllowedNSSAI := p_allowedNSSAI } }, { id := id_UESecurityCapabilities, criticality := reject, value_ := { UESecurityCapabilities := p_uESecurityCapabilities } }, { id := id_SecurityKey, criticality := reject, value_ := { SecurityKey := p_nextHopNH } }, { id := id_TraceActivation, criticality := ignore, value_ := { MobilityRestrictionList := p_mobilityRestrictionList } } } } } } } // End of group Send