Commit 0fb59bad authored by Bostjan Pintar's avatar Bostjan Pintar
Browse files

New TPs for roaming attachmnet and registration added

parent f3c8bec3
Loading
Loading
Loading
Loading
+58 −0
Original line number Diff line number Diff line
@@ -215,6 +215,18 @@ module AtsImsIot_Diameter_Templates {
                aVP_Data   := p_avpData
            }
            
            template AF_Requested_Data_AVP mw_aF_Requested_Data(template (present) UInt32 p_avpData := ?) :=
            {
                aVP_Header := mw_aVP_Header_any_Code(?),
                aVP_Data := p_avpData
            };
            
            template Service_URN_AVP mw_service_URN(template (present) octetstring p_avpData := ?) :=
            {
                aVP_Header := mw_aVP_Header_any_Code(c_service_URN_AVP_Code),
                aVP_Data := p_avpData
            };
            
        } //end group RxHeaderFields
        group GxHeaderFields{

@@ -893,6 +905,27 @@ module AtsImsIot_Diameter_Templates {
                    }
                }

                template AAR_MSG mw_AAR_AfRequestedData_ServiceUrn modifies mw_AAR_basic := {
                    aAR_Body :={
                        //media_Component_Description := {mw_mediaComponentDescription_FlowStatusEnabled},
                        specific_Action := *,
                        framed_IP_Address := ?,
                        //framed_IPv6_Address := *,
                        aF_Requested_Data := mw_aF_Requested_Data,
                        service_URN := mw_service_URN
                    }
                }

                template AAR_MSG mw_AAR_ServiceUrn modifies mw_AAR_basic := {
                    aAR_Body :={
                        //media_Component_Description := {mw_mediaComponentDescription_FlowStatusEnabled},
                        specific_Action := *,
                        framed_IP_Address := ?,
                        //framed_IPv6_Address := *,
                        service_URN := mw_service_URN
                    }
                }

                template ASR_MSG mw_ASR_abortCause(template (present) Abort_Cause_Type p_avpData) modifies mw_ASR_basic := {
                    aSR_Body :={
                        abort_cause := mw_abortCause(p_avpData)
@@ -959,6 +992,31 @@ module AtsImsIot_Diameter_Templates {
                    }
                }
                
                template AAA_MSG mw_AAA_resultCode_subscriptionId_userEquipmentInfo modifies mw_AAA_basic := {
                    aAA_Body :={
                        result_Code := mw_resultCode(mw_resultCode_diameterSuccess),
                        user_Equipment_Info := ?,
                        subscription_Id_AVP := ?
                        
                    }
                }
                
                template AAA_MSG mw_AAA_resultCode_userEquipmentInfo modifies mw_AAA_basic := {
                    aAA_Body :={
                        result_Code := mw_resultCode(mw_resultCode_diameterSuccess),
                        user_Equipment_Info := ?
                        
                    }
                }
                
                template AAA_MSG mw_AAA_resultCode_subscriptionId modifies mw_AAA_basic := {
                    aAA_Body :={
                        result_Code := mw_resultCode(mw_resultCode_diameterSuccess),
                        subscription_Id_AVP := ?
                        
                    }
                }
                
                template ASA_MSG mw_ASA_resultCode modifies mw_ASA_basic := {
                    aSA_Body :={
                        result_Code := mw_resultCode(mw_resultCode_diameterSuccess)
+7 −7
Original line number Diff line number Diff line
@@ -3407,12 +3407,12 @@ module AtsImsIot_Emergency {
                    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_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_MW_ICSCF_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
                    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 );
@@ -3460,10 +3460,10 @@ module AtsImsIot_Emergency {
                    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_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_MW_ICSCF_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

+231 −0
Original line number Diff line number Diff line
@@ -194,6 +194,111 @@ group g_PCRF_AAA {
        }
    } // End of function f_mtc_check_TP_RX_PCRF_AAA_01

    /**
     * Starts monitor component behavior for TP_RX_PCRF_ECO_AAA_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT after AA-Request is received due to provisioning of AF Signalling flow sends AA-Answer."
     * ensure that {
     *     when {
     *         the IMS_P_CSCF_A entity sends an AAR
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the AAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS,
     *             Acceptable_Service_Info_AVP containing
     *                 "one or more" Media_Component_Description_AVP containing
     *                     Media_Component_Number_AVP
     *                         indicating value 0,
     *                     Media_Sub_Component_AVP containing
     *                         Flow_Description_AVP
     *                         Flow_Usage_AVP
     *                             indicating value AF_SIGNALING,
     *                         Flow_Status_AVP
     *                             indicating value ENABLED,
     *                         AF_Signalling_Protocol_AVP
     *                             indicating value SIP
     *                     ;
     *                 ;
     *             ;,
     *             IP_CAN_AVP
     *             RAT_Type_AVP
     *         ;
     *         to the IMS_P_CSCF_A entity
     *         }
     *     }
     *     
     * ensure that {
     *     when {
     *         the IMS_P_CSCF_A entity sends an AAR
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the AAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             Subscription_Id_AVP containing
     *                 Subscription_Id_Type_AVP
     *                     indicating value END_USER_IMSI;, //or END_USERE_164   
     *             "and/or" 
     *             User_Equipment_Info_AVP containing
     *                 User_Equipment_Info_Type
     *                     indicating value IMEISV,
     *                 User_Equipment_Info_Value;;  
     *         to the IMS_P_CSCF_A entity
     *     }
     * </pre>
     * @see TS 103 653-1 clause 7.6
     */
    function f_mtc_check_TP_RX_PCRF_ECO_AAA_01(
        DiameterInterfaceMonitor p_monitorCompRef,
        in boolean p_checkMessage := false,
        in boolean p_forward_to_mtc := false
    ) runs on ImsTestCoordinator {
        if (isvalue(p_monitorCompRef)){
            var template DIAMETER_MSG mw_diameter_msg_pass := { aAR_MSG := mw_AAR_basic };
            var template DIAMETER_MSG mw_diameter_msg_fail := { aAR_MSG := mw_AAR_dummy };
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                    },
                    {
                        mw_diameter_msg_fail
                    },
                    {0, omit},
                    "TP_RX_PCRF_ECO_AAA_01 - AAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
            mw_diameter_msg_pass := { aAA_MSG := (mw_AAA_resultCode_subscriptionId_userEquipmentInfo,
                                                  mw_AAA_resultCode_userEquipmentInfo,
                                                  mw_AAA_resultCode_subscriptionId)
                                                  };
            mw_diameter_msg_fail := { aAA_MSG := mw_AAA_basic };
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                    },
                    {
                        mw_diameter_msg_fail
                    },
                    {0, omit},
                    "TP_RX_PCRF_ECO_AAA_01 - AAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_RX_PCRF_ECO_AAA_01

    /**
     * Starts monitor component behavior for TP_RX_PCRF_AAA_02
     * @param p_monitorCompRef Reference to monitor component
@@ -581,6 +686,70 @@ group g_PCSCF_AAR {
		}
    } // End of function f_mtc_check_TP_RX_PCSCF_AAR_01

    /**
     * Starts monitor component behavior for TP_RX_PCSCF_ECO_AAR_01
     * @param p_monitorCompRef Reference to monitor component
     * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
     * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
     * <pre>
     * Test objective  "Verify that IUT after 2XX_Response on REGISTER sends an AA-Request due to provisioning of AF Signalling flow."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_A and
     *     the UE_A entity not isEmergencyRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a 200_Response_REGISTER
     *         to the IMS_P_CSCF_A entity
     *     }
     *     then {
     *         the IMS_P_CSCF_A entity sends an AAR containing
     *             Framed_IPv4_Address_AVP 
     *                 indicating value "IPv4_Address of UE_A",
     *             "or" Framed_IPv6_Address_AVP 
     *                 indicating value "IPv6_Address of UE_A",
     *             AF_Requested_Data_AVP
     *                 indicating value "EPC-level identities required",
     *             Service_URN_AVP
     *                 indicating value "sos*";
     *         to the EPC_PCRF_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 795-1 clause 7.6
     */
    function f_mtc_check_TP_RX_PCSCF_ECO_AAR_01(
        DiameterInterfaceMonitor p_monitorCompRef,
        in boolean p_checkMessage := false,
        in boolean p_forward_to_mtc := false
    ) runs on ImsTestCoordinator {
        if (isvalue(p_monitorCompRef)){
            var template DIAMETER_MSG mw_diameter_msg_pass := { aAR_MSG := mw_AAR_AfRequestedData_ServiceUrn };
            var template DIAMETER_MSG mw_diameter_msg_fail := { aAR_MSG := mw_AAR_basic };
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                    },
                    {
                        mw_diameter_msg_fail
                    },
                    {0, omit},
                    "TP_RX_PCSCF_ECO_AAR_01 - AAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_RX_PCSCF_ECO_AAR_01

    /**
     * Starts monitor component behavior for TP_RX_PCSCF_AAR_02
     * @param p_monitorCompRef Reference to monitor component
@@ -638,6 +807,68 @@ group g_PCSCF_AAR {
        }
    } // End of function f_mtc_check_TP_RX_PCSCF_AAR_02

    /**
     * Starts monitor component behavior for TP_RX_PCSCF_ECO_AAR_02
     * @param p_monitorCompRef Reference to monitor component
     * @param p_checkMessage indicate if the incomming message should only be checked (port.check) or consumed (port.receive). 
     * The check operation allows read access to the top element of incoming port queues without removing the top element from the queue.
     * <pre>
     * Test objective  "Verify that IUT send AA-Request in case of emergency session establishment for originating side after INVITE is received."
     *
     * <pre>
     * 
     * Config Id CF_VoLTE_INT_ES
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_A and
     *     the UE_A entity not isEmergencyRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_S_CSCF_A entity sends a 200_Response_REGISTER
     *         to the IMS_P_CSCF_A entity
     *     }
     *     then {
     *         the IMS_P_CSCF_A entity sends an AAR containing
     *             Framed_IPv4_Address_AVP 
     *                 indicating value "IPv4_Address of UE_A",
     *             "or" Framed_IPv6_Address_AVP 
     *                 indicating value "IPv6_Address of UE_A",
     *             Service_URN_AVP
     *                 indicating value "sos*";
     *         to the EPC_PCRF_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 795-1 clause 7.6
     */
    function f_mtc_check_TP_RX_PCSCF_ECO_AAR_02(
        DiameterInterfaceMonitor p_monitorCompRef,
        in boolean p_checkMessage := false,
        in boolean p_forward_to_mtc := false
    ) runs on ImsTestCoordinator {
        if (isvalue(p_monitorCompRef)){
            var template DIAMETER_MSG mw_diameter_msg_pass := { aAR_MSG := mw_AAR_ServiceUrn };
            var template DIAMETER_MSG mw_diameter_msg_fail := { aAR_MSG := mw_AAR_basic };
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                    },
                    {
                        mw_diameter_msg_fail
                    },
                    {0, omit},
                    "TP_RX_PCSCF_ECO_AAR_02 - AAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_RX_PCSCF_ECO_AAR_02

    /**
     * Starts monitor component behavior for TP_RX_PCSCF_AAR_03
     * @param p_monitorCompRef Reference to monitor component