Commit 56f65b06 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF tests: PCC-07

parent d701f8c8
Loading
Loading
Loading
Loading
+49 −0
Original line number Diff line number Diff line
@@ -1767,6 +1767,55 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCEF_PCC_06
            
            /*
            *  @desc	This is the test case function TC_PCEF_PCC_07
            *  @param	
            */
            function f_TC_PCEF_PCC_07()
            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_Definition(m_chrgRuleDefinition_FI(PX_CHARGING_RULE_NAME_DATA, 
							             m_flowInformation_direction_packetFID(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA),
							             m_flowDirection_Bidirectional)))
							));
                    
                f_awaiting_RAA(mw_RAA_MediaComponent(vc_sessionId,?,?,mw_mediaComponentDescription_flowStatus(?))); 

                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_07
        
            
        
        }//end group TP_PCEFRole_PCC
        group TP_PCEFRole_EMS {	//Emergency services
        }//end group TP_PCRERole_EMS
+37 −1
Original line number Diff line number Diff line
@@ -241,6 +241,19 @@ module DiameterGx_Templates {
				aVP_Type := *
			}
			
			            
            template Flow_Information_AVP m_flowInformation_dummy := {
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Information_AVP, 0, omit),
				flow_Description := omit,
				packet_Filter_Identifier := omit,
				packet_Filter_Usage := omit,
				toS_Traffic_Class := omit,
				security_Parameter_Index := omit,
				flow_Label := omit,
				flow_Direction := omit,
				aVP_Type := omit
			}
			
			template Charging_Rule_Report_AVP mw_chargRuleReport_dummy :=
            {
                aVP_Header := mw_aVP_Header(c_vendIdCharging_Rule_Report_AVP),//<AVP header: 1011 ....>
@@ -447,6 +460,13 @@ module DiameterGx_Templates {
                aVP_Type := omit 
            }
            
                                    
            template Flow_Information_AVP m_flowInformation_direction_packetFID (template Packet_Filter_Identifier_AVP p_packetFilterIdentifier, template Flow_Direction_AVP p_flowDirection) modifies m_flowInformation_dummy := {
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Information_AVP, lengthof(encvalue(p_packetFilterIdentifier))+lengthof(encvalue(p_flowDirection)), omit),
				packet_Filter_Identifier := p_packetFilterIdentifier,
				flow_Direction := p_flowDirection
			} 			    

            template Flow_Description_AVP m_flow_Description(IPFilterRule_Type p_IPftr) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP, lengthof(encvalue(p_IPftr)), omit),
@@ -552,6 +572,13 @@ module DiameterGx_Templates {
                charging_Rule_Name := m_chargingRuleName(p_avpData)
            }    
            
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_FI (octetstring p_avpData, template Flow_Information_AVP p_flowInformation) modifies m_chrgRuleDefinition_dummy:=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))+lengthof(encvalue(p_flowInformation)), omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                flow_Information := {p_flowInformation}
            }    
                            
            template Charging_Rule_Base_Name_AVP m_chrgRuleBaseName(UTF8String p_avpData):=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Base_Name_AVP, lengthof(p_avpData), omit),
@@ -1423,6 +1450,15 @@ module DiameterGx_Templates {
                  qoS_Information := p_qosInformation
              }
              
            template RAA_MSG mw_RAA_MediaComponent(template Session_Id_AVP p_sessionId,
                                         template Origin_Host_AVP p_originHost,
                                         template Origin_Realm_AVP p_originRealm,
                                         template Media_Component_Description_AVP p_mediaComponentDescription)
                modifies mw_RAA_basic := 
            {
                media_Component_Description := superset(p_mediaComponentDescription)
            }
          
          } // end group Gxmodified_answer_templates_receive
          
	  } //end group Gxmodified_templates