Commit 3e9ff04e authored by Yann Garcia's avatar Yann Garcia
Browse files

Review TD_VoLTE_ECO_INT_REG_01 and TD_VoLTE_ECO_INT_REG_02

parent 67f8c922
Loading
Loading
Loading
Loading
+17 −15
Original line number Original line Diff line number Diff line
@@ -181,18 +181,18 @@ module AtsImsIot_Emergency {
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                    
                    
                    // Test body
                    // Test body
                    f_mtc_check_TP_GM_PCSCF_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12
                    f_mtc_check_TP_GM_PCSCF_ECO_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_PCSCF_ECO_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_MW_ICSCF_ECO_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_ECO_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_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_GM_PCSCF_ECO_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_PCSCF_ECO_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_MW_ICSCF_ECO_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_ECO_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
                    f_mtc_check_TP_CX_HSS_SAA_01(vc_vxlte_monitor_components.cxSH);// Event 18, 19


                    // postamble
                    // postamble
@@ -239,16 +239,18 @@ module AtsImsIot_Emergency {
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                    f_mtc_userRadioEnabled ( v_ueA, true, true ); // UA-A trigger an initial network_attachment by enabling radio interface of its mobile
                    
                    
                    // Test body
                    // Test body
                    f_mtc_check_TP_GM_PCSCF_REGISTER_01(vc_vxlte_monitor_components.gmA); // Events 1, 12
                    f_mtc_check_TP_GM_PCSCF_ECO_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_PCSCF_ECO_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_MW_ICSCF_ECO_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_ECO_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_CX_HSS_MAA_01(vc_vxlte_monitor_components.cxSH);// Event 8, 9


                    f_mtc_check_TP_GM_PCSCF_REGISTER_05(vc_vxlte_monitor_components.gmA); // Events 13, 22
                    f_mtc_check_TP_GM_PCSCF_ECO_REGISTER_03(vc_vxlte_monitor_components.gmA); // Events 13, 22
                    f_mtc_check_TP_MW_PCSCF_REGISTER_05(vc_vxlte_monitor_components.mwPI); // Events 14, 21
                    f_mtc_check_TP_MW_PCSCF_ECO_REGISTER_03(vc_vxlte_monitor_components.mwPI); // Events 14, 21
                    f_mtc_check_TP_MW_ICSCF_REGISTER_05(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20
                    f_mtc_check_TP_MW_ICSCF_REGISTER_03(vc_vxlte_monitor_components.mwIS, true); // Event 17, 20

                    f_mtc_check_TP_CX_HSS_ECO_ECO_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
                    f_mtc_check_TP_CX_HSS_SAA_01(vc_vxlte_monitor_components.cxSH);// Event 18, 19


                    // postamble
                    // postamble
+97 −0
Original line number Original line Diff line number Diff line
@@ -501,6 +501,103 @@ group g_HSS {
        }
        }
    } // End of function f_mtc_check_TP_CX_HSS_UAA_01
    } // End of function f_mtc_check_TP_CX_HSS_UAA_01


    /**
     * Starts monitor component behavior for f_mtc_check_TP_CX_HSS_ECO_UAA_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "IUT successfully processes all mandatory AVPs in a UA-Request received due to first UE initial registration and sends UA-Answer."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_I_CSCF_A entity sends a UAR containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *                 indicating value NO_STATE_MAINTAINED,
     *             Origin_Host_AVP
     *             Origin_Realm_AVP
     *             Public_Identity_AVP
     *             Visited_Network_Identifier_AVP
     *             User_Authorization_Type_AVP 
     *                 indicating value REGISTRATION,
     *             User_Name_AVP
     *             Destination_Host_AVP
     *             Destination_Realm_AVP
     *             UAR_Flags_AVP 
     *                 indicating value IMS_Emergency_Registration_bit_not_set
     *             ;
     *         to the IMS_HSS_A entity
     *     }
     *     then {
     *         the IMS_HSS_A entity sends the UAA containing
     *             Session_ID_AVP
     *             Vendor_Specific_Application_Id_AVP
     *             Auth_Session_State_AVP
     *             Origin_Host_AVP
     *             Origin_Realm_AVP 
     *             not Result_Code_AVP
     *             Experimental_Result_AVP containing
     *                 Experimental_Result_Code_AVP 
     *                     indicating value DIAMETER_FIRST_REGISTRATION
     *                 ;
     *             ;
     *         to the IMS_I_CSCF_A entity
     *     }
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.4
     */
    function f_mtc_check_TP_CX_HSS_ECO_UAA_01(
        DiameterInterfaceMonitor p_monitorCompRef,
        in boolean p_checkMessage := false,
        in boolean p_forward_to_mtc := false
    ) runs on ImsTestCoordinator {
        if (isvalue(p_monitorCompRef)){
            var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
            var charstring v_publicIdentity := "sip:"&v_userInfoA.publicId&"@"&v_userInfoA.domain;
            //"sip:"&v_userInfoA.publicId&@&v_userInfoA.domain
            p_monitorCompRef.start (
              f_Iot_Diameter_receive(
                  {
                      DIAMETER_MSG:{uAR_MSG := mw_UAR_Registration(mw_publicIdentity(v_publicIdentity))}
                  },
                  {
                      DIAMETER_MSG:{uAR_MSG := mw_UAR_basic}
                  },
                  {0, omit},
                  "TP_CX_HSS_UAA_01 - UAR",
                  p_forward_to_mtc,
                  p_checkMessage 
              )
            );
            p_monitorCompRef.done;
        
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        DIAMETER_MSG:{uAA_MSG := mw_UAA_diamFirstRegistration}
                    },
                    {
                        DIAMETER_MSG:{uAA_MSG := mw_UAA_basic}
                    },
                    {0, omit},
                    "TP_CX_HSS_UAA_01 - UAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_CX_HSS_ECO_UAA_01

    /**
    /**
     * Starts monitor component behavior for TP_CX_HSS_UAA_02
     * Starts monitor component behavior for TP_CX_HSS_UAA_02
     * @param p_monitorCompRef Reference to monitor component
     * @param p_monitorCompRef Reference to monitor component
+209 −0
Original line number Original line Diff line number Diff line
@@ -220,6 +220,117 @@ module AtsImsIot_TP_behavior_GM {
            }
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_REGISTER_01
        } // End of function f_mtc_check_TP_GM_PCSCF_REGISTER_01
        
        
        /**
         * @desc Verify that the P-CSCF successfully processes a first registration (Successful)
         * Initial conditions with {
         *     the UE_A entity isAttachedTo the EPC_A and
         *     the UE_A entity isNotRegisteredTo the IMS_A and
         *     the UE_B entity isNotRegisteredTo the IMS_B
         * }
         * 
         * Expected behaviour
         *     ensure that {
         *         when {
         *             the UE_A entity isTriggeredToStart
         *         }
         *         then {
         *             the UE_A entity sends a REGISTER containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Authorization containing
         *                     Authentication_Schema indicating value PX_TO_BE_DEFINED,
         *                     Authentication_URI indicating value PX_TO_BE_DEFINED,
         *                     Username indicating value PX_UE_A_USERNAME,
         *                     Realm indicating value PX_UE_A_REALM,
         *                     Algorithm indicating value PX_UE_A_AUTH_ALG,
         *                     Nonce indicating value "",
         *                     not term_ioi,
         *                 not SecurityClient
         *                 ;;
         *             to the IMS_P_CSCF_A entity
         *             and the UE_A entity receives an 401_Unauthorized containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Path,
         *                 Warning,
         *                 PAccessNetworkInfo,
         *                 WwwAuthenticate containing
         *                     Digest,
         *                     Realm indicating value PX_UE_A_REALM,
         *                     Algorithm indicating value PX_UE_A_AUTH_ALG,
         *                     Nonce indicating value "not empty",
         *                     qop indicating value "auth"
         *                 ;,
         *                 Contact indicating value "sos"
         *                 ;
         *             from the IMS_P_CSCF_A entity
         *         }
         *     }
         */
        function f_mtc_check_TP_GM_PCSCF_ECO_REGISTER_01(
                                                         in SipInterfaceMonitor p_monitorCompRef,
                                                         in boolean p_checkMessage := false
                                                         ) runs on ImsTestCoordinator {
            if (isvalue(p_monitorCompRef)) {
                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A);
                var SipMessage v_sip;
                
                // Check the first REGISTER
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                         { 
                                                            mw_SipRequest(
                                                                          mw_TP_GM_PCSCF_ECO_REGISTER_01( // FIXME Add CallId...
                                                                                                         mw_From_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
                                                                                                         mw_To_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
                                                                                                         mw_Authorization_other,
                                                                                                         -, -,
                                                                                                         mw_contact(mw_ContactAddress)
                                                                                                         )
                                                                          )
                                                        },
                                                        { 
                                                            mw_SipRequest(mw_REGISTER_Request_Base)
                                                        },
                                                        {0, omit},
                                                        "TP_GM_PCSCF_REGISTER_01 - First request",
                                                        true,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
                // Retrieve messge
                f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
                if (not(isbound(v_sip))) {
                    return;
                }
                // Check REGISTER 401 Unauthorized response
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                        { 
                                                            mw_SipResponse(mw_401Unauthorized(v_sip.request.msgHeader.cSeq, mw_WwwAuthenticate))
                                                        },
                                                        {
                                                            mw_SipResponse(mw_401Unauthorized_Base),
                                                            mw_SipResponse(mw_Response_4xx_Base(
                                                                                                v_sip.request.msgHeader.callId,
                                                                                                v_sip.request.msgHeader.cSeq
                                                                                                )) 
                                                        },
                                                        {0, omit},
                                                        "TP_GM_PCSCF_REGISTER_01 - 401 Unauthorized",
                                                        false,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_ECO_REGISTER_01
        
        /**
        /**
         * @desc Verify that the P-CSCF successfully processes a first registration (Successful)
         * @desc Verify that the P-CSCF successfully processes a first registration (Successful)
         * Initial conditions with {
         * Initial conditions with {
@@ -424,6 +535,104 @@ module AtsImsIot_TP_behavior_GM {
            }
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_REGISTER_03
        } // End of function f_mtc_check_TP_GM_PCSCF_REGISTER_03
        
        
        /**
         * @desc Verify that the P-CSCF successfully processes an invalid first registration (Unsuccessful).
         * Initial conditions with {
         *     the UE_A entity isAttachedTo the EPC_A and
         *     the UE_A entity isNotRegisteredTo the IMS_A and
         *     the UE_B entity isNotRegisteredTo the IMS_B
         * }
         * 
         * Expected behaviour
         *     ensure that {
         *         when {
         *             the UE_A entity isTriggeredToStart
         *         }
         *         then {
         *             the IMS_P_CSCF_A entity receives a REGISTER containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID,
         *                 Via indicating value PX_UE_A_VIA,
         *                 Authorization containing
         *                     Authentication_Schema indicating value PX_TO_BE_DEFINED,
         *                     Authentication_URI indicating value PX_TO_BE_DEFINED,
         *                     Username indicating value PX_UE_A_INVALID_USERNAME,
         *                     Realm indicating value PX_UE_A_REALM,
         *                     Algorithm indicating value PX_UE_A_AUTH_ALG,
         *                     Nonce indicating value ""
         *                 ;;
         *             from the UE_A entity
         *             and the IMS_P_CSCF_A entity sends an 404_NotFound containing
         *                 From indicating value PX_UE_A_SIP_URI,
         *                 To indicating value PX_UE_A_SIP_URI,
         *                 CallId indicating value PX_UE_A_CALLID
         *                 ;
         *             to the UE_A entity
         *         }
         *     }
         */
        function f_mtc_check_TP_GM_PCSCF_ECO_REGISTER_03(
                                                         in SipInterfaceMonitor p_monitorCompRef,
                                                         in boolean p_checkMessage := false
                                                         ) runs on ImsTestCoordinator {
            if (isvalue(p_monitorCompRef)) {
                var ImsUserInfo v_userInfoA := f_getSipUserId(PX_EUT_A); // User removed from HSS
                var SipMessage v_sip;
                
                // Check the first REGISTER
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                         { 
                                                            mw_SipRequest(
                                                                          mw_TP_GM_PCSCF_ECO_REGISTER_03(
                                                                                                         mw_From_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
                                                                                                         mw_To_AddrUnion_SipUrl(omit, v_userInfoA.publicId, v_userInfoA.domain),
                                                                                                         mw_Authorization_other,
                                                                                                         -, -,
                                                                                                         mw_contact(mw_ContactAddress)
                                                                                                         )
                                                                          )
                                                        },
                                                        { 
                                                            mw_SipRequest(mw_REGISTER_Request_Base)
                                                        },
                                                        {0, omit},
                                                        "TP_GM_PCSCF_REGISTER_03 - First request",
                                                        true,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
                // Retrieve messge
                f_getSipMsgFromMonitor(p_monitorCompRef, v_sip);
                if (not(isbound(v_sip))) {
                    return;
                }
                log("v_sip", v_sip);
                // Check REGISTER 404 Not Found response
                p_monitorCompRef.start(
                                       f_Iot_Sip_receive(
                                                        { 
                                                            mw_SipResponse(mw_404NotFound(v_sip.request.msgHeader.cSeq/*, mw_WwwAuthenticate*/)),
                                                            mw_SipResponse(mw_480TemporaryUnavailable(-, v_sip.request.msgHeader.cSeq/*, mw_WwwAuthenticate*/))
                                                        },
                                                        {
                                                            mw_SipResponse(mw_Response_4xx_Base(
                                                                                                v_sip.request.msgHeader.callId,
                                                                                                v_sip.request.msgHeader.cSeq
                                                                                                )) 
                                                        },
                                                        {0, omit},
                                                        "TP_GM_PCSCF_REGISTER_03 - 404 Not Found",
                                                        false,
                                                        p_checkMessage
                                                        )
                                       );
                p_monitorCompRef.done;
            }
        } // End of function f_mtc_check_TP_GM_PCSCF_ECO_REGISTER_03
        
        function f_mtc_check_TP_GM_PCSCF_REGISTER_04( // FIXME RMI To be reviewed
        function f_mtc_check_TP_GM_PCSCF_REGISTER_04( // FIXME RMI To be reviewed
                                                     in SipInterfaceMonitor p_monitorCompRef,
                                                     in SipInterfaceMonitor p_monitorCompRef,
                                                     in boolean p_checkMessage := false
                                                     in boolean p_checkMessage := false
+197 −0

File changed.

Preview size limit exceeded, changes collapsed.

+222 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading