Commit 3ffb79ef authored by wattelet's avatar wattelet
Browse files

Diameter S9 update

parent 7f43f0c6
Loading
Loading
Loading
Loading
+131 −15
Original line number Diff line number Diff line
@@ -26,6 +26,8 @@ module DiameterS9_Templates {
    import from DiameterGx_PIXITS all;
    import from DiameterGx_Templates all;    

    import from DiameterS9_TypesAndValues all;

    group SubFields{

    } //end group SubFields
@@ -56,29 +58,143 @@ module DiameterS9_Templates {

        group S9basic_request_templates_send {

            template CCR_MSG m_CCR_S9_basic(template Session_Id_AVP p_sessionId,
            template S9_CCR_MSG m_S9_CCR_dummy := {
                header								:= m_diameterHeaderReq_dummy ( CCR_E, c_applIdCommonMsg ),
				session_Id							:= m_sessionId_dummy,
                auth_Application_Id					:= m_authApplicationId_dummy,
                origin_Host							:= m_originHost_dummy,
                origin_Realm						:= m_originRealm_dummy,
                destination_Realm					:= m_destinationRealm_dummy,
                cC_Request_Type						:= m_cC_Request_Type_dummy,
                cC_Request_Number					:= m_cC_Request_Number_dummy,
                destination_Host					:= omit,
                origin_State_Id						:= omit,
                subscription_Id						:= omit,
                supported_Features					:= omit,
                tDF_Information						:= omit,
                network_Request_Support				:= omit,
                packet_Filter_Information			:= omit,
                packet_Filter_Operation				:= omit,
                bearer_Identifier					:= omit,
                bearer_Operation					:= omit,
                framed_IP_Address					:= omit,
                framed_IPv6_Prefix					:= omit,
                iP_CAN_Type							:= omit,
                threeGPP_RAT_Type					:= omit,
                rAT_Type							:= omit,
                termination_Cause					:= omit,
                user_Equipment_Info_Type			:= omit,
                qoS_Information						:= omit,
                qoS_Negotiation						:= omit,
                qoS_Upgrade							:= omit,
                default_EPS_Bearer_QoS				:= omit,
                aN_GW_Address						:= omit,
                aN_GW_Status						:= omit,
                threeGPP_SGSN_MCC_MNC				:= omit,
                threeGPP_SGSN_Address				:= omit,
                threeGPP_SGSN_IPv6_Address			:= omit,
                threeGPP_GGSN_Address				:= omit,
                threeGPP_GGSN_IPv6_Address			:= omit,
                rAI									:= omit,
                threeGPP_User_Location_Info			:= omit,
                tWAN_Identifier						:= omit,
                threeGPP_MS_TimeZone				:= omit,
                threeGPP2_BSID						:= omit,
                user_CSG_Information				:= omit,
                called_Station_Id					:= omit,
                pDN_Connection_ID					:= omit,
				qoS_Rule_Report						:= omit,
                tFT_Packet_Filter_Information		:= omit,
                charging_Rule_Report				:= omit,
                application_Detection_Info			:= omit,
                event_Trigger						:= omit,
                event_Report_Indication				:= omit,
                access_Network_Charging_Address		:= omit,
                bearer_Usage						:= omit,
                online								:= omit,
                offline								:= omit,
                access_Network_Charging_Id_Gx		:= omit,
                coA_Information						:= omit,
                usage_Monitoring_Information		:= omit,
                routing_Rule_Install				:= omit,
                routing_Rule_Remove					:= omit,
                heNB_Local_IP_Address				:= omit,
                uE_Local_IP_Address					:= omit,
                uDP_Source_Port						:= omit,
                logical_Access_ID					:= omit,
                physical_Access_ID					:= omit,
                session_Linking_Indicator			:= omit,
                trace_Data							:= omit,
                trace_Reference						:= omit,
                subsesion_Enforcement_Info			:= omit,
                multiple_BBERF_Action				:= omit,
                service_Context_Id					:= omit,
                user_Name							:= omit,
                cC_Sub_Session_Id					:= omit,
                acct_Multi_Session_Id				:= omit,
                event_Timestamp						:= omit,
                service_Identifier					:= omit,
                requested_Service_Unit				:= omit,
                requested_Action					:= omit,
                used_Service_Unit					:= omit,
                multiple_Services_Indicator			:= omit,
                multiple_Services_Credit_Ctrl		:= omit,
                service_Parameter_Info				:= omit,
                cC_Correlation_Id					:= omit,
                proxy_Info							:= omit,
                route_Record						:= omit,
                aVP_Type							:= omit
            }

            template S9_CCR_MSG m_S9_CCR_basic	(	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_dummy :=
            {
            modifies m_S9_CCR_dummy := {
                header								:= m_diameterHeaderReq_dummy ( CCR_E, c_applIdGx ),
//                session_Id := p_sessionId,
//                origin_Host := p_originHost,
//                origin_Realm := p_originRealm,
//                destination_Realm := p_destinationRealm,
//                auth_Application_Id := m_authApplicationId(c_applIdGx),
                cC_Request_Type := m_cC_Request_Type(INITIAL_REQUEST_E) //,
//                cC_Request_Number := m_cC_Request_Number(0)
                session_Id							:= p_sessionId,
                auth_Application_Id					:= m_authApplicationId ( c_applIdGx ),
                origin_Host							:= p_originHost,
                origin_Realm						:= p_originRealm,
                destination_Realm					:= p_destinationRealm,
                cC_Request_Type						:= m_cC_Request_Type ( INITIAL_REQUEST_E ),
                cC_Request_Number					:= m_cC_Request_Number ( 0 )
            }


        } // end group S9basic_request_templates_send

        group S9basic_request_templates_receive {
        }//end group S9basic_request_templates_receive

        group S9basic_answer_templates_send {

            template S9_CCA_MSG m_S9_CCA_dummy := {
                header								:= m_diameterHeaderAns_dummy ( CCA_E, c_applIdCommonMsg ),
                session_Id							:= m_sessionId_dummy,
                auth_Application_Id					:= m_authApplicationId_dummy,
                origin_Host							:= m_originHost_dummy,
                origin_Realm						:= m_originRealm_dummy,
                result_Code							:= m_resultCode_dummy,
				experimental_Result					:= omit,
                cC_Request_Type						:= m_cC_Request_Type_dummy,
                cC_Request_Number					:= m_cC_Request_Number_dummy,
                supported_Features					:= omit,
                qoS_Rule_Install					:= omit,
                qoS_Rule_Remove						:= omit,
                qoS_Information						:= omit,
                bearer_Control_Mode					:= omit,
                event_Trigger						:= omit,
                charging_Information				:= omit,
                subsession_Decision_Info			:= omit,
                cSG_Information_Reporting			:= omit,
                aN_GW_Address						:= omit,
                origin_State						:= omit,
                error_Message						:= omit,
                error_Reporting_Host				:= omit,
				failed_AVP							:= omit,
                proxy_Info							:= omit,
                route_Record						:= omit,
                aVP_Type							:= omit
            }
        }

        group S9basic_answer_templates_receive {
+27 −44
Original line number Diff line number Diff line
@@ -26,33 +26,35 @@ group BasicTypesAndConstants {
				const integer c_subsession_Operation_AVP_Code				:= 2203; // Ref: table 5.3.1
            	const integer c_multiple_BBERF_Action_AVP_Code				:= 2204; // Ref: table 5.3.1
			}
			group AVPCodeConstantsTS212_061 {
			group AVPCodeConstantsTS129_212_Gx {
				const integer c_tdf_Application_Identifier_AVP				:= 1088; // Ref: TS129 212 5.3.77
				const integer c_tdf_Information_AVP							:= 1087; // Ref: TS129 212 5.3.78
				const integer c_tdf_Destination_Realm_AVP					:= 1090; // Ref: TS129 212 5.3.79
				const integer c_tdf_Destination_Host_AVP					:= 1089; // Ref: TS129 212 5.3.80
				const integer c_tdf_IP_Address_AVP							:= 1091; // Ref: TS129 212 5.3.81
            	const integer c_an_GW_Status_AVP							:= 2811; // Ref: TS129 212 5.3.100
				const integer c_3GPP_GGSN_Address_AVP						:=    7; // Ref: TS129 061 table 9a
				const integer c_3GPP_GGSN_IPv6_Address_AVP					:=   16; // Ref: TS129 061 table 9a
				const integer c_twan_Identifier_AVP							:=   29; // Ref: TS129 061 table 9a
				const integer c_qos_Rule_Report_AVP							:= 1055; // Ref: TS129 212 5a.3.5
				const integer c_qos_Rule_Name_AVP							:= 1054; // Ref: TS129 212 5a.3.4
				const integer c_qos_Rule_Base_Name_AVP						:= 1074; // Ref: TS129 212 5a.3.7
				const integer c_pcc_Rule_Status_AVP							:= 1019; // Ref: TS129 212 5.3.19
				const integer c_rule_Failure_AVP							:= 1031; // Ref: TS129 212 5.3.19
				const integer c_appl_Detection_Info_AVP						:= 1098; // Ref: TS129 212 5.3.91
				const integer c_tdf_Application_Identifier_AVP				:= 1088; // Ref: TS129 212 5.3.77
				const integer c_tdf_Application_Instance_Id_AVP				:= 2802; // Ref: TS129 212 5.3.92
				const integer c_henb_Local_IP_Address_AVP					:= 2804; // Ref: TS129 212 5.3.95
				const integer c_ue_Local_IP_Address_AVP						:= 2805; // Ref: TS129 212 5.3.96
				const integer c_udp_Source_Port_AVP							:= 2806; //ref: TS129 212 5.3.97
				const integer c_session_Linking_Indicator_AVP				:= 1064; //ref: TS129 212 5a.3.6
				const integer c_pdn_Connection_ID_AVP						:= 1065; //ref: TS129 212 5.3.58
				const integer c_qos_Rule_Install_AVP						:= 1051; //ref: TS129 212 5a.3.1
				const integer c_qos_Rule_Remove_AVP							:= 1052; //ref: TS129 212 5a.3.2
				const integer c_qos_Rule_Definition_AVP						:= 1053; //ref: TS129 212 5a.3.3
				const integer c_udp_Source_Port_AVP							:= 2806; // Ref: TS129 212 5.3.97
            	const integer c_an_GW_Status_AVP							:= 2811; // Ref: TS129 212 5.3.100
			}
			group AVPCodeConstantsTS129_212_Gxx {
				const integer c_qos_Rule_Install_AVP						:= 1051; // Ref: TS129 212 5a.3.1
				const integer c_qos_Rule_Remove_AVP							:= 1052; // Ref: TS129 212 5a.3.2
				const integer c_qos_Rule_Definition_AVP						:= 1053; // Ref: TS129 212 5a.3.3
				const integer c_qos_Rule_Name_AVP							:= 1054; // Ref: TS129 212 5a.3.4
				const integer c_qos_Rule_Report_AVP							:= 1055; // Ref: TS129 212 5a.3.5
				const integer c_session_Linking_Indicator_AVP				:= 1064; // Ref: TS129 212 5a.3.6
				const integer c_qos_Rule_Base_Name_AVP						:= 1074; // Ref: TS129 212 5a.3.7
			}
			group AVPCodeConstantsTS129_214 {
				const integer c_required_Access_Info_AVP					:=  536; //ref: TS129 214 5.3.34
				const integer c_access_Network_Charging_Id_Value_AVP		:=  503; //ref: TS129 214 5.3.4
			}
			group AVPCodeConstantsTS129_061 {
				const integer c_3GPP_GGSN_Address_AVP						:=    7; // Ref: TS129 061 table 9a
				const integer c_3GPP_GGSN_IPv6_Address_AVP					:=   16; // Ref: TS129 061 table 9a
				const integer c_twan_Identifier_AVP							:=   29; // Ref: TS129 061 table 9a
			}
		}
	}
@@ -95,17 +97,17 @@ group HeaderAndBodyTypes {
			}

			type record ThreeGPP_GGSN_Address_AVP {									//ref: TS129 061 table 9a
				AVP_Header							aVP_Header, 					//3GPP-GGSN-Address ::= <AVP header:7>
				AVP_Header							aVP_Header, 					//3GPP-GGSN-Address ::= <AVP header:7 10415>
                octetstring							aVP_Data
			}

			type record ThreeGPP_GGSN_IPv6_Address_AVP {							//ref: TS129 061 table 9a
				AVP_Header							aVP_Header, 					//3GPP-GGSN-IPv6-Address ::= <AVP header:16>
				AVP_Header							aVP_Header, 					//3GPP-GGSN-IPv6-Address ::= <AVP header:16 10415>
                octetstring							aVP_Data
			}
                
			type record TWAN_Identifier_AVP {										//ref: TS129 061 table 9a
				AVP_Header							aVP_Header, 					//TWAN-Identifier ::= <AVP header:29>
				AVP_Header							aVP_Header, 					//TWAN-Identifier ::= <AVP header:29 10415>
				octetstring							aVP_Data
			}

@@ -114,7 +116,7 @@ group HeaderAndBodyTypes {
                set of QoS_Rule_Name_AVP			qoS_Rule_Name					optional,
                set of QoS_Rule_Base_Name_AVP		qoS_Rule_Base_Name				optional,
                PCC_Rule_Status_AVP					pCC_Rule_Status					optional,
                Rule_Failure_AVP					rule_Failure_Code				optional,
                Rule_Failure_Code_AVP				rule_Failure_Code				optional,
                set of AVP_Type                    	aVP_Type						optional
			}

@@ -128,17 +130,6 @@ group HeaderAndBodyTypes {
                UTF8String							aVP_Data
			}
 
            type enumerated PCC_Rule_Status_Code {
                ACTIVE_E				(0),
                INACTIVE_E				(1),
                TEMPORARILY_INACTIVE_E	(2)
			}

			type record PCC_Rule_Status_AVP {										//ref: TS129 212 5.3.19
				AVP_Header							aVP_Header, 					//PCC-Rule-Status ::= <AVP header: 1019>
                PCC_Rule_Status_Code				pCC_Rule_Status
			}
 
            type enumerated Rule_Failure_Code {
				UNKNOWN_RULE_NAME_E					( 1),
				RATING_GROUP_ERROR_E				( 2),
@@ -208,11 +199,6 @@ group HeaderAndBodyTypes {
                Session_Linking_Indicator_Code		session_Linking_Indicator
			}

			type record PDN_Connection_ID_AVP {										//ref: TS129 212 5.3.58
				AVP_Header							aVP_Header, 					//PDN-Connection-ID ::= <AVP header:1065>
                octetstring							aVP_Data
			}

 			type record Subses_Decision_Info_AVP {									//ref: TS129 215 5.3.1
				AVP_Header							aVP_Header, 					//Subsession-Decision-Info ::= <AVP header:2200>
                Subsession_Id_AVP					subsession_Id,
@@ -310,13 +296,15 @@ group HeaderAndBodyTypes {

            type Resource_Allocation_Notification_AVP
            										Resource_Alloc_Notification_AVP;			// Shortened Name - Alias
            type Access_Network_Charging_Identifier_Value_AVP            										
            										ANw_Charging_Id_Value_AVP;					// Shortened Name - Alias
			type record QoS_Rule_Install_AVP {										//ref: TS129 212 5a.3.1
				AVP_Header							aVP_Header, 					//QoS-Rule-Install ::= <AVP header: 1051>
				set of QoS_Rule_Definition_AVP		qoS_Rule_Definition				optional,
				set of QoS_Rule_Name_AVP			qoS_Rule_Name					optional,
				set of QoS_Rule_Base_Name_AVP		qoS_Rule_Base_Name				optional,
                Tunnel_Information_AVP    			tunnel_Information				optional,
                ANw_Charging_Id_Value_AVP			aNw_Charging_Id_Value			optional,
                ANw_Charging_Id_Value_AVP			acc_Net_Charging_Id_Val			optional,
				Resource_Alloc_Notification_AVP		resource_Alloc_Notification		optional,
                Rule_Activation_Time_AVP            rule_Activation_Time			optional,
                Rule_DeActivation_Time_AVP          rule_DeActivation_Time			optional,
@@ -353,11 +341,6 @@ group HeaderAndBodyTypes {
                Required_Access_Info_Code			required_Access_Info
			}

			type record ANw_Charging_Id_Value_AVP {									//ref: TS129 214 5.3.4
				AVP_Header							aVP_Header, 					//Access-Network-Charging-Identifier-Value::= <AVP header:503>
                octetstring							aVP_Data
			}

			type record ThreeGPP2_BSID_AVP {										//ref: 
				AVP_Header							aVP_Header, 					//3GPP2-BSID ::= <AVP header:>
                octetstring							aVP_Data