Loading DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +10 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,16 @@ module DiameterGx_PIXITS */ modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; /** @desc UInt32, PIXIT item A.1/ * avp_Data within Precedence_AVP is of UInt32 type */ modulepar UInt32 PX_PRECEDENCE_DATA := 100; /** @desc octetstring, PIXIT item A.1/ * avp_Data within Packet_Filter_Identifier_AVP is of octetstring type */ modulepar octetstring PX_PACKET_FILTER_IDENTIFIER_DATA := '08'O; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file DiameterGx/ttcn/DiameterGx_Templates.ttcn +153 −48 Original line number Diff line number Diff line Loading @@ -36,6 +36,34 @@ module DiameterGx_Templates { group DummyAVPHeaders{ template QoS_Information_AVP m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit), qoS_Class_Identifier := omit, max_Requested_Bandwidth_UL := omit, max_Requested_Bandwidth_DL := omit, guaranteed_Bitrate_UL := omit, guaranteed_Bitrate_DL := omit, bearer_Identifier := omit, allocation_Retention_Priority := omit, aPN_Aggregate_Max_Bitrate_UL := omit, aPN_Aggregate_Max_Bitrate_DL := omit, aVP_Type := omit } template Packet_Filter_Information_AVP m_packet_Filter_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, 0, omit), packet_Filter_Identifier := omit, precedence := omit, packet_Filter_Content := omit, toS_Traffic_Class := omit, security_Parameter_Index := omit, flow_Label := omit, flow_Direction := omit, aVP_Type := omit } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -126,44 +154,47 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template QoS_Information_AVP m_qoS_Information_APN_AMBR_UL := template QoS_Information_AVP m_qoS_Information_APN_AMBR_UL modifies m_qoS_Information_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 12/*length aPN_Aggregate_Max_Bitrate_UL*/, omit), qoS_Class_Identifier := omit, max_Requested_Bandwidth_UL := omit, max_Requested_Bandwidth_DL := omit, guaranteed_Bitrate_UL := omit, guaranteed_Bitrate_DL := omit, bearer_Identifier := omit, allocation_Retention_Priority := omit, aPN_Aggregate_Max_Bitrate_UL := m_APN_Aggregate_Max_Bitrate_UL(PX_APN_AGGREGATE_MAX_BITRATE_UL_AVP_DATA), aPN_Aggregate_Max_Bitrate_DL := omit, aVP_Type := omit aPN_Aggregate_Max_Bitrate_UL := m_APN_Aggregate_Max_Bitrate_UL(PX_APN_AGGREGATE_MAX_BITRATE_UL_AVP_DATA) } template QoS_Information_AVP m_qoS_Information_ClassIdentifier(QoS_Class_Identifier p_avpData) modifies m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 12/*length qoS_Class_Identifier*/, omit), qoS_Class_Identifier := m_qoS_Class_Identifier(p_avpData) } template APN_Aggregate_Max_Bitrate_UL_AVP m_APN_Aggregate_Max_Bitrate_UL(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdAPN_Aggregate_Max_Bitrate_UL_AVP, 4, omit), aVP_Data := p_avpData }; } template QoS_Class_Identifier_AVP m_qoS_Class_Identifier(QoS_Class_Identifier p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Class_Identifier_AVP, 4, omit), aVP_Data := p_avpData } template ThreeGPP_MS_TimeZone_AVP m_threeGPP_MS_TimeZone(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdThreeGPP_MS_TimeZone_AVP, lengthof(p_avpData), omit), aVP_Data := 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_Data := p_avpData }; } template PDN_Connection_ID_AVP m_pDN_Connection_ID(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPDN_Connection_ID_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template Bearer_Usage_AVP m_bearer_Usage(Bearer_Usage p_avpData) := { Loading @@ -175,7 +206,7 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Address_AVP, f_IPAdressLength(), omit), aVP_Data := p_avpData }; } template Access_Network_Charging_Identifier_Gx_AVP m_aNCI_Gx(Access_Network_Charging_Identifier_Value_AVP p_nciv) := { Loading @@ -189,7 +220,7 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Identifier_Value_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template Routing_Rule_Install_AVP m_routing_Rule_Install(Routing_Rule_Definition_AVP p_rrd) := { Loading @@ -212,13 +243,13 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Identifier_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } 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), flow_Description := m_flow_Description(m_iPFilterRule), flow_Direction := m_flow_Direction, flow_Direction := m_flowDirection_Bidirectional, toS_Traffic_Class := omit, security_Parameter_Index := omit, flow_Label := omit, Loading @@ -231,7 +262,7 @@ module DiameterGx_Templates { aVP_Data := p_IPftr } template Flow_Direction_AVP m_flow_Direction := template Flow_Direction_AVP m_flowDirection_Bidirectional := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Direction_AVP, 4, omit), aVP_Data := BIDIRECTIONAL_E Loading Loading @@ -279,14 +310,58 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template PCC_Rule_Status_AVP m_pCC_Rule_Status_AVP(PCC_Rule_Status p_avpData) := template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPCC_Rule_Status_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), 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 := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId))+12/*12-flow_direction*/, omit), packet_Filter_Identifier := p_pfId, 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 := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_precedence)) +lengthof(encvalue(p_pfc)), omit), precedence := p_precedence, packet_Filter_Content := p_pfc } 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_Data := p_IPftr } template Packet_Filter_Identifier_AVP m_packet_Filter_Identifier(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Identifier_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Precedence_AVP m_precedence(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdPrecedence_AVP, 4, omit), aVP_Data := p_avpData } template Packet_Filter_Operation_AVP m_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Operation_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -344,7 +419,7 @@ module DiameterGx_Templates { aVP_Header := mw_aVP_Header_any, routing_Rule_Definition := {mw_routing_Rule_Definition}, aVP_Type := * }; } template Routing_Rule_Definition_AVP mw_routing_Rule_Definition := { Loading @@ -354,7 +429,7 @@ module DiameterGx_Templates { precedence := *, routing_IP_Address := *, aVP_Type := * }; } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -383,9 +458,7 @@ module DiameterGx_Templates { template CCR_MSG m_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, template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_dummy := { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_dummy := { header := m_diameterHeaderReq_dummy(CCR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, Loading @@ -393,12 +466,7 @@ module DiameterGx_Templates { 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), 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) cC_Request_Number := m_cC_Request_Number(0) } } // end group Gxbasic_request_templates_send Loading Loading @@ -457,12 +525,25 @@ module DiameterGx_Templates { group Gxmodified_request_templates_send { template CCR_MSG m_CCR_InitialRequest_allReqAVPs(template Session_Id_AVP p_sessionId, template CCR_MSG m_CCR_InitialRequest(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) } template CCR_MSG m_CCR_InitialRequest_allReqAVPs(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_InitialRequest := { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT), qoS_Information := m_qoS_Information_APN_AMBR_UL, threeGPP_MS_TimeZone := m_threeGPP_MS_TimeZone(PX_3GPP_MS_TIMEZONE_DATA), Loading @@ -474,35 +555,59 @@ module DiameterGx_Templates { routing_Rule_Install := m_routing_Rule_Install(m_routing_Rule_Definition(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE),m_routing_Filter)) } template CCR_MSG m_CCR_NetworkRequestSupport(template Session_Id_AVP p_sessionId, template CCR_MSG m_CCR_InitialRequest_NetworkRequestSupport(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 := { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } template CCR_MSG m_CCR_UpdateRequest(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 := { 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), subscription_Id := omit, iP_CAN_Type := omit, rAT_Type := omit, charging_Rule_Report := {m_charging_Rule_Report(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status_AVP(PX_PCC_RULE_STATUS))}, charging_Rule_Report := {m_charging_Rule_Report(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)} } template CCR_MSG m_CCR_UpdateRequest_allReqAVPs(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_UpdateRequest := { access_Network_Charging_Address := m_accessNetworkChargingAddress(f_IPAdress(PX_ANCA_ipv4, PX_ANCA_ipv6)), access_Network_Charging_Identifier_Gx := {m_aNCI_Gx(m_aNCI_Value(PX_ACCESS_NETWORK_CHARGING_IDENTIFIER_VALUE))}, routing_Rule_Install := m_routing_Rule_Install(m_routing_Rule_Definition(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE),m_routing_Filter)) } template CCR_MSG m_CCR_UpdateRequest_UERequestForAllocResources(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 Packet_Filter_Information_AVP p_packetFilterInfo, template Packet_Filter_Operation_AVP p_packetFilterOperation, template QoS_Information_AVP p_qosInformation) modifies m_CCR_UpdateRequest := { packet_Filter_Information := {p_packetFilterInfo}, packet_Filter_Operation := p_packetFilterOperation, qoS_Information := p_qosInformation, event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } template CCR_MSG m_CCR_UpdateRequest_NetworkRequestSupport(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), network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { template CCR_MSG mw_CCR_sessionRequest(template Session_Id_AVP p_sessionId, template CCR_MSG mw_CCR_InitialRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, Loading Loading
DiameterGx/ttcn/DiameterGx_PIXITS.ttcn +10 −0 Original line number Diff line number Diff line Loading @@ -238,6 +238,16 @@ module DiameterGx_PIXITS */ modulepar PCC_Rule_Status PX_PCC_RULE_STATUS := ACTIVE_E; /** @desc UInt32, PIXIT item A.1/ * avp_Data within Precedence_AVP is of UInt32 type */ modulepar UInt32 PX_PRECEDENCE_DATA := 100; /** @desc octetstring, PIXIT item A.1/ * avp_Data within Packet_Filter_Identifier_AVP is of octetstring type */ modulepar octetstring PX_PACKET_FILTER_IDENTIFIER_DATA := '08'O; } //end group DiameterCommonGxData } // end module DiameterGx_PIXITS No newline at end of file
DiameterGx/ttcn/DiameterGx_Templates.ttcn +153 −48 Original line number Diff line number Diff line Loading @@ -36,6 +36,34 @@ module DiameterGx_Templates { group DummyAVPHeaders{ template QoS_Information_AVP m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 0, omit), qoS_Class_Identifier := omit, max_Requested_Bandwidth_UL := omit, max_Requested_Bandwidth_DL := omit, guaranteed_Bitrate_UL := omit, guaranteed_Bitrate_DL := omit, bearer_Identifier := omit, allocation_Retention_Priority := omit, aPN_Aggregate_Max_Bitrate_UL := omit, aPN_Aggregate_Max_Bitrate_DL := omit, aVP_Type := omit } template Packet_Filter_Information_AVP m_packet_Filter_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, 0, omit), packet_Filter_Identifier := omit, precedence := omit, packet_Filter_Content := omit, toS_Traffic_Class := omit, security_Parameter_Index := omit, flow_Label := omit, flow_Direction := omit, aVP_Type := omit } } //end group DummyAVPHeaders group SpecificAVPHeaders { Loading Loading @@ -126,44 +154,47 @@ module DiameterGx_Templates { aVP_Data := p_avpData } template QoS_Information_AVP m_qoS_Information_APN_AMBR_UL := template QoS_Information_AVP m_qoS_Information_APN_AMBR_UL modifies m_qoS_Information_dummy:= { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 12/*length aPN_Aggregate_Max_Bitrate_UL*/, omit), qoS_Class_Identifier := omit, max_Requested_Bandwidth_UL := omit, max_Requested_Bandwidth_DL := omit, guaranteed_Bitrate_UL := omit, guaranteed_Bitrate_DL := omit, bearer_Identifier := omit, allocation_Retention_Priority := omit, aPN_Aggregate_Max_Bitrate_UL := m_APN_Aggregate_Max_Bitrate_UL(PX_APN_AGGREGATE_MAX_BITRATE_UL_AVP_DATA), aPN_Aggregate_Max_Bitrate_DL := omit, aVP_Type := omit aPN_Aggregate_Max_Bitrate_UL := m_APN_Aggregate_Max_Bitrate_UL(PX_APN_AGGREGATE_MAX_BITRATE_UL_AVP_DATA) } template QoS_Information_AVP m_qoS_Information_ClassIdentifier(QoS_Class_Identifier p_avpData) modifies m_qoS_Information_dummy := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Information_AVP, 12/*length qoS_Class_Identifier*/, omit), qoS_Class_Identifier := m_qoS_Class_Identifier(p_avpData) } template APN_Aggregate_Max_Bitrate_UL_AVP m_APN_Aggregate_Max_Bitrate_UL(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdAPN_Aggregate_Max_Bitrate_UL_AVP, 4, omit), aVP_Data := p_avpData }; } template QoS_Class_Identifier_AVP m_qoS_Class_Identifier(QoS_Class_Identifier p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdQoS_Class_Identifier_AVP, 4, omit), aVP_Data := p_avpData } template ThreeGPP_MS_TimeZone_AVP m_threeGPP_MS_TimeZone(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdThreeGPP_MS_TimeZone_AVP, lengthof(p_avpData), omit), aVP_Data := 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_Data := p_avpData }; } template PDN_Connection_ID_AVP m_pDN_Connection_ID(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPDN_Connection_ID_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template Bearer_Usage_AVP m_bearer_Usage(Bearer_Usage p_avpData) := { Loading @@ -175,7 +206,7 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Address_AVP, f_IPAdressLength(), omit), aVP_Data := p_avpData }; } template Access_Network_Charging_Identifier_Gx_AVP m_aNCI_Gx(Access_Network_Charging_Identifier_Value_AVP p_nciv) := { Loading @@ -189,7 +220,7 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdAccess_Network_Charging_Identifier_Value_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template Routing_Rule_Install_AVP m_routing_Rule_Install(Routing_Rule_Definition_AVP p_rrd) := { Loading @@ -212,13 +243,13 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdRouting_Rule_Identifier_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } 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), flow_Description := m_flow_Description(m_iPFilterRule), flow_Direction := m_flow_Direction, flow_Direction := m_flowDirection_Bidirectional, toS_Traffic_Class := omit, security_Parameter_Index := omit, flow_Label := omit, Loading @@ -231,7 +262,7 @@ module DiameterGx_Templates { aVP_Data := p_IPftr } template Flow_Direction_AVP m_flow_Direction := template Flow_Direction_AVP m_flowDirection_Bidirectional := { aVP_Header := m_aVP_HeaderVid(c_vendIdFlow_Direction_AVP, 4, omit), aVP_Data := BIDIRECTIONAL_E Loading Loading @@ -279,14 +310,58 @@ module DiameterGx_Templates { { aVP_Header := m_aVP_HeaderVid(c_vendIdCharging_Rule_Name_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData }; } template PCC_Rule_Status_AVP m_pCC_Rule_Status_AVP(PCC_Rule_Status p_avpData) := template PCC_Rule_Status_AVP m_pCC_Rule_Status(PCC_Rule_Status p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPCC_Rule_Status_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), 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 := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_pfId))+12/*12-flow_direction*/, omit), packet_Filter_Identifier := p_pfId, 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 := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Information_AVP, lengthof(encvalue(p_precedence)) +lengthof(encvalue(p_pfc)), omit), precedence := p_precedence, packet_Filter_Content := p_pfc } 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_Data := p_IPftr } template Packet_Filter_Identifier_AVP m_packet_Filter_Identifier(octetstring p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Identifier_AVP, lengthof(p_avpData), omit), aVP_Data := p_avpData } template Precedence_AVP m_precedence(UInt32 p_avpData):= { aVP_Header := m_aVP_HeaderVid(c_vendIdPrecedence_AVP, 4, omit), aVP_Data := p_avpData } template Packet_Filter_Operation_AVP m_packet_Filter_Operation(Packet_Filter_Operation p_avpData) := { aVP_Header := m_aVP_HeaderVid(c_vendIdPacket_Filter_Operation_AVP, 4, omit), aVP_Data := p_avpData } }//end group sendingTemplatesForAVPs group awaitingTemplatesForAVPs{ Loading Loading @@ -344,7 +419,7 @@ module DiameterGx_Templates { aVP_Header := mw_aVP_Header_any, routing_Rule_Definition := {mw_routing_Rule_Definition}, aVP_Type := * }; } template Routing_Rule_Definition_AVP mw_routing_Rule_Definition := { Loading @@ -354,7 +429,7 @@ module DiameterGx_Templates { precedence := *, routing_IP_Address := *, aVP_Type := * }; } }//end group awaitingTemplatesForAVPs } //end group SpecificAVPHeaders } //end group HeaderFieldTemplates Loading Loading @@ -383,9 +458,7 @@ module DiameterGx_Templates { template CCR_MSG m_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, template Framed_IP_Address_AVP p_framedIpAddress, template Framed_IPv6_Prefix_AVP p_framedIp6Address) modifies m_CCR_dummy := { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_dummy := { header := m_diameterHeaderReq_dummy(CCR_E, c_applIdGx), session_Id := p_sessionId, origin_Host := p_originHost, Loading @@ -393,12 +466,7 @@ module DiameterGx_Templates { 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), 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) cC_Request_Number := m_cC_Request_Number(0) } } // end group Gxbasic_request_templates_send Loading Loading @@ -457,12 +525,25 @@ module DiameterGx_Templates { group Gxmodified_request_templates_send { template CCR_MSG m_CCR_InitialRequest_allReqAVPs(template Session_Id_AVP p_sessionId, template CCR_MSG m_CCR_InitialRequest(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) } template CCR_MSG m_CCR_InitialRequest_allReqAVPs(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_InitialRequest := { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT), qoS_Information := m_qoS_Information_APN_AMBR_UL, threeGPP_MS_TimeZone := m_threeGPP_MS_TimeZone(PX_3GPP_MS_TIMEZONE_DATA), Loading @@ -474,35 +555,59 @@ module DiameterGx_Templates { routing_Rule_Install := m_routing_Rule_Install(m_routing_Rule_Definition(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE),m_routing_Filter)) } template CCR_MSG m_CCR_NetworkRequestSupport(template Session_Id_AVP p_sessionId, template CCR_MSG m_CCR_InitialRequest_NetworkRequestSupport(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 := { template Destination_Realm_AVP p_destinationRealm) modifies m_CCR_basic := { network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } template CCR_MSG m_CCR_UpdateRequest(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 := { 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), subscription_Id := omit, iP_CAN_Type := omit, rAT_Type := omit, charging_Rule_Report := {m_charging_Rule_Report(m_charging_Rule_Name(PX_CHARGING_RULE_NAME_DATA),m_pCC_Rule_Status_AVP(PX_PCC_RULE_STATUS))}, charging_Rule_Report := {m_charging_Rule_Report(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)} } template CCR_MSG m_CCR_UpdateRequest_allReqAVPs(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_UpdateRequest := { access_Network_Charging_Address := m_accessNetworkChargingAddress(f_IPAdress(PX_ANCA_ipv4, PX_ANCA_ipv6)), access_Network_Charging_Identifier_Gx := {m_aNCI_Gx(m_aNCI_Value(PX_ACCESS_NETWORK_CHARGING_IDENTIFIER_VALUE))}, routing_Rule_Install := m_routing_Rule_Install(m_routing_Rule_Definition(m_routing_Rule_Identifier(PX_ROUTING_RULE_IDENTIFIER_VALUE),m_routing_Filter)) } template CCR_MSG m_CCR_UpdateRequest_UERequestForAllocResources(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 Packet_Filter_Information_AVP p_packetFilterInfo, template Packet_Filter_Operation_AVP p_packetFilterOperation, template QoS_Information_AVP p_qosInformation) modifies m_CCR_UpdateRequest := { packet_Filter_Information := {p_packetFilterInfo}, packet_Filter_Operation := p_packetFilterOperation, qoS_Information := p_qosInformation, event_Trigger := {m_event_Trigger(RESOURCE_MODIFICATION_REQUEST_E)} } template CCR_MSG m_CCR_UpdateRequest_NetworkRequestSupport(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), network_Request_Support := m_network_Request_Support(PX_NETWORK_REQUEST_SUPPORT) } } // end group Gxmodified_request_templates_send group Gxmodified_request_templates_receive { template CCR_MSG mw_CCR_sessionRequest(template Session_Id_AVP p_sessionId, template CCR_MSG mw_CCR_InitialRequest(template Session_Id_AVP p_sessionId, template Origin_Host_AVP p_originHost, template Origin_Realm_AVP p_originRealm, template Destination_Realm_AVP p_destinationRealm, Loading