Commit 9038ec16 authored by rennoch's avatar rennoch
Browse files

Gx/PCEF test: IRS01/02

parent 95aef83e
Loading
Loading
Loading
Loading
+104 −0
Original line number Diff line number Diff line
@@ -2393,6 +2393,110 @@ module DiameterGx_Gx_TCFunctions {
        
        }//end group TP_PCEFRole_UMC
        group TP_PCEFRole_IRS {	//IMS Restoration Support
        
            /*
            *  @desc	This is the test case function TC_PCEF_IRS_01
            *  @param	
            */
            function f_TC_PCEF_IRS_01()
            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_AF(PX_CHARGING_RULE_NAME_DATA, 
							             m_flowInformation_direction_packetFID(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA),
							             m_flowDirection_Bidirectional),m_afSignallingProtocol(SIP_E)))
							));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

                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_IRS_01
            
                        /*
            *  @desc	This is the test case function TC_PCEF_IRS_02
            *  @param	
            */
            function f_TC_PCEF_IRS_02()
            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));
                
                // request IRS
                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_AF(PX_CHARGING_RULE_NAME_DATA, 
							             m_flowInformation_direction_packetFID(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA),
							             m_flowDirection_Bidirectional),m_afSignallingProtocol(SIP_E)))
							));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
                
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
                
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRem // RAR in Rx-module has different header!
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_chrgRuleRemove_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA))
							));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

                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_IRS_02
        
        }//end group TP_PCEFRole_IRS
        group TP_PCEFRole_MPS {	//Multimedia Priority Support
        }//end group TP_PCEFRole_MPS
+29 −1
Original line number Diff line number Diff line
@@ -609,6 +609,15 @@ module DiameterGx_Templates {
                monitoring_Key := p_monitoringKey
            }     
            
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_FI_AF (octetstring p_avpData, template Flow_Information_AVP p_flowInformation, template AF_Signalling_Protocol_AVP p_afSignallingProtocol) 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},
                aF_Signalling_Protocol := p_afSignallingProtocol
            }
            
                        
            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),
@@ -770,6 +779,13 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }
            
                        
            template AF_Signalling_Protocol_AVP m_afSignallingProtocol (AF_Signalling_Protocol_Type p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAF_Signalling_Protocol_AVP, 8, omit),
                aVP_Data := p_avpData
            }
            
            template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Report_AVP, 8, omit),
@@ -1464,6 +1480,17 @@ module DiameterGx_Templates {
              	  charging_Rule_Install := {p_chargingRuleInstall}
              }
              
              template RAR_MSG m_RAR_CharRuleRem(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 Destination_Host_AVP p_destinationHost,
                                           template Charging_Rule_Remove_AVP p_chargingRuleRemove)
                  modifies m_RAR_basic := 
              {
              	  charging_Rule_Remove := {p_chargingRuleRemove}
              }              
              
                          
              template RAR_MSG m_RAR_CharRuleInst_EvTrigger(template Session_Id_AVP p_sessionId,
                                           template Origin_Host_AVP p_originHost,
@@ -1697,7 +1724,8 @@ module DiameterGx_Templates {
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm,
                                        template Destination_Host_AVP p_destinationHost,
                                        template QoS_Information_AVP_setof p_qosInformation                                        
//                                        template QoS_Information_AVP_setof p_qosInformation
                                        template RAR_MSG.qoS_Information p_qosInformation                                          
                                        ) modifies mw_RAR_basic := {
                qoS_Information := p_qosInformation
            }