Commit 280fe3bc authored by pintar's avatar pintar
Browse files

New templates and test purposes

parent bdd96fc7
Loading
Loading
Loading
Loading
+217 −7
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ module DiameterGx_Gx_TCFunctions {
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
		
                f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
		
@@ -85,7 +85,7 @@ module DiameterGx_Gx_TCFunctions {
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
		
                f_send_CCR(m_CCR_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_send_CCR(m_CCR_InitialRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
        
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
		
@@ -112,11 +112,11 @@ module DiameterGx_Gx_TCFunctions {
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_basic(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
				f_send_CCR(m_CCR_UpdateRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
@@ -127,8 +127,218 @@ module DiameterGx_Gx_TCFunctions {

            } // end function f_TC_PCRF_MSI_01

            /*
            *  @desc	This is the test case function TC_PCRF_MSI_02
            *  @param	
            */
            function f_TC_PCRF_MSI_02()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_allReqAVPs(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
                f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_MSI_02

            /*
            *  @desc	This is the test case function TC_PCRF_MSI_03
            *  @param	
            */
            function f_TC_PCRF_MSI_03()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources(
								vc_sessionId,
								vc_originHost, 
								vc_originRealm, 
								vc_destinationRealm,
								m_pFInfo_Precedence_pFContent(m_precedence(PX_PRECEDENCE_DATA),m_packet_Filter_Content(m_iPFilterRule)),
								m_packet_Filter_Operation(ADDITION_E),
								m_qoS_Information_ClassIdentifier(QCI_1_E)								
								));
                f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_MSI_03

            /*
            *  @desc	This is the test case function TC_PCRF_MSI_04
            *  @param	
            */
            function f_TC_PCRF_MSI_04()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources(
								vc_sessionId,
								vc_originHost, 
								vc_originRealm, 
								vc_destinationRealm,
								m_pFInfo_PacketFilterId_FlowDirection(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)),
								m_packet_Filter_Operation(MODIFICATION_E),
								omit								
								));
                f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_MSI_04

            /*
            *  @desc	This is the test case function TC_PCRF_MSI_05
            *  @param	
            */
            function f_TC_PCRF_MSI_05()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_UERequestForAllocResources(
								vc_sessionId,
								vc_originHost, 
								vc_originRealm, 
								vc_destinationRealm,
								m_pFInfo_PacketFilterId(m_packet_Filter_Identifier(PX_PACKET_FILTER_IDENTIFIER_DATA)),
								m_packet_Filter_Operation(DELETION_E),
								omit								
								));
                f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_MSI_05

            /*
            *  @desc	This is the test case function TC_PCRF_MSI_06
            *  @param	
            */
            function f_TC_PCRF_MSI_06()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_NetworkRequestSupport(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
				f_awaiting_CCA(mw_CCA_PCCrules_ChrgRuleInstall(vc_sessionId, vc_originHost, vc_originRealm));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_MSI_06
            
        }//end group  TP_PCRFRole_MSI
        group TP_PCRFRole_INV {	//Invalid Behaviour 

            /*
            *  @desc	This is the test case function TC_PCRF_INV_01
            *  @param	
            */
            function f_TC_PCRF_INV_01()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ResultCode(vc_sessionId, vc_originHost, vc_originRealm, mw_resultCode(mw_resultCode_diameterSuccess)));
                
                //session modification
				f_send_CCR(m_CCR_UpdateRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm));
                f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E)));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_INV_01

            /*
            *  @desc	This is the test case function TC_PCRF_INV_02
            *  @param	
            */
            function f_TC_PCRF_INV_02()
            runs on DiameterComponent {
		
                f_preamble_PCEF();
		
                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync
				
				//establishement of the session
                f_send_CCR(m_CCR_InitialRequest_Invalid(vc_sessionId, vc_originHost, vc_originRealm, vc_destinationRealm, f_framedIpAddress4_send(),f_framedIpAddress6_send()));
                f_awaiting_CCA(mw_CCA_ExperimentalResult(vc_sessionId, vc_originHost, vc_originRealm, mw_experimentalResult(DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED_E)));
		
                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync
                
                f_selfOrClientSyncAndVerdict(c_poDone, f_getVerdict()); // sync
		
                f_postamble_PCEF();

            } // end function f_TC_PCRF_INV_02
            
        }//end group TP_PCRFRole_INV
        group TP_PCRFRole_ST {	//Session Termination
        }//end group  TP_PCRFRole_ST
@@ -162,14 +372,14 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
                									mw_cC_Request_Type(INITIAL_REQUEST_E),
                									f_framedIpAddress4(),
                									f_framedIpAddress6(),
                									?));
                									*));

                f_selfOrClientSyncAndVerdict(c_tbDone, f_getVerdict()); //     sync

@@ -192,7 +402,7 @@ module DiameterGx_Gx_TCFunctions {

                f_selfOrClientSyncAndVerdict(c_prDone, f_getVerdict()); // sync

                f_awaiting_CCR(mw_CCR_sessionRequest(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_InitialRequest(vc_sessionId, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
+6 −1
Original line number Diff line number Diff line
@@ -248,6 +248,11 @@ module DiameterGx_PIXITS
        */
        modulepar octetstring PX_PACKET_FILTER_IDENTIFIER_DATA := '08'O; 
        
        /** @desc	enumerated type PCC_Rule_Status, PIXIT item A.1/
         * avp_Data within Rule_Failure_Code_AVP is of enumerated type Rule_Failure_Code
        */
        modulepar Rule_Failure_Code PX_RULE_FAILURE_CODE := UNKNOWN_RULE_NAME_E;
        
	} //end group DiameterCommonGxData

} // end module DiameterGx_PIXITS
 No newline at end of file
+98 −10
Original line number Diff line number Diff line
@@ -36,6 +36,18 @@ module DiameterGx_Templates {
            
        group DummyAVPHeaders{	  	    
                
            template Charging_Rule_Report_AVP m_chargRuleReport_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, 0, omit),
                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 
            }    
                
            template QoS_Information_AVP m_qoS_Information_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit),
@@ -294,16 +306,19 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }	  	    
                
            template Charging_Rule_Report_AVP m_charging_Rule_Report(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) :=
            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(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+lengthof(encvalue(p_ccrs)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/, omit),
                charging_Rule_Name := {p_crn},
                pCC_Rule_Status := p_ccrs
            }   	  	    
                
            template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatusFailure(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs, Rule_Failure_Code_AVP p_rfc) modifies m_chargRuleReport_dummy  :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit),
                charging_Rule_Name := {p_crn},
                charging_Rule_Base_Name := omit,
                bearer_Identifier := omit,
                pCC_Rule_Status := p_ccrs,
                rule_Failure_Code := omit,
                final_Unit_Indication := omit,
                aVP_Type := omit 
                rule_Failure_Code := p_rfc
            }   
                
            template Charging_Rule_Name_AVP m_charging_Rule_Name(octetstring p_avpData) :=
@@ -318,6 +333,12 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            } 	    
                
            template Rule_Failure_Code_AVP m_rule_Failure_Code(Rule_Failure_Code p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdRule_Failure_Code_AVP, 4, omit),
                aVP_Data := p_avpData
            }   
                
            template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId(Packet_Filter_Identifier_AVP p_pfId) modifies m_packet_Filter_Information_dummy :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId)), omit),
@@ -362,6 +383,25 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }      
                
            template Experimental_Result_AVP m_experimentalResult(Vendor_Id_AVP p_vendorId, Experimental_Result_Code_AVP p_expResultCode) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_AVP,  12/*12-Vendor_Id_AVP*/+12/*12-experimental_Result_Code*/, omit),
                vendor_Id := p_vendorId,
                experimental_Result_Code := p_expResultCode
            }			    
                
            template Vendor_Id_AVP m_vendorId(UInt32 p_avpData):=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdVendor_Id_AVP, 4, omit),
                aVP_Data := p_avpData
            } 
                
            template Experimental_Result_Code_AVP m_expResultCode(Experimental_Result_Type p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdExperimental_Result_Code_AVP, 4, omit),
                aVP_Data := p_avpData
            }
            
     	  }//end group sendingTemplatesForAVPs
     	  group awaitingTemplatesForAVPs{
    
@@ -430,6 +470,19 @@ module DiameterGx_Templates {
                routing_IP_Address := *,
                aVP_Type := *
            }      
                
            template Experimental_Result_AVP mw_experimentalResult(Experimental_Result_Type p_avpData) :=
            {
                aVP_Header := mw_aVP_Header_any,
                vendor_Id := ?,
                experimental_Result_Code := mw_expResultCode(p_avpData)
            }
                
            template Experimental_Result_Code_AVP mw_expResultCode(Experimental_Result_Type p_avpData) :=
            {
                aVP_Header := mw_aVP_Header_any,
                aVP_Data := p_avpData
            }
     	  }//end group awaitingTemplatesForAVPs
        } //end group SpecificAVPHeaders
    } //end group HeaderFieldTemplates
@@ -568,7 +621,7 @@ module DiameterGx_Templates {
                                        template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := {
                cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E),
                cC_Request_Number := m_cC_Request_Number(1),
                charging_Rule_Report := {m_charging_Rule_Report(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, 
                charging_Rule_Report := {m_chargRuleReport_RNameStatus(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status(PX_PCC_RULE_STATUS))}, 
                event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)}
            }
            
@@ -603,6 +656,33 @@ module DiameterGx_Templates {
				network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT)
 			}
            
            template CCR_MSG m_CCR_UpdateRequest_Invalid(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := {
                cC_Request_Type := m_cC_Request_Type(UPDATE_REQUEST_E),
                cC_Request_Number := m_cC_Request_Number(1),
                charging_Rule_Report := {m_chargRuleReport_RNameStatusFailure(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),
                    														m_pCC_Rule_Status(PX_PCC_RULE_STATUS),
                    														m_rule_Failure_Code(PX_RULE_FAILURE_CODE))}, 
                event_Trigger := {m_event_Trigger(IP_CAN_CHANGE_E)}
            }
            
            template CCR_MSG m_CCR_InitialRequest_Invalid(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 Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_basic := {
                subscription_Id := {m_subscription_Id(m_subscription_Id_Type(PX_SUBSCRIPTION_ID_TYPE),m_subscription_Id_Data(PX_SUBSCRIPTION_ID_DATA))},
                framed_IP_Address := p_framedIpAddress,
                framed_IPv6_Prefix := p_framedIp6Address,
                iP_CAN_Type := m_iP_CAN_Type(PX_IP_CAN_TYPE),
                rAT_Type := m_rAT_Type(PX_RAT_TYPE),
                called_Station_Id := m_called_Station_Id("Emergency APN"),
                event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)}
            }

          } //     end group Gxmodified_request_templates_send

		  group Gxmodified_request_templates_receive {
@@ -656,6 +736,14 @@ module DiameterGx_Templates {
                  charging_Rule_Install := ?
              }
          
              template CCA_MSG mw_CCA_ExperimentalResult( template Session_Id_AVP p_sessionId,
                                                           template Origin_Host_AVP p_originHost,
                                                           template Origin_Realm_AVP p_originRealm,
                                                           template Experimental_Result_AVP p_experimentalResult) modifies mw_CCA_basic := 
              {
                  experimental_Result := p_experimentalResult
              }
          
          } // end group Gxmodified_answer_templates_receive
          
	  } //end group Gxmodified_templates