Commit 0e670aa7 authored by schmitting's avatar schmitting
Browse files

Validation 5/6/13

parent 46b7757e
Loading
Loading
Loading
Loading
+36 −24
Original line number Diff line number Diff line
@@ -2118,7 +2118,7 @@ module DiameterGx_Gx_TCFunctions {
                    
                f_awaiting_RAA(mw_RAA_basic(?,?,?)); 
                
                f_awaiting_CCR(mw_CCR_AccessNetChargId(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_AccessNetChargId(?, 
                    									vc_originHost, 
                    									vc_originRealm, 
                    									vc_destinationRealm,
@@ -2161,7 +2161,7 @@ module DiameterGx_Gx_TCFunctions {
				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_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_dummy))));
							m_chrgRuleInstall_Definition(m_chrgRuleDefinition_QoS(PX_CHARGING_RULE_NAME_DATA, m_qoS_Information_ClassIdentifier(QCI_1_E)))));
                    
                f_awaiting_RAA(mw_RAA_basic(?,?,?)); 

@@ -2284,7 +2284,7 @@ module DiameterGx_Gx_TCFunctions {
				tc_wait.timeout;

				// Revalidation due to PCRF request in RAR
                f_awaiting_CCR(mw_CCR_basic(vc_sessionId, 
                f_awaiting_CCR(mw_CCR_basic(?, 
        									vc_originHost, 
        									vc_originRealm, 
        									vc_destinationRealm,
@@ -2455,12 +2455,11 @@ module DiameterGx_Gx_TCFunctions {

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E)));
                
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall2 // RAR in Rx-module has different header!
				f_send_RAR(DiameterGx_Templates.m_RAR_CharRuleRemoveInstall // 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)),
							m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA2)),
							m_chrgRuleInstall_Name(m_chargingRuleName(PX_CHARGING_RULE_NAME_DATA3))
							m_chrgRuleInstall_Definition(m_chrgRuleDefinition(PX_CHARGING_RULE_NAME_DATA))
							));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
@@ -2567,7 +2566,7 @@ module DiameterGx_Gx_TCFunctions {

                action("Trigger for Emergency service");
                
                f_awaiting_CCR(mw_CCR_Request_EMS(vc_sessionId, 
                f_awaiting_CCR((mw_CCR_Request_EMS1(?, 
                									vc_originHost, 
                									vc_originRealm, 
                									vc_destinationRealm,
@@ -2575,8 +2574,16 @@ module DiameterGx_Gx_TCFunctions {
                									f_framedIpAddress4(),
                									f_framedIpAddress6(),
                									*,
                									mw_CalledStationId(PX_EMERGENCY_APN),
                									mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?)));
                									mw_CalledStationId(PX_EMERGENCY_APN)),
                                mw_CCR_Request_EMS2(?, 
                                                    vc_originHost, 
                                                    vc_originRealm, 
                                                    vc_destinationRealm,
                                                    mw_cC_Request_Type(INITIAL_REQUEST_E),
                                                    f_framedIpAddress4(),
                                                    f_framedIpAddress6(),
                                                    *,
                                                    mw_CalledStationId(PX_EMERGENCY_APN))));

                f_send_CCA(m_CCA_basic(vc_sessionId, vc_originHost, vc_originRealm, m_cC_Request_Type(INITIAL_REQUEST_E)));
    
@@ -2618,7 +2625,10 @@ module DiameterGx_Gx_TCFunctions {
						   (vc_sessionId, vc_originHost, vc_originRealm,
							vc_destinationRealm, vc_destinationHost, 
							m_event_Trigger(USAGE_REPORT_E),
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), omit)));
							m_usageMonitoringInformation(m_monitoringKey(PX_MONITORING_KEY), 
                                                         m_grantedServiceUnit_cCs(m_cC_Total_Octets(1024000),
                                                                                  m_cC_Input_Octets(512000),
                                                                                  m_cC_Output_Octets(512000)))));
             
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 

@@ -2658,9 +2668,11 @@ module DiameterGx_Gx_TCFunctions {
				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_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)))
							                                                   m_flowDirection_Bidirectional),
							             m_afSignallingProtocol(SIP_E)))
							));
                    
                f_awaiting_RAA(mw_RAA_basic(vc_sessionId,?,?)); 
+9 −9
Original line number Diff line number Diff line
@@ -345,24 +345,24 @@ module DiameterGx_PIXITS
        modulepar octetstring PX_MONITORING_KEY2 := '01020304050677'O;
        
                        
        /** @desc	octectstring, 
         * avp_Data within Revalidation_Time_AVP is of UInt64 type
        /** @desc	UInt32, 
         * avp_Data within Revalidation_Time_AVP is of UInt32 type
         * (parameter is part of RAR message)
        */
        modulepar UInt64 PX_REVALIDATION_TIME := 7;  
        modulepar UInt32 PX_REVALIDATION_TIME := 7;  
                                
        /** @desc	octectstring, 
         * avp_Data within Rule_Activation_Time_AVP is of UInt64 type
        /** @desc	UInt32, 
         * avp_Data within Rule_Activation_Time_AVP is of UInt32 type
         * (parameter is part of Charging_Rule_Install_AVP)
        */
        modulepar UInt64 PX_ACTIVATION_TIME := 0;  
        modulepar UInt32 PX_ACTIVATION_TIME := 0;  
        
                                        
        /** @desc	octectstring, 
         * avp_Data within Rule_DeActivation_Time_AVP is of UInt64 type
        /** @desc	UInt32, 
         * avp_Data within Rule_DeActivation_Time_AVP is of UInt32 type
         * (parameter is part of Charging_Rule_Install_AVP)
        */
        modulepar UInt64 PX_DEACTIVATION_TIME := 0; 
        modulepar UInt32 PX_DEACTIVATION_TIME := 0; 
        
                                                
        /** @desc	UTF8String, 
+89 −25
Original line number Diff line number Diff line
@@ -229,6 +229,20 @@ module DiameterGx_Templates {
                aVP_Type := *
            }
            
            template Granted_Service_Unit_AVP m_grantedServiceUnit_dummy := {
        		//	Ref: RFC4006 8.17.  Granted-Service-Unit AVP
                 	aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code,0, omit),
                	tariff_Time_Change  := omit,
        			cC_Time  := omit,
        			cC_Money  := omit,
        			cC_Total_Octets  := omit,
        			cC_Input_Octets  := omit,
        			cC_Output_Octets  := omit,
        			cC_Service_Specific_Units := omit,
        			aVP_Type := omit				
        		}
            
            
            template Flow_Information_AVP mw_flowInformation_dummy := {
				aVP_Header := mw_aVP_Header(c_flow_Information_AVP_Code),
				flow_Description := *,
@@ -369,7 +383,7 @@ module DiameterGx_Templates {
            
            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_qoS_Information_AVP_Code, 4+lengthof(encvalue(p_bearerIdentifier))/8, omit),
                aVP_Header := m_aVP_HeaderVid(c_qoS_Information_AVP_Code, lengthof(encvalue(p_bearerIdentifier))/8, omit),
                bearer_Identifier := p_bearerIdentifier
            }             			    
                
@@ -411,7 +425,7 @@ module DiameterGx_Templates {
            
            template Bearer_Identifier_AVP m_bearer_Identifier(octetstring p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_bearer_Usage_AVP_Code, 4+lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid(c_bearer_Identifier_AVP_Code, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }
                
@@ -769,33 +783,33 @@ module DiameterGx_Templates {
                        
            template Revalidation_Time_AVP m_revalidationTime (Time p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 8, omit),
                aVP_Header := m_aVP_HeaderVid(c_revalidation_Time_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }               
                                    
            template Rule_Activation_Time_AVP m_activationTime (Time p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 8, omit),
                aVP_Header := m_aVP_HeaderVid(c_rule_Activation_Time_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }           
            
                                                
            template Rule_DeActivation_Time_AVP m_deactivationTime (Time p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 8, omit),
                aVP_Header := m_aVP_HeaderVid(c_rule_DeActivation_Time_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }
            
                        
            template AF_Signalling_Protocol_AVP m_afSignallingProtocol (AF_Signalling_Protocol_Type p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 8, omit),
                aVP_Header := m_aVP_HeaderVid(c_aF_Signalling_Protocol_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }
            
            template Usage_Monitoring_Report_AVP m_usageMonitoringReport (Usage_Monitoring_Report p_avpData) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 8, omit),
                aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Report_AVP_Code, 4, omit),
                aVP_Data := p_avpData
            }
            
@@ -811,7 +825,7 @@ module DiameterGx_Templates {
            		(template Monitoring_Key_AVP p_monitoringKey, 
            		 template Granted_Service_Unit_AVP p_grantedServiceUnit) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, 8+lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit),
                aVP_Header := m_aVP_HeaderVid(c_usage_Monitoring_Information_AVP_Code, lengthof(encvalue(p_monitoringKey))/8+lengthof(encvalue(p_grantedServiceUnit))/8, omit),

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

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

                    monitoring_Key := m_monitoringKey(PX_MONITORING_KEY),
                    granted_Service_Unit := omit,
@@ -856,7 +870,7 @@ module DiameterGx_Templates {
            		(template QoS_Class_Identifier_AVP p_qoSClassIdentifier,
            		 template Allocation_Retention_Priority_AVP p_allocationRetentionPriority) :=
            {
                aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, 8+lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit),
                aVP_Header := m_aVP_HeaderVid(c_default_EPS_Bearer_QoS_AVP_Code, lengthof(encvalue(p_qoSClassIdentifier))/8+lengthof(encvalue(p_allocationRetentionPriority))/8, omit),
				qoS_Class_Identifier := p_qoSClassIdentifier,
                allocation_Retention_Priority := p_allocationRetentionPriority,
                aVP_Type := omit
@@ -871,7 +885,7 @@ module DiameterGx_Templates {
            
            template Allocation_Retention_Priority_AVP m_allocRetentionPrio (template Priority_Level_AVP p_priorityLevel):=
            {
                aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, 8+lengthof(encvalue(p_priorityLevel))/8, omit),
                aVP_Header := m_aVP_HeaderVid(c_allocation_Retention_Priority_AVP_Code, lengthof(encvalue(p_priorityLevel))/8, omit),
                priority_Level := p_priorityLevel,
                pre_emption_Capability := omit,
                pre_emption_Vulnerability := omit
@@ -886,13 +900,45 @@ module DiameterGx_Templates {
                        
            template Logical_Access_ID_AVP m_logicalAccessID(template (value) octetstring p_avpData) :=
            { 
                aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid(c_logical_Access_ID_AVP_Code, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }                                          
                        
            template Physical_Access_ID_AVP m_physicalAccessID(template (value) UTF8String p_avpData) :=
            { 
                aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, 4+lengthof(p_avpData), omit),
                aVP_Header := m_aVP_HeaderVid(c_physical_Access_ID_AVP_Code, lengthof(p_avpData), omit),
                aVP_Data := p_avpData
            }    
            
            template Granted_Service_Unit_AVP m_grantedServiceUnit_cCs(template CC_Total_Octets_AVP p_cC_Total_Octets,
                                                                        template CC_Input_Octets_AVP p_cC_Input_Octets,	
                                                                        template CC_Output_Octets_AVP p_cC_Output_Octets) modifies m_grantedServiceUnit_dummy:= {
                 //	Ref: RFC4006 8.17.  Granted-Service-Unit AVP
                     aVP_Header := m_aVP_HeaderVid(c_granted_Service_Unit_AVP_Code,
                                                  (lengthof(encvalue(p_cC_Total_Octets))/8+
                                                   lengthof(encvalue(p_cC_Input_Octets))/8+
                                                   lengthof(encvalue(p_cC_Output_Octets))/8), 
                                                     omit),
                     cC_Total_Octets  := p_cC_Total_Octets,
                     cC_Input_Octets  := p_cC_Input_Octets,
                     cC_Output_Octets  := p_cC_Output_Octets				
             }                                        
                        
             template CC_Total_Octets_AVP m_cC_Total_Octets(template (value) UInt64 p_avpData) :=
             { 
                 aVP_Header := m_aVP_HeaderVid(c_cC_Total_Octets_AVP_Code, 8, omit),
                 aVP_Data := p_avpData
             }                                          
                        
             template CC_Input_Octets_AVP m_cC_Input_Octets(template (value) UInt64 p_avpData) :=
             { 
                 aVP_Header := m_aVP_HeaderVid(c_cC_Input_Octets_AVP_Code, 8, omit),
                 aVP_Data := p_avpData
             }                                          
                        
             template CC_Output_Octets_AVP m_cC_Output_Octets(template (value) UInt64 p_avpData) :=
             { 
                 aVP_Header := m_aVP_HeaderVid(c_cC_Output_Octets_AVP_Code, 8, omit),
                 aVP_Data := p_avpData
             }
            
@@ -911,14 +957,14 @@ module DiameterGx_Templates {
                aVP_Data := p_avpData
            }    
                        
            template Subscription_Id_AVP mw_subscription_Id(Subscription_Id_Type_AVP p_typeAVP, Subscription_Id_Data_AVP p_dataAVP):= 
            template Subscription_Id_AVP mw_subscription_Id(template Subscription_Id_Type_AVP p_typeAVP, template Subscription_Id_Data_AVP p_dataAVP):= 
            {
                aVP_Header := mw_aVP_Header(c_subscription_Id_AVP_Code),
                subscription_Id_Type := p_typeAVP,
                subscription_Id_Data := p_dataAVP
            }  
                        
            template Subscription_Id_Type_AVP mw_subscription_Id_Type(Subscription_Id_Ty_Type p_avpData):= 
            template Subscription_Id_Type_AVP mw_subscription_Id_Type(template Subscription_Id_Ty_Type p_avpData):= 
            {
                aVP_Header := mw_aVP_Header(c_subscription_Id_Type_AVP_Code),
                aVP_Data := p_avpData
@@ -1648,19 +1694,18 @@ module DiameterGx_Templates {
              }                                        

                          
              template RAR_MSG m_RAR_CharRuleRemoveInstall2(template Session_Id_AVP p_sessionId,
              template RAR_MSG m_RAR_CharRuleRemoveInstall(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,
                                           template Charging_Rule_Install_AVP p_chargingRuleInstall,
                                           template Charging_Rule_Install_AVP p_chargingRuleInstall2)
                                           template Charging_Rule_Install_AVP p_chargingRuleInstall)
                                           
                  modifies m_RAR_basic := 
              {
              	  charging_Rule_Remove := {p_chargingRuleRemove},
              	  charging_Rule_Install := {p_chargingRuleInstall,p_chargingRuleInstall2}
              	  charging_Rule_Install := {p_chargingRuleInstall}
              }      

                          
@@ -1761,7 +1806,7 @@ module DiameterGx_Templates {
            }
            
                        
            template CCR_MSG mw_CCR_Request_EMS(template Session_Id_AVP p_sessionId,
            template CCR_MSG mw_CCR_Request_EMS1(template Session_Id_AVP p_sessionId,
                                        template Origin_Host_AVP p_originHost,
                                        template Origin_Realm_AVP p_originRealm,
                                        template Destination_Realm_AVP p_destinationRealm,
@@ -1769,8 +1814,7 @@ module DiameterGx_Templates {
            							template Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                        template Routing_Rule_Install_AVP p_routing_Rule_Install,
                                        template Called_Station_Id_AVP p_calledStationId,
                                        template User_Equipment_Info_AVP p_userEquipmentInfo
                                        template Called_Station_Id_AVP p_calledStationId
                                        ) modifies mw_CCR_basic := {
                subscription_Id := {mw_subscription_Id(mw_subscription_Id_Type(END_USER_IMSI_E),mw_subscription_Id_Data(?))},
                framed_IP_Address := p_framedIpAddress,
@@ -1778,8 +1822,28 @@ module DiameterGx_Templates {
                iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE),
                rAT_Type := mw_rAT_Type(PX_RAT_TYPE),
                routing_Rule_Install := p_routing_Rule_Install,
                called_Station_Id := p_calledStationId
                
            }
                        
            template CCR_MSG mw_CCR_Request_EMS2(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 CC_Request_Type_AVP p_cCRequestType,
            							template Framed_IP_Address_AVP p_framedIpAddress,
            							template Framed_IPv6_Prefix_AVP p_framedIp6Address,
                                        template Routing_Rule_Install_AVP p_routing_Rule_Install,
                                        template Called_Station_Id_AVP p_calledStationId
                                        ) modifies mw_CCR_basic := {
                framed_IP_Address := p_framedIpAddress,
                framed_IPv6_Prefix := p_framedIp6Address,
                iP_CAN_Type := mw_iP_CAN_Type(PX_IP_CAN_TYPE),
                rAT_Type := mw_rAT_Type(PX_RAT_TYPE),
                routing_Rule_Install := p_routing_Rule_Install,
                called_Station_Id := p_calledStationId,
                user_Equipment_Info := p_userEquipmentInfo
                user_Equipment_Info := mw_UserEquipmentInfo(mw_UserEquipmentInfoType(IMEISV_E),?)
                
            }
                        
            template RAR_MSG mw_RAR_sessReleaseCause(template Session_Id_AVP p_sessionId,