Commit c4ee62a1 authored by schmitting's avatar schmitting
Browse files

Changed during "Validation" session in week 10/2013

parent 3456a9cc
Loading
Loading
Loading
Loading
+38 −36
Original line number Original line Diff line number Diff line
@@ -372,7 +372,7 @@ module DiameterGx_Templates {
            
            
            template QoS_Information_AVP m_qoS_Information_Bearer(template Bearer_Identifier_AVP p_bearerIdentifier) modifies m_qoS_Information_dummy :=
            template QoS_Information_AVP m_qoS_Information_Bearer(template Bearer_Identifier_AVP p_bearerIdentifier) modifies m_qoS_Information_dummy :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 4+lengthof(encvalue(p_bearerIdentifier)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 4+lengthof(encvalue(p_bearerIdentifier))/8, omit),
                bearer_Identifier := p_bearerIdentifier
                bearer_Identifier := p_bearerIdentifier
            }             			    
            }             			    
                
                
@@ -397,7 +397,7 @@ module DiameterGx_Templates {
            template Called_Station_Id_AVP m_called_Station_Id(UTF8String p_avpData) :=
            template Called_Station_Id_AVP m_called_Station_Id(UTF8String p_avpData) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCalled_Station_Id_AVP, lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCalled_Station_Id_AVP, lengthof(p_avpData), omit),
                aVP_Data := f_paddedBytes_string(p_avpData)//TODO add f_paddedBytes_string where it is needed!!!
                aVP_Data := p_avpData
            }
            }
                
                
            template PDN_Connection_ID_AVP m_pDN_Connection_ID(octetstring p_avpData) :=
            template PDN_Connection_ID_AVP m_pDN_Connection_ID(octetstring p_avpData) :=
@@ -426,7 +426,7 @@ module DiameterGx_Templates {
                
                
            template Access_Network_Charging_Identifier_Gx_AVP m_aNCI_Gx(Access_Network_Charging_Identifier_Value_AVP p_nciv) :=
            template Access_Network_Charging_Identifier_Gx_AVP m_aNCI_Gx(Access_Network_Charging_Identifier_Value_AVP p_nciv) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Identifier_Gx_AVP, lengthof(encvalue(p_nciv)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Identifier_Gx_AVP, lengthof(encvalue(p_nciv))/8, omit),
                acc_Net_Charging_Id_Val := p_nciv,
                acc_Net_Charging_Id_Val := p_nciv,
                charging_Rule_Base_Name := omit,
                charging_Rule_Base_Name := omit,
                charging_Rule_Name := omit
                charging_Rule_Name := omit
@@ -440,14 +440,14 @@ module DiameterGx_Templates {
                
                
            template Routing_Rule_Install_AVP m_routing_Rule_Install(Routing_Rule_Definition_AVP p_rrd) :=
            template Routing_Rule_Install_AVP m_routing_Rule_Install(Routing_Rule_Definition_AVP p_rrd) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Install_AVP, lengthof(encvalue(p_rrd)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Install_AVP, lengthof(encvalue(p_rrd))/8, omit),
                routing_Rule_Definition := {p_rrd},
                routing_Rule_Definition := {p_rrd},
                aVP_Type := omit
                aVP_Type := omit
            }
            }
                
                
            template Routing_Rule_Definition_AVP m_routing_Rule_Definition(Routing_Rule_Identifier_AVP p_rri, Routing_Filter_AVP p_rf) :=
            template Routing_Rule_Definition_AVP m_routing_Rule_Definition(Routing_Rule_Identifier_AVP p_rri, Routing_Filter_AVP p_rf) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Definition_AVP, (lengthof(encvalue(p_rri))+lengthof(encvalue(p_rf))), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Definition_AVP, (lengthof(encvalue(p_rri))/8+lengthof(encvalue(p_rf))/8), omit),
                routing_Rule_Identifier := p_rri,
                routing_Rule_Identifier := p_rri,
                routing_Filter := {p_rf},
                routing_Filter := {p_rf},
                precedence := omit,
                precedence := omit,
@@ -463,7 +463,7 @@ module DiameterGx_Templates {
                
                
            template Routing_Filter_AVP m_routing_Filter :=
            template Routing_Filter_AVP m_routing_Filter :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Filter_AVP, 12/*12-flow_direction*/+ lengthof(encvalue(m_flow_Description(m_iPFilterRule))), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Filter_AVP, 12/*12-flow_direction*/+ lengthof(encvalue(m_flow_Description(m_iPFilterRule)))/8, omit),
                flow_Description := m_flow_Description(m_iPFilterRule),
                flow_Description := m_flow_Description(m_iPFilterRule),
                flow_Direction := m_flowDirection_Bidirectional,
                flow_Direction := m_flowDirection_Bidirectional,
                toS_Traffic_Class := omit,
                toS_Traffic_Class := omit,
@@ -474,14 +474,14 @@ module DiameterGx_Templates {
            
            
                                    
                                    
            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 := {
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Information_AVP, lengthof(encvalue(p_packetFilterIdentifier))/8+lengthof(encvalue(p_flowDirection))/8, omit),
				packet_Filter_Identifier := p_packetFilterIdentifier,
				packet_Filter_Identifier := p_packetFilterIdentifier,
				flow_Direction := p_flowDirection
				flow_Direction := p_flowDirection
			} 			    
			} 			    


            template Flow_Description_AVP m_flow_Description(IPFilterRule_Type p_IPftr) :=
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Description_AVP, lengthof(encvalue(p_IPftr))/8, omit),
                aVP_Data := p_IPftr
                aVP_Data := p_IPftr
            }      
            }      
                
                
@@ -497,11 +497,13 @@ module DiameterGx_Templates {
                direction := "out",
                direction := "out",
                proto := "ip",
                proto := "ip",
                src := 	{
                src := 	{
                    ipno := 4,                   
                    addr := "1.1.1.1",
                    addr := "1.1.1.1",
                    mask := omit,
                    mask := omit,
                    ports := omit
                    ports := omit
                	},
                	},
                dst := 	{
                dst := 	{
                    ipno := 4,                      
                    addr := "10.10.10.1",
                    addr := "10.10.10.1",
                    mask := omit,
                    mask := omit,
                    ports := omit                    
                    ports := omit                    
@@ -523,14 +525,14 @@ module DiameterGx_Templates {
                           
                           
            template Charging_Rule_Report_AVP m_chargRuleReport_RNameStatus(Charging_Rule_Name_AVP p_crn, PCC_Rule_Status_AVP p_ccrs) modifies m_chargRuleReport_dummy :=
            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))+12/*PCC_Rule_Status_AVP length*/, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))/8+12/*PCC_Rule_Status_AVP length*/, omit),
                charging_Rule_Name := {p_crn},
                charging_Rule_Name := {p_crn},
                pCC_Rule_Status := p_ccrs
                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  :=
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Report_AVP, lengthof(encvalue(p_crn))/8+12/*PCC_Rule_Status_AVP length*/+12/*Rule_Failure_Code_AVP length*/, omit),
                charging_Rule_Name := {p_crn},
                charging_Rule_Name := {p_crn},
                pCC_Rule_Status := p_ccrs,
                pCC_Rule_Status := p_ccrs,
                rule_Failure_Code := p_rfc
                rule_Failure_Code := p_rfc
@@ -539,14 +541,14 @@ module DiameterGx_Templates {
                        
                        
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chargingRuleDefinition) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition(template Charging_Rule_Definition_AVP p_chargingRuleDefinition) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition))/8, omit),
                charging_Rule_Definition := {p_chargingRuleDefinition}
                charging_Rule_Definition := {p_chargingRuleDefinition}
            }
            }
            
            
                                    
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition_ActTime(template Charging_Rule_Definition_AVP p_chargingRuleDefinition, template Rule_Activation_Time_AVP p_ruleActivationTime) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition_ActTime(template Charging_Rule_Definition_AVP p_chargingRuleDefinition, template Rule_Activation_Time_AVP p_ruleActivationTime) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition))+lengthof(encvalue(p_ruleActivationTime)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition))/8+lengthof(encvalue(p_ruleActivationTime))/8, omit),
                charging_Rule_Definition := {p_chargingRuleDefinition},
                charging_Rule_Definition := {p_chargingRuleDefinition},
                rule_Activation_Time := p_ruleActivationTime
                rule_Activation_Time := p_ruleActivationTime
            }
            }
@@ -554,7 +556,7 @@ module DiameterGx_Templates {
                                                
                                                
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition_DeActTime(template Charging_Rule_Definition_AVP p_chargingRuleDefinition, template Rule_DeActivation_Time_AVP p_ruleDeActivationTime) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Definition_DeActTime(template Charging_Rule_Definition_AVP p_chargingRuleDefinition, template Rule_DeActivation_Time_AVP p_ruleDeActivationTime) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition))+lengthof(encvalue(p_ruleDeActivationTime)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleDefinition))/8+lengthof(encvalue(p_ruleDeActivationTime))/8, omit),
                charging_Rule_Definition := {p_chargingRuleDefinition},
                charging_Rule_Definition := {p_chargingRuleDefinition},
                rule_DeActivation_Time := p_ruleDeActivationTime
                rule_DeActivation_Time := p_ruleDeActivationTime
            }
            }
@@ -562,40 +564,40 @@ module DiameterGx_Templates {
                                    
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_CorrelationId(template Charging_Correlation_Indicator_AVP p_chargingCorrelationIndicator) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_CorrelationId(template Charging_Correlation_Indicator_AVP p_chargingCorrelationIndicator) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingCorrelationIndicator)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingCorrelationIndicator))/8, omit),
                charging_Correlation_Indicator := p_chargingCorrelationIndicator
                charging_Correlation_Indicator := p_chargingCorrelationIndicator
            }
            }
                                    
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleName))/8, omit),
                charging_Rule_Name := {p_chargingRuleName}
                charging_Rule_Name := {p_chargingRuleName}
            }
            }
                        
                        
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name_RAN(template Charging_Rule_Name_AVP p_chargingRuleName, template Resource_Allocation_Notification_AVP p_resourceAllocationNotification) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_Name_RAN(template Charging_Rule_Name_AVP p_chargingRuleName, template Resource_Allocation_Notification_AVP p_resourceAllocationNotification) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))+lengthof(encvalue(p_chargingRuleName)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_resourceAllocationNotification))/8+lengthof(encvalue(p_chargingRuleName))/8, omit),
                charging_Rule_Name := {p_chargingRuleName},
                charging_Rule_Name := {p_chargingRuleName},
                resource_Allocation_Notification := p_resourceAllocationNotification
                resource_Allocation_Notification := p_resourceAllocationNotification
            }            
            }            
                                    
                                    
            template Charging_Rule_Install_AVP m_chrgRuleInstall_2Name(template Charging_Rule_Base_Name_AVP p_chargingRuleBName1,template Charging_Rule_Base_Name_AVP p_chargingRuleBName2) modifies m_chrgRuleInstall_dummy:=
            template Charging_Rule_Install_AVP m_chrgRuleInstall_2Name(template Charging_Rule_Base_Name_AVP p_chargingRuleBName1,template Charging_Rule_Base_Name_AVP p_chargingRuleBName2) modifies m_chrgRuleInstall_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))+lengthof(encvalue(p_chargingRuleBName2)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Install_AVP, lengthof(encvalue(p_chargingRuleBName1))/8+lengthof(encvalue(p_chargingRuleBName2))/8, omit),
                charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2}
                charging_Rule_Base_Name := {p_chargingRuleBName1, p_chargingRuleBName2}
            }
            }
            
            
                                                
                                                
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleRemove_dummy:=
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_Name(template Charging_Rule_Name_AVP p_chargingRuleName) modifies m_chrgRuleRemove_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleName)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleName))/8, omit),
                charging_Rule_Name := {p_chargingRuleName}
                charging_Rule_Name := {p_chargingRuleName}
            }
            }
            
            
                                                            
                                                            
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_BName(template Charging_Rule_Base_Name_AVP p_chargingRuleBName) modifies m_chrgRuleRemove_dummy:=
            template Charging_Rule_Remove_AVP m_chrgRuleRemove_BName(template Charging_Rule_Base_Name_AVP p_chargingRuleBName) modifies m_chrgRuleRemove_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleBName)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Remove_AVP, lengthof(encvalue(p_chargingRuleBName))/8, omit),
                charging_Rule_Base_Name := {p_chargingRuleBName}
                charging_Rule_Base_Name := {p_chargingRuleBName}
            }
            }
                
                
@@ -607,21 +609,21 @@ module DiameterGx_Templates {
                            
                            
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition (octetstring p_avpData) modifies m_chrgRuleDefinition_dummy:=
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition (octetstring p_avpData) modifies m_chrgRuleDefinition_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData))), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData)
                charging_Rule_Name := m_chargingRuleName(p_avpData)
            }   
            }   
            
            
                        
                        
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_MK (octetstring p_avpData, template Monitoring_Key_AVP p_monitoringKey) modifies m_chrgRuleDefinition_dummy:=
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_MK (octetstring p_avpData, template Monitoring_Key_AVP p_monitoringKey) modifies m_chrgRuleDefinition_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))+lengthof(encvalue(p_monitoringKey)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData))/8)+lengthof(encvalue(p_monitoringKey))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                monitoring_Key := p_monitoringKey
                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:=
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))/8+lengthof(encvalue(p_flowInformation))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                flow_Information := {p_flowInformation},
                flow_Information := {p_flowInformation},
                aF_Signalling_Protocol := p_afSignallingProtocol
                aF_Signalling_Protocol := p_afSignallingProtocol
@@ -630,7 +632,7 @@ module DiameterGx_Templates {
                        
                        
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_FI (octetstring p_avpData, template Flow_Information_AVP p_flowInformation) modifies m_chrgRuleDefinition_dummy:=
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))/8+lengthof(encvalue(p_flowInformation))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                flow_Information := {p_flowInformation}
                flow_Information := {p_flowInformation}
            }
            }
@@ -638,7 +640,7 @@ module DiameterGx_Templates {
                        
                        
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_QoS (octetstring p_avpData, template QoS_Information_AVP p_qoSInformation) modifies m_chrgRuleDefinition_dummy:=
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_QoS (octetstring p_avpData, template QoS_Information_AVP p_qoSInformation) modifies m_chrgRuleDefinition_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))+lengthof(encvalue(p_qoSInformation)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))/8+lengthof(encvalue(p_qoSInformation))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                qoS_Information := p_qoSInformation
                qoS_Information := p_qoSInformation
            }
            }
@@ -646,7 +648,7 @@ module DiameterGx_Templates {
                        
                        
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_RG (octetstring p_avpData, template Rating_Group_AVP p_ratingGroup) modifies m_chrgRuleDefinition_dummy:=
            template Charging_Rule_Definition_AVP m_chrgRuleDefinition_RG (octetstring p_avpData, template Rating_Group_AVP p_ratingGroup) modifies m_chrgRuleDefinition_dummy:=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))+lengthof(encvalue(p_ratingGroup)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Definition_AVP, lengthof(encvalue(m_chargingRuleName(p_avpData)))/8+lengthof(encvalue(p_ratingGroup))/8, omit),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                charging_Rule_Name := m_chargingRuleName(p_avpData),
                rating_Group := p_ratingGroup
                rating_Group := p_ratingGroup
            }      
            }      
@@ -671,27 +673,27 @@ module DiameterGx_Templates {
                
                
            template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId(Packet_Filter_Identifier_AVP p_pfId) modifies m_packet_Filter_Information_dummy :=
            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),
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId))/8, omit),
                packet_Filter_Identifier := p_pfId
                packet_Filter_Identifier := p_pfId
            }      
            }      
                
                
            template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId_FlowDirection(Packet_Filter_Identifier_AVP p_pfId) modifies m_packet_Filter_Information_dummy :=
            template Packet_Filter_Information_AVP m_pFInfo_PacketFilterId_FlowDirection(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))+12/*12-flow_direction*/, omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP,  lengthof(encvalue(p_pfId))/8+12/*12-flow_direction*/, omit),
                packet_Filter_Identifier := p_pfId,
                packet_Filter_Identifier := p_pfId,
                flow_Direction := m_flowDirection_Bidirectional
                flow_Direction := m_flowDirection_Bidirectional
            }      
            }      
                
                
            template Packet_Filter_Information_AVP m_pFInfo_Precedence_pFContent(Precedence_AVP p_precedence, Packet_Filter_Content_AVP p_pfc) modifies m_packet_Filter_Information_dummy :=
            template Packet_Filter_Information_AVP m_pFInfo_Precedence_pFContent(Precedence_AVP p_precedence, Packet_Filter_Content_AVP p_pfc) modifies m_packet_Filter_Information_dummy :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_precedence)) +lengthof(encvalue(p_pfc)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_precedence))/8 +lengthof(encvalue(p_pfc))/8, omit),
                precedence := p_precedence,
                precedence := p_precedence,
                packet_Filter_Content := p_pfc
                packet_Filter_Content := p_pfc
            } 			    
            } 			    


            template Packet_Filter_Content_AVP m_packet_Filter_Content(IPFilterRule_Type p_IPftr) :=
            template Packet_Filter_Content_AVP m_packet_Filter_Content(IPFilterRule_Type p_IPftr) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Content_AVP, lengthof(encvalue(p_IPftr)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Content_AVP, lengthof(encvalue(p_IPftr))/8, omit),
                aVP_Data := p_IPftr
                aVP_Data := p_IPftr
            }
            }
                
                
@@ -814,7 +816,7 @@ module DiameterGx_Templates {
            		(template Monitoring_Key_AVP p_monitoringKey, 
            		(template Monitoring_Key_AVP p_monitoringKey, 
            		 template Granted_Service_Unit_AVP p_grantedServiceUnit) :=
            		 template Granted_Service_Unit_AVP p_grantedServiceUnit) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_monitoringKey))+lengthof(encvalue(p_grantedServiceUnit)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit),


                    monitoring_Key := p_monitoringKey,
                    monitoring_Key := p_monitoringKey,
                    granted_Service_Unit := p_grantedServiceUnit,
                    granted_Service_Unit := p_grantedServiceUnit,
@@ -828,7 +830,7 @@ module DiameterGx_Templates {
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport 
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestReport 
            		(template Usage_Monitoring_Report_AVP p_usageMonitoringReport) :=
            		(template Usage_Monitoring_Report_AVP p_usageMonitoringReport) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_usageMonitoringReport)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(p_usageMonitoringReport))/8, omit),


                    monitoring_Key := omit,
                    monitoring_Key := omit,
                    granted_Service_Unit := omit,
                    granted_Service_Unit := omit,
@@ -843,7 +845,7 @@ module DiameterGx_Templates {
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestSupport 
            template Usage_Monitoring_Information_AVP m_usageMonitoringInformationRequestSupport 
            		(template Usage_Monitoring_Support_AVP p_usageMonitoringSupport) :=
            		(template Usage_Monitoring_Support_AVP p_usageMonitoringSupport) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))+lengthof(encvalue(p_usageMonitoringSupport)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdUsage_Monitoring_Information_AVP, 8+lengthof(encvalue(m_monitoringKey(PX_MONITORING_KEY)))/8+lengthof(encvalue(p_usageMonitoringSupport))/8, omit),


                    monitoring_Key := m_monitoringKey(PX_MONITORING_KEY),
                    monitoring_Key := m_monitoringKey(PX_MONITORING_KEY),
                    granted_Service_Unit := omit,
                    granted_Service_Unit := omit,
@@ -859,7 +861,7 @@ module DiameterGx_Templates {
            		(template QoS_Class_Identifier_AVP p_qoSClassIdentifier,
            		(template QoS_Class_Identifier_AVP p_qoSClassIdentifier,
            		 template Allocation_Retention_Priority_AVP p_allocationRetentionPriority) :=
            		 template Allocation_Retention_Priority_AVP p_allocationRetentionPriority) :=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdDefault_EPS_Bearer_QoS_AVP, 8+lengthof(encvalue(p_qoSClassIdentifier))+lengthof(encvalue(p_allocationRetentionPriority)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdDefault_EPS_Bearer_QoS_AVP, 8+lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit),
				qoS_Class_Identifier := p_qoSClassIdentifier,
				qoS_Class_Identifier := p_qoSClassIdentifier,
                allocation_Retention_Priority := p_allocationRetentionPriority,
                allocation_Retention_Priority := p_allocationRetentionPriority,
                aVP_Type := omit
                aVP_Type := omit
@@ -874,7 +876,7 @@ module DiameterGx_Templates {
            
            
            template Allocation_Retention_Priority_AVP m_allocRetentionPrio (template Priority_Level_AVP p_priorityLevel):=
            template Allocation_Retention_Priority_AVP m_allocRetentionPrio (template Priority_Level_AVP p_priorityLevel):=
            {
            {
                aVP_Header := m_aVP_HeaderVid(c_vendIdAllocation_Retention_Priority_AVP, 8+lengthof(encvalue(p_priorityLevel)), omit),
                aVP_Header := m_aVP_HeaderVid(c_vendIdAllocation_Retention_Priority_AVP, 8+lengthof(encvalue(p_priorityLevel))/8, omit),
                priority_Level := p_priorityLevel,
                priority_Level := p_priorityLevel,
                pre_emption_Capability := omit,
                pre_emption_Capability := omit,
                pre_emption_Vulnerability := omit
                pre_emption_Vulnerability := omit