message

package
v0.0.0-...-a966d30 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

AVP struct, encoding/decoding functions

Code generated by gen.go DO NOT EDIT.

Definitions for common codes (e.g., Result-Code)

Diameter message struct, encoding/decoding logic

Index

Constants

View Source
const (
	AVPHeaderLength      = 8
	AVPHeaderLengthWithV = 12
)
View Source
const (
	MANDATORY_FLAG = 0x40
	VENDOR_FLAG    = 0x80
	PROTECTED_FLAG = 0x20
)

AVP Flags

View Source
const (
	AVP_CODE_LENGTH        = 4
	AVP_FLAGS_LENGTH       = 1
	AVP_LENGTH_LENGTH      = 3
	AVP_VENDOR_ID_LENGTH   = 4
	AVP_UNPROTECTED_LENGTH = 8
	AVP_PROTECTED_LENGTH   = 12
	AVP_PROTECTION_LENGTH  = 4
)
View Source
const (
	AVP_USER_NAME          = uint32(1)  // Type: UTF8String
	AVP_USER_PASSWORD      = uint32(2)  // Type: OctetString
	AVP_CHAP_PASSWORD      = uint32(3)  // Type: OctetString
	AVP_NAS_IP_ADDRESS     = uint32(4)  // Type: OctetString
	AVP_NAS_PORT           = uint32(5)  // Type: Unsigned32
	AVP_SERVICE_TYPE       = uint32(6)  // Type: Enumerated TODO: FIX
	AVP_FRAMED_PROTOCOL    = uint32(7)  // Type: Enumerated
	AVP_FRAMED_IP_ADDRESS  = uint32(8)  // Type: IPAddress
	AVP_FRAMED_IP_NETMASK  = uint32(9)  // Type: IPAddress
	AVP_FRAMED_ROUTING     = uint32(10) // Type: Enumerated
	AVP_FILTER_ID          = uint32(11) // Type: UTF8String
	AVP_FRAMED_MTU         = uint32(12) // Type: Unsigned32
	AVP_FRAMED_COMPRESSION = uint32(13) // Type: Enumerated
	AVP_LOGIN_IP_HOST      = uint32(14) // Type: IPAddress
	AVP_LOGIN_SERVICE      = uint32(15) // Type: Enumerated
	AVP_LOGIN_TCP_PORT     = uint32(16) // Type: Unsigned32

	AVP_REPLY_MESSAGE   = uint32(18) // Type: UTF8String
	AVP_CALLBACK_NUMBER = uint32(19) // Type: UTF8String
	AVP_CALLBACK_ID     = uint32(20) // Type: UTF8String

	AVP_FRAMED_ROUTE                = uint32(22) // Type: UTF8String
	AVP_FRAMED_IPX_NETWORK          = uint32(23) // Type: UTF8String
	AVP_STATE                       = uint32(24) // Type: OctetString
	AVP_CLASS                       = uint32(25) // Type: OctetString
	AVP_VENDOR_SPECIFIC             = uint32(26) // Type: Unsigned32
	AVP_SESSION_TIMEOUT             = uint32(27) // Type: Unsigned32
	AVP_IDLE_TIMEOUT                = uint32(28) // Type: Unsigned32
	AVP_TERMINATION_ACTION          = uint32(29) // Type: Unsigned32
	AVP_CALLED_STATION_ID           = uint32(30) // Type: UTF8String
	AVP_CALLING_STATION_ID          = uint32(31) // Type: UTF8String
	AVP_NAS_IDENTIFIER              = uint32(32) // Type: OctetString
	AVP_PROXY_STATE                 = uint32(33) // Type: OctetString
	AVP_LOGIN_LAT_SERVICE           = uint32(34) // Type: OctetString
	AVP_LOGIN_LAT_NODE              = uint32(35) // Type: OctetString
	AVP_LOGIN_LAT_GROUP             = uint32(36) // Type: OctetString
	AVP_FRAMED_APPLETALK_LINK       = uint32(37) // Type: Unsigned32
	AVP_FRAMED_APPLETALK_NETWORK    = uint32(38) // Type: Unsigned32
	AVP_FRAMED_APPLETALK_ZONE       = uint32(39) // Type: OctetString
	AVP_ACCT_STATUS_TYPE            = uint32(40) // Type: Unsigned32
	AVP_ACCT_DELAY_TIME             = uint32(41) // Type: Unsigned32
	AVP_ACCT_INPUT_OCTETS           = uint32(42) // Type: Unsigned32
	AVP_ACCT_OUTPUT_OCTETS          = uint32(43) // Type: Unsigned32
	AVP_ACCT_SESSION_ID             = uint32(44) // Type: OctetString
	AVP_ACCT_AUTHENTIC              = uint32(45) // Type: Enumerated
	AVP_ACCT_SESSION_TIME           = uint32(46) // Type: Unsigned32
	AVP_ACCT_INPUT_PACKETS          = uint32(47) // Type: Integer32
	AVP_ACCT_OUTPUT_PACKETS         = uint32(48) // Type: Integer32
	AVP_ACCT_TERMINATE_CAUSE        = uint32(49) // Type: Unsigned32
	AVP_ACCOUNTING_MULTI_SESSION_ID = uint32(50) // Type: OctetString
	AVP_ACCT_LINK_COUNT             = uint32(51) // Type: Unsigned32
	AVP_ACCT_INPUT_GIGAWORDS        = uint32(52) // Type: Integer32
	AVP_ACCT_OUTPUT_GIGAWORDS       = uint32(53) // Type: Integer32

	AVP_EVENT_TIMESTAMP             = uint32(55) // Type: Time
	AVP_EGRESS_VLANID               = uint32(56) // Type: OctetString
	AVP_INGRESS_FILTERS             = uint32(57) // Type: Enumerated
	AVP_EGRESS_VLAN_NAME            = uint32(58) // Type: UTF8String
	AVP_USER_PRIORITY_TABLE         = uint32(59) // Type: OctetString
	AVP_CHAP_CHALLENGE              = uint32(60) // Type: OctetString
	AVP_NAS_PORT_TYPE               = uint32(61) // Type: Enumerated
	AVP_PORT_LIMIT                  = uint32(62) // Type: Unsigned32
	AVP_LOGIN_LAT_PORT              = uint32(63) // Type: OctetString
	AVP_TUNNEL_TYPE                 = uint32(64) // Type: Enumerated
	AVP_TUNNEL_MEDIUM_TYPE          = uint32(65) // Type: Enumerated
	AVP_ACCT_TUNNEL_CLIENT_ENDPOINT = uint32(66) // Type: UTF8String
	AVP_TUNNEL_SERVER_ENDPOINT      = uint32(67) // Type: UTF8String
	AVP_ACCT_TUNNEL_CONNECTION_ID   = uint32(68) // Type: OctetString
	AVP_TUNNEL_PASSWORD             = uint32(69) // Type: OctetString
	AVP_ARAP_PASSWORD               = uint32(70) // Type: OctetString
	AVP_ARAP_FEATURES               = uint32(71) // Type: OctetString
	AVP_ARAP_ZONE_ACCESS            = uint32(72) // Type: Enumerated
	AVP_ARAP_SECURITY               = uint32(73) // Type: Unsigned32
	AVP_ARAP_SECURITY_DATA          = uint32(74) // Type: OctetString
	AVP_PASSWORD_RETRY              = uint32(75) // Type: Unsigned32
	AVP_PROMPT                      = uint32(76) // Type: Enumerated
	AVP_CONNECT_INFO                = uint32(77) // Type: UTF8String
	AVP_CONFIGURATION_TOKEN         = uint32(78) // Type: OctetString
	AVP_EAP_MESSAGE                 = uint32(79) // Type: OctetString
	AVP_SIGNATURE                   = uint32(80) // Type: OctetString
	AVP_TUNNEL_PRIVATE_GROUP_ID     = uint32(81) // Type: OctetString
	AVP_TUNNEL_ASSIGNMENT_ID        = uint32(82) // Type: OctetString
	AVP_TUNNEL_PREFERENCE           = uint32(83) // Type: Unsigned32
	AVP_ARAP_CHALLENGE_RESPONSE     = uint32(84) // Type: OctetString
	AVP_ACCT_INTERIM_INTERVAL       = uint32(85) // Type: Unsigned32
	AVP_ACCT_TUNNEL_PACKETS_LOST    = uint32(86) // Type: Unsigned32
	AVP_NAS_PORT_ID                 = uint32(87) // Type: UTF8String
	AVP_FRAMED_POOL                 = uint32(88) // Type: OctetString
	AVP_CUI                         = uint32(89) // Type: UTF8String
	AVP_TUNNEL_CLIENT_AUTH_ID       = uint32(90) // Type: UTF8String
	AVP_TUNNEL_SERVER_AUTH_ID       = uint32(91) // Type: UTF8String
	AVP_NAS_FILTER_RULE             = uint32(92) // Type: UTF8String

	AVP_ORIGINATING_LINE_INFO           = uint32(94)  // Type: OctetString
	AVP_NAS_IPV6_ADDRESS                = uint32(95)  // Type: OctetString
	AVP_FRAMED_INTERFACE_ID             = uint32(96)  // Type: Unsigned64
	AVP_FRAMED_IPV6_PREFIX              = uint32(97)  // Type: OctetString
	AVP_LOGIN_IPV6_HOST                 = uint32(98)  // Type: OctetString
	AVP_FRAMED_IPV6_ROUTE               = uint32(99)  // Type: UTF8String
	AVP_FRAMED_IPV6_POOL                = uint32(100) // Type: OctetString
	AVP_ERROR_CAUSE                     = uint32(101) // Type: Integer32
	AVP_EAP_KEY_NAME                    = uint32(102) // Type: UTF8String
	AVP_DIGEST_RESPONSE                 = uint32(103) // Type: UTF8String
	AVP_DIGEST_REALM                    = uint32(104) // Type: UTF8String
	AVP_DIGEST_NONCE                    = uint32(105) // Type: UTF8String
	AVP_DIGEST_RESPONSE_AUTH            = uint32(106) // Type: UTF8String
	AVP_DIGEST_NEXTNONCE                = uint32(107) // Type: UTF8String
	AVP_DIGEST_METHOD                   = uint32(108) // Type: UTF8String
	AVP_DIGEST_URI                      = uint32(109) // Type: UTF8String
	AVP_DIGEST_QOP                      = uint32(110) // Type: UTF8String
	AVP_DIGEST_ALGORITHM                = uint32(111) // Type: UTF8String
	AVP_DIGEST_ENTITY_BODY_HASH         = uint32(112) // Type: UTF8String
	AVP_DIGEST_DIGEST_CNONCE            = uint32(113) // Type: UTF8String
	AVP_DIGEST_NONCE_COUNT              = uint32(114) // Type: UTF8String
	AVP_DIGEST_USERNAME                 = uint32(115) // Type: UTF8String
	AVP_DIGEST_OPAQUE                   = uint32(116) // Type: UTF8String
	AVP_DIGEST_AUTH_PARAM               = uint32(117) // Type: UTF8String
	AVP_DIGEST_AKA_AUTS                 = uint32(118) // Type: UTF8String
	AVP_DIGEST_DOMAIN                   = uint32(119) // Type: UTF8String
	AVP_DIGEST_STALE                    = uint32(120) // Type: UTF8String
	AVP_DIGEST_HA1                      = uint32(121) // Type: UTF8String
	AVP_SIP_AOR                         = uint32(122) // Type: UTF8String
	AVP_DELEGATED_IPV6_PREFIX           = uint32(123) // Type: OctetString
	AVP_MIP6_FEATURE_VECTOR             = uint32(124) // Type: Unsigned64
	AVP_MIP6_HOME_LINK_PREFIX           = uint32(125) // Type: OctetString
	AVP_OPERATOR_NAME                   = uint32(126) // Type: OctetString
	AVP_LOCATION_INFORMATION            = uint32(127) // Type: OctetString
	AVP_LOCATION_DATA                   = uint32(128) // Type: OctetString
	AVP_BASIC_LOCATION_POLICY_RULES     = uint32(129) // Type: OctetString
	AVP_EXTENDED_LOCATION_POLICY_RULES  = uint32(130) // Type: OctetString
	AVP_LOCATION_CAPABLE                = uint32(131) // Type: OctetString
	AVP_REQUESTED_LOCATION_INFO         = uint32(132) // Type: OctetString
	AVP_FRAMED_MANAGEMENT_PROTOCOL      = uint32(133) // Type: Enumerated
	AVP_MANAGEMENT_TRANSPORT_PROTECTION = uint32(134) // Type: Enumerated
	AVP_MANAGEMENT_POLICY_ID            = uint32(135) // Type: UTF8String
	AVP_MANAGEMENT_PRIVILEGE_LEVEL      = uint32(136) // Type: Integer32
	AVP_PKM_SS_CERT                     = uint32(137) // Type: OctetString
	AVP_PKM_CA_CERT                     = uint32(138) // Type: OctetString
	AVP_PKM_CONFIG_SETTINGS             = uint32(139) // Type: OctetString
	AVP_PKM_CRYPTOSUITE_LIST            = uint32(140) // Type: OctetString
	AVP_PPKM_SAID                       = uint32(141) // Type: OctetString
	AVP_PKM_SA_DESCRIPTOR               = uint32(142) // Type: OctetString
	AVP_PKM_AUTH_KEY                    = uint32(143) // Type: OctetString

	AVP_HOST_IP_ADDRESS                = uint32(257) // Type: IPAddress
	AVP_AUTH_APPLICATION_ID            = uint32(258) // Type: AppId
	AVP_ACCT_APPLICATION_ID            = uint32(259) // Type: AppId
	AVP_VENDOR_SPECIFIC_APPLICATION_ID = uint32(260) // Type:
	AVP_REDIRECT_HOST_USAGE            = uint32(261) // Type: Enumerated
	AVP_REDIRECT_MAX_CACHE_TIME        = uint32(262) // Type: Unsigned32
	AVP_SESSION_ID                     = uint32(263) // Type: UTF8String
	AVP_ORIGIN_HOST                    = uint32(264) // Type: DiameterIdentity
	AVP_SUPPORTED_VENDOR_ID            = uint32(265) // Type: VendorId
	AVP_VENDOR_ID                      = uint32(266) // Type: VendorId
	AVP_FIRMWARE_REVISION              = uint32(267) // Type: Unsigned32
	AVP_RESULT_CODE                    = uint32(268) // Type: Unsigned32
	AVP_PRODUCT_NAME                   = uint32(269) // Type: UTF8String
	AVP_SESSION_BINDING                = uint32(270) // Type: Unsigned32
	AVP_SESSION_SERVER_FAILOVER        = uint32(271) // Type: Unsigned32
	AVP_MULTI_ROUND_TIME_OUT           = uint32(272) // Type: Unsigned32
	AVP_DISCONNECT_CAUSE               = uint32(273) // Type: Enumerated
	AVP_AUTH_REQUEST_TYPE              = uint32(274) // Type: Unsigned32
	AVP_ALTERNATE_PEER                 = uint32(275) // Type: DiameterIdentity
	AVP_AUTH_GRACE_PERIOD              = uint32(276) // Type: Unsigned32
	AVP_AUTH_SESSION_STATE             = uint32(277) // Type: Unsigned32
	AVP_ORIGIN_STATE_ID                = uint32(278) // Type: Unsigned32
	AVP_FAILED_AVP                     = uint32(279) // Type:
	AVP_PROXY_HOST                     = uint32(280) // Type: DiameterIdentity
	AVP_ERROR_MESSAGE                  = uint32(281) // Type: UTF8String
	AVP_ROUTE_RECORD                   = uint32(282) // Type: DiameterIdentity
	AVP_DESTINATION_REALM              = uint32(283) // Type: DiameterIdentity
	AVP_PROXY_INFO                     = uint32(284) // Type:
	AVP_RE_AUTH_REQUEST_TYPE           = uint32(285) // Type: Unsigned32

	AVP_ACCOUNTING_SUB_SESSION_ID = uint32(287) // Type: Unsigned64

	AVP_AUTHORIZATION_LIFETIME   = uint32(291) // Type: Integer32
	AVP_REDIRECT_HOST            = uint32(292) // Type: DiameterURI
	AVP_DESTINATION_HOST         = uint32(293) // Type: DiameterIdentity
	AVP_ERROR_REPORTING_HOST     = uint32(294) // Type: DiameterIdentity
	AVP_TERMINATION_CAUSE        = uint32(295) // Type: Enumerated
	AVP_ORIGIN_REALM             = uint32(296) // Type: DiameterIdentity
	AVP_EXPERIMENTAL_RESULT      = uint32(297) // Type:
	AVP_EXPERIMENTAL_RESULT_CODE = uint32(298) // Type: Unsigned32
	AVP_INBAND_SECURITY_ID       = uint32(299) // Type: Unsigned32
	AVP_E2E_SEQUENCE             = uint32(300) // Type:

	AVP_REQUESTED_ACTION = uint32(436) // Type: Enumerated

	AVP_ACCOUNTING_RECORD_TYPE = uint32(480) // Type: Enumerated

	AVP_ACCOUNTING_REALTIME_REQUIRED = uint32(483) // Type: Unsigned32

	AVP_ACCOUNTING_RECORD_NUMBER                  = uint32(485)  // Type: Unsigned32
	AVP_TMOD_1                                    = uint32(495)  // Type:
	AVP_TOKEN_RATE                                = uint32(496)  // Type: Float32
	AVP_BUCKET_DEPTH                              = uint32(497)  // Type: Float32
	AVP_PEAK_TRAFFIC_RATE                         = uint32(498)  // Type: Float32
	AVP_MINIMUM_POLICED_UNIT                      = uint32(499)  // Type: Unsigned32
	AVP_MAXIMUM_PACKET_SIZE                       = uint32(500)  // Type: Unsigned32
	AVP_TMOD_2                                    = uint32(501)  // Type:
	AVP_BANDWIDTH                                 = uint32(502)  // Type: Float32
	AVP_PHB_CLASS                                 = uint32(503)  // Type: Unsigned32
	AVP_PORT                                      = uint32(530)  // Type: Integer32
	AVP_PORT_RANGE                                = uint32(531)  // Type:
	AVP_PORT_START                                = uint32(532)  // Type: Integer32
	AVP_PORT_END                                  = uint32(533)  // Type: Integer32
	AVP_3GPP_AAA_SERVER_NAME                      = uint32(318)  // Type: OctetString
	AVP_MAXIMUM_NUMBER_ACCESSES                   = uint32(319)  // Type: Unsigned32
	AVP_GBA_USERSECSETTINGS                       = uint32(400)  // Type: OctetString
	AVP_TRANSACTION_IDENTIFIER                    = uint32(401)  // Type: OctetString
	AVP_NAF_HOSTNAME                              = uint32(402)  // Type: OctetString
	AVP_GAA_SERVICE_IDENTIFIER                    = uint32(403)  // Type: OctetString
	AVP_KEY_EXPIRYTIME                            = uint32(404)  // Type: Time
	AVP_ME_KEY_MATERIAL                           = uint32(405)  // Type: OctetString
	AVP_UICC_KEY_MATERIAL                         = uint32(406)  // Type: OctetString
	AVP_GBA_U_AWARENESS_INDICATOR                 = uint32(407)  // Type: Enumerated
	AVP_BOOTSTRAPINFOCREATIONTIME                 = uint32(408)  // Type: Time
	AVP_GUSS_TIMESTAMP                            = uint32(409)  // Type: Time
	AVP_GBA_TYPE                                  = uint32(410)  // Type: Enumerated
	AVP_UE_ID                                     = uint32(411)  // Type: OctetString
	AVP_UE_ID_TYPE                                = uint32(412)  // Type: Enumerated
	AVP_UICC_APP_LABEL                            = uint32(413)  // Type: OctetString
	AVP_UICC_ME                                   = uint32(414)  // Type: Enumerated
	AVP_REQUESTED_KEY_LIFETIME                    = uint32(415)  // Type: Time
	AVP_PRIVATE_IDENTITY_REQUEST                  = uint32(416)  // Type: Enumerated
	AVP_GBA_PUSH_INFO                             = uint32(417)  // Type: OctetString
	AVP_NAF_SA_IDENTIFIER                         = uint32(418)  // Type: OctetString
	AVP_SECURITY_FEATURE_REQUEST                  = uint32(419)  // Type: OctetString
	AVP_SECURITY_FEATURE_RESPONSE                 = uint32(420)  // Type: OctetString
	AVP_EVENT_TYPE                                = uint32(823)  // Type:
	AVP_SIP_METHOD                                = uint32(824)  // Type: UTF8String
	AVP_EVENT                                     = uint32(825)  // Type: UTF8String
	AVP_CONTENT_TYPE                              = uint32(826)  // Type: UTF8String
	AVP_CONTENT_LENGTH                            = uint32(827)  // Type: Unsigned32
	AVP_CONTENT_DISPOSITION                       = uint32(828)  // Type: UTF8String
	AVP_ROLE_OF_NODE                              = uint32(829)  // Type: Enumerated
	AVP_USER_SESSION_ID                           = uint32(830)  // Type: UTF8String
	AVP_CALLING_PARTY_ADDRESS                     = uint32(831)  // Type: UTF8String
	AVP_CALLED_PARTY_ADDRESS                      = uint32(832)  // Type: UTF8String
	AVP_TIME_STAMPS                               = uint32(833)  // Type:
	AVP_SIP_REQUEST_TIMESTAMP                     = uint32(834)  // Type: Time
	AVP_SIP_RESPONSE_TIMESTAMP                    = uint32(835)  // Type: Time
	AVP_APPLICATION_SERVER                        = uint32(836)  // Type: UTF8String
	AVP_APPLICATION_PROVIDED_CALLED_PARTY_ADDRESS = uint32(837)  // Type: UTF8String
	AVP_INTER_OPERATOR_IDENTIFIER                 = uint32(838)  // Type:
	AVP_ORIGINATING_IOI                           = uint32(839)  // Type: UTF8String
	AVP_TERMINATING_IOI                           = uint32(840)  // Type: UTF8String
	AVP_IMS_CHARGING_IDENTIFIER                   = uint32(841)  // Type: UTF8String
	AVP_SDP_SESSION_DESCRIPTION                   = uint32(842)  // Type: UTF8String
	AVP_SDP_MEDIA_COMPONENTS                      = uint32(843)  // Type:
	AVP_SDP_MEDIA_NAME                            = uint32(844)  // Type: UTF8String
	AVP_SDP_MEDIA_DESCRIPTION                     = uint32(845)  // Type: UTF8String
	AVP_CG_ADDRESS                                = uint32(846)  // Type: IPAddress
	AVP_GGSN_ADDRESS                              = uint32(847)  // Type: IPAddress
	AVP_SERVED_PARTY_IP_ADDRESS                   = uint32(848)  // Type: IPAddress
	AVP_AUTHORISED_QOS                            = uint32(849)  // Type: UTF8String
	AVP_APPLICATION_SERVER_INFORMATION            = uint32(850)  // Type:
	AVP_TRUNK_GROUP_ID                            = uint32(851)  // Type:
	AVP_INCOMING_TRUNK_GROUP_ID                   = uint32(852)  // Type: UTF8String
	AVP_OUTGOING_TRUNK_GROUP_ID                   = uint32(853)  // Type: UTF8String
	AVP_BEARER_SERVICE                            = uint32(854)  // Type: OctetString
	AVP_SERVICE_ID                                = uint32(855)  // Type: UTF8String TODO: FIX
	AVP_POC_CONTROLLING_ADDRESS                   = uint32(858)  // Type: UTF8String
	AVP_POC_GROUP_NAME                            = uint32(859)  // Type: UTF8String
	AVP_CAUSE                                     = uint32(860)  // Type:
	AVP_CAUSE_CODE                                = uint32(861)  // Type: Enumerated
	AVP_NODE_FUNCTIONALITY                        = uint32(862)  // Type: Unsigned32
	AVP_SERVICE_SPECIFIC_DATA                     = uint32(863)  // Type: UTF8String
	AVP_ORIGINATOR                                = uint32(864)  // Type: Enumerated
	AVP_PS_FURNISH_CHARGING_INFORMATION           = uint32(865)  // Type:
	AVP_PS_FREE_FORMAT_DATA                       = uint32(866)  // Type: OctetString
	AVP_PS_APPEND_FREE_FORMAT_DATA                = uint32(867)  // Type: Enumerated
	AVP_TIME_QUOTA_THRESHOLD                      = uint32(868)  // Type: Unsigned32
	AVP_VOLUME_QUOTA_THRESHOLD                    = uint32(869)  // Type: Unsigned32
	AVP_TRIGGER_TYPE                              = uint32(870)  // Type: Enumerated
	AVP_QUOTA_HOLDING_TIME                        = uint32(871)  // Type: Unsigned32
	AVP_REPORTING_REASON                          = uint32(872)  // Type: Enumerated
	AVP_SERVICE_INFORMATION                       = uint32(873)  // Type:
	AVP_PS_INFORMATION                            = uint32(874)  // Type:
	AVP_WLAN_INFORMATION                          = uint32(875)  // Type:
	AVP_IMS_INFORMATION                           = uint32(876)  // Type:
	AVP_MMS_INFORMATION                           = uint32(877)  // Type:
	AVP_LCS_INFORMATION                           = uint32(878)  // Type:
	AVP_POC_INFORMATION                           = uint32(879)  // Type:
	AVP_MBMS_INFORMATION                          = uint32(880)  // Type:
	AVP_QUOTA_CONSUMPTION_TIME                    = uint32(881)  // Type: Unsigned32
	AVP_MEDIA_INITIATOR_FLAG                      = uint32(882)  // Type: Enumerated
	AVP_POC_SERVER_ROLE                           = uint32(883)  // Type: Enumerated
	AVP_POC_SESSION_TYPE                          = uint32(884)  // Type: Enumerated
	AVP_NUMBER_OF_PARTICIPANTS                    = uint32(885)  // Type: Integer32
	AVP_ORIGINATOR_ADDRESS                        = uint32(886)  // Type:
	AVP_PARTICIPANTS_INVOLVED                     = uint32(887)  // Type: UTF8String
	AVP_EXPIRES                                   = uint32(888)  // Type: Unsigned32
	AVP_MESSAGE_BODY                              = uint32(889)  // Type:
	AVP_WAG_ADDRESS                               = uint32(890)  // Type: IPAddress
	AVP_WAG_PLMN_ID                               = uint32(891)  // Type: OctetString
	AVP_WLAN_RADIO_CONTAINER                      = uint32(892)  // Type:
	AVP_WLAN_TECHNOLOGY                           = uint32(893)  // Type: Unsigned32
	AVP_WLAN_UE_LOCAL_IPADDRESS                   = uint32(894)  // Type: IPAddress
	AVP_PDG_ADDRESS                               = uint32(895)  // Type: IPAddress
	AVP_PDG_CHARGING_ID                           = uint32(896)  // Type: Unsigned32
	AVP_ADDRESS_DATA                              = uint32(897)  // Type: UTF8String
	AVP_ADDRESS_DOMAIN                            = uint32(898)  // Type:
	AVP_ADDRESS_TYPE                              = uint32(899)  // Type: Enumerated
	AVP_BEARER_USAGE                              = uint32(1000) // Type: Enumerated
	AVP_CHARGING_RULE_INSTALL                     = uint32(1001) // Type:
	AVP_CHARGING_RULE_REMOVE                      = uint32(1002) // Type:
	AVP_CHARGING_RULE_DEFINITION                  = uint32(1003) // Type:
	AVP_CHARGING_RULE_BASE_NAME                   = uint32(1004) // Type: UTF8String
	AVP_CHARGING_RULE_NAME                        = uint32(1005) // Type: OctetString
	AVP_EVENT_TRIGGER                             = uint32(1006) // Type: Enumerated
	AVP_METERING_METHOD                           = uint32(1007) // Type: Enumerated
	AVP_OFFLINE                                   = uint32(1008) // Type: Enumerated
	AVP_ONLINE                                    = uint32(1009) // Type: Enumerated
	AVP_PRECEDENCE                                = uint32(1010) // Type: Unsigned32
	AVP_REPORTING_LEVEL                           = uint32(1011) // Type: Enumerated
	AVP_TFT_FILTER                                = uint32(1012) // Type: IPFilterRule TODO: FIX
	AVP_TFT_PACKET_FILTER_INFORMATION             = uint32(1013) // Type:
	AVP_TOS_TRAFFIC_CLASS                         = uint32(1014) // Type: OctetString
	AVP_PDP_SESSION_OPERATION                     = uint32(1015) // Type: Unsigned32
	AVP_QOS_INFORMATION                           = uint32(1016) // Type:
	AVP_CHARGING_RULE_REPORT                      = uint32(1018) // Type:
	AVP_PCC_RULE_STATUS                           = uint32(1019) // Type: Unsigned32
	AVP_BEARER_IDENTIFIER                         = uint32(1020) // Type: OctetString
	AVP_BEARER_OPERATION                          = uint32(1021) // Type: Enumerated
	AVP_ACCESS_NETWORK_CHARGING_IDENTIFIER_GX     = uint32(1022) // Type:
	AVP_BEARER_CONTROL_MODE                       = uint32(1023) // Type: Enumerated
	AVP_NETWORK_REQUEST_SUPPORT                   = uint32(1024) // Type: Enumerated
	AVP_GUARANTEED_BITRATE_DL                     = uint32(1025) // Type: Unsigned32
	AVP_GUARANTEED_BITRATE_UL                     = uint32(1026) // Type: Unsigned32
	AVP_IP_CAN_TYPE                               = uint32(1027) // Type: Enumerated
	AVP_QOS_CLASS_IDENTIFIER                      = uint32(1028) // Type: Enumerated
	AVP_QOS_NEGOTIATION                           = uint32(1029) // Type: Enumerated
	AVP_QOS_UPGRADE                               = uint32(1030) // Type: Enumerated
	AVP_RULE_FAILURE_CODE                         = uint32(1031) // Type: Enumerated
	AVP_RAT_TYPE                                  = uint32(1032) // Type: Enumerated
	AVP_EVENT_REPORT_INDICATION                   = uint32(1033) // Type:
	AVP_ALLOCATION_RETENTION_PRIORITY             = uint32(1034) // Type:
	AVP_COA_IP_ADDRESS                            = uint32(1035) // Type: IPAddress
	AVP_TUNNEL_HEADER_FILTER                      = uint32(1036) // Type: IPFilterRule
	AVP_TUNNEL_HEADER_LENGTH                      = uint32(1037) // Type: Unsigned32
	AVP_TUNNEL_INFORMATION                        = uint32(1038) // Type:
	AVP_COA_INFORMATION                           = uint32(1039) // Type:
	AVP_APN_AGGREGATE_MAX_BITRATE_DL              = uint32(1040) // Type: Unsigned32
	AVP_APN_AGGREGATE_MAX_BITRATE_UL              = uint32(1041) // Type: Unsigned32
	AVP_REVALIDATION_TIME                         = uint32(1042) // Type: Time
	AVP_RULE_ACTIVATION_TIME                      = uint32(1043) // Type: Time
	AVP_RULE_DEACTIVATION_TIME                    = uint32(1044) // Type: Time
	AVP_SESSION_RELEASE_CAUSE                     = uint32(1045) // Type: Enumerated
	AVP_PRIORITY_LEVEL                            = uint32(1046) // Type: Unsigned32
	AVP_PRE_EMPTION_CAPABILITY                    = uint32(1047) // Type: Enumerated
	AVP_PRE_EMPTION_VULNERABILITY                 = uint32(1048) // Type: Enumerated
	AVP_DEFAULT_EPS_BEARER_QOS                    = uint32(1049) // Type:
	AVP_AN_GW_ADDRESS                             = uint32(1050) // Type: IPAddress
	AVP_QOS_RULE_INSTALL                          = uint32(1051) // Type:
	AVP_QOS_RULE_REMOVE                           = uint32(1052) // Type:
	AVP_QOS_RULE_DEFINITION                       = uint32(1053) // Type:
	AVP_QOS_RULE_NAME                             = uint32(1054) // Type: OctetString
	AVP_QOS_RULE_REPORT                           = uint32(1055) // Type:
	AVP_SECURITY_PARAMETER_INDEX                  = uint32(1056) // Type: OctetString
	AVP_FLOW_LABEL                                = uint32(1057) // Type: OctetString
	AVP_FLOW_INFORMATION                          = uint32(1058) // Type:
	AVP_PACKET_FILTER_CONTENT                     = uint32(1059) // Type: IPFilterRule
	AVP_PACKET_FILTER_IDENTIFIER                  = uint32(1060) // Type: OctetString
	AVP_PACKET_FILTER_INFORMATION                 = uint32(1061) // Type:
	AVP_PACKET_FILTER_OPERATION                   = uint32(1062) // Type: Enumerated
	AVP_RESOURCE_ALLOCATION_NOTIFICATION          = uint32(1063) // Type: Enumerated
	AVP_SESSION_LINKING_INDICATOR                 = uint32(1064) // Type: Enumerated
	AVP_PDN_CONNECTION_ID                         = uint32(1065) // Type: OctetString
	AVP_MONITORING_KEY                            = uint32(1066) // Type: OctetString
	AVP_USAGE_MONITORING_INFORMATION              = uint32(1067) // Type:
	AVP_USAGE_MONITORING_LEVEL                    = uint32(1068) // Type: Enumerated
	AVP_USAGE_MONITORING_REPORT                   = uint32(1069) // Type: Enumerated
	AVP_USAGE_MONITORING_SUPPORT                  = uint32(1070) // Type: Enumerated
	AVP_CSG_INFORMATION_REPORTING                 = uint32(1071) // Type: Enumerated
	AVP_PACKET_FILTER_USAGE                       = uint32(1072) // Type: Enumerated
	AVP_CHARGING_CORRELATION_INDICATOR            = uint32(1073) // Type: Enumerated
	AVP_QOS_RULE_BASE_NAME                        = uint32(1074) // Type: UTF8String
	AVP_ROUTING_RULE_REMOVE                       = uint32(1075) // Type:
	AVP_ROUTING_RULE_DEFINITION                   = uint32(1076) // Type:
	AVP_ROUTING_RULE_IDENTIFIER                   = uint32(1077) // Type: OctetString
	AVP_ROUTING_FILTER                            = uint32(1078) // Type:
	AVP_ROUTING_IP_ADDRESS                        = uint32(1079) // Type: IPAddress
	AVP_FLOW_DIRECTION                            = uint32(1080) // Type: Enumerated
	AVP_ROUTING_RULE_INSTALL                      = uint32(1081) // Type:
	AVP_MAXIMUM_BANDWIDTH                         = uint32(1082) // Type:
	AVP_MAX_SUPPORTED_BANDWIDTH_DL                = uint32(1083) // Type: Unsigned32
	AVP_MAX_SUPPORTED_BANDWIDTH_UL                = uint32(1084) // Type: Unsigned32
	AVP_SERVED_USER_IDENTITY                      = uint32(1100) // Type:
	AVP_VASP_ID                                   = uint32(1101) // Type: UTF8String
	AVP_VAS_ID                                    = uint32(1102) // Type: UTF8String
	AVP_TRIGGER_EVENT                             = uint32(1103) // Type: Enumerated
	AVP_SENDER_ADDRESS                            = uint32(1104) // Type: UTF8String
	AVP_INITIAL_RECIPIENT_ADDRESS                 = uint32(1105) // Type:
	AVP_RESULT_RECIPIENT_ADDRESS                  = uint32(1106) // Type:
	AVP_SEQUENCE_NUMBER                           = uint32(1107) // Type: Unsigned32
	AVP_RECIPIENT_ADDRESS                         = uint32(1108) // Type: UTF8String
	AVP_ROUTEING_ADDRESS                          = uint32(1109) // Type: UTF8String
	AVP_ORIGINATING_INTERFACE                     = uint32(1110) // Type: Enumerated
	AVP_DELIVERY_REPORT                           = uint32(1111) // Type: Enumerated
	AVP_READ_REPLY                                = uint32(1112) // Type: Enumerated
	AVP_SENDER_VISIBILITY                         = uint32(1113) // Type: Enumerated
	AVP_SERVICE_KEY                               = uint32(1114) // Type: UTF8String
	AVP_BILLING_INFORMATION                       = uint32(1115) // Type: UTF8String
	AVP_STATUS                                    = uint32(1116) // Type:
	AVP_STATUS_CODE                               = uint32(1117) // Type: UTF8String
	AVP_STATUS_TEXT                               = uint32(1118) // Type: UTF8String
	AVP_ROUTEING_ADDRESS_RESOLUTION               = uint32(1119) // Type: Enumerated
	AVP_DOMAIN_NAME                               = uint32(1200) // Type: UTF8String
	// AVP_RECIPIENT_ADDRESS                             = uint32(1201) // Type:
	AVP_SUBMISSION_TIME                               = uint32(1202) // Type: Time
	AVP_MM_CONTENT_TYPE                               = uint32(1203) // Type:
	AVP_TYPE_NUMBER                                   = uint32(1204) // Type: Enumerated
	AVP_ADDITIONAL_TYPE_INFORMATION                   = uint32(1205) // Type: UTF8String
	AVP_CONTENT_SIZE                                  = uint32(1206) // Type: Unsigned32
	AVP_ADDITIONAL_CONTENT_INFORMATION                = uint32(1207) // Type:
	AVP_ADDRESSEE_TYPE                                = uint32(1208) // Type: Enumerated
	AVP_PRIORITY                                      = uint32(1209) // Type: Enumerated
	AVP_MESSAGE_ID                                    = uint32(1210) // Type: UTF8String
	AVP_MESSAGE_TYPE                                  = uint32(1211) // Type: Enumerated
	AVP_MESSAGE_SIZE                                  = uint32(1212) // Type: Unsigned32
	AVP_MESSAGE_CLASS                                 = uint32(1213) // Type:
	AVP_CLASS_IDENTIFIER                              = uint32(1214) // Type: Enumerated
	AVP_TOKEN_TEXT                                    = uint32(1215) // Type: UTF8String
	AVP_DELIVERY_REPORT_REQUESTED                     = uint32(1216) // Type: Enumerated
	AVP_ADAPTATIONS                                   = uint32(1217) // Type: Enumerated
	AVP_APPLIC_ID                                     = uint32(1218) // Type: UTF8String
	AVP_AUX_APPLIC_INFO                               = uint32(1219) // Type: UTF8String
	AVP_CONTENT_CLASS                                 = uint32(1220) // Type: Enumerated
	AVP_DRM_CONTENT                                   = uint32(1221) // Type: Enumerated
	AVP_READ_REPLY_REPORT_REQUESTED                   = uint32(1222) // Type: Enumerated
	AVP_REPLY_APPLIC_ID                               = uint32(1223) // Type: UTF8String
	AVP_FILE_REPAIR_SUPPORTED                         = uint32(1224) // Type: Enumerated
	AVP_MBMS_USER_SERVICE_TYPE                        = uint32(1225) // Type: Enumerated
	AVP_UNIT_QUOTA_THRESHOLD                          = uint32(1226) // Type: Unsigned32
	AVP_PDP_ADDRESS                                   = uint32(1227) // Type: IPAddress
	AVP_SGSN_ADDRESS                                  = uint32(1228) // Type: IPAddress
	AVP_POC_SESSION_ID                                = uint32(1229) // Type: UTF8String
	AVP_DEFERRED_LOCATION_EVENT_TYPE                  = uint32(1230) // Type: UTF8String
	AVP_LCS_APN                                       = uint32(1231) // Type: UTF8String
	AVP_LCS_CLIENT_ID                                 = uint32(1232) // Type:
	AVP_LCS_CLIENT_DIALED_BY_MS                       = uint32(1233) // Type: UTF8String
	AVP_LCS_CLIENT_EXTERNAL_ID                        = uint32(1234) // Type: UTF8String
	AVP_LCS_CLIENT_NAME                               = uint32(1235) // Type:
	AVP_LCS_DATA_CODING_SCHEME                        = uint32(1236) // Type: UTF8String
	AVP_LCS_FORMAT_INDICATOR                          = uint32(1237) // Type: Enumerated
	AVP_LCS_NAME_STRING                               = uint32(1238) // Type: UTF8String
	AVP_LCS_REQUESTOR_ID                              = uint32(1239) // Type:
	AVP_LCS_REQUESTOR_ID_STRING                       = uint32(1240) // Type: UTF8String
	AVP_LCS_CLIENT_TYPE                               = uint32(1241) // Type: Enumerated
	AVP_LOCATION_ESTIMATE                             = uint32(1242) // Type: UTF8String
	AVP_LOCATION_ESTIMATE_TYPE                        = uint32(1243) // Type: Enumerated
	AVP_LOCATION_TYPE                                 = uint32(1244) // Type:
	AVP_POSITIONING_DATA                              = uint32(1245) // Type: UTF8String
	AVP_WLAN_SESSION_ID                               = uint32(1246) // Type: UTF8String
	AVP_PDP_CONTEXT_TYPE                              = uint32(1247) // Type: Enumerated
	AVP_MMBOX_STORAGE_REQUESTED                       = uint32(1248) // Type: Enumerated
	AVP_SERVICE_SPECIFIC_INFO                         = uint32(1249) // Type:
	AVP_CALLED_ASSERTED_IDENTITY                      = uint32(1250) // Type: UTF8String
	AVP_REQUESTED_PARTY_ADDRESS                       = uint32(1251) // Type: UTF8String
	AVP_POC_USER_ROLE                                 = uint32(1252) // Type:
	AVP_POC_USER_ROLE_IDS                             = uint32(1253) // Type: UTF8String
	AVP_POC_USER_ROLE_INFO_UNITS                      = uint32(1254) // Type: Enumerated
	AVP_TALK_BURST_EXCHANGE                           = uint32(1255) // Type:
	AVP_SERVICE_GENERIC_INFORMATION                   = uint32(1256) // Type:
	AVP_SERVICE_SPECIFIC_TYPE                         = uint32(1257) // Type: Unsigned32
	AVP_EVENT_CHARGING_TIMESTAMP                      = uint32(1258) // Type: Time
	AVP_PARTICIPANT_ACCESS_PRIORITY                   = uint32(1259) // Type: Enumerated
	AVP_PARTICIPANT_GROUP                             = uint32(1260) // Type:
	AVP_POC_CHANGE_CONDITION                          = uint32(1261) // Type: Enumerated
	AVP_POC_CHANGE_TIME                               = uint32(1262) // Type: Time
	AVP_ACCESS_NETWORK_INFORMATION                    = uint32(1263) // Type: UTF8String
	AVP_TRIGGER                                       = uint32(1264) // Type:
	AVP_BASE_TIME_INTERVAL                            = uint32(1265) // Type: Unsigned32
	AVP_ENVELOPE                                      = uint32(1266) // Type:
	AVP_ENVELOPE_END_TIME                             = uint32(1267) // Type: Time
	AVP_ENVELOPE_REPORTING                            = uint32(1268) // Type: Enumerated
	AVP_ENVELOPE_START_TIME                           = uint32(1269) // Type: Time
	AVP_TIME_QUOTA_MECHANISM                          = uint32(1270) // Type:
	AVP_TIME_QUOTA_TYPE                               = uint32(1271) // Type: Enumerated
	AVP_EARLY_MEDIA_DESCRIPTION                       = uint32(1272) // Type:
	AVP_SDP_TIMESTAMPS                                = uint32(1273) // Type:
	AVP_SDP_OFFER_TIMESTAMP                           = uint32(1274) // Type: Time
	AVP_SDP_ANSWER_TIMESTAMP                          = uint32(1275) // Type: Time
	AVP_AF_CORRELATION_INFORMATION                    = uint32(1276) // Type:
	AVP_POC_SESSION_INITIATION_TYPE                   = uint32(1277) // Type: Enumerated
	AVP_OFFLINE_CHARGING                              = uint32(1278) // Type:
	AVP_USER_PARTICIPATING_TYPE                       = uint32(1279) // Type: Enumerated
	AVP_ALTERNATE_CHARGED_PARTY_ADDRESS               = uint32(1280) // Type: UTF8String
	AVP_IMS_COMMUNICATION_SERVICE_IDENTIFIER          = uint32(1281) // Type: UTF8String
	AVP_NUMBER_OF_RECEIVED_TALK_BURSTS                = uint32(1282) // Type: Unsigned32
	AVP_NUMBER_OF_TALK_BURSTS                         = uint32(1283) // Type: Unsigned32
	AVP_RECEIVED_TALK_BURST_TIME                      = uint32(1284) // Type: Unsigned32
	AVP_RECEIVED_TALK_BURST_VOLUME                    = uint32(1285) // Type: Unsigned32
	AVP_TALK_BURST_TIME                               = uint32(1286) // Type: Unsigned32
	AVP_TALK_BURST_VOLUME                             = uint32(1287) // Type: Unsigned32
	AVP_MEDIA_INITIATOR_PARTY                         = uint32(1288) // Type: UTF8String
	AVP_SUBSCRIPTION_DATA                             = uint32(1400) // Type:
	AVP_TERMINAL_INFORMATION                          = uint32(1401) // Type:
	AVP_IMEI                                          = uint32(1402) // Type: UTF8String
	AVP_SOFTWARE_VERSION                              = uint32(1403) // Type: UTF8String
	AVP_QOS_SUBSCRIBED                                = uint32(1404) // Type: UTF8String
	AVP_ULR_FLAGS                                     = uint32(1405) // Type: Unsigned32
	AVP_ULA_FLAGS                                     = uint32(1406) // Type: Unsigned32
	AVP_VISITED_PLMN_ID                               = uint32(1407) // Type: OctetString
	AVP_REQUESTED_EUTRAN_AUTHENTICATION_INFO          = uint32(1408) // Type:
	AVP_REQUESTED_UTRAN_GERAN_AUTHENTICATION_INFO     = uint32(1409) // Type:
	AVP_NUMBER_OF_REQUESTED_VECTORS                   = uint32(1410) // Type: Unsigned32
	AVP_RE_SYNCHRONIZATION_INFO                       = uint32(1411) // Type: OctetString
	AVP_IMMEDIATE_RESPONSE_PREFERRED                  = uint32(1412) // Type: Unsigned32
	AVP_AUTHENTICATION_INFO                           = uint32(1413) // Type:
	AVP_E_UTRAN_VECTOR                                = uint32(1414) // Type:
	AVP_UMTS_VECTOR                                   = uint32(1415) // Type:
	AVP_GERAN_VECTOR                                  = uint32(1416) // Type:
	AVP_NETWORK_ACCESS_MODE                           = uint32(1417) // Type: Enumerated
	AVP_HPLMN_ODB                                     = uint32(1418) // Type: Unsigned32
	AVP_ITEM_NUMBER                                   = uint32(1419) // Type: Unsigned32
	AVP_CANCELLATION_TYPE                             = uint32(1420) // Type: Enumerated
	AVP_DSR_FLAGS                                     = uint32(1421) // Type: Unsigned32
	AVP_DSA_FLAGS                                     = uint32(1422) // Type: Unsigned32
	AVP_CONTEXT_IDENTIFIER                            = uint32(1423) // Type: Unsigned32
	AVP_SUBSCRIBER_STATUS                             = uint32(1424) // Type: Enumerated
	AVP_OPERATOR_DETERMINED_BARRING                   = uint32(1425) // Type: Unsigned32
	AVP_ACCESS_RESTRICTION_DATA                       = uint32(1426) // Type: Unsigned32
	AVP_APN_OI_REPLACEMENT                            = uint32(1427) // Type: UTF8String
	AVP_ALL_APN_CONFIGURATIONS_INCLUDED_INDICATOR     = uint32(1428) // Type: Enumerated
	AVP_APN_CONFIGURATION_PROFILE                     = uint32(1429) // Type:
	AVP_APN_CONFIGURATION                             = uint32(1430) // Type:
	AVP_EPS_SUBSCRIBED_QOS_PROFILE                    = uint32(1431) // Type:
	AVP_VPLMN_DYNAMIC_ADDRESS_ALLOWED                 = uint32(1432) // Type: Enumerated
	AVP_STN_SR                                        = uint32(1433) // Type: OctetString
	AVP_ALERT_REASON                                  = uint32(1434) // Type: Enumerated
	AVP_AMBR                                          = uint32(1435) // Type:
	AVP_CSG_SUBSCRIPTION_DATA                         = uint32(1436) // Type:
	AVP_CSG_ID                                        = uint32(1437) // Type: Unsigned32
	AVP_PDN_GW_ALLOCATION_TYPE                        = uint32(1438) // Type: Enumerated
	AVP_EXPIRATION_DATE                               = uint32(1439) // Type: Time
	AVP_RAT_FREQUENCY_SELECTION_PRIORITY_ID           = uint32(1440) // Type: Unsigned32
	AVP_IDA_FLAGS                                     = uint32(1441) // Type: Unsigned32
	AVP_PUA_FLAGS                                     = uint32(1442) // Type: Unsigned32
	AVP_NOR_FLAGS                                     = uint32(1443) // Type: Unsigned32
	AVP_USER_ID                                       = uint32(1444) // Type: UTF8String
	AVP_EQUIPMENT_STATUS                              = uint32(1445) // Type: Enumerated
	AVP_REGIONAL_SUBSCRIPTION_ZONE_CODE               = uint32(1446) // Type: OctetString
	AVP_RAND                                          = uint32(1447) // Type: OctetString
	AVP_XRES                                          = uint32(1448) // Type: OctetString
	AVP_AUTN                                          = uint32(1449) // Type: OctetString
	AVP_KASME                                         = uint32(1450) // Type: OctetString
	AVP_TRACE_COLLECTION_ENTITY                       = uint32(1452) // Type: IPAddress
	AVP_KC                                            = uint32(1453) // Type: OctetString
	AVP_SRES                                          = uint32(1454) // Type: OctetString
	AVP_REQUESTING_NODE_TYPE                          = uint32(1455) // Type: Enumerated
	AVP_PDN_TYPE                                      = uint32(1456) // Type: Enumerated
	AVP_ROAMING_RESTRICTED_DUE_TO_UNSUPPORTED_FEATURE = uint32(1457) // Type: Enumerated
	AVP_TRACE_DATA                                    = uint32(1458) // Type:
	AVP_TRACE_REFERENCE                               = uint32(1459) // Type: OctetString
	AVP_TRACE_DEPTH                                   = uint32(1462) // Type: Enumerated
	AVP_TRACE_NE_TYPE_LIST                            = uint32(1463) // Type: OctetString
	AVP_TRACE_INTERFACE_LIST                          = uint32(1464) // Type: OctetString
	AVP_TRACE_EVENT_LIST                              = uint32(1465) // Type: OctetString
	AVP_OMC_ID                                        = uint32(1466) // Type: OctetString
	AVP_GPRS_SUBSCRIPTION_DATA                        = uint32(1467) // Type:
	AVP_COMPLETE_DATA_LIST_INCLUDED_INDICATOR         = uint32(1468) // Type: Enumerated
	AVP_PDP_CONTEXT                                   = uint32(1469) // Type:
	AVP_PDP_TYPE                                      = uint32(1470) // Type: OctetString
	AVP_TGPP2_MEID                                    = uint32(1471) // Type: OctetString
	AVP_SPECIFIC_APN_INFO                             = uint32(1472) // Type:
	AVP_LCS_INFO                                      = uint32(1473) // Type:
	AVP_GMLC_ADDRESS                                  = uint32(1474) // Type: OctetString
	AVP_LCS_PRIVACYEXCEPTION                          = uint32(1475) // Type:
	AVP_SS_CODE                                       = uint32(1476) // Type: OctetString
	AVP_SS_STATUS                                     = uint32(1477) // Type: OctetString
	AVP_NOTIFICATION_TO_UE_USER                       = uint32(1478) // Type: Enumerated
	AVP_EXTERNAL_CLIENT                               = uint32(1479) // Type:
	AVP_CLIENT_IDENTITY                               = uint32(1480) // Type: OctetString
	AVP_GMLC_RESTRICTION                              = uint32(1481) // Type: Enumerated
	AVP_PLMN_CLIENT                                   = uint32(1482) // Type: Enumerated
	// AVP_SERVICE_TYPE                                      = uint32(1483) // Type:
	AVP_SERVICETYPEIDENTITY                               = uint32(1484) // Type: Unsigned32
	AVP_MO_LR                                             = uint32(1485) // Type:
	AVP_TELESERVICE_LIST                                  = uint32(1486) // Type:
	AVP_TS_CODE                                           = uint32(1487) // Type: OctetString
	AVP_CALL_BARRING_INFOR_LIST                           = uint32(1488) // Type:
	AVP_SGSN_NUMBER                                       = uint32(1489) // Type: OctetString
	AVP_IDR_FLAGS                                         = uint32(1490) // Type: Unsigned32
	AVP_ICS_INDICATOR                                     = uint32(1491) // Type: Enumerated
	AVP_IMS_VOICE_OVER_PSSESSIONS_SUPPORTED               = uint32(1492) // Type: Enumerated
	AVP_HOMOGENEOUS_SUPPORT_OF_IMS_VOICE_OVER_PS_SESSIONS = uint32(1493) // Type: Enumerated
	AVP_LAST_UE_ACTIVITY_TIME                             = uint32(1494) // Type: Time
	AVP_EPS_USER_STATE                                    = uint32(1495) // Type:
	AVP_EPS_LOCATION_INFORMATION                          = uint32(1496) // Type:
	AVP_MME_USER_STATE                                    = uint32(1497) // Type:
	AVP_SGSN_USER_STATE                                   = uint32(1498) // Type:
	AVP_USER_STATE                                        = uint32(1499) // Type: Enumerated
	AVP_NON_3GPP_USER_DATA                                = uint32(1500) // Type:
	AVP_NON_3GPP_IP_ACCESS                                = uint32(1501) // Type: Enumerated
	AVP_NON_3GPP_IP_ACCESS_APN                            = uint32(1502) // Type: Enumerated
	AVP_AN_TRUSTED                                        = uint32(1503) // Type: Enumerated
	AVP_ANID                                              = uint32(1504) // Type: UTF8String
	AVP_TRACE_INFO                                        = uint32(1505) // Type:
	AVP_MIP_FA_RK                                         = uint32(1506) // Type: OctetString
	AVP_MIP_FA_RK_SPI                                     = uint32(1507) // Type: Unsigned32
	AVP_MME_LOCATION_INFORMATION                          = uint32(1600) // Type:
	AVP_SGSN_LOCATION_INFORMATION                         = uint32(1601) // Type:
	AVP_E_UTRAN_CELL_GLOBAL_IDENTITY                      = uint32(1602) // Type: OctetString
	AVP_TRACKING_AREA_IDENTITY                            = uint32(1603) // Type: OctetString
	AVP_CELL_GLOBAL_IDENTITY                              = uint32(1604) // Type: OctetString
	AVP_ROUTING_AREA_IDENTITY                             = uint32(1605) // Type: OctetString
	AVP_LOCATION_AREA_IDENTITY                            = uint32(1606) // Type: OctetString
	AVP_SERVICE_AREA_IDENTITY                             = uint32(1607) // Type: OctetString
	AVP_GEOGRAPHICAL_INFORMATION                          = uint32(1608) // Type: OctetString
	AVP_GEODETIC_INFORMATION                              = uint32(1609) // Type: OctetString
	AVP_CURRENT_LOCATION_RETRIEVED                        = uint32(1610) // Type: Enumerated
	AVP_AGE_OF_LOCATION_INFORMATION                       = uint32(1611) // Type: Unsigned32
	AVP_ACTIVE_APN                                        = uint32(1612) // Type:
	AVP_SIPTO_PERMISSION                                  = uint32(1613) // Type: Enumerated
	AVP_ERROR_DIAGNOSTIC                                  = uint32(1614) // Type: Enumerated
	AVP_UE_SRVCC_CAPABILITY                               = uint32(1615) // Type: Enumerated
	AVP_MPS_PRIORITY                                      = uint32(1616) // Type: Unsigned32
	AVP_VPLMN_LIPA_ALLOWED                                = uint32(1617) // Type: Enumerated
	AVP_LIPA_PERMISSION                                   = uint32(1618) // Type: Enumerated
	AVP_SUBSCRIBED_PERIODIC_RAU_TAU_TIMER                 = uint32(1619) // Type: Unsigned32
	AVP_EXT_PDP_TYPE                                      = uint32(1620) // Type: OctetString
	AVP_EXT_PDP_ADDRESS                                   = uint32(1621) // Type: IPAddress
	AVP_MDT_CONFIGURATION                                 = uint32(1622) // Type:
	AVP_JOB_TYPE                                          = uint32(1623) // Type: Enumerated
	AVP_AREA_SCOPE                                        = uint32(1624) // Type:
	AVP_LIST_OF_MEASUREMENTS                              = uint32(1625) // Type: Unsigned32
	AVP_REPORTING_TRIGGER                                 = uint32(1626) // Type: Unsigned32
	AVP_REPORT_INTERVAL                                   = uint32(1627) // Type: Enumerated
	AVP_REPORT_AMOUNT                                     = uint32(1628) // Type: Enumerated
	AVP_EVENT_THRESHOLD_RSRP                              = uint32(1629) // Type: Unsigned32
	AVP_EVENT_THRESHOLD_RSRQ                              = uint32(1630) // Type: Unsigned32
	AVP_LOGGING_INTERVAL                                  = uint32(1631) // Type: Enumerated
	AVP_LOGGING_DURATION                                  = uint32(1632) // Type: Enumerated
	AVP_RELAY_NODE_INDICATOR                              = uint32(1633) // Type: Enumerated
	AVP_MDT_USER_CONSENT                                  = uint32(1634) // Type: Enumerated
	AVP_PUR_FLAGS                                         = uint32(1635) // Type: Unsigned32
	AVP_SUBSCRIBED_VSRVCC                                 = uint32(1636) // Type: Enumerated
	AVP_EQUIVALENT_PLMN_LIST                              = uint32(1637) // Type:
	AVP_CLR_FLAGS                                         = uint32(1638) // Type: Unsigned32
	AVP_UVR_FLAGS                                         = uint32(1639) // Type: Unsigned32
	AVP_UVA_FLAGS                                         = uint32(1640) // Type: Unsigned32
	AVP_VPLMN_CSG_SUBSCRIPTION_DATA                       = uint32(1641) // Type:
	AVP_TIME_ZONE                                         = uint32(1642) // Type: UTF8String
	AVP_A_MSISDN                                          = uint32(1643) // Type: OctetString
	AVP_MME_NUMBER_FOR_MT_SMS                             = uint32(1645) // Type: OctetString
	AVP_SMS_REGISTER_REQUEST                              = uint32(1648) // Type: Enumerated
	AVP_DAYLIGHT_SAVING_TIME                              = uint32(1650) // Type: Enumerated
	AVP_SUBSCRIPTION_DATA_FLAGS                           = uint32(1654) // Type: Unsigned32
	AVP_MEASUREMENT_PERIOD_UMTS                           = uint32(1655) // Type: Enumerated
	AVP_MEASUREMENT_PERIOD_LTE                            = uint32(1656) // Type: Enumerated
	AVP_COLLECTION_PERIOD_RRM_LTE                         = uint32(1657) // Type: Enumerated
	AVP_COLLECTION_PERIOD_RRM_UMTS                        = uint32(1658) // Type: Enumerated
	AVP_POSITIONING_METHOD                                = uint32(1659) // Type: OctetString
	AVP_MEASUREMENT_QUANTITY                              = uint32(1660) // Type: OctetString
	AVP_EVENT_THRESHOLD_EVENT_1F                          = uint32(1661) // Type: Integer32
	AVP_EVENT_THRESHOLD_EVENT_1I                          = uint32(1662) // Type: Integer32
	AVP_SMS_INFORMATION                                   = uint32(2000) // Type:
	AVP_DATA_CODING_SCHEME                                = uint32(2001) // Type: Integer32
	AVP_DESTINATION_INTERFACE                             = uint32(2002) // Type:
	AVP_INTERFACE_ID                                      = uint32(2003) // Type: UTF8String
	AVP_INTERFACE_PORT                                    = uint32(2004) // Type: UTF8String
	AVP_INTERFACE_TEXT                                    = uint32(2005) // Type: UTF8String
	AVP_INTERFACE_TYPE                                    = uint32(2006) // Type: Enumerated
	AVP_SM_MESSAGE_TYPE                                   = uint32(2007) // Type: Enumerated
	AVP_ORIGINATING_SCCP_ADDRESS                          = uint32(2008) // Type: IPAddress
	AVP_ORIGINATOR_INTERFACE                              = uint32(2009) // Type:
	AVP_RECIPIENT_SCCP_ADDRESS                            = uint32(2010) // Type: IPAddress
	AVP_REPLY_PATH_REQUESTED                              = uint32(2011) // Type: Enumerated
	AVP_SM_DISCHARGE_TIME                                 = uint32(2012) // Type: Time
	AVP_SM_PROTOCOL_ID                                    = uint32(2013) // Type: OctetString
	AVP_SM_STATUS                                         = uint32(2014) // Type: OctetString
	AVP_SM_USER_DATA_HEADER                               = uint32(2015) // Type: OctetString
	AVP_SMS_NODE                                          = uint32(2016) // Type: Enumerated
	AVP_SMSC_ADDRESS                                      = uint32(2017) // Type: IPAddress
	AVP_CLIENT_ADDRESS                                    = uint32(2018) // Type: IPAddress
	AVP_NUMBER_OF_MESSAGES_SENT                           = uint32(2019) // Type: Unsigned32
	AVP_LOW_BALANCE_INDICATION                            = uint32(2020) // Type: Enumerated
	AVP_REMAINING_BALANCE                                 = uint32(2021) // Type:
	AVP_REFUND_INFORMATION                                = uint32(2022) // Type: OctetString
	AVP_CARRIER_SELECT_ROUTING_INFORMATION                = uint32(2023) // Type: UTF8String
	AVP_NUMBER_PORTABILITY_ROUTING_INFORMATION            = uint32(2024) // Type: UTF8String
	AVP_POC_EVENT_TYPE                                    = uint32(2025) // Type: Enumerated
	AVP_RECIPIENTS                                        = uint32(2026) // Type:
	// AVP_DESTINATION_INTERFACE                             = uint32(2027) // Type:
	AVP_RECIPIENT_RECEIVED_ADDRESS = uint32(2028) // Type:
	AVP_SM_SERVICE_TYPE            = uint32(2029) // Type: Enumerated
	AVP_MMTEL_INFORMATION          = uint32(2030) // Type:
	// AVP_SERVICE_TYPE                                      = uint32(2031) // Type: Enumerated
	AVP_SERVICE_MODE             = uint32(2032) // Type: Enumerated
	AVP_SUBSCRIBER_ROLE          = uint32(2033) // Type: Enumerated
	AVP_NUMBER_OF_DIVERSIONS     = uint32(2034) // Type: Unsigned32
	AVP_ASSOCIATED_PARTY_ADDRESS = uint32(2035) // Type: UTF8String
	AVP_SDP_TYPE                 = uint32(2036) // Type: Enumerated
	AVP_CHANGE_CONDITION         = uint32(2037) // Type: Integer32
	AVP_CHANGE_TIME              = uint32(2038) // Type: Time
	AVP_DIAGNOSTICS              = uint32(2039) // Type: Time
	AVP_SERVICE_DATA_CONTAINER   = uint32(2040) // Type:
	AVP_START_TIME               = uint32(2041) // Type: Time
	AVP_STOP_TIME                = uint32(2042) // Type: Time
	AVP_TIME_FIRST_USAGE         = uint32(2043) // Type: Time
	AVP_TIME_LAST_USAGE          = uint32(2044) // Type: Time
	AVP_TIME_USAGE               = uint32(2045) // Type: Unsigned32
	AVP_TRAFFIC_DATA_VOLUMES     = uint32(2046) // Type:
	AVP_SERVING_NODE_TYPE        = uint32(2047) // Type: Enumerated
	AVP_SUPPLEMENTARY_SERVICE    = uint32(2048) // Type:
	AVP_PARTICIPANT_ACTION_TYPE  = uint32(2049) // Type: Enumerated
	// AVP_PDN_CONNECTION_ID                        = uint32(2050) // Type: Unsigned32
	AVP_DYNAMIC_ADDRESS_FLAG                    = uint32(2051) // Type: Enumerated
	AVP_ACCUMULATED_COST                        = uint32(2052) // Type:
	AVP_AOC_COST_INFORMATION                    = uint32(2053) // Type:
	AVP_AOC_INFORMATION                         = uint32(2054) // Type:
	AVP_AOC_REQUEST_TYPE                        = uint32(2055) // Type: Enumerated
	AVP_CURRENT_TARIFF                          = uint32(2056) // Type:
	AVP_NEXT_TARIFF                             = uint32(2057) // Type:
	AVP_RATE_ELEMENT                            = uint32(2058) // Type:
	AVP_SCALE_FACTOR                            = uint32(2059) // Type:
	AVP_TARIFF_INFORMATION                      = uint32(2060) // Type:
	AVP_UNIT_COST                               = uint32(2061) // Type:
	AVP_INCREMENTAL_COST                        = uint32(2062) // Type:
	AVP_LOCAL_SEQUENCE_NUMBER                   = uint32(2063) // Type: Unsigned32
	AVP_NODE_ID                                 = uint32(2064) // Type: UTF8String
	AVP_SGW_CHANGE                              = uint32(2065) // Type: Enumerated
	AVP_CHARGING_CHARACTERISTICS_SELECTION_MODE = uint32(2066) // Type: Enumerated
	AVP_SGW_ADDRESS                             = uint32(2067) // Type: Address
	AVP_DYNAMIC_ADDRESS_FLAG_EXTENSION          = uint32(2068) // Type: Enumerated

	AVP_APPLICATION_SERVER_ID    = uint32(2101) // Type: Unsigned32
	AVP_APPLICATION_SERVICE_TYPE = uint32(2102) // Type: Enumerated
	AVP_APPLICATION_SESSION_ID   = uint32(2103) // Type: Unsigned32
	AVP_DELIVERY_STATUS          = uint32(2104) // Type: UTF8String

	AVP_IM_INFORMATION                           = uint32(2110) // Type:
	AVP_NUMBER_OF_MESSAGES_SUCCESSFULLY_EXPLODED = uint32(2111) // Type: Unsigned32
	AVP_NUMBER_OF_MESSAGES_SUCCESSFULLY_SENT     = uint32(2112) // Type: Unsigned32
	AVP_TOTAL_NUMBER_OF_MESSAGES_EXPLODED        = uint32(2113) // Type: Unsigned32
	AVP_TOTAL_NUMBER_OF_MESSAGES_SENT            = uint32(2114) // Type: Unsigned32
	AVP_DCD_INFORMATION                          = uint32(2115) // Type:
	AVP_CONTENT_ID                               = uint32(2116) // Type: UTF8String
	AVP_CONTENT_PROVIDER_ID                      = uint32(2117) // Type: UTF8String
	AVP_CHARGE_REASON_CODE                       = uint32(2118) // Type: Enumerated

	AVP_SIP_REQUEST_TIMESTAMP_FRACTION  = uint32(2301) // Type: Unsigned32
	AVP_SIP_RESPONSE_TIMESTAMP_FRACTION = uint32(2302) // Type: Unsigned32
	AVP_ONLINE_CHARGING_FLAG            = uint32(2303) // Type: Enumerated
	AVP_CUG_INFORMATION                 = uint32(2304) // Type: OctetString
	AVP_REAL_TIME_TARIFF_INFORMATION    = uint32(2305) // Type:
	AVP_TARIFF_XML                      = uint32(2306) // Type: UTF8String
	AVP_MBMS_GW_ADDRESS                 = uint32(2307) // Type: IPAddress
	AVP_IMSI_UNAUTHENTICATED_FLAG       = uint32(2308) // Type: Enumerated
	AVP_ACCOUNT_EXPIRATION              = uint32(2309) // Type: Time
	AVP_AOC_FORMAT                      = uint32(2310) // Type: Enumerated
	AVP_AOC_SERVICE                     = uint32(2311) // Type:
	AVP_AOC_SERVICE_OBLIGATORY_TYPE     = uint32(2312) // Type: Enumerated
	AVP_AOC_SERVICE_TYPE                = uint32(2313) // Type: Enumerated
	AVP_AOC_SUBSCRIPTION_INFORMATION    = uint32(2314) // Type:
	AVP_PREFERRED_AOC_CURRENCY          = uint32(2315) // Type: Unsigned32
	AVP_CSG_ACCESS_MODE                 = uint32(2317) // Type: Enumerated
	AVP_CSG_MEMBERSHIP_INDICATION       = uint32(2318) // Type: Enumerated
	AVP_USER_CSG_INFORMATION            = uint32(2319) // Type:
	AVP_OUTGOING_SESSION_ID             = uint32(2320) // Type: UTF8String
	AVP_INITIAL_IMS_CHARGING_IDENTIFIER = uint32(2321) // Type: UTF8String
	AVP_SERVING_NODE                    = uint32(2401) // Type:
	AVP_MME_NAME                        = uint32(2402) // Type: DiameterIdentity
	AVP_MSC_NUMBER                      = uint32(2403) // Type: OctetString
	AVP_LCS_CAPABILITIES_SETS           = uint32(2404) // Type: Unsigned32
	AVP_ADDITIONAL_SERVING_NODE         = uint32(2406) // Type:
	AVP_MME_REALM                       = uint32(2408) // Type: DiameterIdentity
	// AVP_LOCATION_TYPE                            = uint32(2500) // Type: Enumerated
	AVP_LCS_EPS_CLIENT_NAME           = uint32(2501) // Type:
	AVP_LCS_REQUESTOR_NAME            = uint32(2502) // Type:
	AVP_LCS_PRIORITY                  = uint32(2503) // Type: Unsigned32
	AVP_LCS_QOS                       = uint32(2504) // Type:
	AVP_HORIZONTAL_ACCURACY           = uint32(2505) // Type: Unsigned32
	AVP_VERTICAL_ACCURACY             = uint32(2506) // Type: Unsigned32
	AVP_VELOCITY_REQUESTED            = uint32(2508) // Type: Enumerated
	AVP_RESPONSE_TIME                 = uint32(2509) // Type: Enumerated
	AVP_SUPPORTED_GAD_SHAPES          = uint32(2510) // Type: Unsigned32
	AVP_LCS_CODEWORD                  = uint32(2511) // Type: UTF8String
	AVP_LCS_PRIVACY_CHECK             = uint32(2512) // Type: Enumerated
	AVP_ACCURACY_FULFILMENT_INDICATOR = uint32(2513) // Type: Enumerated
	AVP_AGE_OF_LOCATION_ESTIMATE      = uint32(2514) // Type: Unsigned32
	AVP_VELOCITY_ESTIMATE             = uint32(2515) // Type: OctetString
	AVP_EUTRAN_POSITIONING_DATA       = uint32(2516) // Type: OctetString
	AVP_ECGI                          = uint32(2517) // Type: OctetString
	AVP_LOCATION_EVENT                = uint32(2518) // Type: Enumerated
	AVP_LCS_SERVICE_TYPE_ID           = uint32(2520) // Type: Unsigned32
	AVP_LCS_PRIVACY_CHECK_NON_SESSION = uint32(2521) // Type:
	AVP_LCS_PRIVACY_CHECK_SESSION     = uint32(2522) // Type:
	AVP_LCS_QOS_CLASS                 = uint32(2523) // Type: Enumerated

	AVP_IMS_APPLICATION_REFERENCE_IDENTIFIER = uint32(2601) // Type: UTF8String
	AVP_LOW_PRIORITY_INDICATOR               = uint32(2602) // Type: Enumerated
	AVP_IP_REALM_DEFAULT_INDICATOR           = uint32(2603) // Type: Enumerated
	AVP_LOCAL_GW_INSERTED_INDICATOR          = uint32(2604) // Type: Enumerated
	AVP_TRANSCODER_INSERTED_INDICATOR        = uint32(2605) // Type: Enumerated
	AVP_PDP_ADDRESS_PREFIX_LENGTH            = uint32(2606) // Type: Unsigned32
	AVP_POLICY_COUNTER_IDENTIFIER            = uint32(2901) // Type: UTF8String
	AVP_POLICY_COUNTER_STATUS                = uint32(2902) // Type: UTF8String
	AVP_POLICY_COUNTER_STATUS_REPORT         = uint32(2903) // Type: UTF8String
	AVP_SL_REQUEST_TYPE                      = uint32(2904) // Type: Enumerated
	AVP_DEVICE_ACTION                        = uint32(3001) // Type:
	AVP_DEVICE_NOTIFICATION                  = uint32(3002) // Type:
	AVP_TRIGGER_DATA                         = uint32(3003) // Type:
	AVP_PAYLOAD                              = uint32(3004) // Type: OctetString
	AVP_ACTION_TYPE                          = uint32(3005) // Type: Enumerated
	AVP_PRIORITY_INDICATION                  = uint32(3006) // Type: Enumerated
	AVP_REFERENCE_NUMBER                     = uint32(3007) // Type: Unsigned32
	AVP_REQUEST_STATUS                       = uint32(3008) // Type: Enumerated
	AVP_DELIVERY_OUTCOME                     = uint32(3009) // Type: Enumerated
	AVP_APPLICATION_PORT_IDENTIFIER          = uint32(3010) // Type: Unsigned32
	AVP_IP_SM_GW_NUMBER                      = uint32(3100) // Type: OctetString
	AVP_IP_SM_GW_NAME                        = uint32(3101) // Type: DiameterIdentity
	AVP_USER_IDENTIFIER                      = uint32(3102) // Type:
	// AVP_SERVICE_ID                               = uint32(3103) // Type: Enumerated
	AVP_SCS_IDENTITY                    = uint32(3104) // Type: OctetString
	AVP_SERVICE_PARAMETERS              = uint32(3105) // Type:
	AVP_T4_PARAMETERS                   = uint32(3106) // Type:
	AVP_SERVICE_DATA                    = uint32(3107) // Type:
	AVP_T4_DATA                         = uint32(3108) // Type:
	AVP_HSS_CAUSE                       = uint32(3109) // Type: Unsigned32
	AVP_SIR_FLAGS                       = uint32(3110) // Type: Unsigned32
	AVP_EXTERNAL_IDENTIFIER             = uint32(3111) // Type: UTF8String
	AVP_SM_DELIVERY_OUTCOME_T4          = uint32(3200) // Type: Enumerated
	AVP_ABSENT_SUBSCRIBER_DIAGNOSTIC_T4 = uint32(3201) // Type: Enumerated
	// AVP_TFT_FILTER                      = uint32(1017) // Type: IPFilterRule
	AVP_3GPP2_BSID = uint32(9010) // Type: UTF8String
)

Diameter AVP Constants

View Source
const (
	COMMAND_CODE_CAPABILITIES_EXCHANGE                = uint32(257)
	COMMAND_CODE_RE_AUTH                              = uint32(258)
	COMMAND_CODE_ACCOUNTING                           = uint32(271)
	COMMAND_CODE_ABORT_SESSION                        = uint32(274)
	COMMAND_CODE_SESSION_TERMINATION                  = uint32(275)
	COMMAND_CODE_DEVICE_WATCHDOG                      = uint32(280)
	COMMAND_CODE_DISCONNECT_PEER                      = uint32(282)
	COMMAND_CODE_BOOSTRAPPING_INFO                    = uint32(310)
	COMMAND_CODE_MESSAGE_PROCESS                      = uint32(311)
	COMMAND_CODE_GBAPUSH_INFO                         = uint32(312)
	COMMAND_CODE_POLICY_DATA                          = uint32(314)
	COMMAND_CODE_POLICY_INSTALL                       = uint32(315)
	COMMAND_CODE_3GPP_UPDATE_LOCATION                 = uint32(316)
	COMMAND_CODE_3GPP_CANCEL_LOCATION                 = uint32(317)
	COMMAND_CODE_3GPP_AUTHENTICATION_INFORMATION      = uint32(318)
	COMMAND_CODE_3GPP_INSERT_SUBSCRIBER_DATA          = uint32(319)
	COMMAND_CODE_3GPP_DELETE_SUBSCRIBER_DATA          = uint32(320)
	COMMAND_CODE_3GPP_PURGE_UE                        = uint32(321)
	COMMAND_CODE_3GPP_RESET                           = uint32(322)
	COMMAND_CODE_3GPP_NOTIFY                          = uint32(323)
	COMMAND_CODE_3GPP_ME_IDENTITY_CHECK               = uint32(324)
	COMMAND_CODE_MIP6                                 = uint32(325)
	COMMAND_CODE_QOS_AUTHORIZATION                    = uint32(326)
	COMMAND_CODE_QOS_INSTALL                          = uint32(327)
	COMMAND_CODE_CAPABILITIES_UPDATE                  = uint32(328)
	COMMAND_CODE_IKEV2_SK                             = uint32(329)
	COMMAND_CODE_3GPP_PROVIDE_LOCATION                = uint32(8388620)
	COMMAND_CODE_3GPP_LOCATION_REPORT                 = uint32(8388621)
	COMMAND_CODE_3GPP_LCS_ROUTING_INFO                = uint32(8388622)
	COMMAND_CODE_SUBSCRIPTION_INFORMATION_APPLICATION = uint32(8388631)
	COMMAND_CODE_DISTRIBUTED_CHARGING                 = uint32(8388632)
	COMMAND_CODE_ERICSSON_SL                          = uint32(8388633)
	COMMAND_CODE_ERICSSON_SN                          = uint32(8388634)
	COMMAND_CODE_SPENDING_LIMIT                       = uint32(8388635)
	COMMAND_CODE_SPENDING_STATUS_NOTIFICATION         = uint32(8388636)
	COMMAND_CODE_3GPP_DEVICE_ACTION                   = uint32(8388639)
	COMMAND_CODE_3GPP_DEVICE_NOTIFICATION             = uint32(8388640)
	COMMAND_CODE_3GPP_SUBSCRIBER_INFORMATION          = uint32(8388641)
	COMMAND_CODE_3GPP_DEVICE_TRIGGER                  = uint32(8388643)
	COMMAND_CODE_3GPP_DELIVERY_REPORT                 = uint32(8388644)
)

Diameter Command Codes

View Source
const (
	IPAddressTypeLength = 2
	IPv4AddressLength   = 4
	IPv6AddressLength   = 16
)
View Source
const (
	AddressFamilyIPv4Byte = byte(0x01) // 0x01 for IPv4
	AddressFamilyIPv6Byte = byte(0x02) // 0x02 for IPv6
)
View Source
const (
	DIAMETER_VERSION_SIZE        = 1
	DIAMETER_MESSAGE_SIZE        = 3
	DIAMETER_COMMAND_FLAGS_SIZE  = 1
	DIAMETER_COMMAND_CODE_SIZE   = 3
	DIAMETER_APPLICATION_ID_SIZE = 4
	DIAMETER_HOP_BY_HOP_ID_SIZE  = 4
	DIAMETER_END_TO_END_ID_SIZE  = 4
	DIAMETER_HEADER_SIZE         = 20
)
View Source
const (
	COMMAND_FLAG_REQUEST       = 0x80
	COMMAND_FLAG_PROXIABLE     = 0x40
	COMMAND_FLAG_ERROR         = 0x20
	COMMAND_FLAG_RETRANSMITTED = 0x10
	COMMAND_FLAG_RESPONSE      = 0x00
)

Command Flags

View Source
const (
	COMMAND_CODE_CER = uint32(257)
	COMMAND_CODE_DWR = uint32(280)
)

Command Codes

View Source
const (
	VENDOR_NONE                   = 0
	VENDOR_HEWLETT_PACKARD        = 11
	VENDOR_SUN_MICROSYSTEMS_INC   = 42
	VENDOR_MERIT_NETWORKS         = 61
	VENDOR_NOKIA                  = 94
	VENDOR_NOKIA_SIEMENS_NETWORKS = 28458
	VENDOR_ERICSSON               = 193
	VENDOR_US_ROBOTICS_CORP       = 429
	VENDOR_ALU_NETWORK            = 637
	VENDOR_LUCENT_TECHNOLOGIES    = 1751
	VENDOR_HUAWEI                 = 2011
	VENDOR_DEUTSCHE_TELEKOM_AG    = 2937
	VENDOR_3GPP2                  = 5535
	VENDOR_CISCO                  = 5771
	VENDOR_SK_TELECOM             = 5806
	VENDOR_3GPP                   = 10415
	VENDOR_VODAFONE               = 12645
	VENDOR_VERIZON_WIRELESS       = 12951
	VENDOR_ETSI                   = 13019
	VENDOR_TANGO_TELECOM_LIMITED  = 13421
	VENDOR_CHINA_TELECOM          = 81000
	VENDOR_3GPP_CX_DX             = 16777216
)

Diameter Vendor Codes

View Source
const DIAMETER_VERSION = 1

Variables

View Source
var (
	InvalidDiameterVersionError      = errors.New("invalid version")
	InvalidDiameterHeaderLengthError = errors.New("invalid header length")
)

Diameter errors

View Source
var (
	InvalidIPv4AddressError       = errors.New("invalid IPv4 address")
	InvalidIPv6AddressError       = errors.New("invalid IPv6 address")
	InvalidIPv4AddressLengthError = errors.New("invalid IPv4 address length")
	InvalidIPv6AddressLengthError = errors.New("invalid IPv6 address length")
	UnknownAddressTypeError       = errors.New("unknown address type")
	InvalidAddressLengthError     = errors.New("invalid address length")
)

IPAddr errors

View Source
var CommandCodeToName map[uint32]string = map[uint32]string{
	COMMAND_CODE_CER: "Capabilities-Exchange-Request",
	COMMAND_CODE_DWR: "Diameter-Watchdog-Request",
}
View Source
var (
	InvalidCommandCodeError = errors.New("invalid command code")
)
View Source
var (
	InvalidMessageLengthError = errors.New("invalid message length for decoding")
)

Decoding errors

View Source
var ResultCodeToName map[ResultCode]string = map[ResultCode]string{
	DIAMETER_SUCCESS:                   "DIAMETER_SUCCESS",
	DIMAETER_LIMITED_SUCCESS:           "DIMAETER_LIMITED_SUCCESS",
	DIAMETER_MULTI_ROUND_AUTH:          "DIAMETER_MULTI_ROUND_AUTH",
	DIAMETER_COMMAND_UNSUPPORTED:       "DIAMETER_COMMAND_UNSUPPORTED",
	DIAMETER_UNABLE_TO_DELIVER:         "DIAMETER_UNABLE_TO_DELIVER",
	DIAMETER_REALM_NOT_SERVED:          "DIAMETER_REALM_NOT_SERVED",
	DIAMETER_TOO_BUSY:                  "DIAMETER_TOO_BUSY",
	DIAMETER_LOOP_DETECTED:             "DIAMETER_LOOP_DETECTED",
	DIAMETER_REDIRECT_INDICATION:       "DIAMETER_REDIRECT_INDICATION",
	DIAMETER_APPLICATION_UNSUPPORTED:   "DIAMETER_APPLICATION_UNSUPPORTED",
	DIAMETER_INVALID_HDR_BITS:          "DIAMETER_INVALID_HDR_BITS",
	DIAMETER_INVALID_AVP_BITS:          "DIAMETER_INVALID_AVP_BITS",
	DIAMETER_UNKNOWN_PEER:              "DIAMETER_UNKNOWN_PEER",
	DIAMETER_AUTHENTICATION_REJECTED:   "DIAMETER_AUTHENTICATION_REJECTED",
	DIAMETER_OUT_OF_SPACE:              "DIAMETER_OUT_OF_SPACE",
	DIAMETER_ELECTION_LOST:             "DIAMETER_ELECTION_LOST",
	DIAMETER_AVP_UNSUPPORTED:           "DIAMETER_AVP_UNSUPPORTED",
	DIAMETER_UNKNOWN_SESSION_ID:        "DIAMETER_UNKNOWN_SESSION_ID",
	DIAMETER_AUTHORIZATION_REJECTED:    "DIAMETER_AUTHORIZATION_REJECTED",
	DIAMETER_INVALID_AVP_VALUE:         "DIAMETER_INVALID_AVP_VALUE",
	DIAMETER_MISSING_AVP:               "DIAMETER_MISSING_AVP",
	DIAMETER_RESOURCES_EXCEEDED:        "DIAMETER_RESOURCES_EXCEEDED",
	DIAMETER_CONTRADICTING_AVPS:        "DIAMETER_CONTRADICTING_AVPS",
	DIAMETER_AVP_NOT_ALLOWED:           "DIAMETER_AVP_NOT_ALLOWED",
	DIAMETER_AVP_OCCURS_TOO_MANY_TIMES: "DIAMETER_AVP_OCCURS_TOO_MANY_TIMES",
	DIAMETER_NO_COMMON_APPLICATION:     "DIAMETER_NO_COMMON_APPLICATION",
	DIAMETER_UNSUPPORTED_VERSION:       "DIAMETER_UNSUPPORTED_VERSION",
	DIAMETER_UNABLE_TO_COMPLY:          "DIAMETER_UNABLE_TO_COMPLY",
	DIAMETER_INVALID_BIT_IN_HEADER:     "DIAMETER_INVALID_BIT_IN_HEADER",
	DIAMETER_INVALID_AVP_LENGTH:        "DIAMETER_INVALID_AVP_LENGTH",
	DIAMETER_INVALID_MESSAGE_LENGTH:    "DIAMETER_INVALID_MESSAGE_LENGTH",
	DIAMETER_INVALID_AVP_BIT_COMBO:     "DIAMETER_INVALID_AVP_BIT_COMBO",
	DIAMETER_NO_COMMON_SECURITY:        "DIAMETER_NO_COMMON_SECURITY",
}
View Source
var (
	UnsupportedTypeError = errors.New("unsupported type")
)

datatype errors

View Source
var (
	VendorIDRequiredError = errors.New("VendorID is required for vendor specific AVP")
)

AVP errors

Functions

func GetCommandNameFromCode

func GetCommandNameFromCode(code uint32) string

func ValidateSuccessfulResponse

func ValidateSuccessfulResponse(msg *DiameterMessage) error

Types

type AVP

type AVP struct {
	Code      uint32
	Flags     uint8
	AVPlength uint32 // Contains the length of the AVP header and data
	VendorID  uint32 // This is optional
	Data      AVPData
}

AVP represents a Diameter Attribute-Value Pair. Code 4 bytes Flags 1 byte: - Vendor specific bit - 1 bit - Mandatory bit - 1 bit - P bit - 1 bit - Reserved - 5 bits Length 3 bytes VendorID 4 bytes

func NewAVP

func NewAVP[T constraints.Ordered | net.IP](
	code uint32,
	value T,
	flag uint8,
	vendorID ...uint32,
) (*AVP, error)

NewAVP creates a new AVP (Attribute-Value Pair) with the given parameters. The function supports various types for the value parameter, including net.IP, string, int32, int64, uint32, uint64, *AVP, and *Grouped. The function also handles flags for vendor-specific and protected AVPs.

Parameters:

code: The AVP code.
value: The value of the AVP, which can be of various types.
	-  net.IP for IPAddr AVP.
	-  string for OctetString AVP.
	-  int32 for Integer32 AVP.
	-  int64 for Integer64 AVP.
	-  uint32 for Unsigned32 AVP.
	-  uint64 for Unsigned64 AVP.
	-  *AVP for nested AVPs.
	-  *Grouped for grouped AVPs.
flag: The AVP flags.
vendorID: Optional vendor ID(s) for vendor-specific AVPs.

Returns:

A pointer to the newly created AVP and an error if the creation fails.

func ReadCEA

func ReadCEA(cea DiameterMessage) ([]*AVP, error)

read CEA message, check Success or Failure and return AVPs

func (*AVP) Decode

func (a *AVP) Decode(data []byte) error

func (*AVP) Encode

func (a *AVP) Encode() ([]byte, error)

func (*AVP) Length

func (a *AVP) Length() uint32

func (*AVP) String

func (a *AVP) String() string

type AVPData

type AVPData interface {
	Encode() ([]byte, error)
	Decode(data []byte) error
	Length() uint32
	String() string
	SetData(data interface{}) error
}

type Address

type Address struct {
	Data net.IP
	// contains filtered or unexported fields
}

Derived Type

Address
     The Address format is derived from the OctetString AVP Base
     Format.  It is a discriminated union, representing, for example a
     32-bit (IPv4) [IPV4] or 128-bit (IPv6) [IPV6] address, most
     significant octet first.  The first two octets of the Address
     AVP represents the AddressType, which contains an Address Family
     defined in [IANAADFAM].  The AddressType is used to discriminate
     the content and format of the remaining octets.

func (*Address) Decode

func (i *Address) Decode(data []byte) error

func (*Address) Encode

func (i *Address) Encode() ([]byte, error)

func (*Address) Length

func (i *Address) Length() uint32

func (*Address) SetData

func (i *Address) SetData(data interface{}) error

func (*Address) String

func (i *Address) String() string

type AppId

type AppId struct {
	Data uint32
}

func (*AppId) Decode

func (a *AppId) Decode(data []byte) error

func (*AppId) Encode

func (a *AppId) Encode() ([]byte, error)

func (*AppId) Length

func (a *AppId) Length() uint32

func (*AppId) SetData

func (a *AppId) SetData(data interface{}) error

func (*AppId) String

func (a *AppId) String() string

type DiameterHeader

type DiameterHeader struct {
	Version       uint8
	MessageLength uint32
	CommandFlags  uint8
	CommandCode   uint32
	ApplicationID uint32
	HopByHopID    uint32
	EndToEndID    uint32
}

DiameterHeader represents a basic Diameter message header. The header is 20 bytes long and contains the following fields:

  • Version: 1 byte
  • MessageLength: 3 bytes
  • CommandFlags: 1 byte
  • CommandCode: 3 bytes
  • ApplicationID: 4 bytes
  • HopByHopID: 4 bytes
  • EndToEndID: 4 bytes

func (*DiameterHeader) Decode

func (h *DiameterHeader) Decode(data []byte) error

func (*DiameterHeader) Encode

func (h *DiameterHeader) Encode() []byte

func (*DiameterHeader) String

func (h *DiameterHeader) String() string

type DiameterIdentity

type DiameterIdentity struct {
	Data string
}

DiameterIdentity

The DiameterIdentity format is derived from the OctetString Basic
AVP Format.

                  DiameterIdentity  = FQDN/Realm

The DiameterIdentity value is used to uniquely identify either:

  • A Diameter node for purposes of duplicate connection and routing loop detection.

  • A Realm to determine whether messages can be satisfied locally or whether they must be routed or redirected.

    When a DiameterIdentity value is used to identify a Diameter node, the contents of the string MUST be the Fully Qualified Domain Name (FQDN) of the Diameter node. If multiple Diameter nodes run on the same host, each Diameter node MUST be assigned a unique DiameterIdentity. If a Diameter node can be identified by several FQDNs, a single FQDN should be picked at startup and used as the only DiameterIdentity for that node, whatever the connection on which it is sent. In this document, note that DiameterIdentity is in ASCII form in order to be compatible with existing DNS infrastructure. See Appendix D for interactions between the Diameter protocol and Internationalized Domain Names (IDNs).

func (*DiameterIdentity) Decode

func (d *DiameterIdentity) Decode(data []byte) error

func (*DiameterIdentity) Encode

func (d *DiameterIdentity) Encode() ([]byte, error)

func (*DiameterIdentity) Length

func (d *DiameterIdentity) Length() uint32

func (*DiameterIdentity) SetData

func (i *DiameterIdentity) SetData(data interface{}) error

func (*DiameterIdentity) String

func (d *DiameterIdentity) String() string

type DiameterMessage

type DiameterMessage struct {
	Header *DiameterHeader
	AVPs   []*AVP
}

DiameterMessage represents a Diameter message with header and AVPs.

func NewCER

func NewCER(avps ...*AVP) (*DiameterMessage, error)

NewCER generates a Capabilities-Exchange-Request message.

func NewDWR

func NewDWR(avps ...*AVP) (*DiameterMessage, error)

func (*DiameterMessage) Decode

func (msg *DiameterMessage) Decode(data []byte) error

func (*DiameterMessage) Encode

func (msg *DiameterMessage) Encode() ([]byte, error)

func (*DiameterMessage) GetAVP

func (msg *DiameterMessage) GetAVP(code uint32) *AVP

get AVP with either name or code based on type of input using generic input type to allow for either string or uint32

func (*DiameterMessage) String

func (m *DiameterMessage) String() string

type DiameterURI

type DiameterURI struct {
	Data string
}

DiameterURI

The DiameterURI MUST follow the Uniform Resource Identifiers (RFC
3986) syntax [RFC3986] rules specified below:

"aaa://" FQDN [ port ] [ transport ] [ protocol ]

                ; No transport security

"aaas://" FQDN [ port ] [ transport ] [ protocol ]

                ; Transport security used

FQDN               = < Fully Qualified Domain Name >

port               = ":" 1*DIGIT

                ; One of the ports used to listen for
                ; incoming connections.
                ; If absent, the default Diameter port
                ; (3868) is assumed if no transport
                ; security is used and port 5658 when
                ; transport security (TLS/TCP and DTLS/SCTP)
                ; is used.

transport          = ";transport=" transport-protocol

                ; One of the transports used to listen
                ; for incoming connections.  If absent,
                ; the default protocol is assumed to be TCP.
                ; UDP MUST NOT be used when the aaa-protocol
                ; field is set to diameter.

transport-protocol = ( "tcp" / "sctp" / "udp" )

protocol           = ";protocol=" aaa-protocol

                ; If absent, the default AAA protocol
                ; is Diameter.

aaa-protocol       = ( "diameter" / "radius" / "tacacs+" )

The following are examples of valid Diameter host identities:

aaa://host.example.com;transport=tcp
aaa://host.example.com:6666;transport=tcp
aaa://host.example.com;protocol=diameter
aaa://host.example.com:6666;protocol=diameter
aaa://host.example.com:6666;transport=tcp;protocol=diameter
aaa://host.example.com:1813;transport=udp;protocol=radius

func (*DiameterURI) Decode

func (d *DiameterURI) Decode(data []byte) error

func (*DiameterURI) Encode

func (d *DiameterURI) Encode() ([]byte, error)

func (*DiameterURI) Length

func (d *DiameterURI) Length() uint32

func (*DiameterURI) SetData

func (i *DiameterURI) SetData(data interface{}) error

func (*DiameterURI) String

func (d *DiameterURI) String() string

type Enumerated

type Enumerated struct {
	Data uint32
}

Enumerated

The Enumerated format is derived from the Integer32 Basic AVP
Format.  The definition contains a list of valid values and their
interpretation and is described in the Diameter application
introducing the AVP.

func (*Enumerated) Decode

func (e *Enumerated) Decode(data []byte) error

func (*Enumerated) Encode

func (e *Enumerated) Encode() ([]byte, error)

func (*Enumerated) Length

func (e *Enumerated) Length() uint32

func (*Enumerated) SetData

func (e *Enumerated) SetData(data interface{}) error

func (*Enumerated) String

func (e *Enumerated) String() string

type Float32

type Float32 struct {
	Data float32
}

Float32

This represents floating point values of single precision as
described by [FLOATPOINT].  The 32-bit value is transmitted in
network byte order.  The AVP Length field MUST be set to 12 (16 if
the 'V' bit is enabled).

func (*Float32) Decode

func (f *Float32) Decode(data []byte) error

func (*Float32) Encode

func (f *Float32) Encode() ([]byte, error)

func (*Float32) Length

func (f *Float32) Length() uint32

func (*Float32) SetData

func (f *Float32) SetData(data interface{}) error

func (*Float32) String

func (f *Float32) String() string

type Float64

type Float64 struct {
	Data float64
}

Float64

This represents floating point values of double precision as
described by [FLOATPOINT].  The 64-bit value is transmitted in
network byte order.  The AVP Length field MUST be set to 16 (20 if
the 'V' bit is enabled).

func (*Float64) Decode

func (f *Float64) Decode(data []byte) error

func (*Float64) Encode

func (f *Float64) Encode() ([]byte, error)

func (*Float64) Length

func (f *Float64) Length() uint32

func (*Float64) SetData

func (f *Float64) SetData(data interface{}) error

func (*Float64) String

func (f *Float64) String() string

type Grouped

type Grouped struct {
	AVPs []*AVP
}

Grouped

The Data field is specified as a sequence of AVPs.  These AVPs are
concatenated -- including their headers and padding -- in the
order in which they are specified and the result encapsulated in
the Data field.  The AVP Length field is set to 8 (12 if the 'V'
bit is enabled) plus the total length of all included AVPs,
including their headers and padding.  Thus, the AVP Length field
of an AVP of type Grouped is always a multiple of 4.

func (*Grouped) Decode

func (g *Grouped) Decode(data []byte) error

func (*Grouped) Encode

func (g *Grouped) Encode() ([]byte, error)

func (*Grouped) Length

func (g *Grouped) Length() uint32

func (*Grouped) SetData

func (g *Grouped) SetData(data interface{}) error

func (*Grouped) String

func (g *Grouped) String() string

type IPFilterRule

type IPFilterRule struct {
	Data uint32
}

IPFilterRule

The IPFilterRule format is derived from the OctetString Basic AVP
Format and uses the ASCII charset.  The rule syntax is a modified
subset of ipfw(8) from FreeBSD.  Packets may be filtered based on
the following information that is associated with it:

      Direction                          (in or out)
      Source and destination IP address  (possibly masked)
      Protocol
      Source and destination port        (lists or ranges)
      TCP flags
      IP fragment flag
      IP options
      ICMP types

see rfc6733 for more details on the format

func (*IPFilterRule) Decode

func (i *IPFilterRule) Decode(data []byte) error

func (*IPFilterRule) Encode

func (i *IPFilterRule) Encode() ([]byte, error)

func (*IPFilterRule) Length

func (i *IPFilterRule) Length() uint32

func (*IPFilterRule) SetData

func (i *IPFilterRule) SetData(data interface{}) error

func (*IPFilterRule) String

func (i *IPFilterRule) String() string

type Integer32

type Integer32 struct {
	Data int32
}

Integer32

32-bit signed value, in network byte order.  The AVP Length field
MUST be set to 12 (16 if the 'V' bit is enabled).

func (*Integer32) Decode

func (u *Integer32) Decode(data []byte) error

func (*Integer32) Encode

func (u *Integer32) Encode() ([]byte, error)

func (*Integer32) Length

func (i *Integer32) Length() uint32

func (*Integer32) SetData

func (i *Integer32) SetData(data interface{}) error

func (*Integer32) String

func (i *Integer32) String() string

type Integer64

type Integer64 struct {
	Data int64
}

Integer64

64-bit signed value, in network byte order.  The AVP Length field
MUST be set to 16 (20 if the 'V' bit is enabled).

func (*Integer64) Decode

func (u *Integer64) Decode(data []byte) error

func (*Integer64) Encode

func (u *Integer64) Encode() ([]byte, error)

func (*Integer64) Length

func (i *Integer64) Length() uint32

func (*Integer64) SetData

func (i *Integer64) SetData(data interface{}) error

func (*Integer64) String

func (i *Integer64) String() string

type OctetString

type OctetString struct {
	Data []byte
	// contains filtered or unexported fields
}

OctetString

The data contains arbitrary data of variable length.  Unless
otherwise noted, the AVP Length field MUST be set to at least 8
(12 if the 'V' bit is enabled).  AVP values of this type that are
not a multiple of 4 octets in length are followed by the necessary
padding so that the next AVP (if any) will start on a 32-bit
boundary.

func (*OctetString) Decode

func (o *OctetString) Decode(data []byte) error

func (*OctetString) Encode

func (o *OctetString) Encode() ([]byte, error)

func (*OctetString) Length

func (o *OctetString) Length() uint32

func (*OctetString) SetData

func (o *OctetString) SetData(data interface{}) error

func (*OctetString) String

func (o *OctetString) String() string

type ResultCode

type ResultCode uint32
const (
	DIAMETER_MULTI_ROUND_AUTH ResultCode = 1001
	DIAMETER_SUCCESS          ResultCode = 2001
	DIMAETER_LIMITED_SUCCESS  ResultCode = 2002
)
const (
	DIAMETER_COMMAND_UNSUPPORTED ResultCode = 3001 + iota
	DIAMETER_UNABLE_TO_DELIVER
	DIAMETER_REALM_NOT_SERVED
	DIAMETER_TOO_BUSY
	DIAMETER_LOOP_DETECTED
	DIAMETER_REDIRECT_INDICATION
	DIAMETER_APPLICATION_UNSUPPORTED
	DIAMETER_INVALID_HDR_BITS
	DIAMETER_INVALID_AVP_BITS
	DIAMETER_UNKNOWN_PEER
)
const (
	DIAMETER_AUTHENTICATION_REJECTED ResultCode = 4001 + iota
	DIAMETER_OUT_OF_SPACE
	DIAMETER_ELECTION_LOST
)
const (
	DIAMETER_AVP_UNSUPPORTED ResultCode = 5001 + iota
	DIAMETER_UNKNOWN_SESSION_ID
	DIAMETER_AUTHORIZATION_REJECTED
	DIAMETER_INVALID_AVP_VALUE
	DIAMETER_MISSING_AVP
	DIAMETER_RESOURCES_EXCEEDED
	DIAMETER_CONTRADICTING_AVPS
	DIAMETER_AVP_NOT_ALLOWED
	DIAMETER_AVP_OCCURS_TOO_MANY_TIMES
	DIAMETER_NO_COMMON_APPLICATION
	DIAMETER_UNSUPPORTED_VERSION
	DIAMETER_UNABLE_TO_COMPLY
	DIAMETER_INVALID_BIT_IN_HEADER
	DIAMETER_INVALID_AVP_LENGTH
	DIAMETER_INVALID_MESSAGE_LENGTH
	DIAMETER_INVALID_AVP_BIT_COMBO
	DIAMETER_NO_COMMON_SECURITY
)

func GetResultCode

func GetResultCode(msg *DiameterMessage) (ResultCode, string, error)

7.1. Result-Code AVP

The Result-Code AVP (AVP Code 268) is of type Unsigned32 and
indicates whether a particular request was completed successfully or
whether an error occurred.  All Diameter answer messages defined in
IETF applications MUST include one Result-Code AVP.  A non-successful
Result-Code AVP (one containing a non 2xxx value other than
DIAMETER_REDIRECT_INDICATION) MUST include the Error-Reporting-Host
AVP if the host setting the Result-Code AVP is different from the
identity encoded in the Origin-Host AVP.

The Result-Code data field contains an IANA-managed 32-bit address
space representing errors (see Section 11.4).  Diameter provides the
following classes of errors, all identified by the thousands digit in
the decimal notation:

   -  1xxx (Informational)
   -  2xxx (Success)
   -  3xxx (Protocol Errors)
   -  4xxx (Transient Failures)
   -  5xxx (Permanent Failure)

type Time

type Time struct {
	Data uint32
}

Time

The Time format is derived from the OctetString Basic AVP Format.
The string MUST contain four octets, in the same format as the
first four bytes are in the NTP timestamp format.  The NTP
timestamp format is defined in Section 3 of [RFC5905].

This represents the number of seconds since 0h on 1 January 1900
with respect to the Coordinated Universal Time (UTC).

On 6h 28m 16s UTC, 7 February 2036, the time value will overflow.
Simple Network Time Protocol (SNTP) [RFC5905] describes a
procedure to extend the time to 2104.  This procedure MUST be
supported by all Diameter nodes.

func (*Time) Decode

func (t *Time) Decode(data []byte) error

func (*Time) Encode

func (t *Time) Encode() ([]byte, error)

func (*Time) Length

func (t *Time) Length() uint32

func (*Time) SetData

func (t *Time) SetData(data interface{}) error

func (*Time) String

func (t *Time) String() string

type UTF8String

type UTF8String struct {
	Data string
}

UTF8String

The UTF8String format is derived from the OctetString Basic AVP
Format.  This is a human-readable string represented using the
ISO/IEC IS 10646-1 character set, encoded as an OctetString using
the UTF-8 transformation format [RFC3629].

Since additional code points are added by amendments to the 10646
standard from time to time, implementations MUST be prepared to
encounter any code point from 0x00000001 to 0x7fffffff.  Byte
sequences that do not correspond to the valid encoding of a code
point into UTF-8 charset or are outside this range are prohibited.

The use of control codes SHOULD be avoided.  When it is necessary
to represent a new line, the control code sequence CR LF SHOULD be
used.

The use of leading or trailing white space SHOULD be avoided.

For code points not directly supported by user interface hardware
or software, an alternative means of entry and display, such as
hexadecimal, MAY be provided.

For information encoded in 7-bit US-ASCII, the UTF-8 charset is
identical to the US-ASCII charset.

UTF-8 may require multiple bytes to represent a single character /
code point; thus, the length of a UTF8String in octets may be
different from the number of characters encoded.

Note that the AVP Length field of an UTF8String is measured in
octets not characters.

func (*UTF8String) Decode

func (u *UTF8String) Decode(data []byte) error

func (*UTF8String) Encode

func (u *UTF8String) Encode() ([]byte, error)

func (*UTF8String) Length

func (u *UTF8String) Length() uint32

func (*UTF8String) SetData

func (u *UTF8String) SetData(data interface{}) error

func (*UTF8String) String

func (u *UTF8String) String() string

type Unsigned32

type Unsigned32 struct {
	Data uint32
}

Unsigned32

32-bit unsigned value, in network byte order.  The AVP Length
field MUST be set to 12 (16 if the 'V' bit is enabled).

func (*Unsigned32) Decode

func (u *Unsigned32) Decode(data []byte) error

func (*Unsigned32) Encode

func (u *Unsigned32) Encode() ([]byte, error)

func (*Unsigned32) Length

func (u *Unsigned32) Length() uint32

func (*Unsigned32) SetData

func (u *Unsigned32) SetData(data interface{}) error

func (*Unsigned32) String

func (u *Unsigned32) String() string

type Unsigned64

type Unsigned64 struct {
	Data uint64
}

Unsigned64

64-bit unsigned value, in network byte order.  The AVP Length
field MUST be set to 16 (20 if the 'V' bit is enabled).

func (*Unsigned64) Decode

func (u *Unsigned64) Decode(data []byte) error

func (*Unsigned64) Encode

func (u *Unsigned64) Encode() ([]byte, error)

func (*Unsigned64) Length

func (u *Unsigned64) Length() uint32

func (*Unsigned64) SetData

func (u *Unsigned64) SetData(data interface{}) error

func (*Unsigned64) String

func (u *Unsigned64) String() string

type VendorId

type VendorId struct {
	Data uint32
}

func (*VendorId) Decode

func (v *VendorId) Decode(data []byte) error

func (*VendorId) Encode

func (v *VendorId) Encode() ([]byte, error)

func (*VendorId) Length

func (v *VendorId) Length() uint32

func (*VendorId) SetData

func (v *VendorId) SetData(data interface{}) error

func (*VendorId) String

func (v *VendorId) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL