Commit f56aff61 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF tests: PCC-12

parent e4be02eb
Loading
Loading
Loading
Loading
+45 −0
Original line number Diff line number Diff line
@@ -2005,6 +2005,51 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_PCC_11
            
            
            /*
            *  @desc	This is the test case function TC_PCEF_PCC_12
            *  @param	
            */
            function f_TC_PCEF_PCC_12()
            runs on DiameterComponent {

               f_preamble_PCRF();
                
               f_awaiting_CCR(mw_CCR_Request(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									*, *, *));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleInst // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA_NONEXIST))));
							                   
                f_awaiting_RAA(mw_RAA_RuleReport(vc_sessionId,?,?, mw_chargRuleReport_Name_Code_Status(mw_rule_Failure_Code(UNKNOWN_RULE_NAME_E),mw_pCC_Rule_Status(INACTIVE_E)))); 

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(TERMINATION_REQUEST_E)
                									));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm));
    
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync

                f_postamble_PCRF();

            } // end function f_TC_PCEF_PCC_12
                    
        }//end group TP_PCEFRole_PCC
        group TP_PCEFRole_EMS {	//Emergency services
        }//end group TP_PCRERole_EMS
+5 −0
Original line number Diff line number Diff line
@@ -233,6 +233,11 @@ module DiameterGx_PIXITS
        */
        modulepar octetstring PX_CHARGING_RULE_NAME_DATA := '08'O;
        
        /** @desc	octetstring, PIXIT item A.1/
         * avp_Data within Charging_Rule_Name_AVP is of octetstring type
        */
        modulepar octetstring PX_CHARGING_RULE_NAME_DATA_NONEXIST := 'FF'O;
                        
        /** @desc	octetstring, PIXIT item A.1/
         * avp_Data within PX_CHARGING_RULE_BASE_NAME_DATA is of UTF8String type
        */
+31 −1
Original line number Diff line number Diff line
@@ -961,6 +961,13 @@ module DiameterGx_Templates {
                pCC_Rule_Status := ?
            }
            
            template Charging_Rule_Report_AVP mw_chargRuleReport_Name_Code_Status (template Rule_Failure_Code_AVP p_ruleFailureCode, template PCC_Rule_Status_AVP p_pCcRuleStatus) modifies mw_chargRuleReport_dummy  :=
            {
                charging_Rule_Name := ?,
                rule_Failure_Code := p_ruleFailureCode,
                pCC_Rule_Status := p_pCcRuleStatus
            }
            
            template Packet_Filter_Information_AVP mw_packet_Filter_Information 
                (template Packet_Filter_Identifier_AVP p_packetFilterIdentifier,
                 template Precedence_AVP p_precedence,
@@ -988,6 +995,20 @@ module DiameterGx_Templates {
                charging_Rule_Name := *
            }
            
                            
            template PCC_Rule_Status_AVP mw_pCC_Rule_Status(PCC_Rule_Status p_avpData) :=
            {
                aVP_Header := mw_aVP_Header(c_vendIdPCC_Rule_Status_AVP),
                aVP_Data := p_avpData
            }
            
                            
            template Rule_Failure_Code_AVP mw_rule_Failure_Code(Rule_Failure_Code p_avpData) :=
            {
                aVP_Header := mw_aVP_Header(c_vendIdRule_Failure_Code_AVP),
                aVP_Data := p_avpData
            }          
            
     	  }//end group awaitingTemplatesForAVPs
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
@@ -1541,6 +1562,15 @@ module DiameterGx_Templates {
                media_Component_Description := superset(p_mediaComponentDescription)
            }
            
            template RAA_MSG mw_RAA_RuleReport(template Session_Id_AVP p_sessionId,
                                         template Origin_Host_AVP p_originHost,
                                         template Origin_Realm_AVP p_originRealm,
                                         template Charging_Rule_Report_AVP p_chargingRuleReport)
                modifies mw_RAA_basic := 
            {
                charging_Rule_Report := superset(p_chargingRuleReport)
            }
          
          } // end group Gxmodified_answer_templates_receive
          
	  } //end group Gxmodified_templates