AtsImsIot_TP_behavior_GX.ttcn 47.3 KB
Newer Older
Bostjan Pintar's avatar
Bostjan Pintar committed
/*
 *  @author     STF 574
 *  @version    $Id$
 *  @desc       This module provides the TP behaviour functions at GX interface
 */

module AtsImsIot_TP_behavior_GX
{

    import from AtsImsIot_TestSystem all;
    import from LibIot_PIXITS all;
    import from AtsImsIot_Templates all;
    import from AtsImsIot_TypesAndValues all;
    import from LibIot_TestInterface all;
    import from LibIot_TypesAndValues all;
    import from LibIot_Functions all;
Bostjan Pintar's avatar
Bostjan Pintar committed

    import from AtsImsIot_Functions all;
    import from LibIot_PIXITS all;
Bostjan Pintar's avatar
Bostjan Pintar committed
    import from AtsImsIot_Diameter_Templates all;
    
    // LibDiameter
    import from LibDiameter_Templates all;
    import from LibDiameter_TypesAndValues all;
Bostjan Pintar's avatar
Bostjan Pintar committed
    
group g_PGW {
    

    /**
     * Starts monitor component behavior for TP_GX_PGW_CCR_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that when IUT is invoked with a create session request the CC-Request is sent towards PCRF."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_RMI
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_B and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PGW_A entity invokes create_session_request
     *     }
     *     then {
     *         the EPC_PGW_B entity sends an CCR containing
     *             CC_Request_Type_AVP
     *                 indicating value INITIAL_REQUEST
     *             Subscription_Id_AVP containing
     *                 Subscription_Id_Type_AVP
     *                     indicating value END_USER_IMSI
     *                 ;,
     *             IP_CAN_Type_AVP
     *             RAT_Type_AVP
     *             Called_Station_Id_AVP
     *             PDN_Connection_Id_AVP
     *             Framed_IP_Address_AVP
     *             "or" Framed_IP6_IP_Address_AVP
     *             Bearer_Usage_AVP
     *                 indicating value IMS_SIGNALLING
     *             QoS_Information_AVP
     *                 APN_Aggregate_Max_Requested_Bandwidth_UL_AVP
     *                 APN_Aggregate_Max_Requested_Bandwidth_DL_AVP
     *                 Bearer_Identifier_AVP
     *             Default_EPS_Bearer_QoS_AVP containing
     *                 QoS_Class_Identifier_AVP
     *                     indicating value '5'
     *                 Allocation_Retention_Priority_AVP containing
     *                     Priority_Level_AVP
     *                     Pre_emption_Capablity_AVP
     *                     Pre_emption_Vulnerability_AVP
     *                 ;
     *             ;
     *         ;
     *         to the EPC_PCRF_A entity
     *     }
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_CCR_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 := { cCR_MSG := mw_CCR_SubscriberIMSI_qosInformation_class5(INITIAL_REQUEST_E) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                       mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_CCR_01 - CCR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_CCR_01
    
    /**
     * Starts monitor component behavior for TP_GX_PGW_CCR_02
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that when IUT is invoked with a delete session request the CC-Request is sent towards PCRF."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_RMI
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_B and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *              the EPC_PGW_A entity invokes delete_session_request
     *     }
     *     then {
     *         the EPC_PGW_B entity sends an CCR containing
     *             CC_Request_Type_AVP
     *                 indicating value TERMINATION_REQUEST
     *         ;
     *         to the EPC_PCRF_B entity
     *     }
     * }  
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_CCR_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 := { cCR_MSG := mw_CCR_RequestType(TERMINATION_REQUEST_E) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_CCR_02 - CCR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_CCR_02
    

    /**
     * Starts monitor component behavior for TP_GX_PGW_RAA_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "IUT successfully processes all mandatory AVPs in an RA-Request received due provision of PCC rules and sends RA-Answer."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PCRF_A entity sends an RAR containing
     *             Charging_Rule_Install_AVP containing
     *                 Charging_Rule_Definition_AVP containing
     *                     Charging_Rule_Name_AVP containing
     *                         Flows_AVP containing
     *                             Media_Component_Number_AVP
     *                                 indicating value 0
     *                             ,
     *                             Flow_Status_AVP
     *                                 indicating value ENABLED
     *                         ;
     *                     ;
     *                 ;
     *             ;
     *         ;
     *         to the EPC_PGW_A entity
     *     }
     *     then {
     *         the EPC_PGW_A entity sends the RAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             ;
     *         to the EPC_PCRF_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_RAA_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 := { rAR_MSG := mw_RAR_ChargingRuleInstall(mw_chrgRuleInstall) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_01 - RAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
            mw_diameter_msg_pass := { rAA_MSG := mw_RAA_resultCode };
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_fail := { rAA_MSG := mw_RAA_Gx_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_01 - RAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_RAA_01
    

    /**
     * Starts monitor component behavior for TP_GX_PGW_RAA_02
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "IUT successfully processes an RA-Request received due to the Session Bearer procedure and sends RA-Answer with Result_Code_AVP."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *              the EPC_PCRF_A entity sends an RAR
     *              to the EPC_PGW_A entity
     *     }
     *     then {
     *         the EPC_PGW_A entity sends the RAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             ;
     *         to the EPC_PCRF_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_RAA_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 := { rAR_MSG := mw_RAR_Gx_basic };
Yann Garcia's avatar
Yann Garcia committed
            var template DIAMETER_MSG mw_diameter_msg_fail := { rAR_MSG := mw_RAR_dummy };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_02 - RAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { rAA_MSG := mw_RAA_resultCode };
            mw_diameter_msg_fail := { rAA_MSG := mw_RAA_Gx_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_02 - RAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_RAA_02
    

    /**
     * Starts monitor component behavior for TP_GX_PGW_RAA_03
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "IUT successfully processes an RA-Request received due to the Session Bearer procedure and sends RA-Answer with Result_Code_AVP."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isRegisteredTo the IMS_A and
     *     the UE_A entity previouslyEstablishedCallWith the UE_B
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PCRF_A entity sends an RAR
     *         to the EPC_PGW_A entity
     *     }
     *     then {
     *         the EPC_PGW_A entity sends the RAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             ;
     *         to the EPC_PCRF_A entity
     *     }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_RAA_03(
        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 := { rAR_MSG := mw_RAR_Gx_basic };
Yann Garcia's avatar
Yann Garcia committed
            var template DIAMETER_MSG mw_diameter_msg_fail := { rAR_MSG := mw_RAR_dummy };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_03 - RAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { rAA_MSG := mw_RAA_resultCode };
            mw_diameter_msg_fail := { rAA_MSG := mw_RAA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_03 - RAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_RAA_03
    

    /**
     * Starts monitor component behavior for TP_GX_PGW_RAA_04
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "IUT successfully processes an RA-Request received due to removal of Session Bearer procedure and sends RA-Answer with Result_Code_AVP."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PCRF_A entity sends an RAR containing
     *             Charging_Rule_Remove_AVP containing
     *                 Charging_Rule_Name_AVP
     *         ;;
     *         to the EPC_PGW_A entity
     *     }
     *     then {
     *         the EPC_PGW_A entity sends the RAA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         ;
     *         to the EPC_PCRF_A entity
     *     }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PGW_RAA_04(
        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 := { rAR_MSG := mw_RAR_ChargingRuleRemove };
Yann Garcia's avatar
Yann Garcia committed
            var template DIAMETER_MSG mw_diameter_msg_fail := { rAR_MSG := mw_RAR_Gx_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_04 - RAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { rAA_MSG := mw_RAA_resultCode };
            mw_diameter_msg_fail := { rAA_MSG := mw_RAA_Gx_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PGW_RAA_04 - RAA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PGW_RAA_04

	group ES{
	} //end group ES
Bostjan Pintar's avatar
Bostjan Pintar committed
} // end group g_PGW

group g_PCRF {
    

    /**
     * Starts monitor component behavior for TP_GX_PCRF_CCA_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT when receives CC-Request for PCC Rules sends a CC-Answer in case of attachment procedure."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_A and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PGW_A entity sends an CCR containing
     *             CC_Request_Type_AVP
     *                 indicating value INITIAL_REQUEST
     *             Subscription_Id_AVP containing
     *                 Subscription_Id_Type_AVP
     *                     indicating value END_USER_IMSI
     *                 ;,
     *             IP_CAN_Type_AVP
     *             RAT_Type_AVP
     *             Called_Station_Id_AVP
     *             PDN_Connection_Id_AVP
     *             Framed_IP_Address_AVP
     *             "or" Framed_IP6_IP_Address_AVP
     *             Bearer_Usage_AVP
     *                 indicating value IMS_SIGNALLING
     *             QoS_Information_AVP
     *                 APN_Aggregate_Max_Requested_Bandwidth_UL_AVP
     *                 APN_Aggregate_Max_Requested_Bandwidth_DL_AVP
     *                 Bearer_Identifier_AVP
     *             Default_EPS_Bearer_QoS_AVP containing
     *                 QoS_Class_Identifier_AVP
     *                     indicating value '5'
     *                 Allocation_Retention_Priority_AVP containing
     *                     Priority_Level_AVP
     *                     Pre_emption_Capablity_AVP
     *                     Pre_emption_Vulnerability_AVP
     *                 ;
     *             ;
     *         ;
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the CCA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         to the EPC_PGW_A entity
     *     }
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_CCA_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 := { cCR_MSG := mw_CCR_SubscriberIMSI_qosInformation_class5(INITIAL_REQUEST_E) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_01 - CCR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { cCA_MSG := mw_CCA_resultCode };
            mw_diameter_msg_fail := { cCA_MSG := mw_CCA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_01 - CCA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_CCA_01
	

    /**
     * Starts monitor component behavior for TP_GX_PCRF_CCA_02
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT when receives CC-Request for PCC Rules sends a CC-Answer in case of detachment procedure."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_A and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     * 
     * ensure that {
     *     when {
     *         the EPC_PGW_A entity sends an CCR containing
     *             CC_Request_Type_AVP
     *                 indicating value TERMINATION_REQUEST
     *         ;
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the CCA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         ;
     *         to the EPC_PGW_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_CCA_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 := { cCR_MSG := mw_CCR_RequestType(TERMINATION_REQUEST_E) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_02 - CCR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { cCA_MSG := mw_CCA_resultCode };
            mw_diameter_msg_fail := { cCA_MSG := mw_CCA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_02 - CCA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_CCA_02
    

    /**
     * Starts monitor component behavior for TP_GX_PCRF_CCA_03
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT when receives CC-Request for PCC Rules sends a CC-Answer in case of detachment procedure."
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     *
     * ensure that {
     *     when {
     *         the EPC_PGW_A entity sends an CCR containing
     *             CC_Request_Type_AVP
     *                 indicating value TERMINATION_REQUEST
     *         ;
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the CCA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         ;
     *         to the EPC_PGW_A entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_CCA_03(
        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 := { cCR_MSG := mw_CCR_RequestType(TERMINATION_REQUEST_E) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCR_MSG := mw_CCR_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_03 - CCR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
            
Yann Garcia's avatar
Yann Garcia committed
            mw_diameter_msg_pass := { cCA_MSG := mw_CCA_resultCode };
            mw_diameter_msg_fail := { cCA_MSG := mw_CCA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_03 - CCA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_CCA_03
    

    /**
     * Starts monitor component behavior for TP_GX_PCRF_CCA_04
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT receives CC-Answer from home PCRF and it sends CC-Answer towards home P-GW."
     * 
     * Reference 
            "TS 129 212 (V15.3.0) [9], clauses 4.5.1 (item 1) and 4a.5.1 (item 1)"
     * 
     * Config Id CF_VxLTE_RMI
     * 
     * Initial conditions with {
     *     the UE_A entity isNotAttachedTo the EPC_B and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     *
     * ensure that {
     *     when {
     *         the EPC_PCRF_A entity sends an CCA
     *         to the EPC_PCRF_B entity
     *     }
     *     then {
     *         the EPC_PCRF_B entity sends the CCA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *             QoS_Information_AVP containing
     *                 APN_Aggregate_Max_Requested_Bandwidth_UL_AVP
     *                 APN_Aggregate_Max_Requested_Bandwidth_DL_AVP
     *                 Bearer_Identifier_AVP;,
     *             Default_EPS_Bearer_QoS_AVP containing
     *                 QoS_Class_Identifier_AVP
     *                     indicating value '5'
     *                 Allocation_Retention_Priority_AVP containing
     *                     Priority_Level_AVP
     *                     Pre_emption_Capablity_AVP
     *                     Pre_emption_Vulnerability_AVP
     *                 ;
     *             ;
     *         ;
     *         to the EPC_PGW_B entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_CCA_04(
        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 := { cCA_MSG := mw_CCA_qosInformation_class5 };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCA_MSG := mw_CCA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_04 - CCA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_CCA_04
    

    /**
     * Starts monitor component behavior for TP_GX_PCRF_CCA_04
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "Verify that IUT receives CC-Answer from home PCRF and it sends CC-Answer towards home P-GW."
     * 
     * Reference 
            "TS 129 212 (V15.3.0) [9], clauses 4.5.1 (item 1) and 4a.5.1 (item 1)"
     * 
     * Config Id CF_VxLTE_RMI
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_B and
     *     the UE_A entity isNotRegisteredTo the IMS_A
     * }
     *
     * ensure that {
     *     when {
     *         the EPC_PCRF_A entity sends an CCA
     *         to the EPC_PCRF_B entity
     *     }
     *     then {
     *         the EPC_PCRF_B entity sends the CCA containing
     *             Result_Code_AVP
     *                 indicating value DIAMETER_SUCCESS
     *         ;
     *         to the EPC_PGW_B entity
     *     }
     * }  
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_CCA_05(
        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 := { cCA_MSG := mw_CCA_resultCode };
            var template DIAMETER_MSG mw_diameter_msg_fail := { cCA_MSG := mw_CCA_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_CCA_05 - CCA",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_CCA_05
    

    /**
     * Starts monitor component behavior for TP_GX_PCRF_RAR_01
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "When IUT receives AA-Request from P-CSCF successfully sends an RA-Request due to the Session Bearer procedure"
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isRegisteredTo the IMS_A
     * }
     * 
     * 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 RAR containing
     *             Charging_Rule_Install_AVP containing
     *                 Charging_Rule_Definition_AVP containing
     *                     Charging_Rule_Name_AVP
     *                     Flow_Information_AVP containing
     *                         Flow_Description_AVP
     *                     Flow_Status_AVP
     *                     Flows_AVP containing
     *                         Media_Component_Number_AVP
     *                     ;,
     *                     QOS_Information_AVP containing
     *                         QOS_Class_Identifier_AVP
     *                             indicating value 
     *                                 "QCI_1 for voice or
     *                                  QCI_2 for video";,
     *                         Max_Requested_Bandwidth_UL_AVP
     *                         Max_Requested_Bandwidth_DL_AVP
     *                         Guaranteed_Bitrate_UL_AVP
     *                         Guaranteed_Bitrate_DL_AVP
     *                         Allocation_Retention_Priority_AVP
     *                     ;
     *                 ;
     *             ;
     *         ;
     *         to the EPC_PGW_A entity
     *    }
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_RAR_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 := { rAR_MSG := mw_RAR_ChargingRuleInstall(mw_chrgRuleInstall_Qos) };
            var template DIAMETER_MSG mw_diameter_msg_fail := { rAR_MSG := mw_RAR_Gx_basic };
Bostjan Pintar's avatar
Bostjan Pintar committed
            p_monitorCompRef.start (
                f_Iot_Diameter_receive(
                    {
                        mw_diameter_msg_pass
                        mw_diameter_msg_fail
Bostjan Pintar's avatar
Bostjan Pintar committed
                    },
                    {0, omit},
                    "TP_RX_PCRF_RAR_01 - RAR",
                    p_forward_to_mtc,
                    p_checkMessage 
                )
            );
            p_monitorCompRef.done;
        }
    } // End of function f_mtc_check_TP_GX_PCRF_RAR_01
    
    /**
     * Starts monitor component behavior for TP_GX_PCRF_RAR_02
     * @param p_monitorCompRef Reference to monitor component
     * <pre>
     * Test objective  "When IUT receives ST-Request from P-CSCF to remove all relevant previously created bearers then IUT sends an RA-Request."
     *
     * <pre>
     * 
     * Config Id CF_VxLTE_INT
     * 
     * Initial conditions with {
     *     the UE_A entity isAttachedTo the EPC_A and
     *     the UE_A entity isRegisteredTo the IMS_A and
     *     the UE_A entity previouslyEstablishedCallWith the UE_B
     * }
     * 
     * ensure that {
     *     when {
     *         the IMS_P_CSCF_A entity sends an STR
     *         to the EPC_PCRF_A entity
     *     }
     *     then {
     *         the EPC_PCRF_A entity sends the RAR containing
     *             Charging_Rule_Remove_AVP containing
     *                 Charging_Rule_Name_AVP
     *             ;
     *         ;
     *         to the EPC_PGW_A entity
     *    }
     * }
     * </pre>
     * @see TS 103 653-1 clause 7.7
     */
    function f_mtc_check_TP_GX_PCRF_RAR_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 := { rAR_MSG := mw_RAR_ChargingRuleRemove };