Commit f3c8bec3 authored by Bostjan Pintar's avatar Bostjan Pintar
Browse files

TDs roaming for attachmnet and registration

parent b9d5778b
Loading
Loading
Loading
Loading
+209 −0
Original line number Diff line number Diff line
@@ -3272,6 +3272,102 @@ module AtsImsIot_Emergency {
         */
        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_RMI_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_RMI_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_EMC_RMI_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_EMC_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_RMI_ATT_02
            } // End of group UENetworkAttachmentWithoutUSIM

        } // End of group NetworkAttachment

        /**
@@ -3279,8 +3375,121 @@ module AtsImsIot_Emergency {
         */
        group IMSEmergencyRegistration {

            /**
             * @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 6.2.1    IMS Emergency Registration - Rejection
             * @remark This is option 1: Emergency registration rejected by the visited network
             */
            testcase TD_VoLTE_ECO_RMI_REG_01_01() runs on ImsTestCoordinator system IotSystemInterface {

                var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A_EMERGENCY );

                f_setVxLteMonIterfacesAvailability();
                //Check required monitor interfaces due to TD
                if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME,
                                                          PX_SIP_MW_PI_INTERFACENAME,
                                                          PX_DIAMETER_CX_SH_INTERFACENAME,
                                                          PX_DIAMETER_CX_IH_INTERFACENAME,
                                                          PX_DIAMETER_RX_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_ECO_REGISTER_04(vc_vxlte_monitor_components.gmA); // Events 1, 8
                    

                    //f_mtc_check_TP_RX_PCSCF_ECO_AAR_01(vc_vxlte_monitor_components.rx, true);// Event 2 //true because AAR repeated in next TP
                    //f_mtc_check_TP_RX_PCRF_ECO_AAA_01(vc_vxlte_monitor_components.rx); // Event 3
                    
                    //f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_04(vc_vxlte_monitor_components.mwPI); // Event 4, 7

                    //f_mtc_check_TP_CX_HSS_ECO_UAA_03(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 5, 6

                    // 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_RMI_REG_01_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 6.2.1    IMS Emergency Registration - Rejection
             * @remark This is option 1: Emergency registration rejected - UE not supporting GIBA
             */
            testcase TD_VoLTE_ECO_RMI_REG_01_02() runs on ImsTestCoordinator system IotSystemInterface {

                var IotEquipmentUser v_ueA  := f_cf_create_IotEquipmentUser ( c_userUE_A_emergency );
                var ImsUserInfo v_userInfoA := f_getSipUserId ( PX_EUT_A_EMERGENCY );

                f_setVxLteMonIterfacesAvailability();
                //Check required monitor interfaces due to TD
                if (f_checkVxLteRequiredMonitorInterface({PX_SIP_GMA_INTERFACENAME,
                                                          PX_SIP_MW_PI_INTERFACENAME,
                                                          PX_DIAMETER_CX_SH_INTERFACENAME,
                                                          PX_DIAMETER_CX_IH_INTERFACENAME,
                                                          PX_DIAMETER_RX_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_ECO_REGISTER_05(vc_vxlte_monitor_components.gmA); // Events 1, 10
                    

                    //f_mtc_check_TP_RX_PCSCF_ECO_AAR_01(vc_vxlte_monitor_components.rx, true);// Event 2 //true because AAR repeated in next TP
                    //f_mtc_check_TP_RX_PCRF_ECO_AAA_01(vc_vxlte_monitor_components.rx); // Event 3
                    
                    //f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_05(vc_vxlte_monitor_components.mwPI); // Event 4, 9

                    f_mtc_check_TP_CX_HSS_UAA_03(f_getCxInterface(PX_DIAMETER_CX_SINGLE_INTERFACE));// Event 5, 6

                    // 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_RMI_REG_01_02

        } // End of group IMSEmergencyRegistration
        
         /**
         * @see ETSI TS 103 795-3 Clause 6.3    Emergency Session Establishment(Roaming)
         */
        group EmergencySessionEstablishmentRoaming {
        
        } // End of group EmergencySessionEstablishmentRoaming

    } // End of group Roaming

} // End of module AtsImsIot_Emergency