Commit 0e57ee62 authored by rennoch's avatar rennoch
Browse files

TC_H_PCRF_VQR_01

parent 77c9ec55
Loading
Loading
Loading
Loading
+15 −13
Original line number Diff line number Diff line
@@ -7,8 +7,10 @@
module DiameterS9_PIXITS
{
    import from LibDiameter_Types_Base_AVPs {type IPv4Addr, IPv6Addr, UTF8String, Subscription_Id_Ty_Type;};
    import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type;};
    import from LibDiameter_Types_Gx_AVPs {type IP_CAN_Type, RAT_Type, PCC_Rule_Status;};
    import from LibCommon_BasicTypesAndValues all;
    import from LibDiameter_Types_S9_AVPs all;
//    import from LibDiameter_TypesAndValues {type PCC_Rule_Status};

    group Port_and_addresses{
        group S9_Port_and_addresses{
@@ -349,10 +351,10 @@ module DiameterS9_PIXITS
//        */
//        modulepar Network_Request_Support PX_NETWORK_REQUEST_SUPPORT := NETWORK_REQUEST_SUPPORTED_E;
//        
//        /** @desc	octetstring, PIXIT item A-7/33
//         * First charging rule name for the Charging-Rule-Name AVP
//        */
//        modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O;
        /** @desc	octetstring, PIXIT item A-7/33
         * First charging rule name for the Charging-Rule-Name AVP
        */
        modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O;
//                        
//        /** @desc	octetstring, PIXIT item A-7/34
//         * Second charging rule name for the Charging-Rule-Name AVP
@@ -373,14 +375,14 @@ module DiameterS9_PIXITS
//         * Charging rule base name for the Charging-Rule-Base-Name AVP
//        */
//        modulepar UTF8String PX_CHARGING_RULE_BASE_NAME_DATA := "data";
//        
//        
//        /** @desc	enumerated type PCC_Rule_Status, PIXIT item A-7/38
//         * A status value of PCC rule(s) for the PCC-Rule-Status AVP
//           Available values: ACTIVE,  INACTIVE, TEMPORARILY INACTIVE
//        */
//        modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E;
//        
        
        
        /** @desc	enumerated type PCC_Rule_Status, PIXIT item A-7/38
         * A status value of PCC rule(s) for the PCC-Rule-Status AVP
           Available values: ACTIVE,  INACTIVE, TEMPORARILY INACTIVE
        */
        modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E;
        
//        /** @desc	UInt32, PIXIT item A-7/39
//         *  A precedence value for a PCC rule for the Precedence AVP in CCR messages
//        */
+36 −0
Original line number Diff line number Diff line
@@ -781,6 +781,42 @@ 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
            *  @param
            */
            function f_TC_H_PCRF_VQR_01()
            runs on DiameterComponent {

                f_preamble_VPCRF();

                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_SUBSESSION_E)),
                    {(mw_SubsesDecisionInfo_resultCode(mw_subsessionId_dummy(111),?),mw_SubsesDecisionInfo_expResultCode(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_01
        
        } // group TP_HPCRFRole_VQR   

        group TP_HPCRFRole_VPQ {//S9 visited access (Provision of QoS and PCC rules)
+54 −0
Original line number Diff line number Diff line
@@ -542,6 +542,17 @@ module DiameterS9_Templates {
                aVP_Data   := p_avpData
            }
            
            template Charging_Rule_Report_AVP m_chargRuleReport_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, 4, c_vendId3gpp),
                charging_Rule_Name := omit,
                charging_Rule_Base_Name := omit,
                bearer_Identifier := omit,
                pCC_Rule_Status := omit,
                rule_Failure_Code := omit,
                final_Unit_Indication := omit,
                aVP_Type := omit
            }            
            
        } //end group DummyAVPHeaders
        group SpecificAVPHeaders {
@@ -716,6 +727,31 @@ module DiameterS9_Templates {
                    session_Release_Cause := p_session_Release_Cause
                }
                
                template Event_Trigger_AVP m_event_Trigger(Event_Trigger p_avpData) :=
                {
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_event_Trigger_AVP_Code, 4, c_vendId3gpp),
                    aVP_Data := p_avpData
                }
                
                template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy :=
                {
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Report_AVP_Code, lengthof(encvalue(p_crn))/8+16/*PCC_Rule_Status_AVP length: 12+4 for vendId*/, c_vendId3gpp),
                    charging_Rule_Name := {p_crn},
                    pCC_Rule_Status := p_ccrs
                }
                
                template Charging_Rule_Name_AVP m_chargingRuleName(octetstring p_avpData) :=
                {
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_charging_Rule_Name_AVP_Code, lengthof(p_avpData), c_vendId3gpp),
                    aVP_Data := p_avpData
                }                

                template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) :=
                {
                    aVP_Header := m_aVP_HeaderVid_Mbit1(c_pCC_Rule_Status_AVP_Code, 4, c_vendId3gpp),
                    aVP_Data := p_avpData
                }
                
          	}//end group sendingTemplatesForAVPs
          	group awaitingTemplatesForAVPs{

@@ -1159,6 +1195,24 @@ module DiameterS9_Templates {
                    }
                }

                
                template CCR_MSG m_CCR_UpdateRequest_SubSessEnfInf_EvTri_ChargRR (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
                                                      )
                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
                    }
                }
            
                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,