Commit d35d807e authored by rennoch's avatar rennoch
Browse files

add TC_HPCRF_VQR_02-04

parent f83d90f9
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -652,6 +652,11 @@ module DiameterS9_PIXITS
        */
        modulepar octetstring PX_ROUTING_RULE_IDENTIFIER_VALUE := '08'O;
        
        /** @desc UInt32, PIXIT
         * QoS value exeeding the subscriber bandwidth
         */
        modulepar UInt32 PX_QOS_EXCEEDING_SUBSCRIBER_BANDWIDTH := 9999;
        
    }//end group DiameterCommonGxxData

} // end module DiameterS9_PIXITS
 No newline at end of file
+120 −1
Original line number Diff line number Diff line
@@ -782,7 +782,7 @@ module DiameterS9_S9_TCFunctions {
        group TP_HPCRFRole_VQR {//S9 visited access (QoS and PCC rules)

            /*
            *  @desc    This is the test case function TC_HPCRF_MS_01
            *  @desc    This is the test case function TC_HPCRF_VQR_01
            *  @param
            */
            function f_TC_HPCRF_VQR_01()
@@ -819,6 +819,125 @@ module DiameterS9_S9_TCFunctions {

            } // end function TC_H_PCRF_VQR_01

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

                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_QoS(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                {m_event_Trigger(IP_CAN_CHANGE_E)},
                                                {m_chargRuleReport_RNameStatus(valueof(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)),valueof(m_pCC_Rule_Status(PX_PCC_RULE_STATUS)))},
                								{m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                            					m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))},
                								m_qoS_Information_maxReqBwUl(m_maxRequestedBandwidthUL(PX_QOS_EXCEEDING_SUBSCRIBER_BANDWIDTH)) // qosInfo
                            					));

                f_awaiting_CCA(mw_CCA_ExpResult_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_SUBSESSION_E)),
                    * // subsession dec. info 
                    ) );

                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_VQR_02
        
            /*
            *  @desc    This is the test case function TC_HPCRF_VQR_03
            *  @param
            */
            function f_TC_HPCRF_VQR_03()
            runs on DiameterComponent {

                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,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                {m_event_Trigger(IP_CAN_CHANGE_E)},
                                                {m_chargRuleReport_RNameStatus(valueof(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)),valueof(m_pCC_Rule_Status(PX_PCC_RULE_STATUS)))},
                                                {m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                                                 m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))}));

                f_awaiting_CCA(mw_CCA_ExpResult_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_INITIAL_PARAMETERS_E)),
                    {mw_SubsesDecisionInfo_resultCode(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_VQR_03

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

                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_QoS(vc_sessionId,
                                                vc_originHost,
                                                vc_originRealm,
                                                vc_destinationRealm,
                                                {m_event_Trigger(IP_CAN_CHANGE_E)},
                                                {m_chargRuleReport_RNameStatus(valueof(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA)),valueof(m_pCC_Rule_Status(PX_PCC_RULE_STATUS)))},
                								{m_subsesEnforcementInfo_Operation(m_subsessionId_dummy(1),
                            					m_subsessionOperation_dummy(Subsession_Operation_Code:MODIFICATION_E))},
                								m_qoS_Information_maxReqBwUl(m_maxRequestedBandwidthUL(PX_QOS_EXCEEDING_SUBSCRIBER_BANDWIDTH)) // qosInfo
                            					));

                f_awaiting_CCA(mw_CCA_ExpResult_SubsesDecInfo(vc_sessionId,
                    vc_originHost_IUT, vc_originRealm_IUT,
                    mw_experimentalResult(mw_expResultCode(DIAMETER_ERROR_INITIAL_PARAMETERS_E)),
                    {mw_SubsesDecisionInfo_resultCode(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_VQR_04
                    
        } // group TP_HPCRFRole_VQR   

        group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules)
+20 −1
Original line number Diff line number Diff line
@@ -1419,6 +1419,25 @@ module DiameterS9_Templates {
                    }
                }
                
                template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR_QoS (template Session_Id_AVP         p_sessionId,
                                                       template Origin_Host_AVP        p_originHost,
                                                       template Origin_Realm_AVP       p_originRealm,
                                                       template Destination_Realm_AVP  p_destinationRealm,
                                                       template CCR_MSG.cCR_Body.event_Trigger               p_event_Trigger,
                                                       template CCR_MSG.cCR_Body.charging_Rule_Report        p_charging_Rule_Report,
                                                       template CCR_MSG.cCR_Body.subsesion_Enforcement_Info  p_subsesionEnforcementInfo,
                                                       template QoS_Information_AVP p_qosInformation
                                                      )
                modifies m_CCR_basic := {
                    cCR_Body := {
                        cC_Request_Type            := m_cC_Request_Type ( UPDATE_REQUEST_E ),
                        event_Trigger              := p_event_Trigger,
                        charging_Rule_Report 	   := p_charging_Rule_Report,
                        subsesion_Enforcement_Info := p_subsesionEnforcementInfo,
                        qoS_Information 	  	   := p_qosInformation
                    }
                }
                            
                template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf (template Session_Id_AVP         p_sessionId,
                                    template Origin_Host_AVP        p_originHost,
                                    template Origin_Realm_AVP       p_originRealm,
+56 −0
Original line number Diff line number Diff line
@@ -447,6 +447,62 @@ module DiameterS9_TestCases
                f_cf_1S9_vpcrfDown(v_diameterComponent_vpcrf);
            } // end TC_HPCRF_VQR_01

            /*
            * @desc TC_HPCRF_VQR_02
            */
            testcase TC_HPCRF_VQR_02()
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_vpcrf;
                f_cf_1S9_vpcrfUp(v_diameterComponent_vpcrf);

                //Start
                v_diameterComponent_vpcrf.start(f_TC_HPCRF_VQR_02());

                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

                f_cf_1S9_vpcrfDown(v_diameterComponent_vpcrf);
            } // end TC_HPCRF_VQR_02
            
            /*
            * @desc TC_HPCRF_VQR_03
            */
            testcase TC_HPCRF_VQR_03()
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_vpcrf;
                f_cf_1S9_vpcrfUp(v_diameterComponent_vpcrf);

                //Start
                v_diameterComponent_vpcrf.start(f_TC_HPCRF_VQR_03());

                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

                f_cf_1S9_vpcrfDown(v_diameterComponent_vpcrf);
            } // end TC_HPCRF_VQR_03
            
            /*
            * @desc TC_HPCRF_VQR_04
            */
            testcase TC_HPCRF_VQR_04()
            runs on ServerSyncComp
            system TestAdapter {
                //Variables
                var DiameterComponent v_diameterComponent_vpcrf;
                f_cf_1S9_vpcrfUp(v_diameterComponent_vpcrf);

                //Start
                v_diameterComponent_vpcrf.start(f_TC_HPCRF_VQR_04());

                // synchronize PTC on 3 sychronization points
                f_serverSync1Client({c_prDone, c_tbDone, c_poDone});

                f_cf_1S9_vpcrfDown(v_diameterComponent_vpcrf);
            } // end TC_HPCRF_VQR_04
        }//end group TP_HPCRFRole_VQR

        group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules)
+3 −0
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ module DiameterS9_TestControl {

		// 5.2.1.3.1	QoS and PCC Rules
        	execute(TC_HPCRF_VQR_01());
        	execute(TC_HPCRF_VQR_02());
        	execute(TC_HPCRF_VQR_03());
        	execute(TC_HPCRF_VQR_04());

		// 5.2.1.3.2	Provision of QoS and PCC Rules
		if (PICS_HPCRF_PULL_FOR_PCC_AND_QOS_RULE_PROVISIONING) {