AtsImsIot_Emergency.ttcn 10.3 KB
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 { type ImsUserInfo };
    // LibIot
    import from LibIot_TestInterface { type IotEquipmentUser };
    import from LibIot_TestConfiguration { function f_cf_create_IotEquipmentUser };
    import from LibIot_PIXITS { modulepar PX_EUT_A, PX_EUT_B, PX_EUT_C };
    import from LibIot_VxLTE_PIXITS all;
    import from LibIot_VxLTE_Functions all;
    // LibImsIot
    import from AtsImsIot_Functions { function f_getImUser };
    // 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_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 {

            } // End of group UENetworkAttachmentWithUSIM

            group UENetworkAttachmentWithoutUSIM {

            } // 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 );
        
                    //unmap/disconnet 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 testcase TD_VoLTE_ECO_INT_REG_01

            /**
             * @desc    To attempt initial emergency registration via the established emergency bearer. In this case, the emergency registration is not successful due to not accepted UE credentials. Emergency call can be established without emergency registration.
             * @see ETSI TS 103 795-2 Clause 5.2.2	IMS Emergency Registration - Unsuccessful
             */
            testcase TD_VoLTE_ECO_INT_REG_02() 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_04(vc_vxlte_monitor_components.gmA); // Events 13, 22
                    f_mtc_check_TP_MW_PCSCF_REGISTER_04(vc_vxlte_monitor_components.mwPI); // Events 14, 21
                    f_mtc_check_TP_MW_ICSCF_REGISTER_04(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20
                    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 );
        
                    //unmap/disconnet 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 testcase TD_VoLTE_ECO_INT_REG_02

        } // End of group EmergencyRegistration

        /**
         * @see ETSI TS 103 795-2 Clause 5.3	Emergency Session and Emergency Bearer Operations
         */
        group EmergencySessionEmergencyBearerOperations {

        } // End of group EmergencySessionEmergencyBearerOperations

        /**
         * @see ETSI TS 103 795-2 Clause 5.4	Emergency Deregistration
         */
        group EmergencyNetworkDetachment {

            group EmergencySessionEstablishment {

            } // End of group EmergencySessionEstablishment

            group EmergencySessionRelease {

            } // End of group EmergencySessionRelease

            group EmergencySessionAbortOrReject {

            } // End of group EmergencySessionAbortOrReject

        } // End of group EmergencyNetworkDetachment

    } // End of group Interoperability

    /**
      * @see ETSI TS 103 795-2 Clause 6	Test Descriptions (Roaming)
      */
    group Roaming {

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

        } // End of group NetworkAttachment

        /**
         * @see ETSI TS 103 795-2 Clause 6.2	IMS Emergency Registration in a visited network
         */
        group IMSEmergencyRegistration {

        } // End of group IMSEmergencyRegistration

    } // End of group Roaming

} // End of module AtsImsIot_Emergency