diameter

 

Diameter Messages and AVPs.
This package contains classes for low-level dealing with Diameter messages
and AVPs.
 
The Message class contains a MessageHeader and a bunch of AVPs. The AVP
classes are modelled after RFC3588. See {@link dk.i1.diameter.Message} to
see examples of how to build and process messages.
 
ProtocolConstants contains symbolic constants from the RFCs.
 
Utils contains some utilities that a useful, particular for setting the
M-bit on AVPs.
 
 
Note: The following AVP types described in RFC358 have not been implemented:
    DiameterIdentity
        Basically a AVP_UTF8String. The RFC says that it is the FQDN of a
        node, but violations of this have been seen in the real world.
    DiameterURI
        A URI with certain rules. Not seen in the real world (yet)
    Enumerated
        Use AVP_Unsigned32 instead
    IPFilterRule
    QoSFilterRule
        Presumable specific to NASREQ</dd>

Package Contents
       
AVP
AVP_Address
AVP_Float32
AVP_Float64
AVP_Grouped
AVP_Integer32
AVP_Integer64
AVP_OctetString
AVP_Time
AVP_UTF8String
AVP_Unsigned32
AVP_Unsigned64
Error
Message
MessageHeader
ProtocolConstants
Utils
node (package)

Data
        DIAMETER_APPLICATION_ACCOUNTING = 3
DIAMETER_APPLICATION_COMMON = 0
DIAMETER_APPLICATION_CREDIT_CONTROL = 4
DIAMETER_APPLICATION_EAP = 5
DIAMETER_APPLICATION_MOBILEIP = 2
DIAMETER_APPLICATION_NASREQ = 1
DIAMETER_APPLICATION_RELAY = 4294967295
DIAMETER_COMMAND_AA = 265
DIAMETER_COMMAND_ABORT_SESSION = 274
DIAMETER_COMMAND_ACCOUNTING = 271
DIAMETER_COMMAND_CAPABILITIES_EXCHANGE = 257
DIAMETER_COMMAND_CC = 272
DIAMETER_COMMAND_DEVICE_WATCHDOG = 280
DIAMETER_COMMAND_DISCONNECT_PEER = 282
DIAMETER_COMMAND_EAP = 268
DIAMETER_COMMAND_REAUTH = 258
DIAMETER_COMMAND_SESSION_TERMINATION = 275
DIAMETER_RESULT_APPLICATION_UNSUPPORTED = 3007
DIAMETER_RESULT_AUTHENTICATION_REJECTED = 4001
DIAMETER_RESULT_AUTHORIZATION_REJECTED = 5003
DIAMETER_RESULT_AVP_NOT_ALLOWED = 5008
DIAMETER_RESULT_AVP_OCCURS_TOO_MANY_TIMES = 5009
DIAMETER_RESULT_AVP_UNSUPPORTED = 5001
DIAMETER_RESULT_COMMAND_UNSUPPORTED = 3001
DIAMETER_RESULT_CONTRADICTING_AVPS = 5007
DIAMETER_RESULT_CREDIT_CONTROL_NOT_APPLICABLE = 4011
DIAMETER_RESULT_CREDIT_LIMIT_REACHED = 4012
DIAMETER_RESULT_ELECTION_LOST = 4003
DIAMETER_RESULT_END_USER_SERVICE_DENIED = 4010
DIAMETER_RESULT_INVALID_AVP_BITS = 3009
DIAMETER_RESULT_INVALID_AVP_BIT_COMBO = 5016
DIAMETER_RESULT_INVALID_AVP_LENGTH = 5014
DIAMETER_RESULT_INVALID_AVP_VALUE = 5004
DIAMETER_RESULT_INVALID_BIT_IN_HEADER = 5013
DIAMETER_RESULT_INVALID_HDR_BITS = 3008
DIAMETER_RESULT_INVALID_MESSAGE_LENGTH = 5015
DIAMETER_RESULT_LIMITED_SUCCESS = 2002
DIAMETER_RESULT_LOOP_DETECTED = 3005
DIAMETER_RESULT_MISSING_AVP = 5005
DIAMETER_RESULT_MULTI_ROUND_AUTH = 1001
DIAMETER_RESULT_NO_COMMON_APPLICATION = 5010
DIAMETER_RESULT_NO_COMMON_SECURITY = 5017
DIAMETER_RESULT_OUT_OF_SPACE = 4002
DIAMETER_RESULT_RATING_FAILED = 5031
DIAMETER_RESULT_REALM_NOT_SERVED = 3003
DIAMETER_RESULT_REDIRECT_INDICATION = 3006
DIAMETER_RESULT_RESOURCES_EXCEEDED = 5006
DIAMETER_RESULT_SUCCESS = 2001
DIAMETER_RESULT_TOO_BUSY = 3004
DIAMETER_RESULT_UNABLE_TO_COMPLY = 5012
DIAMETER_RESULT_UNABLE_TO_DELIVER = 3002
DIAMETER_RESULT_UNKNOWN_PEER = 3010
DIAMETER_RESULT_UNKNOWN_SESSION_ID = 5002
DIAMETER_RESULT_UNSUPPORTED_VERSION = 5011
DIAMETER_RESULT_USER_UNKNOWN = 5030
DI_ACCOUNTING_EAP_AUTH_METHOD = 465
DI_ACCOUNTING_INPUT_OCTETS = 363
DI_ACCOUNTING_INPUT_PACKETS = 365
DI_ACCOUNTING_OUTPUT_OCTETS = 364
DI_ACCOUNTING_OUTPUT_PACKETS = 366
DI_ACCOUNTING_REALTIME_REQUIRED = 483
DI_ACCOUNTING_REALTIME_REQUIRED_DELIVER_AND_GRANT = 1
DI_ACCOUNTING_REALTIME_REQUIRED_GRANT_AND_LOSE = 3
DI_ACCOUNTING_REALTIME_REQUIRED_GRANT_AND_STORE = 2
DI_ACCOUNTING_RECORD_NUMBER = 485
DI_ACCOUNTING_RECORD_TYPE = 480
DI_ACCOUNTING_RECORD_TYPE_EVENT_RECORD = 1
DI_ACCOUNTING_RECORD_TYPE_INTERIM_RECORD = 3
DI_ACCOUNTING_RECORD_TYPE_START_RECORD = 2
DI_ACCOUNTING_RECORD_TYPE_STOP_RECORD = 4
DI_ACCOUNTING_SESSION_ID = 44
DI_ACCOUNTING_SUB_SESSION_ID = 287
DI_ACCT_APPLICATION_ID = 259
DI_ACCT_AUTHENTIC = 45
DI_ACCT_DELAY_TIME = 41
DI_ACCT_INTERIM_INTERVAL = 85
DI_ACCT_LINK_COUNT = 51
DI_ACCT_MULTI_SESSION_ID = 50
DI_ACCT_SESSION_TIME = 46
DI_ACCT_TUNNEL_CONNECTION = 68
DI_ACCT_TUNNEL_PACKETS_LOST = 86
DI_ACOUNTING_AUTH_METHOD = 406
DI_ARAP_CHALLENGE_RESPONSE = 84
DI_ARAP_FEATURES = 71
DI_ARAP_PASSWORD = 70
DI_ARAP_SECURITY = 73
DI_ARAP_SECURITY_DATA = 74
DI_ARAP_ZONE_ACCESS = 72
DI_AUTHORIZATION_LIFETIME = 291
DI_AUTH_APPLICATION_ID = 258
DI_AUTH_GRACE_PERIOD = 276
DI_AUTH_REQUEST_TYPE = 274
DI_AUTH_REQUEST_TYPE_AUTHENTICATE = 3
DI_AUTH_REQUEST_TYPE_AUTHENTICATE_ONLY = 1
DI_AUTH_REQUEST_TYPE_AUTHORIZE_ONLY = 2
DI_AUTH_SESSION_STATE = 277
DI_AUTH_SESSION_STATE_NO_STALE_MAINTAINED = 1
DI_AUTH_SESSION_STATE_STALE_MAINTAINED = 0
DI_CALLBACK_ID = 20
DI_CALLBACK_NUMBER = 19
DI_CALLED_STATION_ID = 30
DI_CALLING_STATION_ID = 31
DI_CC_CORRELATION_ID = 411
DI_CC_INPUT_OCTETS = 412
DI_CC_MONEY = 413
DI_CC_OUTPUT_OCTETS = 414
DI_CC_REQUEST_NUMBER = 415
DI_CC_REQUEST_TYPE = 416
DI_CC_REQUEST_TYPE_EVENT_REQUEST = 4
DI_CC_REQUEST_TYPE_INITIAL_REQUEST = 1
DI_CC_REQUEST_TYPE_TERMINATION_REQUEST = 3
DI_CC_REQUEST_TYPE_UPDATE_REQUEST = 2
DI_CC_SERVICE_SPECIFIC_UNITS = 417
DI_CC_SESSION_FAILOVER = 418
DI_CC_SESSION_FAILOVER_FAILOVER_NOT_SUPPORTED = 0
DI_CC_SESSION_FAILOVER_FAILOVER_SUPPORTED = 1
DI_CC_SUB_SESSION_ID = 419
DI_CC_TIME = 420
DI_CC_TOTAL_OCTETS = 421
DI_CC_UNIT_TYPE = 454
DI_CC_UNIT_TYPE_INPUT_OCTETS = 3
DI_CC_UNIT_TYPE_MONEY = 1
DI_CC_UNIT_TYPE_OUTPUT_OCTETS = 4
DI_CC_UNIT_TYPE_SERVICE_SPECIFIC_UNITS = 5
DI_CC_UNIT_TYPE_TIME = 0
DI_CC_UNIT_TYPE_TOTAL_OCTETS = 2
DI_CHAP_ALGORITHM = 403
DI_CHAP_AUTH = 402
DI_CHAP_CHALLENGE = 60
DI_CHAP_IDENT = 404
DI_CHAP_RESPONSE = 405
DI_CHECK_BALANCE_RESULT = 422
DI_CLASS = 25
DI_CONFIGURATION_TOKEN = 78
DI_CONNECT_INFO = 77
DI_COST_INFORMATION = 423
DI_COST_UNIT = 424
DI_CREDIT_CONTROL = 426
DI_CREDIT_CONTROL_FAILURE_HANDLING = 427
DI_CREDIT_CONTROL_FAILURE_HANDLING_CONTINUE = 1
DI_CREDIT_CONTROL_FAILURE_HANDLING_RETRY_AND_TERMINATE = 2
DI_CREDIT_CONTROL_FAILURE_HANDLING_TERMINATE = 0
DI_CURRENCY_CODE = 425
DI_DESTINATION_HOST = 293
DI_DESTINATION_REALM = 283
DI_DIRECT_DEBITING_FAILURE_HANDLING = 428
DI_DIRECT_DEBITING_FAILURE_HANDLING_CONTINUE = 1
DI_DIRECT_DEBITING_FAILURE_HANDLING_TERMINATE_OR_BUFFER = 0
DI_DISCONNECT_CAUSE = 273
DI_DISCONNECT_CAUSE_BUSY = 1
DI_DISCONNECT_CAUSE_DO_NOT_WANT_TO_TALK_TO_YOU = 2
DI_DISCONNECT_CAUSE_REBOOTING = 0
DI_DI_CHECK_BALANCE_RESULT_ENOUGH_CREDIT = 0
DI_DI_CHECK_BALANCE_RESULT_NO_CREDIT = 1
DI_DI_CREDIT_CONTROL_CREDIT_AUTHORIZATION = 0
DI_DI_CREDIT_CONTROL_RE_AUTHORIZATION = 1
DI_E2E_SEQUENCE_AVP = 300
DI_EAP_KEY_NAME = 102
DI_EAP_MASTER_SESSION_KEY = 464
DI_EAP_PAYLOAD = 462
DI_EAP_REISSUED_PAYLOAD = 463
DI_ERROR_MESSAGE = 281
DI_ERROR_REPORTING_HOST = 294
DI_EVENT_TIMESTAMP = 55
DI_EXPERIMENTAL_RESULT = 297
DI_EXPERIMENTAL_RESULT_CODE = 298
DI_EXPONENT = 429
DI_FAILED_AVP = 279
DI_FILTER_ID = 11
DI_FINAL_UNIT_ACTION = 449
DI_FINAL_UNIT_ACTION_REDIRECT = 1
DI_FINAL_UNIT_ACTION_RESTRICT_ACCESS = 2
DI_FINAL_UNIT_ACTION_TERMINATE = 0
DI_FINAL_UNIT_INDICATION = 430
DI_FIRMWARE_REVISION = 267
DI_FRAMED_APPLETALK_LINK = 37
DI_FRAMED_APPLETALK_NETWORK = 38
DI_FRAMED_APPLETALK_ZONE = 39
DI_FRAMED_COMPRESSION = 13
DI_FRAMED_INTERFACE_ID = 96
DI_FRAMED_IPV6_POOL = 100
DI_FRAMED_IPV6_PREFIX = 97
DI_FRAMED_IPV6_ROUTE = 99
DI_FRAMED_IPX_NETWORK = 23
DI_FRAMED_IP_ADDRESS = 8
DI_FRAMED_IP_NETMASK = 9
DI_FRAMED_MTU = 12
DI_FRAMED_POOL = 88
DI_FRAMED_PROTOCOL = 7
DI_FRAMED_ROUTE = 22
DI_FRAMED_ROUTING = 10
DI_GRANTED_SERVICE_UNIT = 431
DI_G_S_U_POOL_IDENTIFIER = 453
DI_G_S_U_POOL_REFERENCE = 457
DI_HOST_IP_ADDRESS = 257
DI_IDLE_TIMEOUT = 28
DI_INBAND_SECURITY_ID = 299
DI_INBAND_SECURITY_ID_NO_INBAND_SECURITY = 0
DI_INBAND_SECURITY_ID_TLS = 1
DI_LOGIN_IPV6_HOST = 98
DI_LOGIN_IP_HOST = 14
DI_LOGIN_LAT_GROUP = 36
DI_LOGIN_LAT_NODE = 35
DI_LOGIN_LAT_PORT = 63
DI_LOGIN_LAT_SERVICE = 34
DI_LOGIN_SERVICE = 15
DI_LOGIN_TCP_PORT = 16
DI_MULTIPLE_SERVICES_CREDIT_CONTROL = 456
DI_MULTIPLE_SERVICES_INDICATOR = 455
DI_MULTIPLE_SERVICES_INDICATOR_MULTIPLE_SERVICES_NOT_SUPPORTED = 0
DI_MULTIPLE_SERVICES_INDICATOR_MULTIPLE_SERVICES_SUPPORTED = 1
DI_MULTI_ROUND_TIME_OUT = 272
DI_NAS_FILTER_RULE = 400
DI_NAS_PORT = 5
DI_NAS_PORT_ID = 87
DI_NAS_PORT_TYPE = 61
DI_ORIGINATING_LINE_INFO = 94
DI_ORIGIN_HOST = 264
DI_ORIGIN_REALM = 296
DI_ORIGIN_STATE_ID = 278
DI_PASSWORD_RETRY = 75
DI_PORT_LIMIT = 62
DI_PRODUCT_NAME = 269
DI_PROMPT = 76
DI_PROXY_HOST = 280
DI_PROXY_INFO = 284
DI_PROXY_STATE = 33
DI_QOS_FILTER_RULE = 407
DI_RATING_GROUP = 432
DI_REDIRECT_ADDRESS_TYPE = 433
DI_REDIRECT_ADDRESS_TYPE_IPV4_ADDRESS = 0
DI_REDIRECT_ADDRESS_TYPE_IPV6_ADDRESS = 1
DI_REDIRECT_ADDRESS_TYPE_SIP_URL = 3
DI_REDIRECT_ADDRESS_TYPE_URL = 2
DI_REDIRECT_HOST = 292
DI_REDIRECT_HOST_USAGE = 261
DI_REDIRECT_HOST_USAGE_ALL_APPLICATION = 4
DI_REDIRECT_HOST_USAGE_ALL_HOST = 5
DI_REDIRECT_HOST_USAGE_ALL_REALM = 2
DI_REDIRECT_HOST_USAGE_ALL_SESSION = 1
DI_REDIRECT_HOST_USAGE_ALL_USER = 6
DI_REDIRECT_HOST_USAGE_DONT_CACHE = 0
DI_REDIRECT_HOST_USAGE_REALM_AND_APPLICATION = 3
DI_REDIRECT_MAX_CACHE_TIME = 262
DI_REDIRECT_SERVER = 434
DI_REDIRECT_SERVER_ADDRESS = 435
DI_REPLY_MESSAGE = 18
DI_REQUESTED_ACTION = 436
DI_REQUESTED_ACTION_CHECK_BALANCE = 2
DI_REQUESTED_ACTION_DIRECT_DEBITING = 0
DI_REQUESTED_ACTION_PRICE_ENQUIRY = 3
DI_REQUESTED_ACTION_REFUND_ACCOUNT = 1
DI_REQUESTED_SERVICE_UNIT = 437
DI_RESTRICTION_FILTER_RULE = 438
DI_RESULT_CODE = 268
DI_RE_AUTH_REQUEST_TYPE = 285
DI_RE_AUTH_REQUEST_TYPE_AUTHORIZE_AUTHENTICATE = 1
DI_RE_AUTH_REQUEST_TYPE_AUTHORIZE_ONLY = 0
DI_ROUTE_RECORD = 282
DI_SERVICE_CONTEXT_ID = 461
DI_SERVICE_IDENTIFIER = 439
DI_SERVICE_PARAMETER_INFO = 440
DI_SERVICE_PARAMETER_TYPE = 441
DI_SERVICE_PARAMETER_VALUE = 442
DI_SERVICE_TYPE = 6
DI_SESSION_BINDING = 270
DI_SESSION_BINDING_ACCOUNTING = 4
DI_SESSION_BINDING_RE_AUTH = 1
DI_SESSION_BINDING_STR = 2
DI_SESSION_ID = 263
DI_SESSION_SERVER_FAILOVER = 271
DI_SESSION_SERVER_FAILOVER_ALLOW_SERVICE = 2
DI_SESSION_SERVER_FAILOVER_REFUSE_SERVICE = 0
DI_SESSION_SERVER_FAILOVER_TRY_AGAIN = 1
DI_SESSION_SERVER_FAILOVER_TRY_AGAIN_ALLOW_SERVICE = 3
DI_SESSION_TIMEOUT = 27
DI_SUBSCRIPTION_ID = 443
DI_SUBSCRIPTION_ID_DATA = 444
DI_SUBSCRIPTION_ID_TYPE = 450
DI_SUBSCRIPTION_ID_TYPE_END_USER_E164 = 0
DI_SUBSCRIPTION_ID_TYPE_END_USER_IMSI = 1
DI_SUBSCRIPTION_ID_TYPE_END_USER_NAI = 3
DI_SUBSCRIPTION_ID_TYPE_END_USER_PRIVATE = 4
DI_SUBSCRIPTION_ID_TYPE_END_USER_SIP_URI = 2
DI_SUPPORTED_VENDOR_ID = 265
DI_TARIFF_CHANGE_USAGE = 452
DI_TARIFF_CHANGE_USAGE_UNIT_AFTER_TARIFF_CHANGE = 1
DI_TARIFF_CHANGE_USAGE_UNIT_BEFORE_TARIFF_CHANGE = 0
DI_TARIFF_CHANGE_USAGE_UNIT_INDETERMINATE = 2
DI_TARIFF_TIME_CHANGE = 451
DI_TERMINATION_CAUSE = 295
DI_TERMINATION_CAUSE_DIAMETER_ADMINISTRATIVE = 4
DI_TERMINATION_CAUSE_DIAMETER_AUTH_EXPIRED = 6
DI_TERMINATION_CAUSE_DIAMETER_BAD_ANSWER = 3
DI_TERMINATION_CAUSE_DIAMETER_LINK_BROKEN = 5
DI_TERMINATION_CAUSE_DIAMETER_LOGOUT = 1
DI_TERMINATION_CAUSE_DIAMETER_SERVICE_NOT_PROVIDED = 2
DI_TERMINATION_CAUSE_DIAMETER_SESSION_TIMEOUT = 8
DI_TERMINATION_CAUSE_DIAMETER_USER_MOVED = 7
DI_TUNNELING = 401
DI_TUNNEL_ASSIGNMENT_ID = 82
DI_TUNNEL_CLIENT_AUTH_ID = 90
DI_TUNNEL_CLIENT_ENDPOINT = 66
DI_TUNNEL_MEDIUM_TYPE = 65
DI_TUNNEL_PASSWORD = 69
DI_TUNNEL_PREFERENCE = 83
DI_TUNNEL_PRIVATE_GROUP_ID = 81
DI_TUNNEL_SERVER_AUTH_ID = 91
DI_TUNNEL_SERVER_ENDPOINT = 67
DI_TUNNEL_TYPE = 64
DI_UNIT_VALUE = 445
DI_USED_SERVICE_UNIT = 446
DI_USER_EQUIPMENT_INFO = 458
DI_USER_EQUIPMENT_INFO_TYPE = 459
DI_USER_EQUIPMENT_INFO_TYPE_EUI64 = 2
DI_USER_EQUIPMENT_INFO_TYPE_IMEISV = 0
DI_USER_EQUIPMENT_INFO_TYPE_MAC = 1
DI_USER_EQUIPMENT_INFO_TYPE_MODIFIED_EUI64 = 3
DI_USER_EQUIPMENT_INFO_VALUE = 460
DI_USER_NAME = 1
DI_USER_PASSWORD = 2
DI_VALIDITY_TIME = 448
DI_VALUE_DIGITS = 447
DI_VENDOR_ID = 266
DI_VENDOR_SPECIFIC_APPLICATION_ID = 260
__package__ = 'diameter'
abnf_asa = [(True, 1, 1, 263), (False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 0, 1, 1), (False, 0, 1, 278), (False, 0, 1, 281), (False, 0, 1, 294), (False, 0, None, 279), (False, 0, None, 292), (False, 0, 1, 261), (False, 0, 1, 262), (False, 0, None, 284), (False, 0, None, None)]
abnf_asr = [(True, 1, 1, 263), (False, 1, 1, 264), (False, 1, 1, 296), (False, 1, 1, 283), (False, 1, 1, 293), (False, 1, 1, 258), (False, 0, 1, 1), (False, 0, 1, 278), (False, 0, None, 284), (False, 0, None, 282), (False, 0, None, None)]
abnf_cea = [(False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 1, None, 257), (False, 1, 1, 266), (False, 1, 1, 269), (False, 0, 1, 278), (False, 0, 1, 281), (False, 0, 1, 279), (False, 0, None, 265), (False, 0, None, 258), (False, 0, None, 299), (False, 0, None, 259), (False, 0, None, 260), (False, 0, 1, 267), (False, 0, None, None)]
abnf_cer = [(False, 1, 1, 264), (False, 1, 1, 296), (False, 1, None, 257), (False, 1, 1, 266), (False, 1, 1, 269), (False, 0, 1, 278), (False, 0, None, 265), (False, 0, None, 258), (False, 0, None, 299), (False, 0, None, 259), (False, 0, None, 260), (False, 0, 1, 267), (False, 0, None, None)]
abnf_dpa = [(False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 0, 1, 281), (False, 0, 1, 279)]
abnf_dpr = [(False, 1, 1, 264), (False, 1, 1, 296), (False, 1, 1, 273)]
abnf_dwa = [(False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 0, 1, 281), (False, 0, 1, 279), (False, 0, 1, 278)]
abnf_dwr = [(False, 1, 1, 264), (False, 1, 1, 296), (False, 0, 1, 278)]
abnf_raa = [(True, 1, 1, 263), (False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 0, None, None)]
abnf_rar = [(True, 1, 1, 263), (False, 1, 1, 264), (False, 1, 1, 296), (False, 1, 1, 283), (False, 1, 1, 293), (False, 0, 1, 258), (False, 0, 1, 285), (False, 0, None, None)]
abnf_sta = [(True, 1, 1, 263), (False, 1, 1, 268), (False, 1, 1, 264), (False, 1, 1, 296), (False, 0, 1, 1), (False, 0, None, 25), (False, 0, 1, 281), (False, 0, 1, 294), (False, 0, None, 279), (False, 0, 1, 278), (False, 0, None, 292), (False, 0, 1, 261), (False, 0, 1, 262), (False, 0, None, 284), (False, 0, None, None)]
abnf_str = [(True, 1, 1, 263), (False, 1, 1, 264), (False, 1, 1, 296), (False, 1, 1, 283), (False, 1, 1, 258), (False, 1, 1, 295), (False, 0, 1, 1), (False, 0, 1, 293), (False, 0, None, 25), (False, 0, 1, 278), (False, 0, None, 284), (False, 0, None, 282), (False, 0, None, None)]
rfc3588_mandatory_codes = frozenset([1, 25, 27, 33, 44, 50, ...])
rfc4006_mandatory_codes = frozenset([412, 413, 414, 415, 416, 417, ...])

Author
        Ivan Skytte Jørgensen