/** * @author ETSI / TTF033 * @version $URL$ * $Id$ * @desc This module provides test functions for NGAP tests. * @copyright ETSI Copyright Notification * No part may be reproduced except as authorized by written permission. * The copyright and the foregoing restriction extend to reproduction in all media. * All rights reserved. * @see ETSI TS 138 413 / 3GPP TS 38.413 version 16.12 Release 16 */ module NGAP_TCFunctions { // LibCommon import from LibCommon_Sync all; import from LibCommon_VerdictControl all; import from LibCommon_Time all; // LibNGAP import from NGAP_IEs language "ASN.1:2002" all; import from NGAP_Constants language "ASN.1:2002" all; import from LibNGAP_Pixits all; import from LibNGAP_Templates all; import from LibNGAP_Interface all; import from LibNGAP_Steps all; // NGAP_Ats import from NGAP_TestSystem all; import from NGAP_Steps all; import from NGAP_Pixits all; group TC_function_template{ /** * @desc Testcase function for TC_NGAP_gNB_or_aMF_functionName_01 */ function f_TC_NGAP_gNB_or_aMF_functionName_01() runs on NGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body //f_send_NGAP_PDU(m_ngap_initMsg(/*initiating msgtemplate*/)); //f_recv_NGAP_PDU(?); 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_or_aMF_functionName_01 } // End of group TC_function_template group gNB_Role{ //8.2 group PDU_Session_Management_Procedures{ //8.2.1 group PDU_Session_Resource_Setup{ /** * @desc Testcase function for TC_NGAP_gNB_PDU_01 */ function f_TC_NGAP_GNB_PDU_01() 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_PDUSessionResourceSetupRequest( -, -, { m_pDUSessionResourceSetupItemSUReq( -, 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 )))))) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceSetupResponse( -, -, //? //TODO replace with template { (mw_pDUSessionResourceSetupItemSURes( ?,//template (present) PDUSessionID p_pDUSessionID, //mw_pDUSessionResourceSetupResponseTransfer( // ?,//template (present) QosFlowPerTNLInformation p_dLQosFlowPerTNLInformation := ?, // *,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, // *,//template SecurityResult p_securityResult := *, // *,//template QosFlowListWithCause p_qosFlowFailedToSetupList := *, // *//template PDUSessionResourceSetupResponseTransfer.iE_Extensions p_iE_Extensions := * // ), In ASN1 it is OCTET STRING - PDUSessionResourceSetupResponseTransfer ?,//template (present) PDUSessionResourceSetupItemSURes.pDUSessionResourceSetupResponseTransfer p_pDUSessionResourceSetupResponseTransfer := ?, *//template PDUSessionResourceSetupItemSURes.iE_Extensions p_iE_Extensions := * ) ) } ) ) ); 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_PDU_01 /** * @desc Testcase function for TC_NGAP_gNB_PDU_02 */ function f_TC_NGAP_GNB_PDU_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_PDUSessionResourceSetupRequest( -, -, { m_pDUSessionResourceSetupItemSUReq( -, 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 )))))), m_pDUSessionResourceSetupItemSUReq( -, 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 )))))) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceSetupResponse( -, -, //? //TODO replace with template { * //FIXME: when template Ready //mw_pDUSessionResourceFailedToSetupItemSURes( // ?, // ?, // * //) } ) ) ); 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_PDU_02 /** * @desc Testcase function for TC_NGAP_gNB_PDU_03 */ function f_TC_NGAP_GNB_PDU_03() 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_PDUSessionResourceSetupRequest( -, -, { m_pDUSessionResourceSetupItemSUReq( -, 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 )))))) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceSetupResponse( -, -, //? //TODO replace with template { mw_pDUSessionResourceSetupItemSURes( ?,//template (present) PDUSessionID p_pDUSessionID, //mw_pDUSessionResourceSetupResponseTransfer( // ?,//template (present) QosFlowPerTNLInformation p_dLQosFlowPerTNLInformation := ?, // *,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, // *,//template SecurityResult p_securityResult := *, // *,//template QosFlowListWithCause p_qosFlowFailedToSetupList := *, // *//template PDUSessionResourceSetupResponseTransfer.iE_Extensions p_iE_Extensions := * // ), In ASN1 it is OCTET STRING - PDUSessionResourceSetupResponseTransfer ?,//template (present) PDUSessionResourceSetupItemSURes.pDUSessionResourceSetupResponseTransfer p_pDUSessionResourceSetupResponseTransfer := ?, *//template PDUSessionResourceSetupItemSURes.iE_Extensions p_iE_Extensions := * ) } ) ) ); f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PDUSessionResourceSetupRequest( -, -, { m_pDUSessionResourceSetupItemSUReq( -, 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 )))))) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceSetupResponse( -, -, //? //TODO replace with template { * //FIXME: when template Ready //mw_pDUSessionResourceFailedToSetupItemSURes( // ?, // ?, // * //) } ) ) ); 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_PDU_03 /** * @desc Testcase function for TC_NGAP_gNB_PDU_04 */ function f_TC_NGAP_GNB_PDU_04() 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_PDUSessionResourceSetupRequest( -, -, { m_pDUSessionResourceSetupItemSUReq( -, m_s_NSSAI('00'O, '000000'O), bit2oct( encvalue( m_pDUSessionResourceSetupRequestTransfer( m_pDUSessionResourceSetupRequestTransfer_mandatories( m_pDUSessionType(ipv4), { m_qosFlowSetupRequestItem( PX_QOS_FLOW_IDENTIFIER, //FIXME nonGBRQosID 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 )))))) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceSetupResponse( -, -, //? //TODO replace with template { * //FIXME: when template Ready //mw_pDUSessionResourceFailedToSetupItemSURes( // ?, // ?, // * //) } ) ) ); 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_PDU_04 } // End of group PDU_Session_Resource_Setup //8.2.2 group PDU_Session_Resource_Release{ /** * @desc Testcase function for TC_NGAP_gNB_PDU_05 */ function f_TC_NGAP_GNB_PDU_05() runs on aMFNGAPComponent { // Local variables // 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_PDUSessionResourceReleaseCommand( -, -, { m_pDUSessionResourceToReleaseItemRelCmd( PX_PDU_SESSION_ID, bit2oct( encvalue( m_pDUSessionResourceReleaseCommandTransfer( m_cause_misc(m_causeMisc(-)), -//in template (omit) PDUSessionResourceReleaseCommandTransfer.iE_Extensions p_iE_Extensions := omit ) ) ), - //in template (omit) PDUSessionResourceToReleaseItemRelCmd.iE_Extensions p_iE_Extensions := omit ) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceReleaseResponse( -,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, -,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { ( mw_pDUSessionResourceReleasedItemRelRes( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, -,//bit2oct(encvalue(mw_pDUSessionResourceReleaseResponseTransfer(*))),//template (present) PDUSessionResourceReleasedItemRelRes.pDUSessionResourceReleaseResponseTransfer p_pDUSessionResourceReleaseResponseTransfer := ?, -//template PDUSessionResourceReleasedItemRelRes.iE_Extensions p_iE_Extensions := * ) ) }//template (present) PDUSessionResourceReleasedListRelRes p_pDUSessionResourceReleasedListRelRes := ? ) ) ); 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_PDU_05 /** * @desc Testcase function for TC_NGAP_gNB_PDU_06 */ function f_TC_NGAP_GNB_PDU_06() runs on aMFNGAPComponent { // Local variables // 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_PDUSessionResourceReleaseCommand( -, -, { m_pDUSessionResourceToReleaseItemRelCmd( PX_PDU_SESSION_ID, bit2oct( encvalue( m_pDUSessionResourceReleaseCommandTransfer( m_cause_misc(m_causeMisc(-)), -//in template (omit) PDUSessionResourceReleaseCommandTransfer.iE_Extensions p_iE_Extensions := omit ) ) ), - //in template (omit) PDUSessionResourceToReleaseItemRelCmd.iE_Extensions p_iE_Extensions := omit ), m_pDUSessionResourceToReleaseItemRelCmd( PX_PDU_SESSION_ID, bit2oct( encvalue( m_pDUSessionResourceReleaseCommandTransfer( m_cause_misc(m_causeMisc(-)), -//in template (omit) PDUSessionResourceReleaseCommandTransfer.iE_Extensions p_iE_Extensions := omit ) ) ), - //in template (omit) PDUSessionResourceToReleaseItemRelCmd.iE_Extensions p_iE_Extensions := omit ) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceReleaseResponse( -,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, -,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { ( mw_pDUSessionResourceReleasedItemRelRes( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, -,//bit2oct(encvalue(mw_pDUSessionResourceReleaseResponseTransfer(*))),//template (present) PDUSessionResourceReleasedItemRelRes.pDUSessionResourceReleaseResponseTransfer p_pDUSessionResourceReleaseResponseTransfer := ?, -//template PDUSessionResourceReleasedItemRelRes.iE_Extensions p_iE_Extensions := * ) ) }//template (present) PDUSessionResourceReleasedListRelRes p_pDUSessionResourceReleasedListRelRes := ? ) ) ); 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_PDU_06 } // End of group PDU_Session_Resource_Release //8.2.3 group PDU_Session_Resource_Modify{ /** * @desc Testcase function for TC_NGAP_gNB_PDU_07 */ function f_TC_NGAP_GNB_PDU_07() runs on aMFNGAPComponent { // Local variables // 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_PDUSessionResourceModify( -, -, { m_pDUSessionResourceModifyItemModReq( PX_PDU_SESSION_ID, '00'O,//bit2oct( // encvalue( // m_pDUSessionResourceModifyRequestTransfer(//FIXME when template with mandatory IEs available // -//in template (omit) PDUSessionResourceModifyRequestTransfer.protocolIEs p_protocolIEs // ) // ) //), -,//in template (omit) NAS_PDU p_nAS_PDU := omit, -//in template (omit) PDUSessionResourceModifyItemModReq.iE_Extensions p_iE_Extensions := omit ) } ))); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceModifyResponse( -,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, -,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { ( mw_pDUSessionResourceModifyItemModRes( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, ?,//mw_pDUSessionResourceModifyResponseTransfer( //*,//template UPTransportLayerInformation p_dL_NGU_UP_TNLInformation := *, //*,//template UPTransportLayerInformation p_uL_NGU_UP_TNLInformation := *, //?,//template QosFlowAddOrModifyResponseList p_qosFlowAddOrModifyResponseList := *, //*,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, //*,//template QosFlowListWithCause p_qosFlowFailedToAddOrModifyList := *, //*//template PDUSessionResourceModifyResponseTransfer.iE_Extensions p_iE_Extensions := * //), -//template PDUSessionResourceModifyItemModRes.iE_Extensions p_iE_Extensions := * ) ) } ) ) ); 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_PDU_07 } // End of group PDU_Session_Resource_Modify //8.2.4 group PDU_Session_Resource_Notify{ /** * @desc Testcase function for TC_NGAP_gNB_PDU_08 */ function f_TC_NGAP_GNB_PDU_08() runs on aMFNGAPComponent { // Local variables // 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 action("Trigger PDU session resource NOTIFY!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PDUSessionResourceNotify( -,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, -,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { //* mw_pDUSessionResourceNotifyItem( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, ?,//template (present) PDUSessionResourceNotifyItem.pDUSessionResourceNotifyTransfer p_pDUSessionResourceNotifyTransfer, -//template PDUSessionResourceNotifyItem.iE_Extensions p_iE_Extensions := * ) } ) ) ); 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_PDU_08 } // End of group PDU_Session_Resource_Notify //8.2.5 group PDU_Session_Resource_Modify_Indication{ /** * @desc Testcase function for TC_NGAP_gNB_PDU_09 */ function f_TC_NGAP_GNB_PDU_09() runs on aMFNGAPComponent { // Local variables // 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 action("Trigger PDU session resource MODIFY!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PDUSessionResourceModifyIndication( -,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, -,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { ( mw_pDUSessionResourceModifyItemModInd( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, ?,//pDUSessionResourceModifyIndicationTransfer( //?,//template (present) QosFlowPerTNLInformation p_dLQosFlowPerTNLInformation := ?, //*,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, //-//template PDUSessionResourceModifyIndicationTransfer.iE_Extensions p_iE_Extensions := * //), -//template PDUSessionResourceModifyItemModRes.iE_Extensions p_iE_Extensions := * ) ) } ) ) ); 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_PDU_09 } // End of group PDU_Session_Resource_Modify_Indication } // End of group PDU_Session_Management_Procedures //8.3 group UE_Context_Management_Procedures{ //8.3.1 group Initial_Context_Setup{ } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ } // 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{ } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ } // End of group RAN_CP_Relocation_Indication //8.3.9 group Retrieve_UE_Information{ } // End of group Retrieve_UE_Information //8.3.10 group UE_Information_Transfer{ } // End of group UE_Information_Transfer //8.3.11 group UE_Context_Suspend{ } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 group UE_Mobility_Management_Procedures{ //8.4.1 group Handover_Preparation{ } // End of group Handover_Preparation //8.4.2 group Handover_Resource_Allocation{ } // End of group Handover_Resource_Allocation //8.4.3 group Handover_Notification{ } // End of group Handover_Notification //8.4.4 group Path_Switch_Request{ } // End of group Path_Switch_Request //8.4.5 group Handover_Cancellation{ } // End of group Handover_Cancellation //8.4.6 group Uplink_RAN_Status_Transfer{ } // End of group Uplink_RAN_Status_Transfer //8.4.7 group Downlink_RAN_Status_Transfer{ } // End of group Downlink_RAN_Status_Transfer //8.4.8 group Handover_Success{ } // End of group Handover_Success //8.4.9 group Uplink_RAN_Early_Status_Transfer{ } // End of group Uplink_RAN_Early_Status_Transfer //8.4.10 group Downlink_RAN_Early_Status_Transfer{ } // End of group Downlink_RAN_Early_Status_Transfer } // End of group UE_Mobility_Management_Procedures //8.5 group Paging_Procedures{ //8.5.1 group Paging{ } // End of group Paging } // End of group Paging_Procedures //8.6 group Transport_of_NAS_Messages_Procedures{ //8.6.1 group Initial_UE_Message{ } // End of group Initial_UE_Message //8.6.2 group Downlink_NAS_Transport{ } // End of group Downlink_NAS_Transport //8.6.3 group Uplink_NAS_Transport{ } // End of group Uplink_NAS_Transport //8.6.4 group NAS_Non_Delivery_Indication{ } // End of group NAS_Non_Delivery_Indication //8.6.5 group Rerout_NAS_Request{ } // End of group Rerout_NAS_Request } // End of group Transport_of_NAS_Messages_Procedures //8.7 group Interface_Management_Procedures{ //8.7.1 group NG_Setup{ } // End of group NG_Setup //8.7.2 group RAN_Configuration_Update{ } // End of group RAN_Configuration_Update //8.7.3 group AMF_Configuration_Update{ } // End of group AMF_Configuration_Update //8.7.4 group NG_Reset{ } // End of group NG_Reset //8.7.5 group Error_Indication{ } // End of group Error_Indication //8.7.6 group AMF_Status_Indication{ } // End of group AMF_Status_Indication //8.7.7 group Overload_Start{ } // End of group Overload_Start //8.7.8 group Overload_Stop{ } // End of group Overload_Stop } // End of group Interface_Management_Procedures //8.8 group Configuration_Transfer_Procedures{ //8.8.1 group Uplink_RAN_Configuration_Transfer{ } // End of group Uplink_RAN_Configuration_Transfer //8.8.2 group Downlink_RAN_Configuration_Transfer{ } // End of group Downlink_RAN_Configuration_Transfer } // End of group Configuration_Transfer_Procedures //8.9 group Warning_Message_Transmission_Procedures{ //8.9.1 group Write_Replace_Warning{ /** * @desc Testcase function for TC_NGAP_gNB_WTP_01 */ function f_TC_NGAP_GNB_WTP_01() 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_WriteReplaceWarningRequest( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER, PX_REPETITION_PERIOD, PX_NUMBER_OF_BROADCASTS_REQUESTED ) )); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_WriteReplaceWarningResponse( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER ) ) ); 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_WTP_01 /** * @desc Testcase function for TC_NGAP_gNB_WTP_02 */ function f_TC_NGAP_GNB_WTP_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_WriteReplaceWarningRequest( PX_MESSAGE_IDENTIFIER, // indicating value "different from already being broadcasted", PX_SERIAL_NUMBER, //indicating value "different from already being broadcasted", PX_REPETITION_PERIOD, PX_NUMBER_OF_BROADCASTS_REQUESTED ) )); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_WriteReplaceWarningResponse( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER ) ) ); 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_WTP_02 } // End of group Write_Replace_Warning //8.9.2 group PWS_Cancel{ /** * @desc Testcase function for TC_NGAP_gNB_WTP_03 */ function f_TC_NGAP_GNB_WTP_03() 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_PWSCancelRequest( PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER ) )); f_recv_NGAP_PDU( mw_ngap_succMsg( /*mw*/m_n2_PWSCancelResponse( //missing template PX_MESSAGE_IDENTIFIER, PX_SERIAL_NUMBER ) ) ); 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_WTP_03 } // End of group PWS_Cancel //8.9.3 group PWS_Restart_Indication{ /** * @desc Testcase function for TC_NGAP_gNB_WTP_04 */ function f_TC_NGAP_GNB_WTP_04() 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 action("Trigger PWS_Restart_Indication!"); f_recv_NGAP_PDU( mw_ngap_initMsg( ? // /*mw*/m_n2_PWSRestartIndication( // missing template // ?,//in template (value) CellIDListForRestart p_cellIDListForRestart, // ?,//in template (value) GlobalRANNodeID p_globalRANNodeID, // ?,//in template (value) TAIListForRestart p_tAIListForRestart, // ?//in template (value) EmergencyAreaIDListForRestart p_emergencyAreaIDListForRestart // ) ) ); 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_WTP_04 } // End of group PWS_Restart_Indication //8.9.4 group PWS_Failure_Indication{ /** * @desc Testcase function for TC_NGAP_gNB_WTP_05 */ function f_TC_NGAP_GNB_WTP_05() 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 action("Trigger PWS_Failure_Indication!"); f_recv_NGAP_PDU( mw_ngap_unsuccMsg( ? // /*mw*/m_n2_PWSFailureIndication( //missing template // ?,//in template (value) PWSFailedCellList p_pWSFailedCellList, // ?//in template (value) GlobalRANNodeID p_globalRANNodeID // ) ) ); 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_WTP_05 } // End of group PWS_Failure_Indication } // End of group Warning_Message_Transmission_Procedures //8.10 group NRPPa_Transport_Procedures{ } // End of group NRPPa_Transport_Procedures //8.11 group Trace_Procedures{ //8.11.1 group Trace_Start{ /** * @desc Testcase function for TC_NGAP_gNB_TRP_01 */ function f_TC_NGAP_GNB_TRP_01() runs on aMFNGAPComponent { // Local variables // 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_TraceStart( -, -, m_traceActivation( '0000000000000001'O,//in template (value) NGRANTraceID p_nGRANTraceID, '00000000'B,//in template (value) InterfacesToTrace p_interfacesToTrace, m_traceDepth(minimum), PX_TRANSPORT_LAYER_ADDRESS, omit//in template (omit) TraceActivation.iE_Extensions p_iE_Extensions := omit ) ) ) ); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_TraceFailureIndication( -, -, ?, ? ) ) ); 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_TRP_01 } // End of group Trace_Start //8.11.2 group Trace_Failure_Indication{ } // End of group Trace_Failure_Indication //8.11.3 group Deactivate_Trace{ /** * @desc Testcase function for TC_NGAP_gNB_TRP_02 */ function f_TC_NGAP_GNB_TRP_02() runs on aMFNGAPComponent { // Local variables // 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_DeactivateTrace( -, -, '0000000000000001'O//in template (value) NGRANTraceID p_NGRANTraceID ) ) ); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_TraceFailureIndication( -, -, ?, ? ) ) ); 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_TRP_02 } // End of group Deactivate_Trace //8.11.4 group Cell_Traffic_Trace{ /** * @desc Testcase function for TC_NGAP_gNB_TRP_03 */ function f_TC_NGAP_GNB_TRP_03() runs on aMFNGAPComponent { // Local variables // 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 action("Trigger CELL TRAFFIC TRACE!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_CellTrafficTrace( ?, ?, ?, ?, ?, ?, ? ) ) ); 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_TRP_03 } // End of group Cell_Traffic_Trace } // End of group Trace_Procedures //8.12 group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 group UE_TNLA_Binding_Procedures{ //8.13.1 group UE_TNLA_Binding_Release{ } // End of group UE_TNLA_Binding_Release } // End of group UE_TNLA_Binding_Procedures //8.14 group UE_Radio_Capability_Management_Procedures{ //8.14.1 group UE_Radio_Capability_Info_Indication{ } // End of group UE_Radio_Capability_Info_Indication //8.14.2 group UE_Radio_Capability_Check{ } // End of group UE_Radio_Capability_Check //8.14.3 group UE_Radio_Capability_ID_Mapping{ } // End of group UE_Radio_Capability_ID_Mapping } // End of group UE_Radio_Capability_Management_Procedures //8.15 group Data_Usage_Reporting_Procedures{ //8.15.1 group Secondary_RAT_Data_Usage_Report{ } // End of group Secondary_RAT_Data_Usage_Report } // End of group Data_Usage_Reporting_Procedures //8.16 group RIM_Information_Transfer_Procedures{ //8.16.1 group Uplink_RIM_Information_Transfer{ } // End of group Uplink_RIM_Information_Transfer //8.16.2 group Downlink_RIM_Information_Transfer{ } // End of group Downlink_RIM_Information_Transfer } // End of group RIM_Information_Transfer_Procedures } // End of group gNB_Role group aMF_Role{ //8.2 group PDU_Session_Management_Procedures{ //8.2.1 group PDU_Session_Resource_Setup{ /** * @desc Testcase function for TC_NGAP_aMF_PDU_01 */ function f_TC_NGAP_AMF_PDU_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 PDU session resource SETUP!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PDUSessionResourceSetupRequest( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { mw_pDUSessionResourceSetupItemSUReq( PX_PDU_SESSION_ID, mw_s_NSSAI( PX_SST, -,//in template (omit) SD p_sD := omit, -//in template (omit) S_NSSAI.iE_Extensions p_iE_Extensions := omit ), ?,//mw_pDUSessionResourceSetupRequestTransfer(?),OCTETSTRING -,//in template (omit) NAS_PDU p_pDUSessionNAS_PDU := omit, -//in template (omit) PDUSessionResourceSetupItemSUReq.iE_Extensions p_iE_Extensions := omit ) }//in template (value) PDUSessionResourceSetupListSUReq p_pDUSessionResourceSetupListSUReq ) ) ); 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_PDU_01 } // End of group PDU_Session_Resource_Setup //8.2.2 group PDU_Session_Resource_Release{ /** * @desc Testcase function for TC_NGAP_AMF_PDU_02 */ function f_TC_NGAP_AMF_PDU_02() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_gnb_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger PDU session resource RELEASE!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PDUSessionResourceReleaseCommand( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { mw_pDUSessionResourceToReleaseItemRelCmd( PX_PDU_SESSION_ID, ?,//mw_pDUSessionResourceReleaseCommandTransfer(?,-),OCTETSTRING -//in template (omit) PDUSessionResourceToReleaseItemRelCmd.iE_Extensions p_iE_Extensions := omit ) } ) ) ); 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_PDU_02 } // End of group PDU_Session_Resource_Release //8.2.3 group PDU_Session_Resource_Modify{ /** * @desc Testcase function for TC_NGAP_AMF_PDU_03 */ function f_TC_NGAP_AMF_PDU_03() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_gnb_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body action("Trigger PDU session resource MODIFY!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PDUSessionResourceModify( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { mw_pDUSessionResourceModifyItemModReq( PX_PDU_SESSION_ID, ?,//mw_pDUSessionResourceModifyRequestTransfer(*),OCTETSTRING -,//template NAS_PDU p_nAS_PDU := *, -//template PDUSessionResourceModifyItemModReq.iE_Extensions p_iE_Extensions := * ) } ) ) ); 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_PDU_03 } // End of group PDU_Session_Resource_Modify //8.2.4 group PDU_Session_Resource_Notify{ } // End of group PDU_Session_Resource_Notify //8.2.5 group PDU_Session_Resource_Modify_Indication{ /** * @desc Testcase function for TC_NGAP_AMF_PDU_04 */ function f_TC_NGAP_AMF_PDU_04() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_gnb_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PDUSessionResourceModifyIndication( PX_AMF_UE_NGAP_ID,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, PX_RAN_UE_NGAP_ID,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { m_pDUSessionResourceModifyItemModInd( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, bit2oct(encvalue( m_pDUSessionResourceModifyIndicationTransfer( m_qosFlowPerTNLInformation( m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel( PX_TRANSPORT_LAYER_ADDRESS, PX_GTP_TEID, omit ) ), { m_associatedQosFlowItem( PX_QOS_FLOW_IDENTIFIER, omit, omit ) },//in template (value) AssociatedQosFlowList p_associatedQosFlowList, omit//in template (omit) QosFlowPerTNLInformation.iE_Extensions p_iE_Extensions := omit ),//template (present) QosFlowPerTNLInformation p_dLQosFlowPerTNLInformation := ?, omit,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, omit//template PDUSessionResourceModifyIndicationTransfer.iE_Extensions p_iE_Extensions := * ))), omit//template PDUSessionResourceModifyItemModRes.iE_Extensions p_iE_Extensions := * ) } ) ) ); f_recv_NGAP_PDU( mw_ngap_succMsg( mw_n2_PDUSessionResourceModifyConfirm( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { mw_pDUSessionResourceModifyItemModCfm( PX_PDU_SESSION_ID, ?,//mw_pDUSessionResourceModifyConfirmTransfer( // ?,//template (present) QosFlowModifyConfirmList p_qosFlowModifyConfirmList := ?, // ?,//template (present) UPTransportLayerInformation p_uLNGU_UP_TNLInformation := ?, // -,//template UPTransportLayerInformationPairList p_additionalNG_UUPTNLInformation := *, // -,//template QosFlowListWithCause p_qosFlowFailedToModifyList := *, // -//template PDUSessionResourceModifyConfirmTransfer.iE_Extensions p_iE_Extensions := * // ), OCTETSTRING -//template PDUSessionResourceModifyItemModCfm.iE_Extensions p_iE_Extensions := * ) } ) ) ); 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_PDU_04 /** * @desc Testcase function for TC_NGAP_AMF_PDU_05 */ function f_TC_NGAP_AMF_PDU_05() runs on gNBNGAPComponent { // Local variables // Preamble f_NGAP_gnb_init(); f_NGAP_gnb_UE_Register(); f_NGAP_gnb_UE_PDU_ResourceSetup(); f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); log("*** " & __SCOPE__ & ": INFO: Preamble done. ***"); // Body f_send_NGAP_PDU( m_ngap_initMsg( m_n2_PDUSessionResourceModifyIndication( PX_AMF_UE_NGAP_ID,//template (present) AMF_UE_NGAP_ID p_amfUeNgapID := ?, PX_RAN_UE_NGAP_ID,//template (present) RAN_UE_NGAP_ID p_ranUeNgapID := ?, { ( m_pDUSessionResourceModifyItemModInd( PX_PDU_SESSION_ID,//template (present) PDUSessionID p_pDUSessionID := ?, bit2oct(encvalue( m_pDUSessionResourceModifyIndicationTransfer( m_qosFlowPerTNLInformation( m_uPTransportLayerInformation_gTPTunnel( m_gTPTunnel( PX_TRANSPORT_LAYER_ADDRESS, PX_GTP_TEID, omit ) ), { m_associatedQosFlowItem( PX_QOS_FLOW_IDENTIFIER, omit, omit ) },//in template (value) AssociatedQosFlowList p_associatedQosFlowList, omit//in template (omit) QosFlowPerTNLInformation.iE_Extensions p_iE_Extensions := omit ),//template (present) QosFlowPerTNLInformation p_dLQosFlowPerTNLInformation := ?, omit,//template QosFlowPerTNLInformationList p_additionalDLQosFlowPerTNLInformation := *, omit//template PDUSessionResourceModifyIndicationTransfer.iE_Extensions p_iE_Extensions := * ))), omit//template PDUSessionResourceModifyItemModRes.iE_Extensions p_iE_Extensions := * ) ) } ) ) ); f_recv_NGAP_PDU( mw_ngap_succMsg( //? //FIXME missing template mw_n2_PDUSessionResourceFailedToModifyListModCfm mw_n2_PDUSessionResourceModifyConfirm( PX_AMF_UE_NGAP_ID, PX_RAN_UE_NGAP_ID, { * // mw_pDUSessionResourceFailedToModifyItemModCfm( // PX_PDU_SESSION_ID, // ?,//mw_pDUSessionResourceModifyIndicationUnsuccessfulTransfer( // // ?,//template (present) Cause p_cause := ?, // // -//template PDUSessionResourceModifyIndicationUnsuccessfulTransfer.iE_Extensions p_iE_Extensions := * // //),OCTETSTRING // *//template PDUSessionResourceFailedToModifyItemModCfm.iE_Extensions p_iE_Extensions := * // ) } ) ) ); 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_PDU_05 } // End of group PDU_Session_Resource_Modify_Indication } // End of group PDU_Session_Management_Procedures //8.3 group UE_Context_Management_Procedures{ //8.3.1 group Initial_Context_Setup{ } // End of group Initial_Context_Setup //8.3.2 group UE_Context_Release_Request_NG_RAN_node_initiated{ } // End of group UE_Context_Release_Request_NG_RAN_node_initiated //8.3.3 group UE_Context_Release_AMF_initiated{ } // End of group UE_Context_Release_AMF_initiated //8.3.4 group UE_Context_Modification{ } // 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{ } // End of group Connection_Establishment_Indication //8.3.7 group AMF_CP_Relocation_Indication{ } // End of group AMF_CP_Relocation_Indication //8.3.8 group RAN_CP_Relocation_Indication{ } // End of group RAN_CP_Relocation_Indication //8.3.9 group Retrieve_UE_Information{ } // End of group Retrieve_UE_Information //8.3.10 group UE_Information_Transfer{ } // End of group UE_Information_Transfer //8.3.11 group UE_Context_Suspend{ } // End of group UE_Context_Suspend //8.3.12 group UE_Context_Resume{ } // End of group UE_Context_Resume } // End of group UE_Context_Management_Procedures //8.4 group UE_Mobility_Management_Procedures{ //8.4.1 group Handover_Preparation{ } // End of group Handover_Preparation //8.4.2 group Handover_Resource_Allocation{ } // End of group Handover_Resource_Allocation //8.4.3 group Handover_Notification{ } // End of group Handover_Notification //8.4.4 group Path_Switch_Request{ } // End of group Path_Switch_Request //8.4.5 group Handover_Cancellation{ } // End of group Handover_Cancellation //8.4.6 group Uplink_RAN_Status_Transfer{ } // End of group Uplink_RAN_Status_Transfer //8.4.7 group Downlink_RAN_Status_Transfer{ } // End of group Downlink_RAN_Status_Transfer //8.4.8 group Handover_Success{ } // End of group Handover_Success //8.4.9 group Uplink_RAN_Early_Status_Transfer{ } // End of group Uplink_RAN_Early_Status_Transfer //8.4.10 group Downlink_RAN_Early_Status_Transfer{ } // End of group Downlink_RAN_Early_Status_Transfer } // End of group UE_Mobility_Management_Procedures //8.5 group Paging_Procedures{ //8.5.1 group Paging{ } // End of group Paging } // End of group Paging_Procedures //8.6 group Transport_of_NAS_Messages_Procedures{ //8.6.1 group Initial_UE_Message{ } // End of group Initial_UE_Message //8.6.2 group Downlink_NAS_Transport{ } // End of group Downlink_NAS_Transport //8.6.3 group Uplink_NAS_Transport{ } // End of group Uplink_NAS_Transport //8.6.4 group NAS_Non_Delivery_Indication{ } // End of group NAS_Non_Delivery_Indication //8.6.5 group Rerout_NAS_Request{ } // End of group Rerout_NAS_Request } // End of group Transport_of_NAS_Messages_Procedures //8.7 group Interface_Management_Procedures{ //8.7.1 group NG_Setup{ } // End of group NG_Setup //8.7.2 group RAN_Configuration_Update{ } // End of group RAN_Configuration_Update //8.7.3 group AMF_Configuration_Update{ } // End of group AMF_Configuration_Update //8.7.4 group NG_Reset{ } // End of group NG_Reset //8.7.5 group Error_Indication{ } // End of group Error_Indication //8.7.6 group AMF_Status_Indication{ } // End of group AMF_Status_Indication //8.7.7 group Overload_Start{ } // End of group Overload_Start //8.7.8 group Overload_Stop{ } // End of group Overload_Stop } // End of group Interface_Management_Procedures //8.8 group Configuration_Transfer_Procedures{ //8.8.1 group Uplink_RAN_Configuration_Transfer{ } // End of group Uplink_RAN_Configuration_Transfer //8.8.2 group Downlink_RAN_Configuration_Transfer{ } // End of group Downlink_RAN_Configuration_Transfer } // End of group Configuration_Transfer_Procedures //8.9 group Warning_Message_Transmission_Procedures{ //8.9.1 group Write_Replace_Warning{ /** * @desc Testcase function for TC_NGAP_aMF_WTP_01 */ function f_TC_NGAP_AMF_WTP_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 WRITE REPLACE WARNING REQUEST !"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_WriteReplaceWarningRequest( ?,// template (present) MessageIdentifier p_messageIdentifier :=?, ?,// template (present) SerialNumber p_serialNumber := ?, ?,// template (present) RepetitionPeriod p_repetitionPeriod := ?, ?// template (present) NumberOfBroadcastsRequested p_numberOfBroadcastsRequested := ? ) ) ); 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_WTP_01 } // End of group Write_Replace_Warning //8.9.2 group PWS_Cancel{ /** * @desc Testcase function for TC_NGAP_aMF_WTP_02 */ function f_TC_NGAP_AMF_WTP_02() 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 PWS CANCEL REQUEST !"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_PWSCancelRequest( ?,//template (present) MessageIdentifier p_messageIdentifier := ?, ?// template (present) SerialNumber p_serialNumber := ? ) ) ); 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_WTP_02 } // End of group PWS_Cancel //8.9.3 group PWS_Restart_Indication{ } // End of group PWS_Restart_Indication //8.9.4 group PWS_Failure_Indication{ } // End of group PWS_Failure_Indication } // End of group Warning_Message_Transmission_Procedures //8.10 group NRPPa_Transport_Procedures{ } // End of group NRPPa_Transport_Procedures //8.11 group Trace_Procedures{ //8.11.1 group Trace_Start{ /** * @desc Testcase function for TC_NGAP_aMF_TRP_01 */ function f_TC_NGAP_AMF_TRP_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 TRACE START!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_TraceStart( ?, ?, ? ) ) ); 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_TRP_01 } // End of group Trace_Start //8.11.2 group Trace_Failure_Indication{ } // End of group Trace_Failure_Indication //8.11.3 group Deactivate_Trace{ /** * @desc Testcase function for TC_NGAP_aMF_TRP_02 */ function f_TC_NGAP_AMF_TRP_02() 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 DEACTIVATE TRACE!"); f_recv_NGAP_PDU( mw_ngap_initMsg( mw_n2_DeactivateTrace( ?, ?, ? ) ) ); 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_TRP_02 } // End of group Deactivate_Trace //8.11.4 group Cell_Traffic_Trace{ } // End of group Cell_Traffic_Trace } // End of group Trace_Procedures //8.12 group Location_Reporting_Procedures{ //8.12.1 group Location_Reporting_Control{ } // End of group Location_Reporting_Control //8.12.2 group Location_Reporting_Failure_Indication{ } // End of group Location_Reporting_Failure_Indication //8.12.3 group Location_Report{ } // End of group Location_Report } // End of group Location_Reporting_Procedures //8.13 group UE_TNLA_Binding_Procedures{ //8.13.1 group UE_TNLA_Binding_Release{ } // End of group UE_TNLA_Binding_Release } // End of group UE_TNLA_Binding_Procedures //8.14 group UE_Radio_Capability_Management_Procedures{ //8.14.1 group UE_Radio_Capability_Info_Indication{ } // End of group UE_Radio_Capability_Info_Indication //8.14.2 group UE_Radio_Capability_Check{ } // End of group UE_Radio_Capability_Check //8.14.3 group UE_Radio_Capability_ID_Mapping{ } // End of group UE_Radio_Capability_ID_Mapping } // End of group UE_Radio_Capability_Management_Procedures //8.15 group Data_Usage_Reporting_Procedures{ //8.15.1 group Secondary_RAT_Data_Usage_Report{ } // End of group Secondary_RAT_Data_Usage_Report } // End of group Data_Usage_Reporting_Procedures //8.16 group RIM_Information_Transfer_Procedures{ //8.16.1 group Uplink_RIM_Information_Transfer{ } // End of group Uplink_RIM_Information_Transfer //8.16.2 group Downlink_RIM_Information_Transfer{ } // End of group Downlink_RIM_Information_Transfer } // End of group RIM_Information_Transfer_Procedures } // End of group aMF_Role } // End of module NGAP_TCFunctions