Skip to content
AtsImsIot_Emergency.ttcn 68.6 KiB
Newer Older
/**
 *  @author     TTF 010
 *  @version    $Id: $
 *  @desc       This module provides ATS specific test case definitions for IMS Emergency calls.
 *  @see        ETSI TS 103 795-2
 */
module AtsImsIot_Emergency {

    // LibCommon
    // LibSip
    // LibIms
    import from LibIms_UpperTester all;
    // LibIot
    import from LibIot_TestInterface all;
    import from LibIot_TestConfiguration all;
    import from LibIot_PIXITS all;
    import from LibIot_VxLTE_PIXITS all;
    import from LibIot_VxLTE_Functions all;
    // LibImsIot
    import from AtsImsIot_Functions all;
    // ImsIot
    import from AtsImsIot_TestConfiguration all; 
    import from AtsImsIot_TestSystem all; 
    import from AtsImsIot_Functions all; 
    import from AtsImsIot_TP_behavior_GM all;
    import from AtsImsIot_TP_behavior_MW_PS all;
    import from AtsImsIot_TP_behavior_MW_SI all;
    import from AtsImsIot_TP_behavior_MW_IS all;
    import from AtsImsIot_TP_behavior_MW_EC all;
    import from AtsImsIot_TP_behavior_MW_EB all;
    import from AtsImsIot_TP_behavior_MM all;
    import from AtsImsIot_TP_behavior_IC all;
    import from AtsImsIot_TP_behavior_CX all;
    import from AtsImsIot_TP_behavior_GX all;
    import from AtsImsIot_TP_behavior_ISC all;
    import from AtsImsIot_TP_behavior_S6A all;
    import from AtsImsIot_TP_behavior_S9 all;
    import from AtsImsIot_TP_behavior_SH all;
    import from AtsImsIot_TP_behavior_RX all;

    /**
      * @see ETSI TS 103 795-2 Clause 5	Test Descriptions (Interoperability at HPLMN)
      */
    group Interoperability {

        /**
         * @see ETSI TS 103 795-2 Clause 5.1	Network Attachment
         */
        group NetworkAttachment {

            group UENetworkAttachmentWithUSIM {
				/**
				 * @desc    Emergency Network Attachment and Establishment of the Emergency Bearer with USIM.
				 * On successful emergency attachment, the UE/IVS should discover the P-CSCF IP address.
				 * The EPC will create the Emergency Bearers which will allow communication only between the UE and the P-CSCF
				 * and allowed forwarding towards E-CSCF
				 * @see TS 124 229 [2], clause 9.2.1 and L.2.2.6; TS 129 212 [7], clauses 4.5.15 and 4a.5.12; 
				 * TS 129 272 [8], clause 5.2.1.1 (MME shall proceed even if Update Location fails)
				 * 
				 */
				testcase TC_VoLTE_ECO_INT_ATT_01 ( ) runs on ImsTestCoordinator system IotSystemInterface {
    
					var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
					var ImsUserInfo v_userInfoA    := f_getImUser ( PX_EUT_A );
    
					f_setVxLteMonIterfacesAvailability();
					//Check required monitor interfaces due to TD
					if (f_checkVxLteRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME})){
						f_cf_createVxLteMonitor();    
        
						// map/connect component ports
						f_cf_adapter_up ( );
						f_cf_user_up ( v_ueA );
						f_cf_VxLteMonitor_Up();
        
						// preamble
						f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
        
						// test body
						// Check that user A starts initial network attachment
						f_mtc_check_TP_S6A_MME_ULR_01 ( vc_vxlte_monitor_components.s6a, true ); // Check (ULR – Event 2)
						f_mtc_check_TP_S6A_HSS_ECO_ULA_01 ( vc_vxlte_monitor_components.s6a);        // Check (ULA – Event 3) 
						f_mtc_check_TP_GX_PCRF_ECO_CCA_01 ( vc_vxlte_monitor_components.gx); // Check (CCR, CCA – Events 4, 5)
        
						// postamble
						f_mtc_userRadioEnabled ( v_ueA, false, true );
        
						//unmap/disconnect component ports
						f_cf_user_down ( v_ueA );
						f_cf_VxLteMonitor_Down();
						f_cf_adapter_down ( );
					}else{
						//log...
						setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
					}
				} // End of TC TC_VoLTE_ECO_INT_ATT_01
            } // End of group UENetworkAttachmentWithUSIM

            group UENetworkAttachmentWithoutUSIM {
				/**
				 * @desc    Emergency Network Attachment and Establishment of the Emergency Bearer without USIM.
				 * On successful emergency attachment, the UE/IVS should discover the P-CSCF IP address.
				 * The EPC will create the Emergency Bearers which will allow communication only between the UE and the P-CSCF
				 * and allowed forwarding towards E-CSCF
				 * @see TS 124 229 [2], clause 9.2.1 and L.2.2.6; TS 129 212 [7], clauses 4.5.15 and 4a.5.12; 
				 * TS 129 272 [8], clause 5.2.1.1 (MME shall proceed even if Update Location fails)
				 * 
				 */
				testcase TC_VoLTE_ECO_INT_ATT_02 ( ) runs on ImsTestCoordinator system IotSystemInterface {

					var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
					var ImsUserInfo v_userInfoA    := f_getImUser ( PX_EUT_A );

					f_setVxLteMonIterfacesAvailability();
					//Check required monitor interfaces due to TD
					if (f_checkVxLteRequiredMonitorInterface({PX_DIAMETER_GX_INTERFACENAME,PX_DIAMETER_S6A_INTERFACENAME})){
						f_cf_createVxLteMonitor();    
						// map/connect component ports
						f_cf_adapter_up ( );
						f_cf_user_up ( v_ueA );
						f_cf_VxLteMonitor_Up();

						// preamble
						f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile

						// test body
						// Check that user A starts initial network attachment
						f_mtc_check_TP_S6A_MME_ULR_01 ( vc_vxlte_monitor_components.s6a, true ); // Check (ULR – Event 2)
						f_mtc_check_TP_S6A_HSS_ECO_ULA_01 ( vc_vxlte_monitor_components.s6a);        // Check (ULA – Event 3) 
						f_mtc_check_TP_GX_PCRF_ECO_CCA_02 ( vc_vxlte_monitor_components.gx); // Check (CCR, CCA – Events 4, 5)

						// postamble
						f_mtc_userRadioEnabled ( v_ueA, false, true );

						//unmap/disconnect component ports
						f_cf_user_down ( v_ueA );
						f_cf_VxLteMonitor_Down();
						f_cf_adapter_down ( );
					}else{
						//log...
						setverdict (inconc,"At least one required monitor interface SHALL be selected! Check PIXITs")
					}
				} // End of TC TC_VoLTE_ECO_INT_ATT_02
            } // End of group UENetworkAttachmentWithoutUSIM

        } // End of group NetworkAttachment

        /**
         * @see ETSI TS 103 795-2 Clause 5.2	IMS Emergency Registration
         */
        group EmergencyRegistration {

            /**
             * @desc    To perform emergency registration via the established emergency bearer. Note that some UEs perform emergency registration automatically on attachment - in which case this test becomes merged with the previous ones.
             * @see ETSI TS 103 795-2 Clause 5.2.1	IMS Emergency Registration - Successful
             */
            testcase TD_VoLTE_ECO_INT_REG_01() runs on ImsTestCoordinator system IotSystemInterface {
                
                var IotEquipmentUser v_ueA    := f_cf_create_IotEquipmentUser ( c_userUE_A );
                var ImsUserInfo v_userInfoA   := f_getSipUserId ( PX_EUT_A );
                
                f_setVxLteMonIterfacesAvailability();
                //Check required monitor interfaces due to TD
                if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME,
                                                          PX_SIP_MW_PI_INTERFACENAME,
                                                          PX_SIP_MW_IS_INTERFACENAME,
                                                          PX_DIAMETER_CX_SH_INTERFACENAME,
                                                          PX_DIAMETER_CX_IH_INTERFACENAME,
                                                          PX_DIAMETER_RX_INTERFACENAME,
                                                          PX_DIAMETER_GX_INTERFACENAME}))
                {  
                    f_cf_createVxLteMonitor();    

                    // map/connect component ports
                    f_cf_adapter_up ( );
                    f_cf_user_up ( v_ueA );
                    f_cf_VxLteMonitor_Up();

                    // preamble
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                    
                    // Test body
                    f_mtc_check_TP_GM_PCSCF_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12
                    f_mtc_check_TP_MW_PCSCF_REGISTER_01(vc_vxlte_monitor_components.mwPI); // Event 4, 11
                    f_mtc_check_TP_MW_ICSCF_REGISTER_01(vc_vxlte_monitor_components.mwIS, true); // Event 7, 10

                    f_mtc_check_TP_CX_HSS_UAA_01(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 5, 6
                    f_mtc_check_TP_CX_HSS_MAA_01(vc_vxlte_monitor_components.cxSH);// Event 8, 9

                    f_mtc_check_TP_GM_PCSCF_REGISTER_02(vc_vxlte_monitor_components.gmA); // Events 13, 22
                    f_mtc_check_TP_MW_PCSCF_REGISTER_02(vc_vxlte_monitor_components.mwPI); // Events 14, 21
                    f_mtc_check_TP_MW_ICSCF_REGISTER_02(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20
                    
                    f_mtc_check_TP_CX_HSS_UAA_02(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 15, 16
                    f_mtc_check_TP_CX_HSS_SAA_01(vc_vxlte_monitor_components.cxSH);// Event 18, 19

                    // postamble
                    f_PO_user_home_deregistration ( v_ueA );
                    f_mtc_userRadioEnabled ( v_ueA, false, true );
Loading full blame...