Commit 9b4da170 authored by rennoch's avatar rennoch
Browse files

add declarations for TC_HPCRF_VPQ

parent 0e57ee62
Loading
Loading
Loading
Loading
+170 −0
Original line number Diff line number Diff line
@@ -790,6 +790,8 @@ module DiameterS9_S9_TCFunctions {

                f_preamble_VPCRF();

                f_initiate_session_VPCRF(); //TODO previous BBERF

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR(vc_sessionId,
@@ -821,6 +823,174 @@ module DiameterS9_S9_TCFunctions {

        group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules)

            /*
            *  @desc    This is the test case function TC_H_PCRF_VPQ_01
            *  @param
            */
            function f_TC_H_PCRF_VPQ_01()
            runs on DiameterComponent {

                f_preamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_InitialRequest(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                                f_framedIpAddress6_send(PX_UE1_framedIp6Address)));

                f_awaiting_CCA(mw_CCA_ResultCode_QosRuleInstall(vc_sessionId, vc_originHost_IUT, vc_originRealm_IUT, *, ?));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_H_PCRF_VPQ_01

            /*
            *  @desc    This is the test case function TC_H_PCRF_VPQ_02
            *  @param
            */
            function f_TC_H_PCRF_VPQ_02()
            runs on DiameterComponent {

                f_preamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_send_CCR(m_CCR_InitialRequest(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                f_framedIpAddress4_send(PX_UE1_framedIpAddress),
                                                f_framedIpAddress6_send(PX_UE1_framedIp6Address)));

                f_awaiting_CCA(mw_CCA_ResultCode_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    *,
                    {mw_SubsesDecisionInfo_chargingRuleInstall(mw_subsessionId_dummy(1),?)}) );
                    
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_H_PCRF_VPQ_02

        
            /*
            *  @desc    This is the test case function TC_H_PCRF_VPQ_03
            *  @param
            */
            function f_TC_H_PCRF_VPQ_03()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                action("Please trigger PCRF for RAR to provide a QoS rule.");

                //activation of PCC rule
                f_awaiting_RAR(mw_RAR_QosRuleInst(vc_sessionId, ?, ?, ?, ?,
                                                                ?));
                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));


                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function f_TC_H_PCRF_VPQ_03

            /*
            *  @desc    This is the test case function TC_HPCRF_VPQ_04
            *  @param
            */
            function f_TC_H_PCRF_VPQ_04()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                action("Please trigger PCRF for RAR to provide a subsession decision info.");

                //activation of PCC rule
                f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?,
                            {mw_SubsesDecisionInfo_chargingRuleInstall(mw_subsessionId_dummy(1),?)}));

                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));


                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_HPCRF_VPQ_04

            /*
            *  @desc    This is the test case function TC_HPCRF_VPQ_05
            *  @param
            */
            function f_TC_H_PCRF_VPQ_05()
            runs on DiameterComponent {

                f_preamble_VPCRF();
                
                f_initiate_session_VPCRF();

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                action("Please trigger PCRF for RAR to provide a subsession decision info.");

                //activation of PCC rule
                f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?,
                            {mw_SubsesDecisionInfo_chargingRuleInstall(mw_subsessionId_dummy(1),?)}));

                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));

                f_awaiting_RAR(mw_RAR_SubsessDecInfo(vc_sessionId, ?, ?, ?, ?,
                            {mw_SubsesDecisionInfo_chargingRuleRemove(mw_subsessionId_dummy(1),?)}));

                f_send_RAA(m_RAA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, m_resultCode(m_resultCode_diameterSuccess)));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); // sync

                //session termination
                f_terminate_session_VPCRF();

                f_postamble_VPCRF();

                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

            } // end function TC_HPCRF_VPQ_05
                    
        } // group TP_HPCRFRole_VPQ   

        group TP_HPCRFRole_VST {//S9 visited access (session/subsession termination)
+13 −0
Original line number Diff line number Diff line
@@ -780,6 +780,19 @@ module DiameterS9_Templates {
                    qoS_Rule_Install				:= p_qosRuleInstall
                }
                
                template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_chargingRuleInstall  ( template (present) Subsession_Id_AVP p_subsessionId, 
                            template Subses_Decision_Info_AVP.charging_Rule_Install p_chargingRuleInstall) 
                            modifies mw_SubsesDecisionInfo_dummy := 
                {
                    charging_Rule_Install				:= p_chargingRuleInstall
                }

                template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_chargingRuleRemove  ( template (present) Subsession_Id_AVP p_subsessionId, 
                            template Subses_Decision_Info_AVP.charging_Rule_Remove p_chargingRuleRemove) 
                            modifies mw_SubsesDecisionInfo_dummy := 
                {
                    charging_Rule_Remove				:= p_chargingRuleRemove
                }
                
                template Subses_Decision_Info_AVP mw_SubsesDecisionInfo_resultCode  ( template (present) Subsession_Id_AVP p_subsessionId, 
                            template Result_Code_AVP p_resultCode)