Home | History | Annotate | Download | only in contrib
      1 ##########################################################################
      2 #
      3 #       Diameter protocol implementation for Scapy
      4 #   Original Author: patrick battistello
      5 #
      6 #   This implements the base Diameter protocol RFC6733 and the additional standards:
      7 #     RFC7155, RFC4004, RFC4006, RFC4072, RFC4740, RFC5778, RFC5447, RFC6942, RFC5777
      8 #     ETS29229 V12.3.0 (2014-09), ETS29272 V13.1.0 (2015-03), ETS29329 V12.5.0 (2014-12),
      9 #     ETS29212 V13.1.0 (2015-03), ETS32299 V13.0.0 (2015-03), ETS29210 V6.7.0 (2006-12),
     10 #     ETS29214 V13.1.0 (2015-03), ETS29273 V12.7.0 (2015-03), ETS29173 V12.3.0 (2015-03),
     11 #     ETS29172 V12.5.0 (2015-03), ETS29215 V13.1.0 (2015-03), ETS29209 V6.8.0 (2011-09),
     12 #     ETS29061 V13.0.0 (2015-03), ETS29219 V13.0.0 (2014-12)
     13 #
     14 #       IMPORTANT note:
     15 #
     16 #           - Some Diameter fields (Unsigned64, Float32, ...) have not been tested yet due to lack
     17 #               of network captures containing AVPs of that types contributions are welcomed.
     18 #
     19 ##########################################################################
     20 
     21 # scapy.contrib.description = Diameter
     22 # scapy.contrib.status = loads
     23 
     24 import sys
     25 import logging
     26 from scapy.packet import *
     27 from scapy.fields import *
     28 from scapy.layers.inet6 import *
     29 from scapy.layers.sctp import *
     30 import scapy.modules.six as six
     31 from scapy.modules.six.moves import range
     32 from scapy.compat import chb, orb, raw, bytes_hex
     33 from time import ctime
     34 
     35 #####################################################################
     36 #####################################################################
     37 #
     38 #       Definition of additional fields
     39 #
     40 #####################################################################
     41 #####################################################################
     42 
     43 
     44 class I3BytesEnumField (X3BytesField, EnumField):
     45     """ 3 bytes enum field """
     46 
     47     def __init__(self, name, default, enum):
     48         EnumField.__init__(self, name, default, enum, "!I")
     49 
     50 
     51 class I3FieldLenField(X3BytesField, FieldLenField):
     52     __slots__ = ["length_of", "count_of", "adjust"]
     53 
     54     def __init__(
     55             self,
     56             name,
     57             default,
     58             length_of=None,
     59             count_of=None,
     60             adjust=lambda pkt,
     61             x: x):
     62         X3BytesField.__init__(self, name, default)
     63         self.length_of = length_of
     64         self.count_of = count_of
     65         self.adjust = adjust
     66 
     67     def i2m(self, pkt, x):
     68         return FieldLenField.i2m(self, pkt, x)
     69 
     70 ###########################################################
     71 # Fields for Diameter commands
     72 ###########################################################
     73 
     74 
     75 class DRFlags (FlagsField):
     76     def i2repr(self, pkt, x):
     77         if x is None:
     78             return "None"
     79         res = hex(int(x))
     80         r = ''
     81         cmdt = (x & 128) and ' Request' or ' Answer'
     82         if x & 15:  # Check if reserved bits are used
     83             nb = 8
     84             offset = 0
     85         else:       # Strip the first 4 bits
     86             nb = 4
     87             offset = 4
     88             x >>= 4
     89         for i in range(nb):
     90             r += (x & 1) and str(self.names[offset + i][0]) or '-'
     91             x >>= 1
     92         invert = r[::-1]
     93         return res + cmdt + ' (' + invert[:nb] + ')'
     94 
     95 
     96 class DRCode (I3BytesEnumField):
     97     def __init__(self, name, default, enum):
     98         """enum is a dict of tupples, so conversion is required before calling the actual init method.
     99            Note: the conversion is done only once."""
    100         enumDict = {}
    101         for k, v in enum.items():
    102             enumDict[k] = v[0]
    103         I3BytesEnumField.__init__(self, name, default, enumDict)
    104 
    105     def i2repr(self, pkt, x):
    106         cmd = self.i2repr_one(pkt, x)
    107         sx = str(x)
    108         if cmd == sx:
    109             cmd = 'Unknown'
    110         return sx + " (" + cmd + ")"
    111 
    112 ###########################################################
    113 # Fields for Diameter AVPs
    114 ###########################################################
    115 
    116 
    117 class AVPFlags (FlagsField):
    118     def i2repr(self, pkt, x):
    119         if x is None:
    120             return "None"
    121         res = hex(int(x))
    122         r = ''
    123         if x & 31:  # Check if reserved bits are used
    124             nb = 8
    125             offset = 0
    126         else:       # Strip the first 5 bits
    127             nb = 3
    128             offset = 5
    129             x >>= 5
    130         for i in range(nb):
    131             r += (x & 1) and str(self.names[offset + i][0]) or '-'
    132             x >>= 1
    133         invert = r[::-1]
    134         return res + ' (' + invert[:nb] + ')'
    135 
    136 
    137 class AVPVendor (IntField):
    138     def i2repr(self, pkt, x):
    139         vendor = vendorList.get(x, "Unkown_Vendor")
    140         return "%s (%s)" % (vendor, str(x))
    141 
    142 
    143 # Note the dictionnary below is minimal (taken from scapy/layers/dhcp6.py
    144 # + added 3GPP and ETSI
    145 vendorList = {
    146     9: "ciscoSystems",
    147     35: "Nortel Networks",
    148     43: "3Com",
    149     311: "Microsoft",
    150     323: "Tekelec",
    151     2636: "Juniper Networks, Inc.",
    152     4526: "Netgear",
    153     5771: "Cisco Systems, Inc.",
    154     5842: "Cisco Systems",
    155     8164: "Starent Networks",
    156     10415: "3GPP",
    157     13019: "ETSI",
    158     16885: "Nortel Networks"}
    159 
    160 # The Application IDs for the Diameter command field
    161 AppIDsEnum = {
    162     0: "Diameter_Common_Messages",
    163     1: "NASREQ_Application",
    164     2: "Mobile_IPv4_Application",
    165     3: "Diameter_Base_Accounting",
    166     4: "Diameter_Credit_Control_Application",
    167     5: "EAP_Application",
    168     6: "Diameter_Session_Initiation_Protocol_(SIP)_Application",
    169     7: "Diameter_Mobile_IPv6_IKE___(MIP6I)",
    170     8: "Diameter_Mobile_IPv6_Auth__(MIP6A)",
    171     111: "ALU_Sy",
    172     555: "Sun_Ping_Application",
    173     16777216: "3GPP_Cx",
    174     16777217: "3GPP_Sh",
    175     16777222: "3GPP_Gq",
    176     16777223: "3GPP_Gmb",
    177     16777224: "3GPP_Gx",
    178     16777227: "Ericsson_MSI",
    179     16777228: "Ericsson_Zx",
    180     16777229: "3GPP_RX",
    181     16777231: "Diameter_e2e4_Application",
    182     16777232: "Ericsson_Charging-CIP",
    183     16777236: "3GPP_Rx",
    184     16777238: "3GPP_Gx",
    185     16777250: "3GPP_STa",
    186     16777251: "3GPP_S6a/S6d",
    187     16777252: "3GPP_S13/S13'",
    188     16777255: "3GPP_SLg",
    189     16777264: "3GPP_SWm",
    190     16777265: "3GPP_SWx",
    191     16777266: "3GPP_Gxx",
    192     16777267: "3GPP_S9",
    193     16777269: "Ericsson_HSI",
    194     16777272: "3GPP_S6b",
    195     16777291: "3GPP_SLh",
    196     16777292: "3GPP_SGmb",
    197     16777302: "3GPP_Sy",
    198     16777304: "Ericsson_Sy",
    199     16777315: "Ericsson_Diameter_Signalling_Controller_Application_(DSC)",
    200     4294967295: "Relay",
    201 }
    202 
    203 
    204 ###########################################################
    205 # Definition of fields contained in section 4.2 of RFC6733
    206 # for AVPs payloads
    207 ###########################################################
    208 
    209 class OctetString (StrLenField):
    210     def i2repr(self, pkt, x):
    211         try:
    212             return plain_str(x)
    213         except BaseException:
    214             return bytes_hex(x)
    215 
    216 
    217 class Integer32 (SignedIntField):
    218     pass
    219 
    220 
    221 class Integer64 (Field):
    222     def __init__(self, name, default):
    223         Field.__init__(self, name, default, "q")
    224 
    225 
    226 class Unsigned32 (IntField):
    227     pass
    228 
    229 
    230 class Unsigned64 (LongField):
    231     pass
    232 
    233 
    234 class Float32 (IEEEFloatField):
    235     pass
    236 
    237 
    238 class Float64 (IEEEDoubleField):
    239     pass
    240 
    241 
    242 class Grouped (Field):
    243     pass
    244 
    245 
    246 ###########################################################
    247 # Definition of additional fields contained in section 4.3
    248 # of RFC6733 for AVPs payloads
    249 ###########################################################
    250 
    251 class Address (StrLenField):
    252     def i2repr(self, pkt, x):
    253         if x.startswith(b'\x00\x01'):  # IPv4 address
    254             return inet_ntoa(x[2:])
    255         elif x.startswith(b'\x00\x02'):    # IPv6 address
    256             return inet_ntop(socket.AF_INET6, x[2:])
    257         else:   # Address format not yet decoded
    258             print ('Warning: Address format not yet decoded.')
    259             return bytes_hex(x)
    260 
    261     def any2i(self, pkt, x):
    262         if x and isinstance(x, str):
    263             try:    # Try IPv4 conversion
    264                 s = inet_aton(x)
    265                 return b'\x00\x01' + s
    266             except BaseException:
    267                 try:    # Try IPv6 conversion
    268                     s = inet_pton(socket.AF_INET6, x)
    269                     return b'\x00\x02' + s
    270                 except BaseException:
    271                     print ('Warning: Address format not supported yet.')
    272         return b''
    273 
    274 
    275 class Time (IntField):
    276     def i2repr(self, pkt, x):
    277         return ctime(x)
    278 
    279 
    280 class Enumerated (IntEnumField):
    281     def i2repr(self, pkt, x):
    282         if x in self.i2s:
    283             return self.i2s[x] + " (%d)" % x
    284         else:
    285             return repr(x) + " (Unknown)"
    286 
    287 
    288 class IPFilterRule (StrLenField):
    289     pass
    290 
    291 
    292 class Grouped (StrLenField):
    293     """This class is just for declarative purpose because it is used in the AVP definitions dict."""
    294     pass
    295 
    296 
    297 ####################################################################
    298 # Definition of additional fields contained in other standards
    299 ####################################################################
    300 
    301 class QoSFilterRule (StrLenField):        # Defined in 4.1.1 of RFC7155
    302     pass
    303 
    304 
    305 class ISDN (StrLenField):
    306     def i2repr(self, pkt, x):
    307         out = b''
    308         for char in x:
    309             c = orb(char)
    310             out += chb(48 + (c & 15))  # convert second digit first
    311             v = (c & 240) >> 4
    312             if v != 15:
    313                 out += chb(48 + v)
    314         return out
    315 
    316     def any2i(self, pkt, x):
    317         out = b''
    318         if x:
    319             fd = True     # waiting for first digit
    320             for c in x:
    321                 digit = orb(c) - 48
    322                 if fd:
    323                     val = digit
    324                 else:
    325                     val = val + 16 * digit
    326                     out += chb(val)
    327                 fd = not fd
    328             if not fd:    # Fill with 'f' if odd number of characters
    329                 out += chb(240 + val)
    330         return out
    331 
    332 
    333 #####################################################################
    334 #####################################################################
    335 #
    336 #       AVPs classes and definitions
    337 #
    338 #####################################################################
    339 #####################################################################
    340 
    341 AVP_Code_length = 4
    342 AVP_Flag_length = 1
    343 DIAMETER_BYTES_ALIGNMENT = 4
    344 AVP_Flags_List = ["x", "x", "x", "x", "x", "P", "M", "V"]
    345 
    346 
    347 def GuessAvpType(p, **kargs):
    348     if len(p) > AVP_Code_length + AVP_Flag_length:
    349         # Set AVP code and vendor
    350         avpCode = struct.unpack("!I", p[:AVP_Code_length])[0]
    351         vnd = bool(struct.unpack(
    352             "!B", p[AVP_Code_length:AVP_Code_length + AVP_Flag_length])[0] & 128)
    353         vndCode = vnd and struct.unpack("!I", p[8:12])[0] or 0
    354         # Check if vendor and code defined and fetch the corresponding AVP
    355         # definition
    356         if vndCode in AvpDefDict.keys():
    357             AvpVndDict = AvpDefDict[vndCode]
    358             if avpCode in AvpVndDict:
    359                 # Unpack only the first 4 tupple items at this point
    360                 avpName, AVPClass, flags = AvpVndDict[avpCode][:3]
    361                 result = AVPClass(p, **kargs)
    362                 result.name = 'AVP ' + avpName
    363                 return result
    364     # Packet too short or AVP vendor or AVP code not found ...
    365     return AVP_Unknown(p, **kargs)
    366 
    367 
    368 class AVP_Generic (Packet):
    369     """ Parent class for the 5 following AVP intermediate classes below"""
    370 
    371     def extract_padding(self, s):
    372         nbBytes = self.avpLen % DIAMETER_BYTES_ALIGNMENT
    373         if nbBytes:
    374             nbBytes = DIAMETER_BYTES_ALIGNMENT - nbBytes
    375         return s[:nbBytes], s[nbBytes:]
    376 
    377     def post_build(self, p, pay):
    378         nbBytes = (-len(p)) % 4
    379         while nbBytes:
    380             p += struct.pack("B", 0)
    381             nbBytes -= 1
    382         return p + pay
    383 
    384     def show2(self):
    385         self.__class__(raw(self), name=self.name).show()
    386 
    387 
    388 def AVP(avpId, **fields):
    389     """ Craft an AVP based on its id and optional parameter fields"""
    390     val = None
    391     name = 'AVP Unknown'
    392     classType = AVP_Unknown
    393     if isinstance(avpId, str):
    394         try:
    395             for vnd in AvpDefDict.keys():
    396                 for code in AvpDefDict[vnd].keys():
    397                     val = AvpDefDict[vnd][code]
    398                     if val[0][:len(
    399                             avpId)] == avpId:  # A prefix of the full name is considered valid
    400                         raise
    401             found = False
    402         except BaseException:
    403             found = True
    404     else:
    405         if isinstance(avpId, list):
    406             code = avpId[0]
    407             vnd = avpId[1]
    408         else:  # Assume this is an int
    409             code = avpId
    410             vnd = 0
    411         try:
    412             val = AvpDefDict[vnd][code]
    413             found = True
    414         except BaseException:
    415             found = False
    416     if not found:
    417         warning('The AVP identifier %s has not been found.' % str(avpId))
    418         if isinstance(avpId, str):  # The string input is not valid
    419             return None
    420     # At this point code, vnd are provisionned val may be set (if found is True)
    421     # Set/override AVP code
    422     fields['avpCode'] = code
    423     # Set vendor if not already defined and relevant
    424     if 'avpVnd' not in fields.keys() and vnd:
    425         fields['avpVnd'] = vnd
    426     # Set flags if not already defined and possible ...
    427     if 'avpFlags' not in fields.keys():
    428         if val:
    429             fields['avpFlags'] = val[2]
    430         else:
    431             fields['avpFlags'] = vnd and 128 or 0
    432     # Finally, set the name and class if possible
    433     if val:
    434         classType = val[1]
    435     _ret = classType(**fields)
    436     if val:
    437         _ret.name = 'AVP ' + val[0]
    438     return _ret
    439 
    440 
    441 # AVP intermediate classes:
    442 ############################
    443 
    444 class AVP_FL_NV (AVP_Generic):
    445     """ Defines the AVP of Fixed Length with No Vendor field."""
    446     fields_desc = [
    447         IntField("avpCode", None),
    448         AVPFlags("avpFlags", None, 8, AVP_Flags_List),
    449         X3BytesField("avpLen", None)
    450     ]
    451 
    452 
    453 class AVP_FL_V (AVP_Generic):
    454     """ Defines the AVP of Fixed Length with Vendor field."""
    455     fields_desc = [
    456         IntField("avpCode", None),
    457         AVPFlags("avpFlags", None, 8, AVP_Flags_List),
    458         X3BytesField("avpLen", None),
    459         AVPVendor("avpVnd", 0)
    460     ]
    461 
    462 
    463 class AVP_VL_NV (AVP_Generic):
    464     """ Defines the AVP of Variable Length with No Vendor field."""
    465     fields_desc = [
    466         IntField("avpCode", None),
    467         AVPFlags("avpFlags", None, 8, AVP_Flags_List),
    468         I3FieldLenField("avpLen", None, length_of="val",
    469             adjust=lambda pkt, x:x + 8)
    470     ]
    471 
    472 
    473 class AVP_VL_V (AVP_Generic):
    474     """ Defines the AVP of Variable Length with Vendor field."""
    475     fields_desc = [
    476         IntField("avpCode",None),
    477         AVPFlags("avpFlags", None, 8, AVP_Flags_List),
    478         I3FieldLenField("avpLen", None, length_of="val",
    479             adjust=lambda pkt, x:x + 12),
    480         AVPVendor("avpVnd", 0)
    481     ]
    482 
    483 
    484 class AVP_Unknown (AVP_Generic):
    485     """ The default structure for AVPs which could not be decoded (optional vendor field, variable length). """
    486     name = 'AVP Unknown'
    487     fields_desc = [
    488         IntField("avpCode", None),
    489         AVPFlags("avpFlags", None, 8, AVP_Flags_List),
    490         I3FieldLenField("avpLen", None, length_of="val",
    491             adjust=lambda pkt, x:x + 8 + ((pkt.avpFlags & 0x80) >> 5)),
    492         ConditionalField(AVPVendor("avpVnd", 0), lambda pkt:pkt.avpFlags & 0x80),
    493         StrLenField("val", None,
    494             length_from=lambda pkt:pkt.avpLen - 8 - ((pkt.avpFlags & 0x80) >> 5))
    495     ]
    496 
    497 
    498 # AVP 'low level' classes:
    499 ############################
    500 
    501 class AVPV_StrLenField (AVP_VL_V):
    502     fields_desc = [
    503         AVP_VL_V,
    504         StrLenField("val", None, length_from=lambda pkt:pkt.avpLen - 12)
    505     ]
    506 
    507 
    508 class AVPNV_StrLenField (AVP_VL_NV):
    509     fields_desc = [
    510         AVP_VL_NV,
    511         StrLenField("val", None, length_from=lambda pkt:pkt.avpLen - 8)
    512     ]
    513 
    514 
    515 class AVPV_OctetString (AVP_VL_V):
    516     fields_desc = [
    517         AVP_VL_V,
    518         OctetString("val", None, length_from=lambda pkt:pkt.avpLen - 12)
    519     ]
    520 
    521 
    522 class AVPNV_OctetString (AVP_VL_NV):
    523     fields_desc = [
    524         AVP_VL_NV,
    525         OctetString("val", None, length_from=lambda pkt:pkt.avpLen - 8)
    526     ]
    527 
    528 
    529 class AVPV_Grouped (AVP_VL_V):
    530     fields_desc = [
    531         AVP_VL_V,
    532         PacketListField('val', [], GuessAvpType,
    533             length_from=lambda pkt:pkt.avpLen - 12)
    534     ]
    535 
    536 
    537 class AVPNV_Grouped (AVP_VL_NV):
    538     fields_desc = [
    539         AVP_VL_NV,
    540         PacketListField('val', [], GuessAvpType,
    541             length_from=lambda pkt:pkt.avpLen - 8)]
    542 
    543 
    544 class AVPV_Unsigned32 (AVP_FL_V):
    545     avpLen = 16
    546     fields_desc = [AVP_FL_V, Unsigned32('val', None)]
    547 
    548 
    549 class AVPNV_Unsigned32 (AVP_FL_NV):
    550     avpLen = 12
    551     fields_desc = [AVP_FL_NV, Unsigned32('val', None)]
    552 
    553 
    554 class AVPV_Integer32 (AVP_FL_V):
    555     avpLen = 16
    556     fields_desc = [AVP_FL_V, Integer32('val', None)]
    557 
    558 
    559 class AVPNV_Integer32 (AVP_FL_NV):
    560     avpLen = 12
    561     fields_desc = [AVP_FL_NV, Integer32('val', None)]
    562 
    563 
    564 class AVPV_Unsigned64 (AVP_FL_V):
    565     avpLen = 20
    566     fields_desc = [AVP_FL_V, Unsigned64('val', None)]
    567 
    568 
    569 class AVPNV_Unsigned64 (AVP_FL_NV):
    570     avpLen = 16
    571     fields_desc = [AVP_FL_NV, Unsigned64('val', None)]
    572 
    573 
    574 class AVPV_Integer64 (AVP_FL_V):
    575     avpLen = 20
    576     fields_desc = [AVP_FL_V, Integer64('val', None)]
    577 
    578 
    579 class AVPNV_Integer64 (AVP_FL_NV):
    580     avpLen = 16
    581     fields_desc = [AVP_FL_NV, Integer64('val', None)]
    582 
    583 
    584 class AVPV_Time (AVP_FL_V):
    585     avpLen = 16
    586     fields_desc = [AVP_FL_V, Time("val", None)]
    587 
    588 
    589 class AVPNV_Time (AVP_FL_NV):
    590     avpLen = 12
    591     fields_desc = [AVP_FL_NV, Time("val", None)]
    592 
    593 
    594 class AVPV_Address (AVP_VL_V):
    595     fields_desc = [
    596         AVP_VL_V,
    597         Address("val", None, length_from=lambda pkt:pkt.avpLen - 12)
    598     ]
    599 
    600 
    601 class AVPNV_Address (AVP_VL_NV):
    602     fields_desc = [
    603         AVP_VL_NV,
    604         Address("val", None, length_from=lambda pkt:pkt.avpLen - 8)
    605     ]
    606 
    607 
    608 class AVPV_IPFilterRule (AVP_VL_V):
    609     fields_desc = [
    610         AVP_VL_V,
    611         IPFilterRule("val", None, length_from=lambda pkt:pkt.avpLen - 12)
    612     ]
    613 
    614 
    615 class AVPNV_IPFilterRule (AVP_VL_NV):
    616     fields_desc = [
    617         AVP_VL_NV,
    618         IPFilterRule("val", None, length_from=lambda pkt:pkt.avpLen - 8)
    619     ]
    620 
    621 
    622 class AVPV_QoSFilterRule (AVP_VL_V):
    623     fields_desc = [
    624         AVP_VL_V,
    625         QoSFilterRule("val", None, length_from=lambda pkt:pkt.avpLen - 12)
    626     ]
    627 
    628 
    629 class AVPNV_QoSFilterRule (AVP_VL_NV):
    630     fields_desc = [
    631         AVP_VL_NV,
    632         QoSFilterRule("val", None, length_from=lambda pkt:pkt.avpLen - 8)
    633     ]
    634 
    635 
    636 ###############################################
    637 # Actual AVPs based on previous parent classes
    638 ###############################################
    639 
    640 # AVP special classes (which required interpretation/adaptation from standard)
    641 ##############################################################################
    642 
    643 class AVP_0_258 (AVP_FL_NV):
    644     name = 'AVP Auth-Application-Id'
    645     avpLen = 12
    646     fields_desc = [AVP_FL_NV, Enumerated('val', None, AppIDsEnum)]
    647 
    648 
    649 class AVP_0_266 (AVP_FL_NV):
    650     name = 'AVP Vendor-Id'
    651     avpLen = 12
    652     fields_desc = [AVP_FL_NV, Enumerated('val', None, vendorList)]
    653 
    654 
    655 class AVP_0_268 (AVP_FL_NV):
    656     name = 'AVP Result-Code'
    657     avpLen = 12
    658     fields_desc = [AVP_FL_NV,
    659                    Enumerated('val',
    660                               None,
    661                               {1001: "DIAMETER_MULTI_ROUND_AUTH",
    662                                2001: "DIAMETER_SUCCESS",
    663                                2002: "DIAMETER_LIMITED_SUCCESS",
    664                                2003: "DIAMETER_FIRST_REGISTRATION",
    665                                2004: "DIAMETER_SUBSEQUENT_REGISTRATION",
    666                                2005: "DIAMETER_UNREGISTERED_SERVICE",
    667                                2006: "DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED",
    668                                2007: "DIAMETER_SERVER_SELECTION",
    669                                2008: "DIAMETER_SUCCESS_AUTH_SENT_SERVER_NOT_STORED",
    670                                2009: "DIAMETER_SUCCESS_RELOCATE_HA",
    671                                3001: "DIAMETER_COMMAND_UNSUPPORTED",
    672                                3002: "DIAMETER_UNABLE_TO_DELIVER",
    673                                3003: "DIAMETER_REALM_NOT_SERVED",
    674                                3004: "DIAMETER_TOO_BUSY",
    675                                3005: "DIAMETER_LOOP_DETECTED",
    676                                3006: "DIAMETER_REDIRECT_INDICATION",
    677                                3007: "DIAMETER_APPLICATION_UNSUPPORTED",
    678                                3008: "DIAMETER_INVALID_HDR_BITS",
    679                                3009: "DIAMETER_INVALID_AVP_BITS",
    680                                3010: "DIAMETER_UNKNOWN_PEER",
    681                                4001: "DIAMETER_AUTHENTICATION_REJECTED",
    682                                4002: "DIAMETER_OUT_OF_SPACE",
    683                                4003: "DIAMETER_ELECTION_LOST",
    684                                4005: "DIAMETER_ERROR_MIP_REPLY_FAILURE",
    685                                4006: "DIAMETER_ERROR_HA_NOT_AVAILABLE",
    686                                4007: "DIAMETER_ERROR_BAD_KEY",
    687                                4008: "DIAMETER_ERROR_MIP_FILTER_NOT_SUPPORTED",
    688                                4010: "DIAMETER_END_USER_SERVICE_DENIED",
    689                                4011: "DIAMETER_CREDIT_CONTROL_NOT_APPLICABLE",
    690                                4012: "DIAMETER_CREDIT_LIMIT_REACHED",
    691                                4013: "DIAMETER_USER_NAME_REQUIRED",
    692                                4241: "DIAMETER_END_USER_SERVICE_DENIED",
    693                                5001: "DIAMETER_AVP_UNSUPPORTED",
    694                                5002: "DIAMETER_UNKNOWN_SESSION_ID",
    695                                5003: "DIAMETER_AUTHORIZATION_REJECTED",
    696                                5004: "DIAMETER_INVALID_AVP_VALUE",
    697                                5005: "DIAMETER_MISSING_AVP",
    698                                5006: "DIAMETER_RESOURCES_EXCEEDED",
    699                                5007: "DIAMETER_CONTRADICTING_AVPS",
    700                                5008: "DIAMETER_AVP_NOT_ALLOWED",
    701                                5009: "DIAMETER_AVP_OCCURS_TOO_MANY_TIMES",
    702                                5010: "DIAMETER_NO_COMMON_APPLICATION",
    703                                5011: "DIAMETER_UNSUPPORTED_VERSION",
    704                                5012: "DIAMETER_UNABLE_TO_COMPLY",
    705                                5013: "DIAMETER_INVALID_BIT_IN_HEADER",
    706                                5014: "DIAMETER_INVALID_AVP_LENGTH",
    707                                5015: "DIAMETER_INVALID_MESSAGE_LENGTH",
    708                                5016: "DIAMETER_INVALID_AVP_BIT_COMBO",
    709                                5017: "DIAMETER_NO_COMMON_SECURITY",
    710                                5018: "DIAMETER_RADIUS_AVP_UNTRANSLATABLE",
    711                                5024: "DIAMETER_ERROR_NO_FOREIGN_HA_SERVICE",
    712                                5025: "DIAMETER_ERROR_END_TO_END_MIP_KEY_ENCRYPTION",
    713                                5030: "DIAMETER_USER_UNKNOWN",
    714                                5031: "DIAMETER_RATING_FAILED",
    715                                5032: "DIAMETER_ERROR_USER_UNKNOWN",
    716                                5033: "DIAMETER_ERROR_IDENTITIES_DONT_MATCH",
    717                                5034: "DIAMETER_ERROR_IDENTITY_NOT_REGISTERED",
    718                                5035: "DIAMETER_ERROR_ROAMING_NOT_ALLOWED",
    719                                5036: "DIAMETER_ERROR_IDENTITY_ALREADY_REGISTERED",
    720                                5037: "DIAMETER_ERROR_AUTH_SCHEME_NOT_SUPPORTED",
    721                                5038: "DIAMETER_ERROR_IN_ASSIGNMENT_TYPE",
    722                                5039: "DIAMETER_ERROR_TOO_MUCH_DATA",
    723                                5040: "DIAMETER_ERROR_NOT SUPPORTED_USER_DATA",
    724                                5041: "DIAMETER_ERROR_MIP6_AUTH_MODE",
    725                                5241: "DIAMETER_END_USER_NOT_FOUND",
    726                                })]
    727 
    728 
    729 class AVP_0_298 (AVP_FL_NV):
    730     name = 'AVP Experimental-Result-Code'
    731     avpLen = 12
    732     fields_desc = [
    733         AVP_FL_NV,
    734         Enumerated(
    735             'val',
    736             None,
    737             {
    738                 2001: "DIAMETER_FIRST_REGISTRATION",
    739                 2002: "DIAMETER_SUBSEQUENT_REGISTRATION",
    740                 2003: "DIAMETER_UNREGISTERED_SERVICE",
    741                 2004: "DIAMETER_SUCCESS_SERVER_NAME_NOT_STORED",
    742                 2021: "DIAMETER_PDP_CONTEXT_DELETION_INDICATION",
    743                 4100: "DIAMETER_USER_DATA_NOT_AVAILABLE",
    744                 4101: "DIAMETER_PRIOR_UPDATE_IN_PROGRESS",
    745                 4121: "DIAMETER_ERROR_OUT_OF_RESOURCES",
    746                 4141: "DIAMETER_PCC_BEARER_EVENT",
    747                 4181: "DIAMETER_AUTHENTICATION_DATA_UNAVAILABLE",
    748                 4201: "DIAMETER_ERROR_ABSENT_USER",
    749                 4221: "DIAMETER_ERROR_UNREACHABLE_USER",
    750                 4222: "DIAMETER_ERROR_SUSPENDED_USER",
    751                 4223: "DIAMETER_ERROR_DETACHED_USER",
    752                 4224: "DIAMETER_ERROR_POSITIONING_DENIED",
    753                 4225: "DIAMETER_ERROR_POSITIONING_FAILED",
    754                 4226: "DIAMETER_ERROR_UNKNOWN_UNREACHABLE LCS_CLIENT",
    755                 5001: "DIAMETER_ERROR_USER_UNKNOWN",
    756                 5002: "DIAMETER_ERROR_IDENTITIES_DONT_MATCH",
    757                 5003: "DIAMETER_ERROR_IDENTITY_NOT_REGISTERED",
    758                 5004: "DIAMETER_ERROR_ROAMING_NOT_ALLOWED",
    759                 5005: "DIAMETER_ERROR_IDENTITY_ALREADY_REGISTERED",
    760                 5006: "DIAMETER_ERROR_AUTH_SCHEME_NOT_SUPPORTED",
    761                 5007: "DIAMETER_ERROR_IN_ASSIGNMENT_TYPE",
    762                 5008: "DIAMETER_ERROR_TOO_MUCH_DATA",
    763                 5009: "DIAMETER_ERROR_NOT_SUPPORTED_USER_DATA",
    764                 5010: "DIAMETER_MISSING_USER_ID",
    765                 5011: "DIAMETER_ERROR_FEATURE_UNSUPPORTED",
    766                 5041: "DIAMETER_ERROR_USER_NO_WLAN_SUBSCRIPTION",
    767                 5042: "DIAMETER_ERROR_W-APN_UNUSED_BY_USER",
    768                 5043: "DIAMETER_ERROR_W-DIAMETER_ERROR_NO_ACCESS_INDEPENDENT_SUBSCRIPTION",
    769                 5044: "DIAMETER_ERROR_USER_NO_W-APN_SUBSCRIPTION",
    770                 5045: "DIAMETER_ERROR_UNSUITABLE_NETWORK",
    771                 5061: "INVALID_SERVICE_INFORMATION",
    772                 5062: "FILTER_RESTRICTIONS",
    773                 5063: "REQUESTED_SERVICE_NOT_AUTHORIZED",
    774                 5064: "DUPLICATED_AF_SESSION",
    775                 5065: "IP-CAN_SESSION_NOT_AVAILABLE",
    776                 5066: "UNAUTHORIZED_NON_EMERGENCY_SESSION",
    777                 5100: "DIAMETER_ERROR_USER_DATA_NOT_RECOGNIZED",
    778                 5101: "DIAMETER_ERROR_OPERATION_NOT_ALLOWED",
    779                 5102: "DIAMETER_ERROR_USER_DATA_CANNOT_BE_READ",
    780                 5103: "DIAMETER_ERROR_USER_DATA_CANNOT_BE_MODIFIED",
    781                 5104: "DIAMETER_ERROR_USER_DATA_CANNOT_BE_NOTIFIED",
    782                 5105: "DIAMETER_ERROR_TRANSPARENT_DATA_OUT_OF_SYNC",
    783                 5106: "DIAMETER_ERROR_SUBS_DATA_ABSENT",
    784                 5107: "DIAMETER_ERROR_NO_SUBSCRIPTION_TO_DATA",
    785                 5108: "DIAMETER_ERROR_DSAI_NOT_AVAILABLE",
    786                 5120: "DIAMETER_ERROR_START_INDICATION",
    787                 5121: "DIAMETER_ERROR_STOP_INDICATION",
    788                 5122: "DIAMETER_ERROR_UNKNOWN_MBMS_BEARER_SERVICE",
    789                 5123: "DIAMETER_ERROR_SERVICE_AREA",
    790                 5140: "DIAMETER_ERROR_INITIAL_PARAMETERS",
    791                 5141: "DIAMETER_ERROR_TRIGGER_EVENT",
    792                 5142: "DIAMETER_BEARER_EVENT",
    793                 5143: "DIAMETER_ERROR_BEARER_NOT_AUTHORIZED",
    794                 5144: "DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED",
    795                 5145: "DIAMETER_QOS_RULE_EVENT",
    796                 5146: "DIAMETER_ERROR_TRAFFIC_MAPPING_INFO_REJECTED",
    797                 5147: "DIAMETER_ERROR_CONFLICTING_REQUEST",
    798                 5401: "DIAMETER_ERROR_IMPI_UNKNOWN",
    799                 5402: "DIAMETER_ERROR_NOT_AUTHORIZED",
    800                 5403: "DIAMETER_ERROR_TRANSACTION_IDENTIFIER_INVALID",
    801                 5420: "DIAMETER_ERROR_UNKNOWN_EPS_SUBSCRIPTION",
    802                 5421: "DIAMETER_ERROR_RAT_NOT_ALLOWED",
    803                 5422: "DIAMETER_ERROR_EQUIPMENT_UNKNOWN",
    804                 5423: "DIAMETER_ERROR_UNKNOWN_SERVING_NODE",
    805                 5450: "DIAMETER_ERROR_USER_NO_NON_3GPP_SUBSCRIPTION",
    806                 5451: "DIAMETER_ERROR_USER_NO_APN_SUBSCRIPTION",
    807                 5452: "DIAMETER_ERROR_RAT_TYPE_NOT_ALLOWED",
    808                 5470: "DIAMETER_ERROR_SUBSESSION",
    809                 5490: "DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_NETWORK",
    810                 5510: "DIAMETER_ERROR_UNAUTHORIZED_REQUESTING_ENTITY",
    811                 5511: "DIAMETER_ERROR_UNAUTHORIZED_SERVICE",
    812                 5530: "DIAMETER_ERROR_INVALID_SME_ADDRESS",
    813                 5531: "DIAMETER_ERROR_SC_CONGESTION",
    814                 5532: "DIAMETER_ERROR_SM_PROTOCOL",
    815             })]
    816 
    817 
    818 class AVP_10415_630 (AVP_FL_V):
    819     name = 'AVP Feature-List'
    820     avpLen = 16
    821     fields_desc = [AVP_FL_V,
    822                    FlagsField('val', None, 32,
    823                               ['SiFC',
    824                                'AliasInd',
    825                                'IMSRestorationInd',
    826                                'b3',
    827                                'b4',
    828                                'b5',
    829                                'b6',
    830                                'b7',
    831                                'b8',
    832                                'b9',
    833                                'b10',
    834                                'b11',
    835                                'b12',
    836                                'b13',
    837                                'b14',
    838                                'b15',
    839                                'b16',
    840                                'b17',
    841                                'b18',
    842                                'b19',
    843                                'b20',
    844                                'b21',
    845                                'b22',
    846                                'b23',
    847                                'b24',
    848                                'b25',
    849                                'b26',
    850                                'b27',
    851                                'b28',
    852                                'b29',
    853                                'b30',
    854                                'b31'])]
    855 
    856 
    857 class AVP_10415_701 (AVP_VL_V):
    858     name = 'AVP MSISDN'
    859     fields_desc = [AVP_VL_V, ISDN('val', None,
    860                                   length_from=lambda pkt:pkt.avpLen - 12)]
    861 
    862 
    863 class AVP_10415_1643 (AVP_VL_V):
    864     name = 'AVP A_MSISDN'
    865     fields_desc = [AVP_VL_V, ISDN('val', None,
    866                                   length_from=lambda pkt:pkt.avpLen - 12)]
    867 
    868 
    869 # AVP enumerated classes (which could not be defined in AvpDefDict dict below)
    870 ##############################################################################
    871 
    872 class AVP_0_6 (AVP_FL_NV):
    873     name = 'Service-Type'
    874     avpLen = 12
    875     fields_desc = [
    876         AVP_FL_NV,
    877         Enumerated('val', None,
    878             {
    879                 0: "Unknown",
    880                 1: "Login",
    881                 2: "Framed",
    882                 3: "Callback-Login",
    883                 4: "Callback-Framed",
    884                 5: "Outbound",
    885                 6: "Administrative",
    886                 7: "NAS-Prompt",
    887                 8: "Authenticate-Only",
    888                 9: "Callback-NAS-Prompt",
    889                 10: "Call Check",
    890                 11: "Callback Administrative",
    891                 12: "Voice",
    892                 13: "Fax",
    893                 14: "Modem Relay",
    894                 15: "IAPP-Register",
    895                 16: "IAPP-AP-Check",
    896                 17: "Authorize Only",
    897                 18: "Framed-Management",
    898             })]
    899 
    900 
    901 class AVP_0_7 (AVP_FL_NV):
    902     name = 'Framed-Protocol'
    903     avpLen = 12
    904     fields_desc = [
    905         AVP_FL_NV,
    906         Enumerated('val', None,
    907             {
    908                 1: "PPP",
    909                 2: "SLIP",
    910                 3: "ARAP",
    911                 4: "Gandalf",
    912                 5: "Xylogics",
    913                 6: "X.75",
    914                 7: "GPRS PDP Context",
    915                 255: "Ascend-ARA",
    916                 256: "MPP",
    917                 257: "EURAW",
    918                 258: "EUUI",
    919                 259: "X25",
    920                 260: "COMB",
    921                 261: "FR",
    922             })]
    923 
    924 
    925 class AVP_0_10 (AVP_FL_NV):
    926     name = 'Framed-Routing'
    927     avpLen = 12
    928     fields_desc = [
    929         AVP_FL_NV,
    930         Enumerated('val', None,
    931             {
    932                 0: "None",
    933                 1: "Send routing packets",
    934                 2: "Listen for routing packets",
    935                 3: "Send and Listen    ",
    936             })]
    937 
    938 
    939 class AVP_0_13 (AVP_FL_NV):
    940     name = 'Framed-Compression'
    941     avpLen = 12
    942     fields_desc = [
    943         AVP_FL_NV,
    944         Enumerated('val', None, 
    945             {0: "None", 2: "IPX header compression", 3: "Stac-LZS compression", })
    946     ]
    947 
    948 
    949 class AVP_0_15 (AVP_FL_NV):
    950     name = 'Login-Service'
    951     avpLen = 12
    952     fields_desc = [
    953         AVP_FL_NV,
    954         Enumerated('val', None,
    955             {
    956                 0: "Telnet",
    957                 1: "Rlogin",
    958                 2: "TCP-Clear",
    959                 3: "PortMaster",
    960                 4: "LAT",
    961                 5: "X25-PAD",
    962                 6: "X25-T3POS",
    963                 7: "Unassigned",
    964             })]
    965 
    966 
    967 class AVP_0_45 (AVP_FL_NV):
    968     name = 'Acct-Authentic'
    969     avpLen = 12
    970     fields_desc = [
    971             AVP_FL_NV,
    972             Enumerated('val', None, 
    973                 {0: "None", 1: "RADIUS", 2: "Local", 3: "Remote", 4: "Diameter", })]
    974 
    975 
    976 class AVP_0_61 (AVP_FL_NV):
    977     name = 'NAS-Port-Type'
    978     avpLen = 12
    979     fields_desc = [
    980         AVP_FL_NV,
    981         Enumerated('val', None,
    982             {
    983                 0: "Async",
    984                 1: "Sync",
    985                 2: "ISDN-Sync",
    986                 3: "ISDN-Async-v120",
    987                 4: "ISDN-Async-v110",
    988                 5: "Virtual",
    989                 6: "PIAFS",
    990                 7: "HDLC-Clear-Channel",
    991                 8: "X25",
    992                 9: "X75",
    993                 10: "G.3 Fax",
    994                 11: "SDSL - Symmetric DSL",
    995                 14: "IDSL - ISDN Digital Subscriber Line",
    996                 15: "Ethernet",
    997                 16: "xDSL - Digital Subscriber Line of unknown type",
    998                 17: "Cable",
    999                 18: "Wireless - Other",
   1000                 19: "Wireless - IEEE 802.11",
   1001                 20: "Token-Ring",
   1002                 21: "FDDI",
   1003                 22: "Wireless - CDMA2000",
   1004                 23: "Wireless - UMTS",
   1005                 24: "Wireless - 1X-EV",
   1006                 25: "IAPP",
   1007                 26: "FTTP - Fiber to the Premises",
   1008                 27: "Wireless - IEEE 802.16",
   1009                 28: "Wireless - IEEE 802.20",
   1010                 29: "Wireless - IEEE 802.22",
   1011                 30: "PPPoA - PPP over ATM",
   1012                 31: "PPPoEoA - PPP over Ethernet over ATM",
   1013                 32: "PPPoEoE - PPP over Ethernet over Ethernet",
   1014                 33: "PPPoEoVLAN - PPP over Ethernet over VLAN",
   1015                 34: "PPPoEoQinQ - PPP over Ethernet over IEEE 802.1QinQ",
   1016                 35: "xPON - Passive Optical Network",
   1017                 36: "Wireless - XGP",
   1018             })]
   1019 
   1020 
   1021 class AVP_0_64 (AVP_FL_NV):
   1022     name = 'Tunnel-Type'
   1023     avpLen = 12
   1024     fields_desc = [
   1025         AVP_FL_NV,
   1026         Enumerated('val', None,
   1027             {
   1028                 1: "PPTP",
   1029                 2: "L2F",
   1030                 3: "L2TP",
   1031                 4: "ATMP",
   1032                 5: "VTP",
   1033                 6: "AH",
   1034                 7: "IP-IP-Encap",
   1035                 8: "MIN-IP-IP",
   1036                 9: "ESP",
   1037                 10: "GRE",
   1038                 11: "DVS",
   1039                 12: "IP-in-IP Tunneling",
   1040                 13: "VLAN",
   1041             })]
   1042 
   1043 
   1044 class AVP_0_65 (AVP_FL_NV):
   1045     name = 'Tunnel-Medium-Type'
   1046     avpLen = 12
   1047     fields_desc = [
   1048         AVP_FL_NV,
   1049         Enumerated('val', None,
   1050             {
   1051                 1: "IPv4",
   1052                 2: "IPv6",
   1053                 3: "NSAP",
   1054                 4: "HDLC",
   1055                 5: "BBN",
   1056                 6: "IEEE-802",
   1057                 7: "E-163",
   1058                 8: "E-164",
   1059                 9: "F-69",
   1060                 10: "X-121",
   1061                 11: "IPX",
   1062                 12: "Appletalk-802",
   1063                 13: "Decnet4",
   1064                 14: "Vines",
   1065                 15: "E-164-NSAP",
   1066             })]
   1067 
   1068 
   1069 class AVP_0_72 (AVP_FL_NV):
   1070     name = 'ARAP-Zone-Access'
   1071     avpLen = 12
   1072     fields_desc = [
   1073         AVP_FL_NV,
   1074         Enumerated('val', None,
   1075             {
   1076                 1: "Only allow access to default zone",
   1077                 2: "Use zone filter inclusively",
   1078                 3: "Use zone filter exclusively",
   1079             })]
   1080 
   1081 
   1082 class AVP_0_76 (AVP_FL_NV):
   1083     name = 'Prompt'
   1084     avpLen = 12
   1085     fields_desc = [
   1086         AVP_FL_NV,
   1087         Enumerated('val', None, {0: "No Echo", 1: "Echo", })
   1088     ]
   1089 
   1090 
   1091 class AVP_0_261 (AVP_FL_NV):
   1092     name = 'Redirect-Host-Usage'
   1093     avpLen = 12
   1094     fields_desc = [
   1095         AVP_FL_NV,
   1096         Enumerated('val', None,
   1097             {
   1098                 0: "Don't Care",
   1099                 1: "All Session",
   1100                 2: "All Realm",
   1101                 3: "Realm and Application",
   1102                 4: "All Application",
   1103                 5: "All Host",
   1104                 6: "ALL_USER",
   1105             })]
   1106 
   1107 
   1108 class AVP_0_271 (AVP_FL_NV):
   1109     name = 'Session-Server-Failover'
   1110     avpLen = 12
   1111     fields_desc = [
   1112         AVP_FL_NV,
   1113         Enumerated('val', None, 
   1114             {0: "REFUSE_SERVICE", 1: "TRY_AGAIN", 2: "ALLOW_SERVICE", 3: "TRY_AGAIN_ALLOW_SERVICE", })]
   1115 
   1116 
   1117 class AVP_0_273 (AVP_FL_NV):
   1118     name = 'Disconnect-Cause'
   1119     avpLen = 12
   1120     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "REBOOTING", 1: "BUSY", 2: "DO_NOT_WANT_TO_TALK_TO_YOU", })]
   1121 
   1122 
   1123 class AVP_0_274 (AVP_FL_NV):
   1124     name = 'Auth-Request-Type'
   1125     avpLen = 12
   1126     fields_desc = [
   1127         AVP_FL_NV, Enumerated('val', None, {
   1128                 1: "AUTHENTICATE_ONLY", 2: "AUTHORIZE_ONLY", 3: "AUTHORIZE_AUTHENTICATE", })]
   1129 
   1130 
   1131 class AVP_0_277 (AVP_FL_NV):
   1132     name = 'Auth-Session-State'
   1133     avpLen = 12
   1134     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "STATE_MAINTAINED", 1: "NO_STATE_MAINTAINED", })]
   1135 
   1136 
   1137 class AVP_0_285 (AVP_FL_NV):
   1138     name = 'Re-Auth-Request-Type'
   1139     avpLen = 12
   1140     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "AUTHORIZE_ONLY", 1: "AUTHORIZE_AUTHENTICATE", })]
   1141 
   1142 
   1143 class AVP_0_295 (AVP_FL_NV):
   1144     name = 'Termination-Cause'
   1145     avpLen = 12
   1146     fields_desc = [
   1147         AVP_FL_NV,
   1148         Enumerated(
   1149             'val',
   1150             None,
   1151             {
   1152                 1: "DIAMETER_LOGOUT",
   1153                 2: "DIAMETER_SERVICE_NOT_PROVIDED",
   1154                 3: "DIAMETER_BAD_ANSWER",
   1155                 4: "DIAMETER_ADMINISTRATIVE",
   1156                 5: "DIAMETER_LINK_BROKEN",
   1157                 6: "DIAMETER_AUTH_EXPIRED",
   1158                 7: "DIAMETER_USER_MOVED",
   1159                 8: "DIAMETER_SESSION_TIMEOUT",
   1160             })]
   1161 
   1162 
   1163 class AVP_0_345 (AVP_FL_NV):
   1164     name = 'MIP-Algorithm-Type'
   1165     avpLen = 12
   1166     fields_desc = [
   1167         AVP_FL_NV, Enumerated('val', None, {2: "HMAC-SHA-1", })]
   1168 
   1169 
   1170 class AVP_0_346 (AVP_FL_NV):
   1171     name = 'MIP-Replay-Mode'
   1172     avpLen = 12
   1173     fields_desc = [
   1174         AVP_FL_NV, Enumerated('val', None, {1: "None", 2: "Timestamps", 3: "Nonces", })]
   1175 
   1176 
   1177 class AVP_0_375 (AVP_FL_NV):
   1178     name = 'SIP-Server-Assignment-Type'
   1179     avpLen = 12
   1180     fields_desc = [
   1181         AVP_FL_NV,
   1182         Enumerated(
   1183             'val',
   1184             None,
   1185             {
   1186                 0: "NO_ASSIGNMENT",
   1187                 1: "REGISTRATION",
   1188                 2: "RE_REGISTRATION",
   1189                 3: "UNREGISTERED_USER",
   1190                 4: "TIMEOUT_DEREGISTRATION",
   1191                 5: "USER_DEREGISTRATION",
   1192                 6: "TIMEOUT_DEREGISTRATION_STORE_SERVER_NAME",
   1193                 7: "USER_DEREGISTRATION_STORE_SERVER_NAME",
   1194                 8: "ADMINISTRATIVE_DEREGISTRATION",
   1195                 9: "AUTHENTICATION_FAILURE",
   1196                 10: "AUTHENTICATION_TIMEOUT",
   1197                 11: "DEREGISTRATION_TOO_MUCH_DATA",
   1198             })]
   1199 
   1200 
   1201 class AVP_0_377 (AVP_FL_NV):
   1202     name = 'SIP-Authentication-Scheme'
   1203     avpLen = 12
   1204     fields_desc = [
   1205         AVP_FL_NV, Enumerated('val', None, {0: "DIGEST", })]
   1206 
   1207 
   1208 class AVP_0_384 (AVP_FL_NV):
   1209     name = 'SIP-Reason-Code'
   1210     avpLen = 12
   1211     fields_desc = [
   1212         AVP_FL_NV,
   1213         Enumerated(
   1214             'val',
   1215             None,
   1216             {
   1217                 0: "PERMANENT_TERMINATION",
   1218                 1: "NEW_SIP_SERVER_ASSIGNED",
   1219                 2: "SIP_SERVER_CHANGE",
   1220                 3: "REMOVE_SIP_SERVER",
   1221             })]
   1222 
   1223 
   1224 class AVP_0_387 (AVP_FL_NV):
   1225     name = 'SIP-User-Authorization-Type'
   1226     avpLen = 12
   1227     fields_desc = [
   1228         AVP_FL_NV, Enumerated('val', None, {
   1229                 0: "REGISTRATION", 1: "DEREGISTRATION", 2: "REGISTRATION_AND_CAPABILITIES", })]
   1230 
   1231 
   1232 class AVP_0_392 (AVP_FL_NV):
   1233     name = 'SIP-User-Data-Already-Available'
   1234     avpLen = 12
   1235     fields_desc = [
   1236         AVP_FL_NV, Enumerated('val', None, {
   1237                 0: "USER_DATA_NOT_AVAILABLE", 1: "USER_DATA_ALREADY_AVAILABLE", })]
   1238 
   1239 
   1240 class AVP_0_403 (AVP_FL_NV):
   1241     name = 'CHAP-Algorithm'
   1242     avpLen = 12
   1243     fields_desc = [
   1244         AVP_FL_NV, Enumerated('val', None, {5: "CHAP with MD5", })]
   1245 
   1246 
   1247 class AVP_0_406 (AVP_FL_NV):
   1248     name = 'Accounting-Auth-Method'
   1249     avpLen = 12
   1250     fields_desc = [
   1251         AVP_FL_NV, Enumerated('val', None, {
   1252                 1: "PAP", 2: "CHAP", 3: "MS-CHAP-1", 4: "MS-CHAP-2", 5: "EAP", 6: "Undefined", 7: "None", })]
   1253 
   1254 
   1255 class AVP_0_416 (AVP_FL_NV):
   1256     name = 'CC-Request-Type'
   1257     avpLen = 12
   1258     fields_desc = [
   1259         AVP_FL_NV, Enumerated('val', None, {
   1260                 1: "INITIAL_REQUEST", 2: "UPDATE_REQUEST", 3: "TERMINATION_REQUEST", 4: "EVENT_REQUEST", })]
   1261 
   1262 
   1263 class AVP_0_418 (AVP_FL_NV):
   1264     name = 'CC-Session-Failover'
   1265     avpLen = 12
   1266     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "FAILOVER_NOT_SUPPORTED", 1: "FAILOVER_SUPPORTED", })]
   1267 
   1268 
   1269 class AVP_0_422 (AVP_FL_NV):
   1270     name = 'Check-Balance-Result'
   1271     avpLen = 12
   1272     fields_desc = [
   1273         AVP_FL_NV, Enumerated('val', None, {0: "ENOUGH_CREDIT", 1: "NO_CREDIT", })]
   1274 
   1275 
   1276 class AVP_0_426 (AVP_FL_NV):
   1277     name = 'Credit-Control'
   1278     avpLen = 12
   1279     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "CREDIT_AUTHORIZATION", 1: "RE_AUTHORIZATION", })]
   1280 
   1281 
   1282 class AVP_0_427 (AVP_FL_NV):
   1283     name = 'Credit-Control-Failure-Handling'
   1284     avpLen = 12
   1285     fields_desc = [
   1286         AVP_FL_NV, Enumerated('val', None, {
   1287                 0: "TERMINATE", 1: "CONTINUE", 2: "RETRY_AND_TERMINATE", })]
   1288 
   1289 
   1290 class AVP_0_428 (AVP_FL_NV):
   1291     name = 'Direct-Debiting-Failure-Handling'
   1292     avpLen = 12
   1293     fields_desc = [
   1294         AVP_FL_NV, Enumerated('val', None, {0: "TERMINATE_OR_BUFFER", 1: "CONTINUE", })]
   1295 
   1296 
   1297 class AVP_0_433 (AVP_FL_NV):
   1298     name = 'Redirect-Address-Type'
   1299     avpLen = 12
   1300     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "IPV4_ADDRESS", 1: "IPV6_ADDRESS", 2: "URL", 3: "SIP_URI", })]
   1301 
   1302 
   1303 class AVP_0_436 (AVP_FL_NV):
   1304     name = 'Requested-Action'
   1305     avpLen = 12
   1306     fields_desc = [
   1307         AVP_FL_NV, Enumerated('val', None, {
   1308                 0: "DIRECT_DEBITING", 1: "REFUND_ACCOUNT", 2: "CHECK_BALANCE", 3: "PRICE_ENQUIRY", })]
   1309 
   1310 
   1311 class AVP_0_449 (AVP_FL_NV):
   1312     name = 'Final-Unit-Action'
   1313     avpLen = 12
   1314     fields_desc = [AVP_FL_NV, Enumerated('val', None, {0: "TERMINATE", 1: "REDIRECT", 2: "RESTRICT_ACCESS", })]
   1315 
   1316 
   1317 class AVP_0_450 (AVP_FL_NV):
   1318     name = 'Subscription-Id-Type'
   1319     avpLen = 12
   1320     fields_desc = [
   1321         AVP_FL_NV,
   1322         Enumerated(
   1323             'val',
   1324             None,
   1325             {
   1326                 0: "END_USER_E164",
   1327                 1: "END_USER_IMSI",
   1328                 2: "END_USER_SIP_URI",
   1329                 3: "END_USER_NAI",
   1330                 4: "END_USER_PRIVATE",
   1331             })]
   1332 
   1333 
   1334 class AVP_0_452 (AVP_FL_NV):
   1335     name = 'Tariff-Change-Usage'
   1336     avpLen = 12
   1337     fields_desc = [
   1338         AVP_FL_NV, Enumerated('val', None, {
   1339                 0: "UNIT_BEFORE_TARIFF_CHANGE", 1: "UNIT_AFTER_TARIFF_CHANGE", 2: "UNIT_INDETERMINATE", })]
   1340 
   1341 
   1342 class AVP_0_454 (AVP_FL_NV):
   1343     name = 'CC-Unit-Type'
   1344     avpLen = 12
   1345     fields_desc = [
   1346         AVP_FL_NV,
   1347         Enumerated(
   1348             'val',
   1349             None,
   1350             {
   1351                 0: "TIME",
   1352                 1: "MONEY",
   1353                 2: "TOTAL-OCTETS",
   1354                 3: "INPUT-OCTETS",
   1355                 4: "OUTPUT-OCTETS",
   1356                 5: "SERVICE-SPECIFIC-UNITS",
   1357             })]
   1358 
   1359 
   1360 class AVP_0_455 (AVP_FL_NV):
   1361     name = 'Multiple-Services-Indicator'
   1362     avpLen = 12
   1363     fields_desc = [
   1364         AVP_FL_NV, Enumerated('val', None, {
   1365                 0: "MULTIPLE_SERVICES_NOT_SUPPORTED", 1: "MULTIPLE_SERVICES_SUPPORTED", })]
   1366 
   1367 
   1368 class AVP_0_459 (AVP_FL_NV):
   1369     name = 'User-Equipment-Info-Type'
   1370     avpLen = 12
   1371     fields_desc = [
   1372         AVP_FL_NV, Enumerated('val', None, {
   1373                 0: "IMEISV", 1: "MAC", 2: "EUI64", 3: "MODIFIED_EUI64", })]
   1374 
   1375 
   1376 class AVP_0_480 (AVP_FL_NV):
   1377     name = 'Accounting-Record-Type'
   1378     avpLen = 12
   1379     fields_desc = [
   1380         AVP_FL_NV, Enumerated('val', None, {
   1381                 1: "Event Record", 2: "Start Record", 3: "Interim Record", 4: "Stop Record", })]
   1382 
   1383 
   1384 class AVP_0_483 (AVP_FL_NV):
   1385     name = 'Accounting-Realtime-Required'
   1386     avpLen = 12
   1387     fields_desc = [
   1388         AVP_FL_NV, Enumerated('val', None, {
   1389                 0: "Reserved", 1: "DELIVER_AND_GRANT", 2: "GRANT_AND_STORE", 3: "GRANT_AND_LOSE", })]
   1390 
   1391 
   1392 class AVP_0_494 (AVP_FL_NV):
   1393     name = 'MIP6-Auth-Mode'
   1394     avpLen = 12
   1395     fields_desc = [
   1396         AVP_FL_NV, Enumerated('val', None, {0: "Reserved", 1: "IP6_AUTH_MN_AAA", })]
   1397 
   1398 
   1399 class AVP_0_513 (AVP_FL_NV):
   1400     name = 'Protocol'
   1401     avpLen = 12
   1402     fields_desc = [
   1403         AVP_FL_NV, Enumerated('val', None, {
   1404                 1: "ICMP", 2: "IGMP", 4: "IPv4", 6: "TCP", 17: "UDP", 132: "SCTP", })]
   1405 
   1406 
   1407 class AVP_0_514 (AVP_FL_NV):
   1408     name = 'Direction'
   1409     avpLen = 12
   1410     fields_desc = [
   1411         AVP_FL_NV, Enumerated('val', None, {0: "IN", 1: "OUT", 2: "BOTH", })]
   1412 
   1413 
   1414 class AVP_0_517 (AVP_FL_NV):
   1415     name = 'Negated'
   1416     avpLen = 12
   1417     fields_desc = [
   1418         AVP_FL_NV, Enumerated('val', None, {0: "False", 1: "True", })]
   1419 
   1420 
   1421 class AVP_0_534 (AVP_FL_NV):
   1422     name = 'Use-Assigned-Address'
   1423     avpLen = 12
   1424     fields_desc = [
   1425         AVP_FL_NV, Enumerated('val', None, {0: "False", 1: "True", })]
   1426 
   1427 
   1428 class AVP_0_535 (AVP_FL_NV):
   1429     name = 'Diffserv-Code-Point'
   1430     avpLen = 12
   1431     fields_desc = [
   1432         AVP_FL_NV,
   1433         Enumerated(
   1434             'val',
   1435             None,
   1436             {
   1437                 0: "CS0",
   1438                 8: "CS1",
   1439                 10: "AF11",
   1440                 12: "AF12",
   1441                 14: "AF13",
   1442                 16: "CS2",
   1443                 18: "AF21",
   1444                 20: "AF22",
   1445                 22: "AF23",
   1446                 24: "CS3",
   1447                 26: "AF31",
   1448                 28: "AF32",
   1449                 30: "AF33",
   1450                 32: "CS4",
   1451                 34: "AF41",
   1452                 36: "AF42",
   1453                 38: "AF43",
   1454                 40: "CS5",
   1455                 46: "EF_PHB",
   1456                 48: "CS6",
   1457                 56: "CS7",
   1458             })]
   1459 
   1460 
   1461 class AVP_0_536 (AVP_FL_NV):
   1462     name = 'Fragmentation-Flag'
   1463     avpLen = 12
   1464     fields_desc = [
   1465         AVP_FL_NV, Enumerated('val', None, {0: "Don't Fragment", 1: "More Fragments", })]
   1466 
   1467 
   1468 class AVP_0_538 (AVP_FL_NV):
   1469     name = 'IP-Option-Type'
   1470     avpLen = 12
   1471     fields_desc = [
   1472         AVP_FL_NV,
   1473         Enumerated(
   1474             'val',
   1475             None,
   1476             {
   1477                 0: "end_of_list",
   1478                 1: "nop",
   1479                 2: "security",
   1480                 3: "loose_source_route",
   1481                 4: "timestamp",
   1482                 5: "extended_security",
   1483                 6: "commercial_security",
   1484                 7: "record_route",
   1485                 8: "stream_id",
   1486                 9: "strict_source_route",
   1487                 10: "experimental_measurement",
   1488                 11: "mtu_probe",
   1489                 12: "mtu_reply",
   1490                 13: "flow_control",
   1491                 14: "access_control",
   1492                 15: "encode",
   1493                 16: "imi_traffic_descriptor",
   1494                 17: "extended_IP",
   1495                 18: "traceroute",
   1496                 19: "address_extension",
   1497                 20: "router_alert",
   1498                 21: "selective_directed_broadcast_mode",
   1499                 23: "dynamic_packet_state",
   1500                 24: "upstream_multicast_packet",
   1501                 25: "quick_start",
   1502                 30: "rfc4727_experiment",
   1503             })]
   1504 
   1505 
   1506 class AVP_0_541 (AVP_FL_NV):
   1507     name = 'TCP-Option-Type'
   1508     avpLen = 12
   1509     fields_desc = [
   1510         AVP_FL_NV,
   1511         Enumerated(
   1512             'val',
   1513             None,
   1514             {
   1515                 0: "EOL",
   1516                 1: "NOP",
   1517                 2: "MSS",
   1518                 3: "WScale",
   1519                 4: "SAckOK",
   1520                 5: "SAck",
   1521                 8: "Timestamp",
   1522                 14: "AltChkSum",
   1523                 15: "AltChkSumOpt",
   1524                 25: "Mood",
   1525             })]
   1526 
   1527 
   1528 class AVP_0_546 (AVP_FL_NV):
   1529     name = 'ICMP-Type-Number'
   1530     avpLen = 12
   1531     fields_desc = [
   1532         AVP_FL_NV,
   1533         Enumerated(
   1534             'val',
   1535             None,
   1536             {
   1537                 0: "echo-reply",
   1538                 3: "dest-unreach",
   1539                 4: "source-quench",
   1540                 5: "redirect",
   1541                 8: "echo-request",
   1542                 9: "router-advertisement",
   1543                 10: "router-solicitation",
   1544                 11: "time-exceeded",
   1545                 12: "parameter-problem",
   1546                 13: "timestamp-request",
   1547                 14: "timestamp-reply",
   1548                 15: "information-request",
   1549                 16: "information-response",
   1550                 17: "address-mask-request",
   1551                 18: "address-mask-reply",
   1552             })]
   1553 
   1554 
   1555 class AVP_0_547 (AVP_FL_NV):
   1556     name = 'ICMP-Code'
   1557     avpLen = 12
   1558     fields_desc = [
   1559         AVP_FL_NV, Enumerated('val', None, {0: "TBD", })]
   1560 
   1561 
   1562 class AVP_0_570 (AVP_FL_NV):
   1563     name = 'Timezone-Flag'
   1564     avpLen = 12
   1565     fields_desc = [
   1566         AVP_FL_NV, Enumerated('val', None, {0: "UTC", 1: "LOCAL", 2: "OFFSET", })]
   1567 
   1568 
   1569 class AVP_0_575 (AVP_FL_NV):
   1570     name = 'QoS-Semantics'
   1571     avpLen = 12
   1572     fields_desc = [
   1573         AVP_FL_NV,
   1574         Enumerated(
   1575             'val',
   1576             None,
   1577             {
   1578                 0: "QoS_Desired",
   1579                 1: "QoS_Available",
   1580                 2: "QoS_Delivered",
   1581                 3: "Minimum_QoS",
   1582                 4: "QoS_Authorized",
   1583             })]
   1584 
   1585 
   1586 class AVP_10415_500 (AVP_FL_V):
   1587     name = 'Abort-Cause'
   1588     avpLen = 16
   1589     fields_desc = [AVP_FL_V,
   1590                   Enumerated('val',
   1591                              None,
   1592                              {0: "BEARER_RELEASED",
   1593                               1: "INSUFFICIENT_SERVER_RESOURCES",
   1594                               2: "INSUFFICIENT_BEARER_RESOURCES",
   1595                               })]
   1596 
   1597 
   1598 class AVP_10415_511 (AVP_FL_V):
   1599     name = 'Flow-Status'
   1600     avpLen = 16
   1601     fields_desc = [
   1602         AVP_FL_V, Enumerated('val', None, {
   1603                 0: "ENABLED-UPLINK", 1: "ENABLED-DOWNLINK", 2: "ENABLED", 3: "DISABLED", 4: "REMOVED", })]
   1604 
   1605 
   1606 class AVP_10415_512 (AVP_FL_V):
   1607     name = 'Flow-Usage'
   1608     avpLen = 16
   1609     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "NO_INFORMATION", 1: "RTCP", 2: "AF_SIGNALLING", })]
   1610 
   1611 
   1612 class AVP_10415_513 (AVP_FL_V):
   1613     name = 'Specific-Action'
   1614     avpLen = 16
   1615     fields_desc = [
   1616         AVP_FL_V,
   1617         Enumerated(
   1618             'val',
   1619             None,
   1620             {
   1621                 1: "CHARGING_CORRELATION_EXCHANGE",
   1622                 2: "INDICATION_OF_LOSS_OF_BEARER",
   1623                 3: "INDICATION_OF_RECOVERY_OF_BEARER",
   1624                 4: "INDICATION_OF_RELEASE_OF_BEARER",
   1625                 6: "IP-CAN_CHANGE",
   1626                 7: "INDICATION_OF_OUT_OF_CREDIT",
   1627                 8: "INDICATION_OF_SUCCESSFUL_RESOURCES_ALLOCATION",
   1628                 9: "INDICATION_OF_FAILED_RESOURCES_ALLOCATION",
   1629                 10: "INDICATION_OF_LIMITED_PCC_DEPLOYMENT",
   1630                 11: "USAGE_REPORT",
   1631                 12: "ACCESS_NETWORK_INFO_REPORT",
   1632             })]
   1633 
   1634 
   1635 class AVP_10415_520 (AVP_FL_V):
   1636     name = 'Media-Type'
   1637     avpLen = 16
   1638     fields_desc = [AVP_FL_V,
   1639                   Enumerated('val',
   1640                              None,
   1641                              {0: "AUDIO",
   1642                               1: "VIDEO",
   1643                               2: "DATA",
   1644                               3: "APPLICATION",
   1645                               4: "CONTROL",
   1646                               5: "TEXT",
   1647                               6: "MESSAGE",
   1648                               4294967295: "OTHER",
   1649                               })]
   1650 
   1651 
   1652 class AVP_10415_523 (AVP_FL_V):
   1653     name = 'SIP-Forking-Indication'
   1654     avpLen = 16
   1655     fields_desc = [
   1656         AVP_FL_V, Enumerated('val', None, {
   1657                 0: "SINGLE_DIALOGUE", 1: "SEVERAL_DIALOGUES", })]
   1658 
   1659 
   1660 class AVP_10415_527 (AVP_FL_V):
   1661     name = 'Service-Info-Status'
   1662     avpLen = 16
   1663     fields_desc = [
   1664         AVP_FL_V, Enumerated('val', None, {
   1665                 0: "FINAL_SERVICE_INFORMATION", 1: "PRELIMINARY_SERVICE_INFORMATION", })]
   1666 
   1667 
   1668 class AVP_10415_529 (AVP_FL_V):
   1669     name = 'AF-Signalling-Protocol'
   1670     avpLen = 16
   1671     fields_desc = [
   1672         AVP_FL_V, Enumerated('val', None, {0: "NO_INFORMATION", 1: "SIP", })]
   1673 
   1674 
   1675 class AVP_10415_533 (AVP_FL_V):
   1676     name = 'Rx-Request-Type'
   1677     avpLen = 16
   1678     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "INITIAL_REQUEST", 1: "UPDATE_REQUEST", })]
   1679 
   1680 
   1681 class AVP_10415_536 (AVP_FL_V):
   1682     name = 'Required-Access-Info'
   1683     avpLen = 16
   1684     fields_desc = [
   1685         AVP_FL_V, Enumerated('val', None, {0: "USER_LOCATION", 1: "MS_TIME_ZONE", })]
   1686 
   1687 
   1688 class AVP_10415_614 (AVP_FL_V):
   1689     name = 'Server-Assignment-Type'
   1690     avpLen = 16
   1691     fields_desc = [
   1692         AVP_FL_V,
   1693         Enumerated(
   1694             'val',
   1695             None,
   1696             {
   1697                 0: "NO_ASSIGNMENT",
   1698                 1: "REGISTRATION",
   1699                 2: "RE_REGISTRATION",
   1700                 3: "UNREGISTERED_USER",
   1701                 4: "TIMEOUT_DEREGISTRATION",
   1702                 5: "USER_DEREGISTRATION",
   1703                 6: "TIMEOUT_DEREGISTRATION_STORE_SERVER_NAME",
   1704                 7: "USER_DEREGISTRATION_STORE_SERVER_NAME",
   1705                 8: "ADMINISTRATIVE_DEREGISTRATION",
   1706                 9: "AUTHENTICATION_FAILURE",
   1707                 10: "AUTHENTICATION_TIMEOUT",
   1708                 11: "DEREGISTRATION_TOO_MUCH_DATA",
   1709                 12: "AAA_USER_DATA_REQUEST",
   1710                 13: "PGW_UPDATE",
   1711             })]
   1712 
   1713 
   1714 class AVP_10415_616 (AVP_FL_V):
   1715     name = 'Reason-Code'
   1716     avpLen = 16
   1717     fields_desc = [AVP_FL_V,
   1718                    Enumerated('val',
   1719                               None,
   1720                               {0: "PERMANENT_TERMINATION",
   1721                                1: "NEW_SERVER_ASSIGNED",
   1722                                2: "SERVER_CHANGE",
   1723                                3: "REMOVE_S-CSCF",
   1724                                })]
   1725 
   1726 
   1727 class AVP_10415_623 (AVP_FL_V):
   1728     name = 'User-Authorization-Type'
   1729     avpLen = 16
   1730     fields_desc = [
   1731         AVP_FL_V, Enumerated('val', None, {
   1732                 0: "REGISTRATION", 1: "DE_REGISTRATION", 2: "REGISTRATION_AND_CAPABILITIES", })]
   1733 
   1734 
   1735 class AVP_10415_624 (AVP_FL_V):
   1736     name = 'User-Data-Already-Available'
   1737     avpLen = 16
   1738     fields_desc = [
   1739         AVP_FL_V, Enumerated('val', None, {
   1740                 0: "USER_DATA_NOT_AVAILABLE", 1: "USER_DATA_ALREADY_AVAILABLE", })]
   1741 
   1742 
   1743 class AVP_10415_633 (AVP_FL_V):
   1744     name = 'Originating-Request'
   1745     avpLen = 16
   1746     fields_desc = [
   1747         AVP_FL_V, Enumerated('val', None, {0: "ORIGINATING", })]
   1748 
   1749 
   1750 class AVP_10415_638 (AVP_FL_V):
   1751     name = 'Loose-Route-Indication'
   1752     avpLen = 16
   1753     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "LOOSE_ROUTE_NOT_REQUIRED", 1: "LOOSE_ROUTE_REQUIRED", })]
   1754 
   1755 
   1756 class AVP_10415_648 (AVP_FL_V):
   1757     name = 'Multiple-Registration-Indication'
   1758     avpLen = 16
   1759     fields_desc = [
   1760         AVP_FL_V, Enumerated('val', None, {
   1761                 0: "NOT_MULTIPLE_REGISTRATION", 1: "MULTIPLE_REGISTRATION", })]
   1762 
   1763 
   1764 class AVP_10415_650 (AVP_FL_V):
   1765     name = 'Session-Priority'
   1766     avpLen = 16
   1767     fields_desc = [
   1768         AVP_FL_V, Enumerated('val', None, {
   1769                 0: "PRIORITY-0", 1: "PRIORITY-1", 2: "PRIORITY-2", 3: "PRIORITY-3", 4: "PRIORITY-4", })]
   1770 
   1771 
   1772 class AVP_10415_652 (AVP_FL_V):
   1773     name = 'Priviledged-Sender-Indication'
   1774     avpLen = 16
   1775     fields_desc = [
   1776         AVP_FL_V, Enumerated('val', None, {
   1777                 0: "NOT_PRIVILEDGED_SENDER", 1: "PRIVILEDGED_SENDER", })]
   1778 
   1779 
   1780 class AVP_10415_703 (AVP_FL_V):
   1781     name = 'Data-Reference'
   1782     avpLen = 16
   1783     fields_desc = [
   1784         AVP_FL_V,
   1785         Enumerated(
   1786             'val',
   1787             None,
   1788             {
   1789                 0: "RepositoryData",
   1790                 1: "Undefined",
   1791                 2: "Undefined",
   1792                 3: "Undefined",
   1793                 4: "Undefined",
   1794                 5: "Undefined",
   1795                 6: "Undefined",
   1796                 7: "Undefined",
   1797                 8: "Undefined",
   1798                 9: "Undefined",
   1799                 10: "IMSPublicIdentity",
   1800                 11: "IMSUserState",
   1801                 12: "S-CSCFName",
   1802                 13: "InitialFilterCriteria",
   1803                 14: "LocationInformation",
   1804                 15: "UserState",
   1805                 16: "ChargingInformation",
   1806                 17: "MSISDN",
   1807                 18: "PSIActivation",
   1808                 19: "DSAI",
   1809                 20: "Reserved",
   1810                 21: "ServiceLevelTraceInfo",
   1811                 22: "IPAddressSecureBindingInformation",
   1812                 23: "ServicePriorityLevel",
   1813                 24: "SMSRegistrationInfo",
   1814                 25: "UEReachabilityForIP",
   1815                 26: "TADSinformation",
   1816                 27: "STN-SR",
   1817                 28: "UE-SRVCC-Capability",
   1818                 29: "ExtendedPriority",
   1819                 30: "CSRN",
   1820                 31: "ReferenceLocationInformation",
   1821             })]
   1822 
   1823 
   1824 class AVP_10415_705 (AVP_FL_V):
   1825     name = 'Subs-Req-Type'
   1826     avpLen = 16
   1827     fields_desc = [
   1828         AVP_FL_V, Enumerated('val', None, {0: "Subscribe", 1: "Unsubscribe", })]
   1829 
   1830 
   1831 class AVP_10415_706 (AVP_FL_V):
   1832     name = 'Requested-Domain'
   1833     avpLen = 16
   1834     fields_desc = [
   1835         AVP_FL_V, Enumerated('val', None, {0: "CS-Domain", 1: "PS-Domain", })]
   1836 
   1837 
   1838 class AVP_10415_707 (AVP_FL_V):
   1839     name = 'Current-Location'
   1840     avpLen = 16
   1841     fields_desc = [
   1842         AVP_FL_V, Enumerated('val', None, {
   1843                 0: "DoNotNeedInitiateActiveLocationRetrieval", 1: "InitiateActiveLocationRetrieval", })]
   1844 
   1845 
   1846 class AVP_10415_708 (AVP_FL_V):
   1847     name = 'Identity-Set'
   1848     avpLen = 16
   1849     fields_desc = [
   1850         AVP_FL_V,
   1851         Enumerated(
   1852             'val',
   1853             None,
   1854             {
   1855                 0: "ALL_IDENTITIES",
   1856                 1: "REGISTERED_IDENTITIES",
   1857                 2: "IMPLICIT_IDENTITIES",
   1858                 3: "ALIAS_IDENTITIES",
   1859             })]
   1860 
   1861 
   1862 class AVP_10415_710 (AVP_FL_V):
   1863     name = 'Send-Data-Indication'
   1864     avpLen = 16
   1865     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "USER_DATA_NOT_REQUESTED", 1: "USER_DATA_REQUESTED", })]
   1866 
   1867 
   1868 class AVP_10415_712 (AVP_FL_V):
   1869     name = 'One-Time-Notification'
   1870     avpLen = 16
   1871     fields_desc = [
   1872         AVP_FL_V, Enumerated('val', None, {0: "ONE_TIME_NOTIFICATION_REQUESTED", })]
   1873 
   1874 
   1875 class AVP_10415_714 (AVP_FL_V):
   1876     name = 'Serving-Node-Indication'
   1877     avpLen = 16
   1878     fields_desc = [
   1879         AVP_FL_V, Enumerated('val', None, {0: "ONLY_SERVING_NODES_REQUIRED", })]
   1880 
   1881 
   1882 class AVP_10415_717 (AVP_FL_V):
   1883     name = 'Pre-paging-Supported'
   1884     avpLen = 16
   1885     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "PREPAGING_NOT_SUPPORTED", 1: "PREPAGING_SUPPORTED", })]
   1886 
   1887 
   1888 class AVP_10415_718 (AVP_FL_V):
   1889     name = 'Local-Time-Zone-Indication'
   1890     avpLen = 16
   1891     fields_desc = [
   1892         AVP_FL_V, Enumerated('val', None, {
   1893                 0: "ONLY_LOCAL_TIME_ZONE_REQUESTED", 1: "LOCAL_TIME_ZONE_WITH_LOCATION_INFO_REQUESTED", })]
   1894 
   1895 
   1896 class AVP_10415_829 (AVP_FL_V):
   1897     name = 'Role-Of-Node'
   1898     avpLen = 16
   1899     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "HPLMN", 1: "VPLMN", 2: "FORWARDING_ROLE", })]
   1900 
   1901 
   1902 class AVP_10415_862 (AVP_FL_V):
   1903     name = 'Node-Functionality'
   1904     avpLen = 16
   1905     fields_desc = [
   1906         AVP_FL_V,
   1907         Enumerated(
   1908             'val',
   1909             None,
   1910             {
   1911                 0: "S-CSCF",
   1912                 1: "P-CSCF",
   1913                 2: "I-CSCF",
   1914                 5: "BGCF",
   1915                 6: "AS",
   1916                 7: "IBCF",
   1917                 8: "S-GW",
   1918                 9: "P-GW",
   1919                 10: "HSGW",
   1920                 11: "E-CSCF ",
   1921                 12: "MME ",
   1922                 13: "TRF",
   1923                 14: "TF",
   1924                 15: "ATCF",
   1925                 16: "Proxy Function",
   1926                 17: "ePDG",
   1927             })]
   1928 
   1929 
   1930 class AVP_10415_864 (AVP_FL_V):
   1931     name = 'Originator'
   1932     avpLen = 16
   1933     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Calling Party", 1: "Called Party", })]
   1934 
   1935 
   1936 class AVP_10415_867 (AVP_FL_V):
   1937     name = 'PS-Append-Free-Format-Data'
   1938     avpLen = 16
   1939     fields_desc = [
   1940         AVP_FL_V, Enumerated('val', None, {0: "'Append' ", 1: "'Overwrite' ", })]
   1941 
   1942 
   1943 class AVP_10415_870 (AVP_FL_V):
   1944     name = 'Trigger-Type'
   1945     avpLen = 16
   1946     fields_desc = [AVP_FL_V,
   1947         Enumerated('val',
   1948                    None,
   1949                    {1: "CHANGE_IN_SGSN_IP_ADDRESS ",
   1950                     2: "CHANGE_IN_QOS",
   1951                     3: "CHANGE_IN_LOCATION",
   1952                     4: "CHANGE_IN_RAT",
   1953                     5: "CHANGE_IN_UE_TIMEZONE",
   1954                     10: "CHANGEINQOS_TRAFFIC_CLASS",
   1955                     11: "CHANGEINQOS_RELIABILITY_CLASS",
   1956                     12: "CHANGEINQOS_DELAY_CLASS",
   1957                     13: "CHANGEINQOS_PEAK_THROUGHPUT",
   1958                     14: "CHANGEINQOS_PRECEDENCE_CLASS",
   1959                     15: "CHANGEINQOS_MEAN_THROUGHPUT",
   1960                     16: "CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_UPLINK",
   1961                     17: "CHANGEINQOS_MAXIMUM_BIT_RATE_FOR_DOWNLINK",
   1962                     18: "CHANGEINQOS_RESIDUAL_BER",
   1963                     19: "CHANGEINQOS_SDU_ERROR_RATIO",
   1964                     20: "CHANGEINQOS_TRANSFER_DELAY",
   1965                     21: "CHANGEINQOS_TRAFFIC_HANDLING_PRIORITY",
   1966                     22: "CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_UPLINK",
   1967                     23: "CHANGEINQOS_GUARANTEED_BIT_RATE_FOR_DOWNLINK",
   1968                     24: "CHANGEINQOS_APN_AGGREGATE_MAXIMUM_BIT_RATE",
   1969                     30: "CHANGEINLOCATION_MCC",
   1970                     31: "CHANGEINLOCATION_MNC",
   1971                     32: "CHANGEINLOCATION_RAC",
   1972                     33: "CHANGEINLOCATION_LAC",
   1973                     34: "CHANGEINLOCATION_CellId",
   1974                     35: "CHANGEINLOCATION_TAC",
   1975                     36: "CHANGEINLOCATION_ECGI",
   1976                     40: "CHANGE_IN_MEDIA_COMPOSITION",
   1977                     50: "CHANGE_IN_PARTICIPANTS_NMB",
   1978                     51: "CHANGE_IN_ THRSHLD_OF_PARTICIPANTS_NMB",
   1979                     52: "CHANGE_IN_USER_PARTICIPATING_TYPE",
   1980                     60: "CHANGE_IN_SERVICE_CONDITION",
   1981                     61: "CHANGE_IN_SERVING_NODE",
   1982                     70: "CHANGE_IN_USER_CSG_INFORMATION",
   1983                     71: "CHANGE_IN_HYBRID_SUBSCRIBED_USER_CSG_INFORMATION",
   1984                     72: "CHANGE_IN_HYBRID_UNSUBSCRIBED_USER_CSG_INFORMATION",
   1985                     73: "CHANGE_OF_UE_PRESENCE_IN_PRESENCE_REPORTING_AREA",
   1986                     })]
   1987 
   1988 
   1989 class AVP_10415_872 (AVP_FL_V):
   1990     name = 'Reporting-Reason'
   1991     avpLen = 16
   1992     fields_desc = [
   1993         AVP_FL_V,
   1994         Enumerated(
   1995             'val',
   1996             None,
   1997             {
   1998                 0: "THRESHOLD",
   1999                 1: "QHT",
   2000                 2: "FINAL",
   2001                 3: "QUOTA_EXHAUSTED",
   2002                 4: "VALIDITY_TIME",
   2003                 5: "OTHER_QUOTA_TYPE",
   2004                 6: "RATING_CONDITION_CHANGE",
   2005                 7: "FORCED_REAUTHORISATION",
   2006                 8: "POOL_EXHAUSTED",
   2007             })]
   2008 
   2009 
   2010 class AVP_10415_882 (AVP_FL_V):
   2011     name = 'Media-Initiator-Flag'
   2012     avpLen = 16
   2013     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "called party", 1: "calling party", 2: "unknown", })]
   2014 
   2015 
   2016 class AVP_10415_883 (AVP_FL_V):
   2017     name = 'PoC-Server-Role'
   2018     avpLen = 16
   2019     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Participating PoC Server", 1: "Controlling PoC Server", })]
   2020 
   2021 
   2022 class AVP_10415_884 (AVP_FL_V):
   2023     name = 'PoC-Session-Type'
   2024     avpLen = 16
   2025     fields_desc = [
   2026         AVP_FL_V,
   2027         Enumerated(
   2028             'val',
   2029             None,
   2030             {
   2031                 0: "1 to 1 PoC session",
   2032                 1: "Chat PoC group session",
   2033                 2: "Pre-arranged PoC group session",
   2034                 3: "Ad-hoc PoC group session",
   2035             })]
   2036 
   2037 
   2038 class AVP_10415_899 (AVP_FL_V):
   2039     name = 'Address-Type'
   2040     avpLen = 16
   2041     fields_desc = [
   2042         AVP_FL_V,
   2043         Enumerated(
   2044             'val',
   2045             None,
   2046             {
   2047                 0: "e-mail address",
   2048                 1: "MSISDN",
   2049                 2: "IPv4 Address",
   2050                 3: "IPv6 Address",
   2051                 4: "Numeric Shortcode",
   2052                 5: "Alphanumeric Shortcode",
   2053                 6: "Other",
   2054                 7: "IMSI",
   2055             })]
   2056 
   2057 
   2058 class AVP_10415_902 (AVP_FL_V):
   2059     name = 'MBMS-StartStop-Indication'
   2060     avpLen = 16
   2061     fields_desc = [
   2062         AVP_FL_V, Enumerated('val', None, {0: "START", 1: "STOP", 2: "UPDATE", })]
   2063 
   2064 
   2065 class AVP_10415_906 (AVP_FL_V):
   2066     name = 'MBMS-Service-Type'
   2067     avpLen = 16
   2068     fields_desc = [
   2069         AVP_FL_V, Enumerated('val', None, {0: "MULTICAST", 1: "BROADCAST", })]
   2070 
   2071 
   2072 class AVP_10415_907 (AVP_FL_V):
   2073     name = 'MBMS-2G-3G-Indicator'
   2074     avpLen = 16
   2075     fields_desc = [
   2076         AVP_FL_V, Enumerated('val', None, {0: "2G", 1: "3G", 2: "2G-AND-3G", })]
   2077 
   2078 
   2079 class AVP_10415_921 (AVP_FL_V):
   2080     name = 'CN-IP-Multicast-Distribution'
   2081     avpLen = 16
   2082     fields_desc = [
   2083         AVP_FL_V, Enumerated('val', None, {0: "NO-IP-MULTICAST", 1: "IP-MULTICAST", })]
   2084 
   2085 
   2086 class AVP_10415_922 (AVP_FL_V):
   2087     name = 'MBMS-HC-Indicator'
   2088     avpLen = 16
   2089     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "uncompressed-header", 1: "compressed-header", })]
   2090 
   2091 
   2092 class AVP_10415_1000 (AVP_FL_V):
   2093     name = 'Bearer-Usage'
   2094     avpLen = 16
   2095     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "GENERAL", 1: "IMS SIGNALLING", 2: "DEDICATED", })]
   2096 
   2097 
   2098 class AVP_10415_1006 (AVP_FL_V):
   2099     name = 'Event-Trigger'
   2100     avpLen = 16
   2101     fields_desc = [
   2102         AVP_FL_V,
   2103         Enumerated(
   2104             'val',
   2105             None,
   2106             {
   2107                 0: "SGSN_CHANGE",
   2108                 1: "QOS_CHANGE",
   2109                 2: "RAT_CHANGE",
   2110                 3: "TFT_CHANGE",
   2111                 4: "PLMN_CHANGE",
   2112                 5: "LOSS_OF_BEARER",
   2113                 6: "RECOVERY_OF_BEARER",
   2114                 7: "IP-CAN_CHANGE",
   2115                 8: "GW-PCEF-MALFUNCTION",
   2116                 9: "RESOURCES_LIMITATION",
   2117                 10: "MAX_NR_BEARERS_REACHED",
   2118                 11: "QOS_CHANGE_EXCEEDING_AUTHORIZATION",
   2119                 12: "RAI_CHANGE",
   2120                 13: "USER_LOCATION_CHANGE",
   2121                 14: "NO_EVENT_TRIGGERS",
   2122                 15: "OUT_OF_CREDIT",
   2123                 16: "REALLOCATION_OF_CREDIT",
   2124                 17: "REVALIDATION_TIMEOUT",
   2125                 18: "UE_IP_ADDRESS_ALLOCATE",
   2126                 19: "UE_IP_ADDRESS_RELEASE",
   2127                 20: "DEFAULT_EPS_BEARER_QOS_CHANGE",
   2128                 21: "AN_GW_CHANGE",
   2129                 22: "SUCCESSFUL_RESOURCE_ALLOCATION",
   2130                 23: "RESOURCE_MODIFICATION_REQUEST",
   2131                 24: "PGW_TRACE_CONTROL",
   2132                 25: "UE_TIME_ZONE_CHANGE",
   2133                 26: "TAI_CHANGE",
   2134                 27: "ECGI_CHANGE",
   2135                 28: "CHARGING_CORRELATION_EXCHANGE",
   2136                 29: "APN-AMBR_MODIFICATION_FAILURE",
   2137                 30: "USER_CSG_INFORMATION_CHANGE",
   2138                 33: "USAGE_REPORT",
   2139                 34: "DEFAULT-EPS-BEARER-QOS_MODIFICATION_FAILURE",
   2140                 35: "USER_CSG_HYBRID_SUBSCRIBED_INFORMATION_CHANGE",
   2141                 36: "USER_CSG_ HYBRID_UNSUBSCRIBED_INFORMATION_CHANGE",
   2142                 37: "ROUTING_RULE_CHANGE",
   2143                 38: "MAX_MBR_APN_AMBR_CHANGE",
   2144                 39: "APPLICATION_START",
   2145                 40: "APPLICATION_STOP",
   2146                 41: "ADC_REVALIDATION_TIMEOUT",
   2147                 42: "CS_TO_PS_HANDOVER",
   2148                 43: "UE_LOCAL_IP_ADDRESS_CHANGE",
   2149                 45: "ACCESS_NETWORK_INFO_REPORT",
   2150                 100: "TIME_CHANGE",
   2151                 1000: "TFT DELETED",
   2152                 1001: "LOSS OF BEARER",
   2153                 1002: "RECOVERY OF BEARER",
   2154                 1003: "POLICY ENFORCEMENT FAILED",
   2155             })]
   2156 
   2157 
   2158 class AVP_10415_1007 (AVP_FL_V):
   2159     name = 'Metering-Method'
   2160     avpLen = 16
   2161     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "DURATION", 1: "VOLUME", 2: "DURATION_VOLUME", })]
   2162 
   2163 
   2164 class AVP_10415_1008 (AVP_FL_V):
   2165     name = 'Offline'
   2166     avpLen = 16
   2167     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "DISABLE_OFFLINE", 1: "ENABLE_OFFLINE", })]
   2168 
   2169 
   2170 class AVP_10415_1009 (AVP_FL_V):
   2171     name = 'Online'
   2172     avpLen = 16
   2173     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "DISABLE_ONLINE", 1: "ENABLE_ONLINE", })]
   2174 
   2175 
   2176 class AVP_10415_1011 (AVP_FL_V):
   2177     name = 'Reporting-Level'
   2178     avpLen = 16
   2179     fields_desc = [
   2180         AVP_FL_V, Enumerated('val', None, {
   2181                 0: "SERVICE_IDENTIFIER_LEVEL", 1: "RATING_GROUP_LEVEL", 2: "SPONSORED_CONNECTIVITY_LEVEL", })]
   2182 
   2183 
   2184 class AVP_10415_1015 (AVP_FL_V):
   2185     name = 'PDP-Session-Operation'
   2186     avpLen = 16
   2187     fields_desc = [
   2188         AVP_FL_V, Enumerated('val', None, {0: "PDP-SESSION-TERMINATION", })]
   2189 
   2190 
   2191 class AVP_10415_1019 (AVP_FL_V):
   2192     name = 'PCC-Rule-Status'
   2193     avpLen = 16
   2194     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "ACTIVE", 1: "INACTIVE", 2: "TEMPORARY_INACTIVE", })]
   2195 
   2196 
   2197 class AVP_10415_1021 (AVP_FL_V):
   2198     name = 'Bearer-Operation'
   2199     avpLen = 16
   2200     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "TERMINATION", 1: "ESTABLISHMENT", 2: "MODIFICATION", })]
   2201 
   2202 
   2203 class AVP_10415_1023 (AVP_FL_V):
   2204     name = 'Bearer-Control-Mode'
   2205     avpLen = 16
   2206     fields_desc = [
   2207         AVP_FL_V, Enumerated('val', None, {0: "UE_ONLY", 1: "RESERVED", 2: "UE_NW", })]
   2208 
   2209 
   2210 class AVP_10415_1024 (AVP_FL_V):
   2211     name = 'Network-Request-Support'
   2212     avpLen = 16
   2213     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "NETWORK_REQUEST NOT SUPPORTED", 1: "NETWORK_REQUEST SUPPORTED", })]
   2214 
   2215 
   2216 class AVP_10415_1027 (AVP_FL_V):
   2217     name = 'IP-CAN-Type'
   2218     avpLen = 16
   2219     fields_desc = [AVP_FL_V,
   2220                                                      Enumerated('val',
   2221                                                                 None,
   2222                                                                 {0: "3GPP-GPRS",
   2223                                                                  1: "DOCSIS",
   2224                                                                  2: "xDSL",
   2225                                                                  3: "WiMAX",
   2226                                                                  4: "3GPP2",
   2227                                                                  5: "3GPP-EPS",
   2228                                                                  6: "Non-3GPP-EPS",
   2229                                                                  })]
   2230 
   2231 
   2232 class AVP_10415_1028 (AVP_FL_V):
   2233     name = 'QoS-Class-Identifier'
   2234     avpLen = 16
   2235     fields_desc = [
   2236         AVP_FL_V,
   2237         Enumerated(
   2238             'val',
   2239             None,
   2240             {
   2241                 1: "QCI_1",
   2242                 2: "QCI_2",
   2243                 3: "QCI_3",
   2244                 4: "QCI_4",
   2245                 5: "QCI_5",
   2246                 6: "QCI_6",
   2247                 7: "QCI_7",
   2248                 8: "QCI_8",
   2249                 9: "QCI_9",
   2250             })]
   2251 
   2252 
   2253 class AVP_10415_1032 (AVP_FL_V):
   2254     name = 'RAT-Type'
   2255     avpLen = 16
   2256     fields_desc = [AVP_FL_V,
   2257                   Enumerated('val',
   2258                              None,
   2259                              {0: "WLAN",
   2260                               1: "VIRTUAL",
   2261                               1000: "UTRAN",
   2262                               1001: "GERAN",
   2263                               1002: "GAN",
   2264                               1003: "HSPA_EVOLUTION",
   2265                               1004: "EUTRAN",
   2266                               2000: "CDMA2000_1X",
   2267                               2001: "HRPD",
   2268                               2002: "UMB",
   2269                               2003: "EHRPD",
   2270                               })]
   2271 
   2272 
   2273 class AVP_10415_1045 (AVP_FL_V):
   2274     name = 'Session-Release-Cause'
   2275     avpLen = 16
   2276     fields_desc = [
   2277         AVP_FL_V, Enumerated('val', None, {
   2278                 0: "UNSPECIFIED_REASON", 1: "UE_SUBSCRIPTION_REASON", 2: "INSUFFICIENT_SERVER_RESOURCES", })]
   2279 
   2280 
   2281 class AVP_10415_1047 (AVP_FL_V):
   2282     name = 'Pre-emption-Capability'
   2283     avpLen = 16
   2284     fields_desc = [
   2285         AVP_FL_V, Enumerated('val', None, {
   2286                 0: "PRE-EMPTION_CAPABILITY_ENABLED", 1: "PRE-EMPTION_CAPABILITY_DISABLED", })]
   2287 
   2288 
   2289 class AVP_10415_1048 (AVP_FL_V):
   2290     name = 'Pre-emption-Vulnerability'
   2291     avpLen = 16
   2292     fields_desc = [
   2293         AVP_FL_V, Enumerated('val', None, {
   2294                 0: "PRE-EMPTION_VULNERABILITY_ENABLED", 1: "PRE-EMPTION_VULNERABILITY_DISABLED", })]
   2295 
   2296 
   2297 class AVP_10415_1062 (AVP_FL_V):
   2298     name = 'Packet-Filter-Operation'
   2299     avpLen = 16
   2300     fields_desc = [
   2301         AVP_FL_V, Enumerated('val', None, {
   2302                 0: "DELETION", 1: "ADDITION", 2: "MODIFICATION", })]
   2303 
   2304 
   2305 class AVP_10415_1063 (AVP_FL_V):
   2306     name = 'Resource-Allocation-Notification'
   2307     avpLen = 16
   2308     fields_desc = [
   2309         AVP_FL_V, Enumerated('val', None, {0: "ENABLE_NOTIFICATION", })]
   2310 
   2311 
   2312 class AVP_10415_1068 (AVP_FL_V):
   2313     name = 'Usage-Monitoring-Level'
   2314     avpLen = 16
   2315     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "SESSION_LEVEL", 1: "PCC_RULE_LEVEL", 2: "ADC_RULE_LEVEL", })]
   2316 
   2317 
   2318 class AVP_10415_1069 (AVP_FL_V):
   2319     name = 'Usage-Monitoring-Report'
   2320     avpLen = 16
   2321     fields_desc = [
   2322         AVP_FL_V, Enumerated('val', None, {0: "USAGE_MONITORING_REPORT_REQUIRED", })]
   2323 
   2324 
   2325 class AVP_10415_1070 (AVP_FL_V):
   2326     name = 'Usage-Monitoring-Support'
   2327     avpLen = 16
   2328     fields_desc = [
   2329         AVP_FL_V, Enumerated('val', None, {0: "USAGE_MONITORING_DISABLED", })]
   2330 
   2331 
   2332 class AVP_10415_1071 (AVP_FL_V):
   2333     name = 'CSG-Information-Reporting'
   2334     avpLen = 16
   2335     fields_desc = [
   2336         AVP_FL_V,
   2337         Enumerated(
   2338             'val',
   2339             None,
   2340             {
   2341                 0: "CHANGE_CSG_CELL",
   2342                 1: "CHANGE_CSG_SUBSCRIBED_HYBRID_CELL",
   2343                 2: "CHANGE_CSG_UNSUBSCRIBED_HYBRID_CELL",
   2344             })]
   2345 
   2346 
   2347 class AVP_10415_1072 (AVP_FL_V):
   2348     name = 'Packet-Filter-Usage'
   2349     avpLen = 16
   2350     fields_desc = [
   2351         AVP_FL_V, Enumerated('val', None, {1: "SEND_TO_UE", })]
   2352 
   2353 
   2354 class AVP_10415_1073 (AVP_FL_V):
   2355     name = 'Charging-Correlation-Indicator'
   2356     avpLen = 16
   2357     fields_desc = [
   2358         AVP_FL_V, Enumerated('val', None, {0: "CHARGING_IDENTIFIER_REQUIRED", })]
   2359 
   2360 
   2361 class AVP_10415_1080 (AVP_FL_V):
   2362     name = 'Flow-Direction'
   2363     avpLen = 16
   2364     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "UNSPECIFIED", 1: "DOWNLINK", 2: "UPLINK", 3: "BIDIRECTIONAL", })]
   2365 
   2366 
   2367 class AVP_10415_1086 (AVP_FL_V):
   2368     name = 'Redirect-Support'
   2369     avpLen = 16
   2370     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "REDIRECTION_DISABLED", 1: "REDIRECTION_ENABLED", })]
   2371 
   2372 
   2373 class AVP_10415_1099 (AVP_FL_V):
   2374     name = 'PS-to-CS-Session-Continuity'
   2375     avpLen = 16
   2376     fields_desc = [
   2377         AVP_FL_V, Enumerated('val', None, {0: "VIDEO_PS2CS_CONT_CANDIDATE", })]
   2378 
   2379 
   2380 class AVP_10415_1204 (AVP_FL_V):
   2381     name = 'Type-Number'
   2382     avpLen = 16
   2383     fields_desc = [
   2384         AVP_FL_V, Enumerated('val', None, {0: "TBC", })]
   2385 
   2386 
   2387 class AVP_10415_1208 (AVP_FL_V):
   2388     name = 'Addressee-Type'
   2389     avpLen = 16
   2390     fields_desc = [
   2391         AVP_FL_V, Enumerated('val', None, {0: "TO ", 1: "CC ", 2: "BCC", })]
   2392 
   2393 
   2394 class AVP_10415_1209 (AVP_FL_V):
   2395     name = 'Priority'
   2396     avpLen = 16
   2397     fields_desc = [
   2398         AVP_FL_V, Enumerated('val', None, {
   2399                 0: "Low", 1: "Normal", 2: "High", })]
   2400 
   2401 
   2402 class AVP_10415_1211 (AVP_FL_V):
   2403     name = 'Message-Type'
   2404     avpLen = 16
   2405     fields_desc = [
   2406         AVP_FL_V,
   2407         Enumerated(
   2408             'val',
   2409             None,
   2410             {
   2411                 1: "m-send-req",
   2412                 2: "m-send-conf",
   2413                 3: "m-notification-ind ",
   2414                 4: "m-notifyresp-ind ",
   2415                 5: "m-retrieve-conf ",
   2416                 6: "m-acknowledge-ind ",
   2417                 7: "m-delivery-ind ",
   2418                 8: "m-read-rec-ind ",
   2419                 9: "m-read-orig-ind",
   2420                 10: "m-forward-req ",
   2421                 11: "m-forward-conf ",
   2422                 12: "m-mbox-store-conf",
   2423                 13: "m-mbox-view-conf ",
   2424                 14: "m-mbox-upload-conf ",
   2425                 15: "m-mbox-delete-conf ",
   2426             })]
   2427 
   2428 
   2429 class AVP_10415_1214 (AVP_FL_V):
   2430     name = 'Class-Identifier'
   2431     avpLen = 16
   2432     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Personal", 1: "Advertisement", 2: "Informational", 3: "Auto", })]
   2433 
   2434 
   2435 class AVP_10415_1216 (AVP_FL_V):
   2436     name = 'Delivery-Report-Requested'
   2437     avpLen = 16
   2438     fields_desc = [
   2439         AVP_FL_V, Enumerated('val', None, {0: "No", 1: "Yes", })]
   2440 
   2441 
   2442 class AVP_10415_1217 (AVP_FL_V):
   2443     name = 'Adaptations'
   2444     avpLen = 16
   2445     fields_desc = [
   2446         AVP_FL_V, Enumerated('val', None, {0: "Yes", 1: "No", })]
   2447 
   2448 
   2449 class AVP_10415_1220 (AVP_FL_V):
   2450     name = 'Content-Class'
   2451     avpLen = 16
   2452     fields_desc = [
   2453         AVP_FL_V,
   2454         Enumerated(
   2455             'val',
   2456             None,
   2457             {
   2458                 0: "text ",
   2459                 1: "image-basic ",
   2460                 2: "image-rich ",
   2461                 3: "video-basic",
   2462                 4: "video-rich ",
   2463                 5: "megapixel ",
   2464                 6: "content-basic ",
   2465                 7: "content-rich ",
   2466             })]
   2467 
   2468 
   2469 class AVP_10415_1221 (AVP_FL_V):
   2470     name = 'DRM-Content'
   2471     avpLen = 16
   2472     fields_desc = [
   2473         AVP_FL_V, Enumerated('val', None, {0: "No", 1: "Yes", })]
   2474 
   2475 
   2476 class AVP_10415_1222 (AVP_FL_V):
   2477     name = 'Read-Reply-Report-Requested'
   2478     avpLen = 16
   2479     fields_desc = [
   2480         AVP_FL_V, Enumerated('val', None, {0: "No", 1: "Yes", })]
   2481 
   2482 
   2483 class AVP_10415_1224 (AVP_FL_V):
   2484     name = 'File-Repair-Supported'
   2485     avpLen = 16
   2486     fields_desc = [
   2487         AVP_FL_V, Enumerated('val', None, {
   2488                 0: "Forwarding not pending", 1: "Forwarding pending", 2: "NOT_SUPPORTED", })]
   2489 
   2490 
   2491 class AVP_10415_1225 (AVP_FL_V):
   2492     name = 'MBMS-User-Service-Type'
   2493     avpLen = 16
   2494     fields_desc = [
   2495         AVP_FL_V, Enumerated('val', None, {1: "DOWNLOAD", 2: "STREAMING", })]
   2496 
   2497 
   2498 class AVP_10415_1247 (AVP_FL_V):
   2499     name = 'PDP-Context-Type'
   2500     avpLen = 16
   2501     fields_desc = [
   2502         AVP_FL_V, Enumerated('val', None, {0: "Primary", 1: "Secondary", })]
   2503 
   2504 
   2505 class AVP_10415_1248 (AVP_FL_V):
   2506     name = 'MMBox-Storage-Requested'
   2507     avpLen = 16
   2508     fields_desc = [
   2509         AVP_FL_V, Enumerated('val', None, {0: "No", 1: "Yes", })]
   2510 
   2511 
   2512 class AVP_10415_1254 (AVP_FL_V):
   2513     name = 'PoC-User-Role-info-Units'
   2514     avpLen = 16
   2515     fields_desc = [
   2516         AVP_FL_V, Enumerated('val', None, {
   2517                 1: "Moderator", 2: "Dispatcher", 3: "Session-Owner", 4: "Session-Participant", })]
   2518 
   2519 
   2520 class AVP_10415_1259 (AVP_FL_V):
   2521     name = 'Participant-Access-Priority'
   2522     avpLen = 16
   2523     fields_desc = [
   2524         AVP_FL_V,
   2525         Enumerated(
   2526             'val',
   2527             None,
   2528             {
   2529                 1: "Pre-emptive priority: ",
   2530                 2: "High priority: Lower than Pre-emptive priority",
   2531                 3: "Normal priority: Normal level. Lower than High priority",
   2532                 4: "Low priority: Lowest level priority",
   2533             })]
   2534 
   2535 
   2536 class AVP_10415_1261 (AVP_FL_V):
   2537     name = 'PoC-Change-Condition'
   2538     avpLen = 16
   2539     fields_desc = [
   2540         AVP_FL_V,
   2541         Enumerated(
   2542             'val',
   2543             None,
   2544             {
   2545                 0: "ServiceChange",
   2546                 1: "VolumeLimit",
   2547                 2: "TimeLimit",
   2548                 3: "NumberofTalkBurstLimit",
   2549                 4: "NumberofActiveParticipants",
   2550             })]
   2551 
   2552 
   2553 class AVP_10415_1268 (AVP_FL_V):
   2554     name = 'Envelope-Reporting'
   2555     avpLen = 16
   2556     fields_desc = [
   2557         AVP_FL_V,
   2558         Enumerated(
   2559             'val',
   2560             None,
   2561             {
   2562                 0: "DO_NOT_REPORT_ENVELOPES",
   2563                 1: "REPORT_ENVELOPES",
   2564                 2: "REPORT_ENVELOPES_WITH_VOLUME",
   2565                 3: "REPORT_ENVELOPES_WITH_EVENTS",
   2566                 4: "REPORT_ENVELOPES_WITH_VOLUME_AND_EVENTS",
   2567             })]
   2568 
   2569 
   2570 class AVP_10415_1271 (AVP_FL_V):
   2571     name = 'Time-Quota-Type'
   2572     avpLen = 16
   2573     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "DISCRETE_TIME_PERIOD", 1: "CONTINUOUS_TIME_PERIOD", })]
   2574 
   2575 
   2576 class AVP_10415_1277 (AVP_FL_V):
   2577     name = 'PoC-Session-Initiation-Type'
   2578     avpLen = 16
   2579     fields_desc = [
   2580         AVP_FL_V, Enumerated('val', None, {0: "Pre-established", 1: "On-demand", })]
   2581 
   2582 
   2583 class AVP_10415_1279 (AVP_FL_V):
   2584     name = 'User-Participating-Type'
   2585     avpLen = 16
   2586     fields_desc = [
   2587         AVP_FL_V, Enumerated('val', None, {
   2588                 0: "Normal", 1: "NW PoC Box", 2: "UE PoC Box", })]
   2589 
   2590 
   2591 class AVP_10415_1417 (AVP_FL_V):
   2592     name = 'Network-Access-Mode'
   2593     avpLen = 16
   2594     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "PACKET_AND_CIRCUIT", 1: "Reserved", 2: "ONLY_PACKET", })]
   2595 
   2596 
   2597 class AVP_10415_1420 (AVP_FL_V):
   2598     name = 'Cancellation-Type'
   2599     avpLen = 16
   2600     fields_desc = [
   2601         AVP_FL_V,
   2602         Enumerated(
   2603             'val',
   2604             None,
   2605             {
   2606                 0: "MME_UPDATE_PROCEDURE",
   2607                 1: "SGSN_UPDATE_PROCEDURE",
   2608                 2: "SUBSCRIPTION_WITHDRAWAL",
   2609                 3: "UPDATE_PROCEDURE_IWF",
   2610                 4: "INITIAL_ATTACH_PROCEDURE",
   2611             })]
   2612 
   2613 
   2614 class AVP_10415_1424 (AVP_FL_V):
   2615     name = 'Subscriber-Status'
   2616     avpLen = 16
   2617     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "SERVICE_GRANTED", 1: "OPERATOR_DETERMINED_BARRING", })]
   2618 
   2619 
   2620 class AVP_10415_1428 (AVP_FL_V):
   2621     name = 'All-APN-Configurations-Included-Indicator'
   2622     avpLen = 16
   2623     fields_desc = [
   2624         AVP_FL_V, Enumerated('val', None, {0: "ALL_APN_CONFIGURATIONS_INCLUDED", })]
   2625 
   2626 
   2627 class AVP_10415_1432 (AVP_FL_V):
   2628     name = 'VPLMN-Dynamic-Address-Allowed'
   2629     avpLen = 16
   2630     fields_desc = [
   2631         AVP_FL_V, Enumerated('val', None, {0: "NOTALLOWED", 1: "ALLOWED", })]
   2632 
   2633 
   2634 class AVP_10415_1434 (AVP_FL_V):
   2635     name = 'Alert-Reason'
   2636     avpLen = 16
   2637     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "UE_PRESENT", 1: "UE_MEMORY_AVAILABLE", })]
   2638 
   2639 
   2640 class AVP_10415_1438 (AVP_FL_V):
   2641     name = 'PDN-GW-Allocation-Type'
   2642     avpLen = 16
   2643     fields_desc = [
   2644         AVP_FL_V, Enumerated('val', None, {0: "STATIC", 1: "DYNAMIC", })]
   2645 
   2646 
   2647 class AVP_10415_1445 (AVP_FL_V):
   2648     name = 'Equipment-Status'
   2649     avpLen = 16
   2650     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "WHITELISTED", 1: "BLACKLISTED", 2: "GREYLISTED", })]
   2651 
   2652 
   2653 class AVP_10415_1456 (AVP_FL_V):
   2654     name = 'PDN-Type'
   2655     avpLen = 16
   2656     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "IPv4", 1: "IPv6", 2: "IPv4v6", 3: "IPv4_OR_IPv6", })]
   2657 
   2658 
   2659 class AVP_10415_1457 (AVP_FL_V):
   2660     name = 'Roaming-Restricted-Due-To-Unsupported-Feature'
   2661     avpLen = 16
   2662     fields_desc = [
   2663         AVP_FL_V, Enumerated('val', None, {0: "Roaming-Restricted-Due-To-Unsupported-Feature", })]
   2664 
   2665 
   2666 class AVP_10415_1462 (AVP_FL_V):
   2667     name = 'Trace-Depth'
   2668     avpLen = 16
   2669     fields_desc = [AVP_FL_V,
   2670                    Enumerated('val',
   2671                               None,
   2672                               {0: "Minimum",
   2673                                1: "Medium",
   2674                                2: "Maximum",
   2675                                3: "MinimumWithoutVendorSpecificExtension",
   2676                                4: "MediumWithoutVendorSpecificExtension",
   2677                                5: "MaximumWithoutVendorSpecificExtension",
   2678                                })]
   2679 
   2680 
   2681 class AVP_10415_1468 (AVP_FL_V):
   2682     name = 'Complete-Data-List-Included-Indicator'
   2683     avpLen = 16
   2684     fields_desc = [
   2685         AVP_FL_V, Enumerated('val', None, {0: "ALL_PDP_CONTEXTS_INCLUDED", })]
   2686 
   2687 
   2688 class AVP_10415_1478 (AVP_FL_V):
   2689     name = 'Notification-To-UE-User'
   2690     avpLen = 16
   2691     fields_desc = [
   2692         AVP_FL_V,
   2693         Enumerated(
   2694             'val',
   2695             None,
   2696             {
   2697                 0: "NOTIFY_LOCATION_ALLOWED",
   2698                 1: "NOTIFYANDVERIFY_LOCATION_ALLOWED_IF_NO_RESPONSE",
   2699                 2: "NOTIFYANDVERIFY_LOCATION_NOT_ALLOWED_IF_NO_RESPONSE",
   2700                 3: "LOCATION_NOT_ALLOWED",
   2701             })]
   2702 
   2703 
   2704 class AVP_10415_1481 (AVP_FL_V):
   2705     name = 'GMLC-Restriction'
   2706     avpLen = 16
   2707     fields_desc = [
   2708         AVP_FL_V, Enumerated('val', None, {0: "GMLC_LIST", 1: "HOME_COUNTRY", })]
   2709 
   2710 
   2711 class AVP_10415_1482 (AVP_FL_V):
   2712     name = 'PLMN-Client'
   2713     avpLen = 16
   2714     fields_desc = [AVP_FL_V,
   2715                   Enumerated('val',
   2716                              None,
   2717                              {0: "BROADCAST_SERVICE",
   2718                               1: "O_AND_M_HPLMN",
   2719                               2: "O_AND_M_VPLMN",
   2720                               3: "ANONYMOUS_LOCATION",
   2721                               4: "TARGET_UE_SUBSCRIBED_SERVICE",
   2722                               })]
   2723 
   2724 
   2725 class AVP_10415_1491 (AVP_FL_V):
   2726     name = 'ICS-Indicator'
   2727     avpLen = 16
   2728     fields_desc = [
   2729         AVP_FL_V, Enumerated('val', None, {0: "FALSE", 1: "TRUE", })]
   2730 
   2731 
   2732 class AVP_10415_1492 (AVP_FL_V):
   2733     name = 'IMS-Voice-Over-PS-Sessions-Supported'
   2734     avpLen = 16
   2735     fields_desc = [
   2736         AVP_FL_V, Enumerated('val', None, {0: "NOT_SUPPORTED", 1: "SUPPORTED", })]
   2737 
   2738 
   2739 class AVP_10415_1493 (AVP_FL_V):
   2740     name = 'Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions'
   2741     avpLen = 16
   2742     fields_desc = [
   2743         AVP_FL_V, Enumerated('val', None, {0: "NOT_SUPPORTED", 1: "SUPPORTED", })]
   2744 
   2745 
   2746 class AVP_10415_1499 (AVP_FL_V):
   2747     name = 'User-State'
   2748     avpLen = 16
   2749     fields_desc = [AVP_FL_V,
   2750                    Enumerated('val',
   2751                               None,
   2752                               {0: "DETACHED",
   2753                                1: "ATTACHED_NOT_REACHABLE_FOR_PAGING",
   2754                                2: "ATTACHED_REACHABLE_FOR_PAGING",
   2755                                3: "CONNECTED_NOT_REACHABLE_FOR_PAGING",
   2756                                4: "CONNECTED_REACHABLE_FOR_PAGING",
   2757                                5: "NETWORK_DETERMINED_NOT_REACHABLE",
   2758                                })]
   2759 
   2760 
   2761 class AVP_10415_1501 (AVP_FL_V):
   2762     name = 'Non-3GPP-IP-Access'
   2763     avpLen = 16
   2764     fields_desc = [
   2765         AVP_FL_V, Enumerated('val', None, {
   2766                 0: "NON_3GPP_SUBSCRIPTION_ALLOWED", 1: "NON_3GPP_SUBSCRIPTION_BARRED", })]
   2767 
   2768 
   2769 class AVP_10415_1502 (AVP_FL_V):
   2770     name = 'Non-3GPP-IP-Access-APN'
   2771     avpLen = 16
   2772     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "NON_3GPP_APNS_ENABLE", 1: "NON_3GPP_APNS_DISABLE", })]
   2773 
   2774 
   2775 class AVP_10415_1503 (AVP_FL_V):
   2776     name = 'AN-Trusted'
   2777     avpLen = 16
   2778     fields_desc = [
   2779         AVP_FL_V, Enumerated('val', None, {0: "TRUSTED", 1: "UNTRUSTED", })]
   2780 
   2781 
   2782 class AVP_10415_1515 (AVP_FL_V):
   2783     name = 'Trust-Relationship-Update'
   2784     avpLen = 16
   2785     fields_desc = [
   2786         AVP_FL_V, Enumerated('val', None, {0: "TBC", })]
   2787 
   2788 
   2789 class AVP_10415_1519 (AVP_FL_V):
   2790     name = 'Transport-Access-Type'
   2791     avpLen = 16
   2792     fields_desc = [
   2793         AVP_FL_V, Enumerated('val', None, {0: "BBF", })]
   2794 
   2795 
   2796 class AVP_10415_1610 (AVP_FL_V):
   2797     name = 'Current-Location-Retrieved'
   2798     avpLen = 16
   2799     fields_desc = [
   2800         AVP_FL_V, Enumerated('val', None, {0: "ACTIVE-LOCATION-RETRIEVAL", })]
   2801 
   2802 
   2803 class AVP_10415_1613 (AVP_FL_V):
   2804     name = 'SIPTO-Permission'
   2805     avpLen = 16
   2806     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "SIPTO_ALLOWED", 1: "SIPTO_NOTALLOWED", })]
   2807 
   2808 
   2809 class AVP_10415_1614 (AVP_FL_V):
   2810     name = 'Error-Diagnostic'
   2811     avpLen = 16
   2812     fields_desc = [
   2813         AVP_FL_V,
   2814         Enumerated(
   2815             'val',
   2816             None,
   2817             {
   2818                 0: "GPRS_DATA_SUBSCRIBED",
   2819                 1: "NO_GPRS_DATA_SUBSCRIBED",
   2820                 2: "ODB-ALL-APN",
   2821                 3: "ODB-HPLMN-APN",
   2822                 4: "ODB-VPLMN-APN",
   2823             })]
   2824 
   2825 
   2826 class AVP_10415_1615 (AVP_FL_V):
   2827     name = 'UE-SRVCC-Capability'
   2828     avpLen = 16
   2829     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "UE-SRVCC-NOT-SUPPORTED", 1: "UE-SRVCC-SUPPORTED", })]
   2830 
   2831 
   2832 class AVP_10415_1617 (AVP_FL_V):
   2833     name = 'VPLMN-LIPA-Allowed'
   2834     avpLen = 16
   2835     fields_desc = [
   2836         AVP_FL_V, Enumerated('val', None, {0: "LIPA-NOTALLOWED", 1: "LIPA-ALLOWED", })]
   2837 
   2838 
   2839 class AVP_10415_1618 (AVP_FL_V):
   2840     name = 'LIPA-Permission'
   2841     avpLen = 16
   2842     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "LIPA-PROHIBITED", 1: "LIPA-ONLY", 2: "LIPA-CONDITIONAL", })]
   2843 
   2844 
   2845 class AVP_10415_1623 (AVP_FL_V):
   2846     name = 'Job-Type'
   2847     avpLen = 16
   2848     fields_desc = [AVP_FL_V,
   2849     Enumerated('val',
   2850                None,
   2851                {0: "Immediate-MDT-only",
   2852                 1: "Logged-MDT-only",
   2853                 2: "Trace-only",
   2854                 3: "Immediate-MDT-and-Trace",
   2855                 4: "RLF-reports-only",
   2856                 })]
   2857 
   2858 
   2859 class AVP_10415_1627 (AVP_FL_V):
   2860     name = 'Report-Interval'
   2861     avpLen = 16
   2862     fields_desc = [
   2863         AVP_FL_V,
   2864         Enumerated(
   2865             'val',
   2866             None,
   2867             {
   2868                 0: "UMTS_250_ms",
   2869                 1: "UMTS_500_ms",
   2870                 2: "UMTS_1000_ms",
   2871                 3: "UMTS_2000_ms",
   2872                 4: "UMTS_3000_ms",
   2873                 5: "UMTS_4000_ms",
   2874                 6: "UMTS_6000_ms",
   2875                 7: "UMTS_8000_ms",
   2876                 8: "UMTS_12000_ms",
   2877                 9: "UMTS_16000_ms",
   2878                 10: "UMTS_20000_ms",
   2879                 11: "UMTS_24000_ms",
   2880                 12: "UMTS_28000_ms",
   2881                 13: "UMTS_32000_ms",
   2882                 14: "UMTS_64000_ms",
   2883                 15: "LTE_120_ms",
   2884                 16: "LTE_240_ms",
   2885                 17: "LTE_480_ms",
   2886                 18: "LTE_640_ms",
   2887                 19: "LTE_1024_ms",
   2888                 20: "LTE_2048_ms",
   2889                 21: "LTE_5120_ms",
   2890                 22: "LTE_10240_ms",
   2891                 23: "LTE_60000_ms",
   2892                 24: "LTE_360000_ms",
   2893                 25: "LTE_720000_ms",
   2894                 26: "LTE_1800000_ms",
   2895                 27: "LTE_3600000_ms",
   2896             })]
   2897 
   2898 
   2899 class AVP_10415_1628 (AVP_FL_V):
   2900     name = 'Report-Amount'
   2901     avpLen = 16
   2902     fields_desc = [
   2903         AVP_FL_V, Enumerated('val', None, {
   2904                 0: "1", 1: "2", 2: "4", 3: "8", 4: "16", 5: "32", 6: "64", 7: "infinity", })]
   2905 
   2906 
   2907 class AVP_10415_1631 (AVP_FL_V):
   2908     name = 'Logging-Interval'
   2909     avpLen = 16
   2910     fields_desc = [
   2911         AVP_FL_V,
   2912         Enumerated(
   2913             'val',
   2914             None,
   2915             {
   2916                 0: "1.28",
   2917                 1: "2.56",
   2918                 2: "5.12",
   2919                 3: "10.24",
   2920                 4: "20.48",
   2921                 5: "30.72",
   2922                 6: "40.96",
   2923                 7: "61.44",
   2924             })]
   2925 
   2926 
   2927 class AVP_10415_1632 (AVP_FL_V):
   2928     name = 'Logging-Duration'
   2929     avpLen = 16
   2930     fields_desc = [
   2931         AVP_FL_V, Enumerated('val', None, {
   2932                 0: "600_sec", 1: "1200_sec", 2: "2400_sec", 3: "3600_sec", 4: "5400_sec", 5: "7200_sec", })]
   2933 
   2934 
   2935 class AVP_10415_1633 (AVP_FL_V):
   2936     name = 'Relay-Node-Indicator'
   2937     avpLen = 16
   2938     fields_desc = [
   2939         AVP_FL_V, Enumerated('val', None, {0: "NOT_RELAY_NODE", 1: "RELAY_NODE", })]
   2940 
   2941 
   2942 class AVP_10415_1634 (AVP_FL_V):
   2943     name = 'MDT-User-Consent'
   2944     avpLen = 16
   2945     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "CONSENT_NOT_GIVEN", 1: "CONSENT_GIVEN", })]
   2946 
   2947 
   2948 class AVP_10415_1636 (AVP_FL_V):
   2949     name = 'Subscribed-VSRVCC'
   2950     avpLen = 16
   2951     fields_desc = [
   2952         AVP_FL_V, Enumerated('val', None, {0: "VSRVCC_SUBSCRIBED", })]
   2953 
   2954 
   2955 class AVP_10415_1648 (AVP_FL_V):
   2956     name = 'SMS-Register-Request'
   2957     avpLen = 16
   2958     fields_desc = [
   2959         AVP_FL_V, Enumerated('val', None, {
   2960                 0: "SMS_REGISTRATION_REQUIRED", 1: "SMS_REGISTRATION_NOT_PREFERRED", 2: "NO_PREFERENCE", })]
   2961 
   2962 
   2963 class AVP_10415_1650 (AVP_FL_V):
   2964     name = 'Daylight-Saving-Time'
   2965     avpLen = 16
   2966     fields_desc = [
   2967         AVP_FL_V, Enumerated('val', None, {
   2968                 0: "NO_ADJUSTMENT", 1: "PLUS_ONE_HOUR_ADJUSTMENT", 2: "PLUS_TWO_HOURS_ADJUSTMENT", })]
   2969 
   2970 
   2971 class AVP_10415_2006 (AVP_FL_V):
   2972     name = 'Interface-Type'
   2973     avpLen = 16
   2974     fields_desc = [
   2975         AVP_FL_V,
   2976         Enumerated(
   2977             'val',
   2978             None,
   2979             {
   2980                 0: "Unknown",
   2981                 1: "MOBILE_ORIGINATING",
   2982                 2: "MOBILE_TERMINATING",
   2983                 3: "APPLICATION_ORIGINATING",
   2984                 4: "APPLICATION_TERMINATION",
   2985             })]
   2986 
   2987 
   2988 class AVP_10415_2007 (AVP_FL_V):
   2989     name = 'SM-Message-Type'
   2990     avpLen = 16
   2991     fields_desc = [
   2992         AVP_FL_V, Enumerated('val', None, {0: "SUBMISSION", })]
   2993 
   2994 
   2995 class AVP_10415_2011 (AVP_FL_V):
   2996     name = 'Reply-Path-Requested'
   2997     avpLen = 16
   2998     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "No Reply Path Set", 1: "Reply path Set", })]
   2999 
   3000 
   3001 class AVP_10415_2016 (AVP_FL_V):
   3002     name = 'SMS-Node'
   3003     avpLen = 16
   3004     fields_desc = [
   3005         AVP_FL_V, Enumerated('val', None, {
   3006                 0: "SMS Router", 1: "IP-SM-GW", 2: "SMS Router and IP-SM-GW", 3: "SMS-SC", })]
   3007 
   3008 
   3009 class AVP_10415_2025 (AVP_FL_V):
   3010     name = 'PoC-Event-Type'
   3011     avpLen = 16
   3012     fields_desc = [
   3013         AVP_FL_V,
   3014         Enumerated(
   3015             'val',
   3016             None,
   3017             {
   3018                 0: "Normal;",
   3019                 1: "Instant Ppersonal Aalert event;",
   3020                 2: "PoC Group Advertisement event;",
   3021                 3: "Early Ssession Setting-up event;",
   3022                 4: "PoC Talk Burst",
   3023             })]
   3024 
   3025 
   3026 class AVP_10415_2029 (AVP_FL_V):
   3027     name = 'SM-Service-Type'
   3028     avpLen = 16
   3029     fields_desc = [
   3030         AVP_FL_V,
   3031         Enumerated(
   3032             'val',
   3033             None,
   3034             {
   3035                 0: "VAS4SMS Short Message content processing",
   3036                 1: "VAS4SMS Short Message forwarding",
   3037                 2: "VAS4SMS Short Message Forwarding multiple subscriptions ",
   3038                 3: "VAS4SMS Short Message filtering ",
   3039                 4: "VAS4SMS Short Message receipt",
   3040                 5: "VAS4SMS Short Message Network Storage ",
   3041                 6: "VAS4SMS Short Message to multiple destinations",
   3042                 7: "VAS4SMS Short Message Virtual Private Network (VPN)",
   3043                 8: "VAS4SMS Short Message Auto Reply",
   3044                 9: "VAS4SMS Short Message Personal Signature",
   3045                 10: "VAS4SMS Short Message Deferred Delivery ",
   3046             })]
   3047 
   3048 
   3049 class AVP_10415_2033 (AVP_FL_V):
   3050     name = 'Subscriber-Role'
   3051     avpLen = 16
   3052     fields_desc = [
   3053         AVP_FL_V, Enumerated('val', None, {0: "Originating", 1: "Terminating", })]
   3054 
   3055 
   3056 class AVP_10415_2036 (AVP_FL_V):
   3057     name = 'SDP-Type'
   3058     avpLen = 16
   3059     fields_desc = [
   3060         AVP_FL_V, Enumerated('val', None, {0: "SDP Offer", 1: "SDP Answer", })]
   3061 
   3062 
   3063 class AVP_10415_2047 (AVP_FL_V):
   3064     name = 'Serving-Node-Type'
   3065     avpLen = 16
   3066     fields_desc = [
   3067         AVP_FL_V, Enumerated('val', None, {
   3068                 0: "SGSN", 1: "PMIPSGW", 2: "GTPSGW", 3: "ePDG", 4: "hSGW", 5: "MME", 6: "TWAN", })]
   3069 
   3070 
   3071 class AVP_10415_2049 (AVP_FL_V):
   3072     name = 'Participant-Action-Type'
   3073     avpLen = 16
   3074     fields_desc = [
   3075         AVP_FL_V, Enumerated('val', None, {
   3076                 0: "CREATE_CONF", 1: "JOIN_CONF", 2: "INVITE_INTO_CONF", 3: "QUIT_CONF", })]
   3077 
   3078 
   3079 class AVP_10415_2051 (AVP_FL_V):
   3080     name = 'Dynamic-Address-Flag'
   3081     avpLen = 16
   3082     fields_desc = [
   3083         AVP_FL_V, Enumerated('val', None, {0: "Static", 1: "Dynamic", })]
   3084 
   3085 
   3086 class AVP_10415_2065 (AVP_FL_V):
   3087     name = 'SGW-Change'
   3088     avpLen = 16
   3089     fields_desc = [
   3090         AVP_FL_V, Enumerated('val', None, {0: "ACR_Start_NOT_due_to_SGW_Change", })]
   3091 
   3092 
   3093 class AVP_10415_2066 (AVP_FL_V):
   3094     name = 'Charging-Characteristics-Selection-Mode'
   3095     avpLen = 16
   3096     fields_desc = [
   3097         AVP_FL_V,
   3098         Enumerated(
   3099             'val',
   3100             None,
   3101             {
   3102                 0: "Serving-Node-Supplied",
   3103                 1: "Subscription-specific",
   3104                 2: "APN-specific",
   3105                 3: "Home-Default",
   3106                 4: "Roaming-Default",
   3107                 5: "Visiting-Default",
   3108             })]
   3109 
   3110 
   3111 class AVP_10415_2068 (AVP_FL_V):
   3112     name = 'Dynamic-Address-Flag-Extension'
   3113     avpLen = 16
   3114     fields_desc = [
   3115         AVP_FL_V, Enumerated('val', None, {0: "Static", 1: "Dynamic", })]
   3116 
   3117 
   3118 class AVP_10415_2118 (AVP_FL_V):
   3119     name = 'Charge-Reason-Code'
   3120     avpLen = 16
   3121     fields_desc = [
   3122         AVP_FL_V,
   3123         Enumerated(
   3124             'val',
   3125             None,
   3126             {
   3127                 0: "UNKNOWN",
   3128                 1: "USAGE",
   3129                 2: "COMMUNICATION-ATTEMPT-CHARGE",
   3130                 3: "SETUP-CHARGE",
   3131                 4: "ADD-ON-CHARGE",
   3132             })]
   3133 
   3134 
   3135 class AVP_10415_2203 (AVP_FL_V):
   3136     name = 'Subsession-Operation'
   3137     avpLen = 16
   3138     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "TERMINATION", 1: "ESTABLISHMENT", 2: "MODIFICATION", })]
   3139 
   3140 
   3141 class AVP_10415_2204 (AVP_FL_V):
   3142     name = 'Multiple-BBERF-Action'
   3143     avpLen = 16
   3144     fields_desc = [
   3145         AVP_FL_V, Enumerated('val', None, {0: "ESTABLISHMENT", 1: "TERMINATION", })]
   3146 
   3147 
   3148 class AVP_10415_2206 (AVP_FL_V):
   3149     name = 'DRA-Deployment'
   3150     avpLen = 16
   3151     fields_desc = [
   3152         AVP_FL_V, Enumerated('val', None, {0: "DRA_Deployed", })]
   3153 
   3154 
   3155 class AVP_10415_2208 (AVP_FL_V):
   3156     name = 'DRA-Binding'
   3157     avpLen = 16
   3158     fields_desc = [
   3159         AVP_FL_V, Enumerated('val', None, {0: "DRA_BINDING_DELETION", })]
   3160 
   3161 
   3162 class AVP_10415_2303 (AVP_FL_V):
   3163     name = 'Online-Charging-Flag'
   3164     avpLen = 16
   3165     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "ECF address not provided", 1: "ECF address provided", })]
   3166 
   3167 
   3168 class AVP_10415_2308 (AVP_FL_V):
   3169     name = 'IMSI-Unauthenticated-Flag'
   3170     avpLen = 16
   3171     fields_desc = [
   3172         AVP_FL_V, Enumerated('val', None, {0: "Authenticated", 1: "Unauthenticated", })]
   3173 
   3174 
   3175 class AVP_10415_2310 (AVP_FL_V):
   3176     name = 'AoC-Format'
   3177     avpLen = 16
   3178     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "MONETARY", 1: "NON_MONETARY", 2: "CAI", })]
   3179 
   3180 
   3181 class AVP_10415_2312 (AVP_FL_V):
   3182     name = 'AoC-Service-Obligatory-Type'
   3183     avpLen = 16
   3184     fields_desc = [
   3185         AVP_FL_V, Enumerated('val', None, {0: "NON_BINDING", 1: "BINDING", })]
   3186 
   3187 
   3188 class AVP_10415_2313 (AVP_FL_V):
   3189     name = 'AoC-Service-Type'
   3190     avpLen = 16
   3191     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "NONE", 1: "AOC-S", 2: "AOC-D", 3: "AOC-E", })]
   3192 
   3193 
   3194 class AVP_10415_2317 (AVP_FL_V):
   3195     name = 'CSG-Access-Mode'
   3196     avpLen = 16
   3197     fields_desc = [
   3198         AVP_FL_V, Enumerated('val', None, {0: "Closed mode", 1: "Hybrid Mode", })]
   3199 
   3200 
   3201 class AVP_10415_2318 (AVP_FL_V):
   3202     name = 'CSG-Membership-Indication'
   3203     avpLen = 16
   3204     fields_desc = [
   3205         AVP_FL_V, Enumerated('val', None, {0: "Not CSG member", 1: "CSG Member  ", })]
   3206 
   3207 
   3208 class AVP_10415_2322 (AVP_FL_V):
   3209     name = 'IMS-Emergency-Indicator'
   3210     avpLen = 16
   3211     fields_desc = [
   3212         AVP_FL_V, Enumerated('val', None, {0: "Non Emergency", 1: "Emergency", })]
   3213 
   3214 
   3215 class AVP_10415_2323 (AVP_FL_V):
   3216     name = 'MBMS-Charged-Party'
   3217     avpLen = 16
   3218     fields_desc = [
   3219         AVP_FL_V, Enumerated('val', None, {0: "Content Provider", 1: "Subscriber", })]
   3220 
   3221 
   3222 class AVP_10415_2500 (AVP_FL_V):
   3223     name = 'SLg-Location-Type'
   3224     avpLen = 16
   3225     fields_desc = [
   3226         AVP_FL_V,
   3227         Enumerated(
   3228             'val',
   3229             None,
   3230             {
   3231                 0: "CURRENT_LOCATION",
   3232                 1: "CURRENT_OR_LAST_KNOWN_LOCATION",
   3233                 2: "INITIAL_LOCATION",
   3234                 3: "ACTIVATE_DEFERRED_LOCATION",
   3235                 4: "CANCEL_DEFERRED_LOCATION",
   3236                 5: "NOTIFICATION_VERIFICATION_ONLY",
   3237             })]
   3238 
   3239 
   3240 class AVP_10415_2507 (AVP_FL_V):
   3241     name = 'Vertical-Requested'
   3242     avpLen = 16
   3243     fields_desc = [
   3244         AVP_FL_V, Enumerated('val', None, {
   3245                 0: "VERTICAL_COORDINATE_IS_NOT REQUESTED", 1: "VERTICAL_COORDINATE_IS_REQUESTED", })]
   3246 
   3247 
   3248 class AVP_10415_2508 (AVP_FL_V):
   3249     name = 'Velocity-Requested'
   3250     avpLen = 16
   3251     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "VELOCITY_IS_NOT_REQUESTED", 1: "BEST VELOCITY_IS_REQUESTED", })]
   3252 
   3253 
   3254 class AVP_10415_2509 (AVP_FL_V):
   3255     name = 'Response-Time'
   3256     avpLen = 16
   3257     fields_desc = [
   3258         AVP_FL_V, Enumerated('val', None, {0: "LOW_DELAY", 1: "DELAY_TOLERANT", })]
   3259 
   3260 
   3261 class AVP_10415_2512 (AVP_FL_V):
   3262     name = 'LCS-Privacy-Check'
   3263     avpLen = 16
   3264     fields_desc = [
   3265         AVP_FL_V,
   3266         Enumerated(
   3267             'val',
   3268             None,
   3269             {
   3270                 0: "ALLOWED_WITHOUT_NOTIFICATION",
   3271                 1: "ALLOWED_WITH_NOTIFICATION",
   3272                 2: "ALLOWED_IF_NO_RESPONSE",
   3273                 3: "RESTRICTED_IF_NO_RESPONSE",
   3274                 4: "NOT_ALLOWED",
   3275             })]
   3276 
   3277 
   3278 class AVP_10415_2513 (AVP_FL_V):
   3279     name = 'Accuracy-Fulfilment-Indicator'
   3280     avpLen = 16
   3281     fields_desc = [
   3282         AVP_FL_V, Enumerated('val', None, {
   3283                 0: "REQUESTED_ACCURACY_FULFILLED", 1: "REQUESTED_ACCURACY_NOT_FULFILLED", })]
   3284 
   3285 
   3286 class AVP_10415_2518 (AVP_FL_V):
   3287     name = 'Location-Event'
   3288     avpLen = 16
   3289     fields_desc = [
   3290         AVP_FL_V,
   3291         Enumerated(
   3292             'val',
   3293             None,
   3294             {
   3295                 0: "EMERGENCY_CALL_ORIGINATION",
   3296                 1: "EMERGENCY_CALL_RELEASE",
   3297                 2: "MO_LR",
   3298                 3: "EMERGENCY_CALL_HANDOVER",
   3299             })]
   3300 
   3301 
   3302 class AVP_10415_2519 (AVP_FL_V):
   3303     name = 'Pseudonym-Indicator'
   3304     avpLen = 16
   3305     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "PSEUDONYM_NOT_REQUESTED", 1: "PSEUDONYM_REQUESTED", })]
   3306 
   3307 
   3308 class AVP_10415_2523 (AVP_FL_V):
   3309     name = 'LCS-QoS-Class'
   3310     avpLen = 16
   3311     fields_desc = [
   3312         AVP_FL_V, Enumerated('val', None, {0: "ASSURED", 1: "BEST EFFORT", })]
   3313 
   3314 
   3315 class AVP_10415_2538 (AVP_FL_V):
   3316     name = 'Occurrence-Info'
   3317     avpLen = 16
   3318     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "ONE_TIME_EVENT", 1: "MULTIPLE_TIME_EVENT", })]
   3319 
   3320 
   3321 class AVP_10415_2550 (AVP_FL_V):
   3322     name = 'Periodic-Location-Support-Indicator'
   3323     avpLen = 16
   3324     fields_desc = [
   3325         AVP_FL_V, Enumerated('val', None, {0: "NOT_SUPPORTED", 1: "SUPPORTED", })]
   3326 
   3327 
   3328 class AVP_10415_2551 (AVP_FL_V):
   3329     name = 'Prioritized-List-Indicator'
   3330     avpLen = 16
   3331     fields_desc = [
   3332         AVP_FL_V, Enumerated('val', None, {0: "NOT_PRIORITIZED", 1: "PRIORITIZED", })]
   3333 
   3334 
   3335 class AVP_10415_2602 (AVP_FL_V):
   3336     name = 'Low-Priority-Indicator'
   3337     avpLen = 16
   3338     fields_desc = [
   3339         AVP_FL_V, Enumerated('val', None, {0: "NO", })]
   3340 
   3341 
   3342 class AVP_10415_2604 (AVP_FL_V):
   3343     name = 'Local-GW-Inserted-Indication'
   3344     avpLen = 16
   3345     fields_desc = [
   3346         AVP_FL_V, Enumerated('val', None, {
   3347                 0: "Local GW Not Inserted", 1: "Local GW Inserted", })]
   3348 
   3349 
   3350 class AVP_10415_2605 (AVP_FL_V):
   3351     name = 'Transcoder-Inserted-Indication'
   3352     avpLen = 16
   3353     fields_desc = [
   3354         AVP_FL_V, Enumerated('val', None, {
   3355                 0: "Transcoder Not Inserted", 1: "Transcoder Inserted", })]
   3356 
   3357 
   3358 class AVP_10415_2702 (AVP_FL_V):
   3359     name = 'AS-Code'
   3360     avpLen = 16
   3361     fields_desc = [
   3362         AVP_FL_V, Enumerated('val', None, {
   3363                 0: "4xx;", 1: "5xx;", 2: "Timeout", })]
   3364 
   3365 
   3366 class AVP_10415_2704 (AVP_FL_V):
   3367     name = 'NNI-Type'
   3368     avpLen = 16
   3369     fields_desc = [
   3370         AVP_FL_V, Enumerated('val', None, {
   3371                 0: "non-roaming", 1: "roaming without loopback", 2: "roaming with loopback", })]
   3372 
   3373 
   3374 class AVP_10415_2706 (AVP_FL_V):
   3375     name = 'Relationship-Mode'
   3376     avpLen = 16
   3377     fields_desc = [
   3378         AVP_FL_V, Enumerated('val', None, {0: "trusted", 1: "non-trusted", })]
   3379 
   3380 
   3381 class AVP_10415_2707 (AVP_FL_V):
   3382     name = 'Session-Direction'
   3383     avpLen = 16
   3384     fields_desc = [
   3385         AVP_FL_V, Enumerated('val', None, {0: "inbound", })]
   3386 
   3387 
   3388 class AVP_10415_2710 (AVP_FL_V):
   3389     name = 'Access-Transfer-Type'
   3390     avpLen = 16
   3391     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "PS to CS Transfer", 1: "CS to PS Transfer", })]
   3392 
   3393 
   3394 class AVP_10415_2717 (AVP_FL_V):
   3395     name = 'TAD-Identifier'
   3396     avpLen = 16
   3397     fields_desc = [
   3398         AVP_FL_V, Enumerated('val', None, {0: "CS", 1: "PS", })]
   3399 
   3400 
   3401 class AVP_10415_2809 (AVP_FL_V):
   3402     name = 'Mute-Notification'
   3403     avpLen = 16
   3404     fields_desc = [
   3405         AVP_FL_V, Enumerated('val', None, {0: "MUTE_REQUIRED", })]
   3406 
   3407 
   3408 class AVP_10415_2811 (AVP_FL_V):
   3409     name = 'AN-GW-Status'
   3410     avpLen = 16
   3411     fields_desc = [
   3412         AVP_FL_V, Enumerated('val', None, {0: "AN_GW_FAILED", })]
   3413 
   3414 
   3415 class AVP_10415_2904 (AVP_FL_V):
   3416     name = 'SL-Request-Type'
   3417     avpLen = 16
   3418     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "INITIAL_REQUEST", 1: "INTERMEDIATE_REQUEST", })]
   3419 
   3420 
   3421 class AVP_10415_3407 (AVP_FL_V):
   3422     name = 'SM-Device-Trigger-Indicator'
   3423     avpLen = 16
   3424     fields_desc = [
   3425         AVP_FL_V, Enumerated('val', None, {0: "Not DeviceTrigger ", 1: "Device Trigger", })]
   3426 
   3427 
   3428 class AVP_10415_3415 (AVP_FL_V):
   3429     name = 'Forwarding-Pending'
   3430     avpLen = 16
   3431     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Forwarding not pending", 1: "Forwarding pending", })]
   3432 
   3433 
   3434 class AVP_10415_3421 (AVP_FL_V):
   3435     name = 'CN-Operator-Selection-Entity'
   3436     avpLen = 16
   3437     fields_desc = [
   3438         AVP_FL_V,
   3439         Enumerated(
   3440             'val',
   3441             None,
   3442             {
   3443                 0: "The Serving Network has been selected by the UE",
   3444                 1: "The Serving Network has been selected by the network",
   3445             })]
   3446 
   3447 
   3448 class AVP_10415_3428 (AVP_FL_V):
   3449     name = 'Coverage-Status'
   3450     avpLen = 16
   3451     fields_desc = [
   3452         AVP_FL_V, Enumerated('val', None, {0: "Out of coverage", 1: "In coverage", })]
   3453 
   3454 
   3455 class AVP_10415_3438 (AVP_FL_V):
   3456     name = 'Role-Of-ProSe-Function'
   3457     avpLen = 16
   3458     fields_desc = [
   3459         AVP_FL_V, Enumerated('val', None, {0: "HPLMN", 1: "VPLMN", })]
   3460 
   3461 
   3462 class AVP_10415_3442 (AVP_FL_V):
   3463     name = 'ProSe-Direct-Discovery-Model'
   3464     avpLen = 16
   3465     fields_desc = [
   3466         AVP_FL_V, Enumerated('val', None, {0: "Model A", 1: "Model B", })]
   3467 
   3468 
   3469 class AVP_10415_3443 (AVP_FL_V):
   3470     name = 'ProSe-Event-Type'
   3471     avpLen = 16
   3472     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Annoucing", 1: "Monitoring", 2: "Match Report", })]
   3473 
   3474 
   3475 class AVP_10415_3445 (AVP_FL_V):
   3476     name = 'ProSe-Functionality'
   3477     avpLen = 16
   3478     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Direct discovery", 1: "EPC-level discovery", })]
   3479 
   3480 
   3481 class AVP_10415_3448 (AVP_FL_V):
   3482     name = 'ProSe-Range-Class'
   3483     avpLen = 16
   3484     fields_desc = [
   3485         AVP_FL_V, Enumerated('val', None, {
   3486                 0: "Reserved", 1: "50 m", 2: "100 m", 3: "200 m", 4: "500 m", 5: "1000 m", })]
   3487 
   3488 
   3489 class AVP_10415_3449 (AVP_FL_V):
   3490     name = 'ProSe-Reason-For-Cancellation'
   3491     avpLen = 16
   3492     fields_desc = [
   3493         AVP_FL_V, Enumerated('val', None, {
   3494                 0: "Proximity Alert sent", 1: "Time expired with no renewal", })]
   3495 
   3496 
   3497 class AVP_10415_3451 (AVP_FL_V):
   3498     name = 'ProSe-Role-Of-UE'
   3499     avpLen = 16
   3500     fields_desc = [AVP_FL_V, Enumerated('val', None, {0: "Announcing UE", 1: "Monitoring UE", 2: "Requestor UE", })]
   3501 
   3502 
   3503 class AVP_10415_3454 (AVP_FL_V):
   3504     name = 'Proximity-Alert-Indication'
   3505     avpLen = 16
   3506     fields_desc = [
   3507         AVP_FL_V, Enumerated('val', None, {0: "Alert", 1: "No Alert", })]
   3508 
   3509 
   3510 # Remaining AVPs (which do not need to be declared as classes)
   3511 ##############################################################
   3512 
   3513 # In AvpDefDict dictionary, the first level key is the 'AVP vendor' and the second level key is the 'AVP code'
   3514 # Each tupple then defines the AVP name, the Scapy class and the default flags
   3515 AvpDefDict = {
   3516     0: {
   3517         1: ('User-Name', AVPNV_StrLenField, 64),
   3518         2: ('User-Password', AVPNV_OctetString, 64),
   3519         5: ('NAS-Port', AVPNV_Unsigned32, 64),
   3520         6: ('Service-Type', AVP_0_6, 64),
   3521         7: ('Framed-Protocol', AVP_0_7, 64),
   3522         9: ('Framed-IP-Netmask', AVPNV_OctetString, 64),
   3523         10: ('Framed-Routing', AVP_0_10, 64),
   3524         11: ('Filter-Id', AVPNV_StrLenField, 64),
   3525         12: ('Framed-MTU', AVPNV_Unsigned32, 64),
   3526         13: ('Framed-Compression', AVP_0_13, 64),
   3527         15: ('Login-Service', AVP_0_15, 64),
   3528         16: ('Login-TCP-Port', AVPNV_Unsigned32, 64),
   3529         18: ('Reply-Message', AVPNV_StrLenField, 64),
   3530         19: ('Callback-Number', AVPNV_StrLenField, 64),
   3531         20: ('Callback-Id', AVPNV_StrLenField, 64),
   3532         22: ('Framed-Route', AVPNV_StrLenField, 64),
   3533         23: ('Framed-IPX-Network', AVPNV_Unsigned32, 64),
   3534         25: ('Class', AVPNV_OctetString, 64),
   3535         27: ('Session-Timeout', AVPNV_Unsigned32, 64),
   3536         28: ('Idle-Timeout', AVPNV_Unsigned32, 64),
   3537         30: ('Called-Station-Id', AVPNV_StrLenField, 64),
   3538         31: ('Calling-Station-Id', AVPNV_StrLenField, 64),
   3539         33: ('Proxy-State', AVPNV_OctetString, 64),
   3540         34: ('Login-LAT-Service', AVPNV_OctetString, 64),
   3541         35: ('Login-LAT-Node', AVPNV_OctetString, 64),
   3542         36: ('Login-LAT-Group', AVPNV_OctetString, 64),
   3543         37: ('Framed-Appletalk-Link', AVPNV_Unsigned32, 64),
   3544         38: ('Framed-Appletalk-Network', AVPNV_Unsigned32, 64),
   3545         39: ('Framed-Appletalk-Zone', AVPNV_OctetString, 64),
   3546         41: ('Acct-Delay-Time', AVPNV_Unsigned32, 64),
   3547         44: ('Acct-Session-Id', AVPNV_OctetString, 64),
   3548         45: ('Acct-Authentic', AVP_0_45, 64),
   3549         46: ('Acct-Session-Time', AVPNV_Unsigned32, 64),
   3550         50: ('Acct-Multi-Session-Id', AVPNV_StrLenField, 64),
   3551         51: ('Acct-Link-Count', AVPNV_Unsigned32, 64),
   3552         55: ('Event-Timestamp', AVPNV_Time, 64),
   3553         60: ('CHAP-Challenge', AVPNV_OctetString, 64),
   3554         61: ('NAS-Port-Type', AVP_0_61, 64),
   3555         62: ('Port-Limit', AVPNV_Unsigned32, 64),
   3556         63: ('Login-LAT-Port', AVPNV_OctetString, 64),
   3557         64: ('Tunnel-Type', AVP_0_64, 64),
   3558         65: ('Tunnel-Medium-Type', AVP_0_65, 64),
   3559         66: ('Tunnel-Client-Endpoint', AVPNV_StrLenField, 64),
   3560         67: ('Tunnel-Server-Endpoint', AVPNV_StrLenField, 64),
   3561         68: ('Acct-Tunnel-Connection', AVPNV_OctetString, 64),
   3562         69: ('Tunnel-Password', AVPNV_OctetString, 64),
   3563         70: ('ARAP-Password', AVPNV_OctetString, 64),
   3564         71: ('ARAP-Features', AVPNV_OctetString, 64),
   3565         72: ('ARAP-Zone-Access', AVP_0_72, 64),
   3566         73: ('ARAP-Security', AVPNV_Unsigned32, 64),
   3567         74: ('ARAP-Security-Data', AVPNV_OctetString, 64),
   3568         75: ('Password-Retry', AVPNV_Unsigned32, 64),
   3569         76: ('Prompt', AVP_0_76, 64),
   3570         77: ('Connect-Info', AVPNV_StrLenField, 64),
   3571         78: ('Configuration-Token', AVPNV_OctetString, 64),
   3572         81: ('Tunnel-Private-Group-Id', AVPNV_OctetString, 64),
   3573         82: ('Tunnel-Assignment-Id', AVPNV_OctetString, 64),
   3574         83: ('Tunnel-Preference', AVPNV_Unsigned32, 64),
   3575         84: ('ARAP-Challenge-Response', AVPNV_OctetString, 64),
   3576         85: ('Acct-Interim-Interval', AVPNV_Unsigned32, 64),
   3577         86: ('Acct-Tunnel-Packets-Lost', AVPNV_Unsigned32, 64),
   3578         87: ('NAS-Port-Id', AVPNV_StrLenField, 64),
   3579         88: ('Framed-Pool', AVPNV_OctetString, 64),
   3580         89: ('Chargeable-User-Identity', AVPNV_OctetString, 64),
   3581         90: ('Tunnel-Client-Auth-Id', AVPNV_StrLenField, 64),
   3582         91: ('Tunnel-Server-Auth-Id', AVPNV_StrLenField, 64),
   3583         94: ('Originating-Line-Info', AVPNV_OctetString, 64),
   3584         96: ('Framed-Interface-Id', AVPNV_Unsigned64, 64),
   3585         97: ('Framed-IPv6-Prefix', AVPNV_OctetString, 64),
   3586         99: ('Framed-IPv6-Route', AVPNV_StrLenField, 64),
   3587         100: ('Framed-IPv6-Pool', AVPNV_OctetString, 64),
   3588         102: ('EAP-Key-Name', AVPNV_OctetString, 64),
   3589         104: ('Digest-Realm', AVPNV_StrLenField, 64),
   3590         110: ('Digest-Qop', AVPNV_StrLenField, 64),
   3591         111: ('Digest-Algorithm', AVPNV_StrLenField, 64),
   3592         121: ('Digest-HA1', AVPNV_OctetString, 64),
   3593         124: ('MIP6-Feature-Vector', AVPNV_Unsigned64, 64),
   3594         125: ('MIP6-Home-Link-Prefix', AVPNV_OctetString, 64),
   3595         257: ('Host-IP-Address', AVPNV_Address, 64),
   3596         258: ('Auth-Application-Id', AVP_0_258, 64),
   3597         259: ('Acct-Application-Id', AVPNV_Unsigned32, 64),
   3598         260: ('Vendor-Specific-Application-Id', AVPNV_Grouped, 64),
   3599         261: ('Redirect-Host-Usage', AVP_0_261, 64),
   3600         262: ('Redirect-Max-Cache-Time', AVPNV_Unsigned32, 64),
   3601         263: ('Session-Id', AVPNV_StrLenField, 64),
   3602         264: ('Origin-Host', AVPNV_StrLenField, 64),
   3603         265: ('Supported-Vendor-Id', AVPNV_Unsigned32, 64),
   3604         266: ('Vendor-Id', AVP_0_266, 64),
   3605         267: ('Firmware-Revision', AVPNV_Unsigned32, 0),
   3606         268: ('Result-Code', AVP_0_268, 64),
   3607         269: ('Product-Name', AVPNV_StrLenField, 0),
   3608         270: ('Session-Binding', AVPNV_Unsigned32, 64),
   3609         271: ('Session-Server-Failover', AVP_0_271, 64),
   3610         272: ('Multi-Round-Time-Out', AVPNV_Unsigned32, 64),
   3611         273: ('Disconnect-Cause', AVP_0_273, 64),
   3612         274: ('Auth-Request-Type', AVP_0_274, 64),
   3613         276: ('Auth-Grace-Period', AVPNV_Unsigned32, 64),
   3614         277: ('Auth-Session-State', AVP_0_277, 64),
   3615         278: ('Origin-State-Id', AVPNV_Unsigned32, 64),
   3616         279: ('Failed-AVP', AVPNV_Grouped, 64),
   3617         280: ('Proxy-Host', AVPNV_StrLenField, 64),
   3618         281: ('Error-Message', AVPNV_StrLenField, 0),
   3619         282: ('Route-Record', AVPNV_StrLenField, 64),
   3620         283: ('Destination-Realm', AVPNV_StrLenField, 64),
   3621         284: ('Proxy-Info', AVPNV_Grouped, 64),
   3622         285: ('Re-Auth-Request-Type', AVP_0_285, 64),
   3623         287: ('Accounting-Sub-Session-Id', AVPNV_Unsigned64, 64),
   3624         291: ('Authorization-Lifetime', AVPNV_Unsigned32, 64),
   3625         292: ('Redirect-Host', AVPNV_StrLenField, 64),
   3626         293: ('Destination-Host', AVPNV_StrLenField, 64),
   3627         294: ('Error-Reporting-Host', AVPNV_StrLenField, 0),
   3628         295: ('Termination-Cause', AVP_0_295, 64),
   3629         296: ('Origin-Realm', AVPNV_StrLenField, 64),
   3630         297: ('Experimental-Result', AVPNV_Grouped, 64),
   3631         298: ('Experimental-Result-Code', AVP_0_298, 64),
   3632         299: ('Inband-Security-Id', AVPNV_Unsigned32, 64),
   3633         318: ('MIP-FA-to-HA-SPI', AVPNV_Unsigned32, 64),
   3634         319: ('MIP-FA-to-MN-SPI', AVPNV_Unsigned32, 64),
   3635         320: ('MIP-Reg-Request', AVPNV_OctetString, 64),
   3636         321: ('MIP-Reg-Reply', AVPNV_OctetString, 64),
   3637         322: ('MIP-MN-AAA-Auth', AVPNV_Grouped, 64),
   3638         323: ('MIP-HA-to-FA-SPI', AVPNV_Unsigned32, 64),
   3639         325: ('MIP-MN-to-FA-MSA', AVPNV_Grouped, 64),
   3640         326: ('MIP-FA-to-MN-MSA', AVPNV_Grouped, 64),
   3641         328: ('MIP-FA-to-HA-MSA', AVPNV_Grouped, 64),
   3642         329: ('MIP-HA-to-FA-MSA', AVPNV_Grouped, 64),
   3643         331: ('MIP-MN-to-HA-MSA', AVPNV_Grouped, 64),
   3644         332: ('MIP-HA-to-MN-MSA', AVPNV_Grouped, 64),
   3645         333: ('MIP-Mobile-Node-Address', AVPNV_Address, 64),
   3646         334: ('MIP-Home-Agent-Address', AVPNV_Address, 64),
   3647         335: ('MIP-Nonce', AVPNV_OctetString, 64),
   3648         336: ('MIP-Candidate-Home-Agent-Host', AVPNV_StrLenField, 64),
   3649         337: ('MIP-Feature-Vector', AVPNV_Unsigned32, 64),
   3650         338: ('MIP-Auth-Input-Data-Length', AVPNV_Unsigned32, 64),
   3651         339: ('MIP-Authenticator-Length', AVPNV_Unsigned32, 64),
   3652         340: ('MIP-Authenticator-Offset', AVPNV_Unsigned32, 64),
   3653         341: ('MIP-MN-AAA-SPI', AVPNV_Unsigned32, 64),
   3654         342: ('MIP-Filter-Rule', AVPNV_IPFilterRule, 64),
   3655         343: ('MIP-Session-Key', AVPNV_OctetString, 64),
   3656         344: ('MIP-FA-Challenge', AVPNV_OctetString, 64),
   3657         345: ('MIP-Algorithm-Type', AVP_0_345, 64),
   3658         346: ('MIP-Replay-Mode', AVP_0_346, 64),
   3659         347: ('MIP-Originating-Foreign-AAA', AVPNV_Grouped, 64),
   3660         348: ('MIP-Home-Agent-Host', AVPNV_StrLenField, 64),
   3661         363: ('Accounting-Input-Octets', AVPNV_Unsigned64, 64),
   3662         364: ('Accounting-Output-Octets', AVPNV_Unsigned64, 64),
   3663         365: ('Accounting-Input-Packets', AVPNV_Unsigned64, 64),
   3664         366: ('Accounting-Output-Packets', AVPNV_Unsigned64, 64),
   3665         367: ('MIP-MSA-Lifetime', AVPNV_Unsigned32, 64),
   3666         368: ('SIP-Accounting-Information', AVPNV_Grouped, 64),
   3667         369: ('SIP-Accounting-Server-URI', AVPNV_StrLenField, 64),
   3668         370: ('SIP-Credit-Control-Server-URI', AVPNV_StrLenField, 64),
   3669         371: ('SIP-Server-URI', AVPNV_StrLenField, 64),
   3670         372: ('SIP-Server-Capabilities', AVPNV_Grouped, 64),
   3671         373: ('SIP-Mandatory-Capability', AVPNV_Unsigned32, 64),
   3672         374: ('SIP-Optional-Capability', AVPNV_Unsigned32, 64),
   3673         375: ('SIP-Server-Assignment-Type', AVP_0_375, 64),
   3674         376: ('SIP-Auth-Data-Item', AVPNV_Grouped, 64),
   3675         377: ('SIP-Authentication-Scheme', AVP_0_377, 64),
   3676         378: ('SIP-Item-Number', AVPNV_Unsigned32, 64),
   3677         379: ('SIP-Authenticate', AVPNV_Grouped, 64),
   3678         380: ('SIP-Authorization', AVPNV_Grouped, 64),
   3679         381: ('SIP-Authentication-Info', AVPNV_Grouped, 64),
   3680         382: ('SIP-Number-Auth-Items', AVPNV_Unsigned32, 64),
   3681         383: ('SIP-Deregistration-Reason', AVPNV_Grouped, 64),
   3682         384: ('SIP-Reason-Code', AVP_0_384, 64),
   3683         385: ('SIP-Reason-Info', AVPNV_StrLenField, 64),
   3684         386: ('SIP-Visited-Network-Id', AVPNV_StrLenField, 64),
   3685         387: ('SIP-User-Authorization-Type', AVP_0_387, 64),
   3686         388: ('SIP-Supported-User-Data-Type', AVPNV_StrLenField, 64),
   3687         389: ('SIP-User-Data', AVPNV_Grouped, 64),
   3688         390: ('SIP-User-Data-Type', AVPNV_StrLenField, 64),
   3689         391: ('SIP-User-Data-Contents', AVPNV_OctetString, 64),
   3690         392: ('SIP-User-Data-Already-Available', AVP_0_392, 64),
   3691         393: ('SIP-Method', AVPNV_StrLenField, 64),
   3692         400: ('NAS-Filter-Rule', AVPNV_IPFilterRule, 64),
   3693         401: ('Tunneling', AVPNV_Grouped, 64),
   3694         402: ('CHAP-Auth', AVPNV_Grouped, 64),
   3695         403: ('CHAP-Algorithm', AVP_0_403, 64),
   3696         404: ('CHAP-Ident', AVPNV_OctetString, 64),
   3697         405: ('CHAP-Response', AVPNV_OctetString, 64),
   3698         406: ('Accounting-Auth-Method', AVP_0_406, 64),
   3699         407: ('QoS-Filter-Rule', AVPNV_QoSFilterRule, 64),
   3700         411: ('CC-Correlation-Id', AVPNV_OctetString, 0),
   3701         412: ('CC-Input-Octets', AVPNV_Unsigned64, 64),
   3702         413: ('CC-Money', AVPNV_Grouped, 64),
   3703         414: ('CC-Output-Octets', AVPNV_Unsigned64, 64),
   3704         415: ('CC-Request-Number', AVPNV_Unsigned32, 64),
   3705         416: ('CC-Request-Type', AVP_0_416, 64),
   3706         417: ('CC-Service-Specific-Units', AVPNV_Unsigned64, 64),
   3707         418: ('CC-Session-Failover', AVP_0_418, 64),
   3708         419: ('CC-Sub-Session-Id', AVPNV_Unsigned64, 64),
   3709         420: ('CC-Time', AVPNV_Unsigned32, 64),
   3710         421: ('CC-Total-Octets', AVPNV_Unsigned64, 64),
   3711         422: ('Check-Balance-Result', AVP_0_422, 64),
   3712         423: ('Cost-Information', AVPNV_Grouped, 64),
   3713         424: ('Cost-Unit', AVPNV_StrLenField, 64),
   3714         425: ('Currency-Code', AVPNV_Unsigned32, 64),
   3715         426: ('Credit-Control', AVP_0_426, 64),
   3716         427: ('Credit-Control-Failure-Handling', AVP_0_427, 64),
   3717         428: ('Direct-Debiting-Failure-Handling', AVP_0_428, 64),
   3718         429: ('Exponent', AVPNV_Integer32, 64),
   3719         430: ('Final-Unit-Indication', AVPNV_Grouped, 64),
   3720         431: ('Granted-Service-Unit', AVPNV_Grouped, 64),
   3721         432: ('Rating-Group', AVPNV_Unsigned32, 64),
   3722         433: ('Redirect-Address-Type', AVP_0_433, 64),
   3723         434: ('Redirect-Server', AVPNV_Grouped, 64),
   3724         435: ('Redirect-Server-Address', AVPNV_StrLenField, 64),
   3725         436: ('Requested-Action', AVP_0_436, 64),
   3726         437: ('Requested-Service-Unit', AVPNV_Grouped, 64),
   3727         438: ('Restriction-Filter-Rule', AVPNV_IPFilterRule, 64),
   3728         439: ('Service-Identifier', AVPNV_Unsigned32, 64),
   3729         440: ('Service-Parameter-Info', AVPNV_Grouped, 0),
   3730         441: ('Service-Parameter-Type', AVPNV_Unsigned32, 0),
   3731         442: ('Service-Parameter-Value', AVPNV_OctetString, 0),
   3732         443: ('Subscription-Id', AVPNV_Grouped, 64),
   3733         444: ('Subscription-Id-Data', AVPNV_StrLenField, 64),
   3734         445: ('Unit-Value', AVPNV_Grouped, 64),
   3735         446: ('Used-Service-Unit', AVPNV_Grouped, 64),
   3736         447: ('Value-Digits', AVPNV_Integer64, 64),
   3737         448: ('Validity-Time', AVPNV_Unsigned32, 64),
   3738         449: ('Final-Unit-Action', AVP_0_449, 64),
   3739         450: ('Subscription-Id-Type', AVP_0_450, 64),
   3740         451: ('Tariff-Time-Change', AVPNV_Time, 64),
   3741         452: ('Tariff-Change-Usage', AVP_0_452, 64),
   3742         453: ('G-S-U-Pool-Identifier', AVPNV_Unsigned32, 64),
   3743         454: ('CC-Unit-Type', AVP_0_454, 64),
   3744         455: ('Multiple-Services-Indicator', AVP_0_455, 64),
   3745         456: ('Multiple-Services-Credit-Control', AVPNV_Grouped, 64),
   3746         457: ('G-S-U-Pool-Reference', AVPNV_Grouped, 64),
   3747         458: ('User-Equipment-Info', AVPNV_Grouped, 0),
   3748         459: ('User-Equipment-Info-Type', AVP_0_459, 0),
   3749         460: ('User-Equipment-Info-Value', AVPNV_OctetString, 0),
   3750         461: ('Service-Context-Id', AVPNV_StrLenField, 64),
   3751         462: ('EAP-Payload', AVPNV_OctetString, 64),
   3752         463: ('EAP-Reissued-Payload', AVPNV_OctetString, 64),
   3753         464: ('EAP-Master-Session-Key', AVPNV_OctetString, 64),
   3754         465: ('Accounting-EAP-Auth-Method', AVPNV_Unsigned64, 64),
   3755         480: ('Accounting-Record-Type', AVP_0_480, 64),
   3756         483: ('Accounting-Realtime-Required', AVP_0_483, 64),
   3757         485: ('Accounting-Record-Number', AVPNV_Unsigned32, 64),
   3758         486: ('MIP6-Agent-Info', AVPNV_Grouped, 64),
   3759         487: ('MIP-Careof-Address', AVPNV_Address, 64),
   3760         488: ('MIP-Authenticator', AVPNV_OctetString, 64),
   3761         489: ('MIP-MAC-Mobility-Data', AVPNV_OctetString, 64),
   3762         490: ('MIP-Timestamp', AVPNV_OctetString, 64),
   3763         491: ('MIP-MN-HA-SPI', AVPNV_Unsigned32, 64),
   3764         492: ('MIP-MN-HA-MSA', AVPNV_Grouped, 64),
   3765         493: ('Service-Selection', AVPNV_StrLenField, 64),
   3766         494: ('MIP6-Auth-Mode', AVP_0_494, 64),
   3767         506: ('Mobile-Node-Identifier', AVPNV_StrLenField, 64),
   3768         508: ('QoS-Resources', AVPNV_Grouped, 64),
   3769         509: ('Filter-Rule', AVPNV_Grouped, 64),
   3770         510: ('Filter-Rule-Precedence', AVPNV_Unsigned32, 64),
   3771         511: ('Classifier', AVPNV_Grouped, 64),
   3772         512: ('Classifier-ID', AVPNV_OctetString, 64),
   3773         513: ('Protocol', AVP_0_513, 64),
   3774         514: ('Direction', AVP_0_514, 64),
   3775         515: ('From-Spec', AVPNV_Grouped, 64),
   3776         516: ('To-Spec', AVPNV_Grouped, 64),
   3777         517: ('Negated', AVP_0_517, 64),
   3778         518: ('IP-Address', AVPNV_Address, 64),
   3779         519: ('IP-Address-Range', AVPNV_Grouped, 64),
   3780         520: ('IP-Address-Start', AVPNV_Address, 64),
   3781         521: ('IP-Address-End', AVPNV_Address, 64),
   3782         522: ('IP-Address-Mask', AVPNV_Grouped, 64),
   3783         523: ('IP-Mask-Bit-Mask-Width', AVPNV_Unsigned32, 64),
   3784         524: ('MAC-Address', AVPNV_OctetString, 64),
   3785         525: ('MAC-Address-Mask', AVPNV_Grouped, 64),
   3786         526: ('MAC-Address-Mask-Pattern', AVPNV_OctetString, 64),
   3787         527: ('EUI64-Address', AVPNV_OctetString, 64),
   3788         528: ('EUI64-Address-Mask', AVPNV_Grouped, 64),
   3789         529: ('EUI64-Address-Mask-Pattern', AVPNV_OctetString, 64),
   3790         530: ('Port', AVPNV_Integer32, 64),
   3791         531: ('Port-Range', AVPNV_Grouped, 64),
   3792         532: ('Port-Start', AVPNV_Integer32, 64),
   3793         533: ('Port-End', AVPNV_Integer32, 64),
   3794         534: ('Use-Assigned-Address', AVP_0_534, 64),
   3795         535: ('Diffserv-Code-Point', AVP_0_535, 64),
   3796         536: ('Fragmentation-Flag', AVP_0_536, 64),
   3797         537: ('IP-Option', AVPNV_Grouped, 64),
   3798         538: ('IP-Option-Type', AVP_0_538, 64),
   3799         539: ('IP-Option-Value', AVPNV_OctetString, 64),
   3800         540: ('TCP-Option', AVPNV_Grouped, 64),
   3801         541: ('TCP-Option-Type', AVP_0_541, 64),
   3802         542: ('TCP-Option-Value', AVPNV_OctetString, 64),
   3803         543: ('TCP-Flags', AVPNV_Grouped, 64),
   3804         544: ('TCP-Flag-Type', AVPNV_Unsigned32, 64),
   3805         545: ('ICMP-Type', AVPNV_Grouped, 64),
   3806         546: ('ICMP-Type-Number', AVP_0_546, 64),
   3807         547: ('ICMP-Code', AVP_0_547, 64),
   3808         548: ('ETH-Option', AVPNV_Grouped, 64),
   3809         549: ('ETH-Proto-Type', AVPNV_Grouped, 64),
   3810         550: ('ETH-Ether-Type', AVPNV_OctetString, 64),
   3811         551: ('ETH-SAP', AVPNV_OctetString, 64),
   3812         552: ('VLAN-ID-Range', AVPNV_Grouped, 64),
   3813         553: ('S-VID-Start', AVPNV_Unsigned32, 64),
   3814         554: ('S-VID-End', AVPNV_Unsigned32, 64),
   3815         555: ('C-VID-Start', AVPNV_Unsigned32, 64),
   3816         556: ('C-VID-End', AVPNV_Unsigned32, 64),
   3817         557: ('User-Priority-Range', AVPNV_Grouped, 64),
   3818         558: ('Low-User-Priority', AVPNV_Unsigned32, 64),
   3819         559: ('High-User-Priority', AVPNV_Unsigned32, 64),
   3820         560: ('Time-Of-Day-Condition', AVPNV_Grouped, 64),
   3821         561: ('Time-Of-Day-Start', AVPNV_Unsigned32, 64),
   3822         562: ('Time-Of-Day-End', AVPNV_Unsigned32, 64),
   3823         563: ('Day-Of-Week-Mask', AVPNV_Unsigned32, 64),
   3824         564: ('Day-Of-Month-Mask', AVPNV_Unsigned32, 64),
   3825         565: ('Month-Of-Year-Mask', AVPNV_Unsigned32, 64),
   3826         566: ('Absolute-Start-Time', AVPNV_Time, 64),
   3827         567: ('Absolute-Start-Fractional-Seconds', AVPNV_Unsigned32, 64),
   3828         568: ('Absolute-End-Time', AVPNV_Time, 64),
   3829         569: ('Absolute-End-Fractional-Seconds', AVPNV_Unsigned32, 64),
   3830         570: ('Timezone-Flag', AVP_0_570, 64),
   3831         571: ('Timezone-Offset', AVPNV_Integer32, 64),
   3832         572: ('Treatment-Action', AVPNV_Grouped, 64),
   3833         573: ('QoS-Profile-Id', AVPNV_Unsigned32, 64),
   3834         574: ('QoS-Profile-Template', AVPNV_Grouped, 64),
   3835         575: ('QoS-Semantics', AVP_0_575, 64),
   3836         576: ('QoS-Parameters', AVPNV_Grouped, 64),
   3837         577: ('Excess-Treatment', AVPNV_Grouped, 64),
   3838         578: ('QoS-Capability', AVPNV_Grouped, 64),
   3839         618: ('ERP-RK-Request', AVPNV_Grouped, 64),
   3840         619: ('ERP-Realm', AVPNV_StrLenField, 64),
   3841     },
   3842     10415: {
   3843         13: ('3GPP-Charging-Characteristics', AVPV_StrLenField, 192),
   3844         318: ('3GPP-AAA-Server-Name', AVPV_StrLenField, 192),
   3845         500: ('Abort-Cause', AVP_10415_500, 192),
   3846         501: ('Access-Network-Charging-Address', AVPV_Address, 192),
   3847         502: ('Access-Network-Charging-Identifier', AVPV_Grouped, 192),
   3848         503: ('Access-Network-Charging-Identifier-Value', AVPV_OctetString, 192),
   3849         504: ('AF-Application-Identifier', AVPV_OctetString, 192),
   3850         505: ('AF-Charging-Identifier', AVPV_OctetString, 192),
   3851         506: ('Authorization-Token', AVPV_OctetString, 192),
   3852         507: ('Flow-Description', AVPV_IPFilterRule, 192),
   3853         508: ('Flow-Grouping', AVPV_Grouped, 192),
   3854         509: ('Flow-Number', AVPV_Unsigned32, 192),
   3855         510: ('Flows', AVPV_Grouped, 192),
   3856         511: ('Flow-Status', AVP_10415_511, 192),
   3857         512: ('Flow-Usage', AVP_10415_512, 192),
   3858         513: ('Specific-Action', AVP_10415_513, 192),
   3859         515: ('Max-Requested-Bandwidth-DL', AVPV_Unsigned32, 192),
   3860         516: ('Max-Requested-Bandwidth-UL', AVPV_Unsigned32, 192),
   3861         517: ('Media-Component-Description', AVPV_Grouped, 192),
   3862         518: ('Media-Component-Number', AVPV_Unsigned32, 192),
   3863         519: ('Media-Sub-Component', AVPV_Grouped, 192),
   3864         520: ('Media-Type', AVP_10415_520, 192),
   3865         521: ('RR-Bandwidth', AVPV_Unsigned32, 192),
   3866         522: ('RS-Bandwidth', AVPV_Unsigned32, 192),
   3867         523: ('SIP-Forking-Indication', AVP_10415_523, 192),
   3868         525: ('Service-URN', AVPV_OctetString, 192),
   3869         526: ('Acceptable-Service-Info', AVPV_Grouped, 192),
   3870         527: ('Service-Info-Status', AVP_10415_527, 192),
   3871         528: ('MPS-Identifier', AVPV_OctetString, 128),
   3872         529: ('AF-Signalling-Protocol', AVP_10415_529, 128),
   3873         531: ('Sponsor-Identity', AVPV_StrLenField, 128),
   3874         532: ('Application-Service-Provider-Identity', AVPV_StrLenField, 128),
   3875         533: ('Rx-Request-Type', AVP_10415_533, 128),
   3876         534: ('Min-Requested-Bandwidth-DL', AVPV_Unsigned32, 128),
   3877         535: ('Min-Requested-Bandwidth-UL', AVPV_Unsigned32, 128),
   3878         536: ('Required-Access-Info', AVP_10415_536, 128),
   3879         537: ('IP-Domain-Id', AVPV_OctetString, 128),
   3880         538: ('GCS-Identifier', AVPV_OctetString, 128),
   3881         539: ('Sharing-Key-DL', AVPV_Unsigned32, 128),
   3882         540: ('Sharing-Key-UL', AVPV_Unsigned32, 128),
   3883         541: ('Retry-Interval', AVPV_Unsigned32, 128),
   3884         600: ('Visited-Network-Identifier', AVPV_OctetString, 192),
   3885         601: ('Public-Identity', AVPV_StrLenField, 192),
   3886         602: ('Server-Name', AVPV_StrLenField, 192),
   3887         603: ('Server-Capabilities', AVPV_Grouped, 192),
   3888         604: ('Mandatory-Capability', AVPV_Unsigned32, 192),
   3889         605: ('Optional-Capability', AVPV_Unsigned32, 192),
   3890         606: ('User-Data', AVPV_OctetString, 192),
   3891         607: ('SIP-Number-Auth-Items', AVPV_Unsigned32, 192),
   3892         608: ('SIP-Authentication-Scheme', AVPV_StrLenField, 192),
   3893         609: ('SIP-Authenticate', AVPV_OctetString, 192),
   3894         610: ('SIP-Authorization', AVPV_OctetString, 192),
   3895         611: ('SIP-Authentication-Context', AVPV_OctetString, 192),
   3896         612: ('SIP-Auth-Data-Item', AVPV_Grouped, 192),
   3897         613: ('SIP-Item-Number', AVPV_Unsigned32, 192),
   3898         614: ('Server-Assignment-Type', AVP_10415_614, 192),
   3899         615: ('Deregistration-Reason', AVPV_Grouped, 192),
   3900         616: ('Reason-Code', AVP_10415_616, 192),
   3901         617: ('Reason-Info', AVPV_StrLenField, 192),
   3902         618: ('Charging-Information', AVPV_Grouped, 192),
   3903         619: ('Primary-Event-Charging-Function-Name', AVPV_StrLenField, 192),
   3904         620: ('Secondary-Event-Charging-Function-Name', AVPV_StrLenField, 192),
   3905         621: ('Primary-Charging-Collection-Function-Name', AVPV_StrLenField, 192),
   3906         622: ('Secondary-Charging-Collection-Function-Name', AVPV_StrLenField, 192),
   3907         623: ('User-Authorization-Type', AVP_10415_623, 192),
   3908         624: ('User-Data-Already-Available', AVP_10415_624, 192),
   3909         625: ('Confidentiality-Key', AVPV_OctetString, 192),
   3910         626: ('Integrity-Key', AVPV_OctetString, 192),
   3911         628: ('Supported-Features', AVPV_Grouped, 128),
   3912         629: ('Feature-List-ID', AVPV_Unsigned32, 128),
   3913         630: ('Feature-List', AVP_10415_630, 128),
   3914         631: ('Supported-Applications', AVPV_Grouped, 128),
   3915         632: ('Associated-Identities', AVPV_Grouped, 128),
   3916         633: ('Originating-Request', AVP_10415_633, 192),
   3917         634: ('Wildcarded-Public-Identity', AVPV_StrLenField, 128),
   3918         635: ('SIP-Digest-Authenticate', AVPV_Grouped, 128),
   3919         636: ('Wildcarded-IMPU', AVPV_StrLenField, 128),
   3920         637: ('UAR-Flags', AVPV_Unsigned32, 128),
   3921         638: ('Loose-Route-Indication', AVP_10415_638, 128),
   3922         639: ('SCSCF-Restoration-Info', AVPV_Grouped, 128),
   3923         640: ('Path', AVPV_OctetString, 128),
   3924         641: ('Contact', AVPV_OctetString, 128),
   3925         642: ('Subscription-Info', AVPV_Grouped, 128),
   3926         643: ('Call-ID-SIP-Header', AVPV_OctetString, 128),
   3927         644: ('From-SIP-Header', AVPV_OctetString, 128),
   3928         645: ('To-SIP-Header', AVPV_OctetString, 128),
   3929         646: ('Record-Route', AVPV_OctetString, 128),
   3930         647: ('Associated-Registered-Identities', AVPV_Grouped, 128),
   3931         648: ('Multiple-Registration-Indication', AVP_10415_648, 128),
   3932         649: ('Restoration-Info', AVPV_Grouped, 128),
   3933         650: ('Session-Priority', AVP_10415_650, 128),
   3934         651: ('Identity-with-Emergency-Registration', AVPV_Grouped, 128),
   3935         652: ('Priviledged-Sender-Indication', AVP_10415_652, 128),
   3936         653: ('LIA-Flags', AVPV_Unsigned32, 128),
   3937         654: ('Initial-CSeq-Sequence-Number', AVPV_Unsigned32, 128),
   3938         655: ('SAR-Flags', AVPV_Unsigned32, 128),
   3939         700: ('User-Identity', AVPV_Grouped, 192),
   3940         701: ('MSISDN', AVP_10415_701, 192),
   3941         702: ('User-Data', AVPV_OctetString, 192),
   3942         703: ('Data-Reference', AVP_10415_703, 192),
   3943         704: ('Service-Indication', AVPV_OctetString, 192),
   3944         705: ('Subs-Req-Type', AVP_10415_705, 192),
   3945         706: ('Requested-Domain', AVP_10415_706, 192),
   3946         707: ('Current-Location', AVP_10415_707, 192),
   3947         708: ('Identity-Set', AVP_10415_708, 128),
   3948         709: ('Expiry-Time', AVPV_Time, 128),
   3949         710: ('Send-Data-Indication', AVP_10415_710, 128),
   3950         711: ('DSAI-Tag', AVPV_OctetString, 192),
   3951         712: ('One-Time-Notification', AVP_10415_712, 128),
   3952         713: ('Requested-Nodes', AVPV_Unsigned32, 128),
   3953         714: ('Serving-Node-Indication', AVP_10415_714, 128),
   3954         715: ('Repository-Data-ID', AVPV_Grouped, 128),
   3955         716: ('Sequence-Number', AVPV_Unsigned32, 128),
   3956         717: ('Pre-paging-Supported', AVP_10415_717, 128),
   3957         718: ('Local-Time-Zone-Indication', AVP_10415_718, 128),
   3958         719: ('UDR-Flags', AVPV_Unsigned32, 128),
   3959         720: ('Call-Reference-Info', AVPV_Grouped, 128),
   3960         721: ('Call-Reference-Number', AVPV_OctetString, 128),
   3961         722: ('AS-Number', AVPV_OctetString, 128),
   3962         823: ('Event-Type', AVPV_Grouped, 192),
   3963         824: ('SIP-Method', AVPV_StrLenField, 192),
   3964         825: ('Event', AVPV_StrLenField, 192),
   3965         826: ('Content-Type', AVPV_StrLenField, 192),
   3966         827: ('Content-Length', AVPV_Unsigned32, 192),
   3967         828: ('Content-Disposition', AVPV_StrLenField, 192),
   3968         829: ('Role-Of-Node', AVP_10415_829, 192),
   3969         830: ('Session-Id', AVPV_StrLenField, 192),
   3970         831: ('Calling-Party-Address', AVPV_StrLenField, 192),
   3971         832: ('Called-Party-Address', AVPV_StrLenField, 192),
   3972         833: ('Time-Stamps', AVPV_Grouped, 192),
   3973         834: ('SIP-Request-Timestamp', AVPV_Time, 192),
   3974         835: ('SIP-Response-Timestamp', AVPV_Time, 192),
   3975         836: ('Application-Server', AVPV_StrLenField, 192),
   3976         837: ('Application-provided-called-party-address', AVPV_StrLenField, 192),
   3977         838: ('Inter-Operator-Identifier', AVPV_Grouped, 192),
   3978         839: ('Originating-IOI', AVPV_StrLenField, 192),
   3979         840: ('Terminating-IOI', AVPV_StrLenField, 192),
   3980         841: ('IMS-Charging-Identifier', AVPV_StrLenField, 192),
   3981         842: ('SDP-Session-Description', AVPV_StrLenField, 192),
   3982         843: ('SDP-Media-Component', AVPV_Grouped, 192),
   3983         844: ('SDP-Media-Name', AVPV_StrLenField, 192),
   3984         845: ('SDP-Media-Description', AVPV_StrLenField, 192),
   3985         846: ('CG-Address', AVPV_Address, 192),
   3986         847: ('GGSN-Address', AVPV_Address, 192),
   3987         848: ('Served-Party-IP-Address', AVPV_Address, 192),
   3988         849: ('Authorised-QoS', AVPV_StrLenField, 192),
   3989         850: ('Application-Server-Information', AVPV_Grouped, 192),
   3990         851: ('Trunk-Group-Id', AVPV_Grouped, 192),
   3991         852: ('Incoming-Trunk-Group-Id', AVPV_StrLenField, 192),
   3992         853: ('Outgoing-Trunk-Group-Id', AVPV_StrLenField, 192),
   3993         854: ('Bearer-Service', AVPV_OctetString, 192),
   3994         855: ('Service-Id', AVPV_StrLenField, 192),
   3995         856: ('Associated-URI', AVPV_StrLenField, 192),
   3996         857: ('Charged-Party', AVPV_StrLenField, 192),
   3997         858: ('PoC-Controlling-Address', AVPV_StrLenField, 192),
   3998         859: ('PoC-Group-Name', AVPV_StrLenField, 192),
   3999         861: ('Cause-Code', AVPV_Integer32, 192),
   4000         862: ('Node-Functionality', AVP_10415_862, 192),
   4001         864: ('Originator', AVP_10415_864, 192),
   4002         865: ('PS-Furnish-Charging-Information', AVPV_Grouped, 192),
   4003         866: ('PS-Free-Format-Data', AVPV_OctetString, 192),
   4004         867: ('PS-Append-Free-Format-Data', AVP_10415_867, 192),
   4005         868: ('Time-Quota-Threshold', AVPV_Unsigned32, 192),
   4006         869: ('Volume-Quota-Threshold', AVPV_Unsigned32, 192),
   4007         870: ('Trigger-Type', AVP_10415_870, 192),
   4008         871: ('Quota-Holding-Time', AVPV_Unsigned32, 192),
   4009         872: ('Reporting-Reason', AVP_10415_872, 192),
   4010         873: ('Service-Information', AVPV_Grouped, 192),
   4011         874: ('PS-Information', AVPV_Grouped, 192),
   4012         876: ('IMS-Information', AVPV_Grouped, 192),
   4013         877: ('MMS-Information', AVPV_Grouped, 192),
   4014         878: ('LCS-Information', AVPV_Grouped, 192),
   4015         879: ('PoC-Information', AVPV_Grouped, 192),
   4016         880: ('MBMS-Information', AVPV_Grouped, 192),
   4017         881: ('Quota-Consumption-Time', AVPV_Unsigned32, 192),
   4018         882: ('Media-Initiator-Flag', AVP_10415_882, 192),
   4019         883: ('PoC-Server-Role', AVP_10415_883, 192),
   4020         884: ('PoC-Session-Type', AVP_10415_884, 192),
   4021         885: ('Number-Of-Participants', AVPV_Unsigned32, 192),
   4022         887: ('Participants-Involved', AVPV_StrLenField, 192),
   4023         888: ('Expires', AVPV_Unsigned32, 192),
   4024         889: ('Message-Body', AVPV_Grouped, 192),
   4025         897: ('Address-Data', AVPV_StrLenField, 192),
   4026         898: ('Address-Domain', AVPV_Grouped, 192),
   4027         899: ('Address-Type', AVP_10415_899, 192),
   4028         900: ('TMGI', AVPV_OctetString, 192),
   4029         901: ('Required-MBMS-Bearer-Capabilities', AVPV_StrLenField, 192),
   4030         902: ('MBMS-StartStop-Indication', AVP_10415_902, 192),
   4031         903: ('MBMS-Service-Area', AVPV_OctetString, 192),
   4032         904: ('MBMS-Session-Duration', AVPV_OctetString, 192),
   4033         905: ('Alternative-APN', AVPV_StrLenField, 192),
   4034         906: ('MBMS-Service-Type', AVP_10415_906, 192),
   4035         907: ('MBMS-2G-3G-Indicator', AVP_10415_907, 192),
   4036         909: ('RAI', AVPV_StrLenField, 192),
   4037         910: ('Additional-MBMS-Trace-Info', AVPV_OctetString, 192),
   4038         911: ('MBMS-Time-To-Data-Transfer', AVPV_OctetString, 192),
   4039         920: ('MBMS-Flow-Identifier', AVPV_OctetString, 192),
   4040         921: ('CN-IP-Multicast-Distribution', AVP_10415_921, 192),
   4041         922: ('MBMS-HC-Indicator', AVP_10415_922, 192),
   4042         1000: ('Bearer-Usage', AVP_10415_1000, 192),
   4043         1001: ('Charging-Rule-Install', AVPV_Grouped, 192),
   4044         1002: ('Charging-Rule-Remove', AVPV_Grouped, 192),
   4045         1003: ('Charging-Rule-Definition', AVPV_Grouped, 192),
   4046         1004: ('Charging-Rule-Base-Name', AVPV_StrLenField, 192),
   4047         1005: ('Charging-Rule-Name', AVPV_OctetString, 192),
   4048         1006: ('Event-Trigger', AVP_10415_1006, 192),
   4049         1007: ('Metering-Method', AVP_10415_1007, 192),
   4050         1008: ('Offline', AVP_10415_1008, 192),
   4051         1009: ('Online', AVP_10415_1009, 192),
   4052         1010: ('Precedence', AVPV_Unsigned32, 192),
   4053         1011: ('Reporting-Level', AVP_10415_1011, 192),
   4054         1012: ('TFT-Filter', AVPV_IPFilterRule, 192),
   4055         1013: ('TFT-Packet-Filter-Information', AVPV_Grouped, 192),
   4056         1014: ('ToS-Traffic-Class', AVPV_OctetString, 192),
   4057         1015: ('PDP-Session-Operation', AVP_10415_1015, 192),
   4058         1018: ('Charging-Rule-Report', AVPV_Grouped, 192),
   4059         1019: ('PCC-Rule-Status', AVP_10415_1019, 192),
   4060         1020: ('Bearer-Identifier', AVPV_OctetString, 192),
   4061         1021: ('Bearer-Operation', AVP_10415_1021, 192),
   4062         1022: ('Access-Network-Charging-Identifier-Gx', AVPV_Grouped, 192),
   4063         1023: ('Bearer-Control-Mode', AVP_10415_1023, 192),
   4064         1024: ('Network-Request-Support', AVP_10415_1024, 192),
   4065         1025: ('Guaranteed-Bitrate-DL', AVPV_Unsigned32, 192),
   4066         1026: ('Guaranteed-Bitrate-UL', AVPV_Unsigned32, 192),
   4067         1027: ('IP-CAN-Type', AVP_10415_1027, 192),
   4068         1028: ('QoS-Class-Identifier', AVP_10415_1028, 192),
   4069         1032: ('RAT-Type', AVP_10415_1032, 128),
   4070         1033: ('Event-Report-Indication', AVPV_Grouped, 128),
   4071         1034: ('Allocation-Retention-Priority', AVPV_Grouped, 128),
   4072         1035: ('CoA-IP-Address', AVPV_Address, 128),
   4073         1036: ('Tunnel-Header-Filter', AVPV_IPFilterRule, 128),
   4074         1037: ('Tunnel-Header-Length', AVPV_Unsigned32, 128),
   4075         1038: ('Tunnel-Information', AVPV_Grouped, 128),
   4076         1039: ('CoA-Information', AVPV_Grouped, 128),
   4077         1040: ('APN-Aggregate-Max-Bitrate-DL', AVPV_Unsigned32, 128),
   4078         1041: ('APN-Aggregate-Max-Bitrate-UL', AVPV_Unsigned32, 128),
   4079         1042: ('Revalidation-Time', AVPV_Time, 192),
   4080         1043: ('Rule-Activation-Time', AVPV_Time, 192),
   4081         1044: ('Rule-Deactivation-Time', AVPV_Time, 192),
   4082         1045: ('Session-Release-Cause', AVP_10415_1045, 192),
   4083         1046: ('Priority-Level', AVPV_Unsigned32, 128),
   4084         1047: ('Pre-emption-Capability', AVP_10415_1047, 128),
   4085         1048: ('Pre-emption-Vulnerability', AVP_10415_1048, 128),
   4086         1049: ('Default-EPS-Bearer-QoS', AVPV_Grouped, 128),
   4087         1050: ('AN-GW-Address', AVPV_Address, 128),
   4088         1056: ('Security-Parameter-Index', AVPV_OctetString, 128),
   4089         1057: ('Flow-Label', AVPV_OctetString, 128),
   4090         1058: ('Flow-Information', AVPV_Grouped, 128),
   4091         1059: ('Packet-Filter-Content', AVPV_IPFilterRule, 128),
   4092         1060: ('Packet-Filter-Identifier', AVPV_OctetString, 128),
   4093         1061: ('Packet-Filter-Information', AVPV_Grouped, 128),
   4094         1062: ('Packet-Filter-Operation', AVP_10415_1062, 128),
   4095         1063: ('Resource-Allocation-Notification', AVP_10415_1063, 128),
   4096         1065: ('PDN-Connection-ID', AVPV_OctetString, 128),
   4097         1066: ('Monitoring-Key', AVPV_OctetString, 128),
   4098         1067: ('Usage-Monitoring-Information', AVPV_Grouped, 128),
   4099         1068: ('Usage-Monitoring-Level', AVP_10415_1068, 128),
   4100         1069: ('Usage-Monitoring-Report', AVP_10415_1069, 128),
   4101         1070: ('Usage-Monitoring-Support', AVP_10415_1070, 128),
   4102         1071: ('CSG-Information-Reporting', AVP_10415_1071, 128),
   4103         1072: ('Packet-Filter-Usage', AVP_10415_1072, 128),
   4104         1073: ('Charging-Correlation-Indicator', AVP_10415_1073, 128),
   4105         1075: ('Routing-Rule-Remove', AVPV_Grouped, 128),
   4106         1076: ('Routing-Rule-Definition', AVPV_Grouped, 128),
   4107         1077: ('Routing-Rule-Identifier', AVPV_OctetString, 128),
   4108         1078: ('Routing-Filter', AVPV_Grouped, 128),
   4109         1079: ('Routing-IP-Address', AVPV_Address, 128),
   4110         1080: ('Flow-Direction', AVP_10415_1080, 128),
   4111         1082: ('Credit-Management-Status', AVPV_Unsigned32, 128),
   4112         1085: ('Redirect-Information', AVPV_Grouped, 128),
   4113         1086: ('Redirect-Support', AVP_10415_1086, 128),
   4114         1087: ('TDF-Information', AVPV_Grouped, 128),
   4115         1088: ('TDF-Application-Identifier', AVPV_OctetString, 128),
   4116         1089: ('TDF-Destination-Host', AVPV_StrLenField, 128),
   4117         1090: ('TDF-Destination-Realm', AVPV_StrLenField, 128),
   4118         1091: ('TDF-IP-Address', AVPV_Address, 128),
   4119         1098: ('Application-Detection-Information', AVPV_Grouped, 128),
   4120         1099: ('PS-to-CS-Session-Continuity', AVP_10415_1099, 128),
   4121         1200: ('Domain-Name', AVPV_StrLenField, 192),
   4122         1203: ('MM-Content-Type', AVPV_Grouped, 192),
   4123         1204: ('Type-Number', AVP_10415_1204, 192),
   4124         1205: ('Additional-Type-Information', AVPV_StrLenField, 192),
   4125         1206: ('Content-Size', AVPV_Unsigned32, 192),
   4126         1207: ('Additional-Content-Information', AVPV_Grouped, 192),
   4127         1208: ('Addressee-Type', AVP_10415_1208, 192),
   4128         1209: ('Priority', AVP_10415_1209, 192),
   4129         1211: ('Message-Type', AVP_10415_1211, 192),
   4130         1212: ('Message-Size', AVPV_Unsigned32, 192),
   4131         1213: ('Message-Class', AVPV_Grouped, 192),
   4132         1214: ('Class-Identifier', AVP_10415_1214, 192),
   4133         1215: ('Token-Text', AVPV_StrLenField, 192),
   4134         1216: ('Delivery-Report-Requested', AVP_10415_1216, 192),
   4135         1217: ('Adaptations', AVP_10415_1217, 192),
   4136         1218: ('Applic-ID', AVPV_StrLenField, 192),
   4137         1219: ('Aux-Applic-Info', AVPV_StrLenField, 192),
   4138         1220: ('Content-Class', AVP_10415_1220, 192),
   4139         1221: ('DRM-Content', AVP_10415_1221, 192),
   4140         1222: ('Read-Reply-Report-Requested', AVP_10415_1222, 192),
   4141         1223: ('Reply-Applic-ID', AVPV_StrLenField, 192),
   4142         1224: ('File-Repair-Supported', AVP_10415_1224, 192),
   4143         1225: ('MBMS-User-Service-Type', AVP_10415_1225, 192),
   4144         1226: ('Unit-Quota-Threshold', AVPV_Unsigned32, 192),
   4145         1227: ('PDP-Address', AVPV_Address, 192),
   4146         1228: ('SGSN-Address', AVPV_Address, 192),
   4147         1229: ('PoC-Session-Id', AVPV_StrLenField, 192),
   4148         1230: ('Deferred-Location-Event-Type', AVPV_StrLenField, 192),
   4149         1231: ('LCS-APN', AVPV_StrLenField, 192),
   4150         1245: ('Positioning-Data', AVPV_StrLenField, 192),
   4151         1247: ('PDP-Context-Type', AVP_10415_1247, 192),
   4152         1248: ('MMBox-Storage-Requested', AVP_10415_1248, 192),
   4153         1250: ('Called-Asserted-Identity', AVPV_StrLenField, 192),
   4154         1251: ('Requested-Party-Address', AVPV_StrLenField, 192),
   4155         1252: ('PoC-User-Role', AVPV_Grouped, 192),
   4156         1253: ('PoC-User-Role-IDs', AVPV_StrLenField, 192),
   4157         1254: ('PoC-User-Role-info-Units', AVP_10415_1254, 192),
   4158         1255: ('Talk-Burst-Exchange', AVPV_Grouped, 192),
   4159         1258: ('Event-Charging-TimeStamp', AVPV_Time, 192),
   4160         1259: ('Participant-Access-Priority', AVP_10415_1259, 192),
   4161         1260: ('Participant-Group', AVPV_Grouped, 192),
   4162         1261: ('PoC-Change-Condition', AVP_10415_1261, 192),
   4163         1262: ('PoC-Change-Time', AVPV_Time, 192),
   4164         1263: ('Access-Network-Information', AVPV_OctetString, 192),
   4165         1264: ('Trigger', AVPV_Grouped, 192),
   4166         1265: ('Base-Time-Interval', AVPV_Unsigned32, 192),
   4167         1266: ('Envelope', AVPV_Grouped, 192),
   4168         1267: ('Envelope-End-Time', AVPV_Time, 192),
   4169         1268: ('Envelope-Reporting', AVP_10415_1268, 192),
   4170         1269: ('Envelope-Start-Time', AVPV_Time, 192),
   4171         1270: ('Time-Quota-Mechanism', AVPV_Grouped, 192),
   4172         1271: ('Time-Quota-Type', AVP_10415_1271, 192),
   4173         1272: ('Early-Media-Description', AVPV_Grouped, 192),
   4174         1273: ('SDP-TimeStamps', AVPV_Grouped, 192),
   4175         1274: ('SDP-Offer-Timestamp', AVPV_Time, 192),
   4176         1275: ('SDP-Answer-Timestamp', AVPV_Time, 192),
   4177         1276: ('AF-Correlation-Information', AVPV_Grouped, 192),
   4178         1277: ('PoC-Session-Initiation-Type', AVP_10415_1277, 192),
   4179         1278: ('Offline-Charging', AVPV_Grouped, 192),
   4180         1279: ('User-Participating-Type', AVP_10415_1279, 192),
   4181         1281: ('IMS-Communication-Service-Identifier', AVPV_StrLenField, 192),
   4182         1282: ('Number-Of-Received-Talk-Bursts', AVPV_Unsigned32, 192),
   4183         1283: ('Number-Of-Talk-Bursts', AVPV_Unsigned32, 192),
   4184         1284: ('Received-Talk-Burst-Time', AVPV_Unsigned32, 192),
   4185         1285: ('Received-Talk-Burst-Volume', AVPV_Unsigned32, 192),
   4186         1286: ('Talk-Burst-Time', AVPV_Unsigned32, 192),
   4187         1287: ('Talk-Burst-Volume', AVPV_Unsigned32, 192),
   4188         1288: ('Media-Initiator-Party', AVPV_StrLenField, 192),
   4189         1400: ('Subscription-Data', AVPV_Grouped, 192),
   4190         1401: ('Terminal-Information', AVPV_Grouped, 192),
   4191         1402: ('IMEI', AVPV_StrLenField, 192),
   4192         1403: ('Software-Version', AVPV_StrLenField, 192),
   4193         1404: ('QoS-Subscribed', AVPV_OctetString, 192),
   4194         1405: ('ULR-Flags', AVPV_Unsigned32, 192),
   4195         1406: ('ULA-Flags', AVPV_Unsigned32, 192),
   4196         1407: ('Visited-PLMN-Id', AVPV_OctetString, 192),
   4197         1408: ('Requested-EUTRAN-Authentication-Info', AVPV_Grouped, 192),
   4198         1409: ('GERAN-Authentication-Info', AVPV_Grouped, 192),
   4199         1410: ('Number-Of-Requested-Vectors', AVPV_Unsigned32, 192),
   4200         1411: ('Re-Synchronization-Info', AVPV_OctetString, 192),
   4201         1412: ('Immediate-Response-Preferred', AVPV_Unsigned32, 192),
   4202         1413: ('Authentication-Info', AVPV_Grouped, 192),
   4203         1414: ('E-UTRAN-Vector', AVPV_Grouped, 192),
   4204         1415: ('UTRAN-Vector', AVPV_Grouped, 192),
   4205         1416: ('GERAN-Vector', AVPV_Grouped, 192),
   4206         1417: ('Network-Access-Mode', AVP_10415_1417, 192),
   4207         1418: ('HPLMN-ODB', AVPV_Unsigned32, 192),
   4208         1419: ('Item-Number', AVPV_Unsigned32, 192),
   4209         1420: ('Cancellation-Type', AVP_10415_1420, 192),
   4210         1421: ('DSR-Flags', AVPV_Unsigned32, 192),
   4211         1422: ('DSA-Flags', AVPV_Unsigned32, 192),
   4212         1423: ('Context-Identifier', AVPV_Unsigned32, 192),
   4213         1424: ('Subscriber-Status', AVP_10415_1424, 192),
   4214         1425: ('Operator-Determined-Barring', AVPV_Unsigned32, 192),
   4215         1426: ('Access-Restriction-Data', AVPV_Unsigned32, 192),
   4216         1427: ('APN-OI-Replacement', AVPV_StrLenField, 192),
   4217         1428: ('All-APN-Configurations-Included-Indicator', AVP_10415_1428, 192),
   4218         1429: ('APN-Configuration-Profile', AVPV_Grouped, 192),
   4219         1430: ('APN-Configuration', AVPV_Grouped, 192),
   4220         1431: ('EPS-Subscribed-QoS-Profile', AVPV_Grouped, 192),
   4221         1432: ('VPLMN-Dynamic-Address-Allowed', AVP_10415_1432, 192),
   4222         1433: ('STN-SR', AVPV_OctetString, 192),
   4223         1434: ('Alert-Reason', AVP_10415_1434, 192),
   4224         1435: ('AMBR', AVPV_Grouped, 192),
   4225         1437: ('CSG-Id', AVPV_Unsigned32, 192),
   4226         1438: ('PDN-GW-Allocation-Type', AVP_10415_1438, 192),
   4227         1439: ('Expiration-Date', AVPV_Time, 192),
   4228         1440: ('RAT-Frequency-Selection-Priority-ID', AVPV_Unsigned32, 192),
   4229         1441: ('IDA-Flags', AVPV_Unsigned32, 192),
   4230         1442: ('PUA-Flags', AVPV_Unsigned32, 192),
   4231         1443: ('NOR-Flags', AVPV_Unsigned32, 192),
   4232         1444: ('User-Id', AVPV_StrLenField, 128),
   4233         1445: ('Equipment-Status', AVP_10415_1445, 192),
   4234         1446: ('Regional-Subscription-Zone-Code', AVPV_OctetString, 192),
   4235         1447: ('RAND', AVPV_OctetString, 192),
   4236         1448: ('XRES', AVPV_OctetString, 192),
   4237         1449: ('AUTN', AVPV_OctetString, 192),
   4238         1450: ('KASME', AVPV_OctetString, 192),
   4239         1452: ('Trace-Collection-Entity', AVPV_Address, 192),
   4240         1453: ('Kc', AVPV_OctetString, 192),
   4241         1454: ('SRES', AVPV_OctetString, 192),
   4242         1456: ('PDN-Type', AVP_10415_1456, 192),
   4243         1457: ('Roaming-Restricted-Due-To-Unsupported-Feature', AVP_10415_1457, 192),
   4244         1458: ('Trace-Data', AVPV_Grouped, 192),
   4245         1459: ('Trace-Reference', AVPV_OctetString, 192),
   4246         1462: ('Trace-Depth', AVP_10415_1462, 192),
   4247         1463: ('Trace-NE-Type-List', AVPV_OctetString, 192),
   4248         1464: ('Trace-Interface-List', AVPV_OctetString, 192),
   4249         1465: ('Trace-Event-List', AVPV_OctetString, 192),
   4250         1466: ('OMC-Id', AVPV_OctetString, 192),
   4251         1467: ('GPRS-Subscription-Data', AVPV_Grouped, 192),
   4252         1468: ('Complete-Data-List-Included-Indicator', AVP_10415_1468, 192),
   4253         1469: ('PDP-Context', AVPV_Grouped, 192),
   4254         1470: ('PDP-Type', AVPV_OctetString, 192),
   4255         1471: ('3GPP2-MEID', AVPV_OctetString, 192),
   4256         1472: ('Specific-APN-Info', AVPV_Grouped, 192),
   4257         1473: ('LCS-Info', AVPV_Grouped, 192),
   4258         1474: ('GMLC-Number', AVPV_OctetString, 192),
   4259         1475: ('LCS-PrivacyException', AVPV_Grouped, 192),
   4260         1476: ('SS-Code', AVPV_OctetString, 192),
   4261         1477: ('SS-Status', AVPV_OctetString, 192),
   4262         1478: ('Notification-To-UE-User', AVP_10415_1478, 192),
   4263         1479: ('External-Client', AVPV_Grouped, 192),
   4264         1480: ('Client-Identity', AVPV_OctetString, 192),
   4265         1481: ('GMLC-Restriction', AVP_10415_1481, 192),
   4266         1482: ('PLMN-Client', AVP_10415_1482, 192),
   4267         1483: ('Service-Type', AVPV_Grouped, 192),
   4268         1484: ('ServiceTypeIdentity', AVPV_Unsigned32, 192),
   4269         1485: ('MO-LR', AVPV_Grouped, 192),
   4270         1486: ('Teleservice-List', AVPV_Grouped, 192),
   4271         1487: ('TS-Code', AVPV_OctetString, 192),
   4272         1488: ('Call-Barring-Info', AVPV_Grouped, 192),
   4273         1489: ('SGSN-Number', AVPV_OctetString, 192),
   4274         1490: ('IDR-Flags', AVPV_Unsigned32, 192),
   4275         1491: ('ICS-Indicator', AVP_10415_1491, 128),
   4276         1492: ('IMS-Voice-Over-PS-Sessions-Supported', AVP_10415_1492, 128),
   4277         1493: ('Homogeneous-Support-of-IMS-Voice-Over-PS-Sessions', AVP_10415_1493, 128),
   4278         1494: ('Last-UE-Activity-Time', AVPV_Time, 128),
   4279         1495: ('EPS-User-State', AVPV_Grouped, 128),
   4280         1496: ('EPS-Location-Information', AVPV_Grouped, 128),
   4281         1497: ('MME-User-State', AVPV_Grouped, 128),
   4282         1498: ('SGSN-User-State', AVPV_Grouped, 128),
   4283         1499: ('User-State', AVP_10415_1499, 128),
   4284         1500: ('Non-3GPP-User-Data', AVPV_Grouped, 192),
   4285         1501: ('Non-3GPP-IP-Access', AVP_10415_1501, 192),
   4286         1502: ('Non-3GPP-IP-Access-APN', AVP_10415_1502, 192),
   4287         1503: ('AN-Trusted', AVP_10415_1503, 192),
   4288         1504: ('ANID', AVPV_StrLenField, 192),
   4289         1505: ('Trace-Info', AVPV_Grouped, 128),
   4290         1506: ('MIP-FA-RK', AVPV_OctetString, 192),
   4291         1507: ('MIP-FA-RK-SPI', AVPV_Unsigned32, 192),
   4292         1508: ('PPR-Flags', AVPV_Unsigned32, 128),
   4293         1509: ('WLAN-Identifier', AVPV_Grouped, 128),
   4294         1510: ('TWAN-Access-Info', AVPV_Grouped, 128),
   4295         1511: ('Access-Authorization-Flags', AVPV_Unsigned32, 128),
   4296         1512: ('TWAN-Default-APN-Context-Id', AVPV_Unsigned32, 128),
   4297         1515: ('Trust-Relationship-Update', AVP_10415_1515, 128),
   4298         1516: ('Full-Network-Name', AVPV_OctetString, 128),
   4299         1517: ('Short-Network-Name', AVPV_OctetString, 128),
   4300         1518: ('AAA-Failure-Indication', AVPV_Unsigned32, 128),
   4301         1519: ('Transport-Access-Type', AVP_10415_1519, 128),
   4302         1520: ('DER-Flags', AVPV_Unsigned32, 128),
   4303         1521: ('DEA-Flags', AVPV_Unsigned32, 128),
   4304         1522: ('RAR-Flags', AVPV_Unsigned32, 128),
   4305         1523: ('DER-S6b-Flags', AVPV_Unsigned32, 128),
   4306         1524: ('SSID', AVPV_StrLenField, 128),
   4307         1525: ('HESSID', AVPV_StrLenField, 128),
   4308         1526: ('Access-Network-Info', AVPV_Grouped, 128),
   4309         1527: ('TWAN-Connection-Mode', AVPV_Unsigned32, 128),
   4310         1528: ('TWAN-Connectivity-Parameters', AVPV_Grouped, 128),
   4311         1529: ('Connectivity-Flags', AVPV_Unsigned32, 128),
   4312         1530: ('TWAN-PCO', AVPV_OctetString, 128),
   4313         1531: ('TWAG-CP-Address', AVPV_Address, 128),
   4314         1532: ('TWAG-UP-Address', AVPV_StrLenField, 128),
   4315         1533: ('TWAN-S2a-Failure-Cause', AVPV_Unsigned32, 128),
   4316         1534: ('SM-Back-Off-Timer', AVPV_Unsigned32, 128),
   4317         1535: ('WLCP-Key', AVPV_OctetString, 128),
   4318         1600: ('Information', AVPV_Grouped, 128),
   4319         1601: ('SGSN-Location-Information', AVPV_Grouped, 128),
   4320         1602: ('E-UTRAN-Cell-Global-Identity', AVPV_OctetString, 128),
   4321         1603: ('Tracking-Area-Identity', AVPV_OctetString, 128),
   4322         1604: ('Cell-Global-Identity', AVPV_OctetString, 128),
   4323         1605: ('Routing-Area-Identity', AVPV_OctetString, 128),
   4324         1606: ('Location-Area-Identity', AVPV_OctetString, 128),
   4325         1607: ('Service-Area-Identity', AVPV_OctetString, 128),
   4326         1608: ('Geographical-Information', AVPV_OctetString, 128),
   4327         1609: ('Geodetic-Information', AVPV_OctetString, 128),
   4328         1610: ('Current-Location-Retrieved', AVP_10415_1610, 128),
   4329         1611: ('Age-Of-Location-Information', AVPV_Unsigned32, 128),
   4330         1612: ('Active-APN', AVPV_Grouped, 128),
   4331         1613: ('SIPTO-Permission', AVP_10415_1613, 128),
   4332         1614: ('Error-Diagnostic', AVP_10415_1614, 128),
   4333         1615: ('UE-SRVCC-Capability', AVP_10415_1615, 128),
   4334         1616: ('MPS-Priority', AVPV_Unsigned32, 128),
   4335         1617: ('VPLMN-LIPA-Allowed', AVP_10415_1617, 128),
   4336         1618: ('LIPA-Permission', AVP_10415_1618, 128),
   4337         1619: ('Subscribed-Periodic-RAU-TAU-Timer', AVPV_Unsigned32, 128),
   4338         1621: ('Ext-PDP-Address', AVPV_Address, 128),
   4339         1622: ('MDT-Configuration', AVPV_Grouped, 128),
   4340         1623: ('Job-Type', AVP_10415_1623, 128),
   4341         1624: ('Area-Scope', AVPV_Grouped, 128),
   4342         1625: ('List-Of-Measurements', AVPV_Unsigned32, 128),
   4343         1626: ('Reporting-Trigger', AVPV_Unsigned32, 128),
   4344         1627: ('Report-Interval', AVP_10415_1627, 128),
   4345         1628: ('Report-Amount', AVP_10415_1628, 128),
   4346         1629: ('Event-Threshold-RSRP', AVPV_Unsigned32, 128),
   4347         1631: ('Logging-Interval', AVP_10415_1631, 128),
   4348         1632: ('Logging-Duration', AVP_10415_1632, 128),
   4349         1633: ('Relay-Node-Indicator', AVP_10415_1633, 128),
   4350         1634: ('MDT-User-Consent', AVP_10415_1634, 128),
   4351         1635: ('PUR-Flags', AVPV_Unsigned32, 128),
   4352         1636: ('Subscribed-VSRVCC', AVP_10415_1636, 128),
   4353         1638: ('CLR-Flags', AVPV_Unsigned32, 128),
   4354         1639: ('UVR-Flags', AVPV_Unsigned32, 192),
   4355         1640: ('UVA-Flags', AVPV_Unsigned32, 192),
   4356         1641: ('VPLMN-CSG-Subscription-Data', AVPV_Grouped, 192),
   4357         1642: ('Time-Zone', AVPV_StrLenField, 128),
   4358         1643: ('A-MSISDN', AVP_10415_1643, 128),
   4359         1645: ('MME-Number-for-MT-SMS', AVPV_OctetString, 128),
   4360         1648: ('SMS-Register-Request', AVP_10415_1648, 128),
   4361         1649: ('Local-Time-Zone', AVPV_Grouped, 128),
   4362         1650: ('Daylight-Saving-Time', AVP_10415_1650, 128),
   4363         1654: ('Subscription-Data-Flags', AVPV_Unsigned32, 128),
   4364         1659: ('Positioning-Method', AVPV_OctetString, 128),
   4365         1660: ('Measurement-Quantity', AVPV_OctetString, 128),
   4366         1661: ('Event-Threshold-Event-1F', AVPV_Integer32, 128),
   4367         1662: ('Event-Threshold-Event-1I', AVPV_Integer32, 128),
   4368         1663: ('Restoration-Priority', AVPV_Unsigned32, 128),
   4369         1664: ('SGs-MME-Identity', AVPV_StrLenField, 128),
   4370         1665: ('SIPTO-Local-Network-Permission', AVPV_Unsigned32, 128),
   4371         1666: ('Coupled-Node-Diameter-ID', AVPV_StrLenField, 128),
   4372         1667: ('WLAN-offloadability', AVPV_Grouped, 128),
   4373         1668: ('WLAN-offloadability-EUTRAN', AVPV_Unsigned32, 128),
   4374         1669: ('WLAN-offloadability-UTRAN', AVPV_Unsigned32, 128),
   4375         1670: ('Reset-ID', AVPV_OctetString, 128),
   4376         1671: ('MDT-Allowed-PLMN-Id', AVPV_OctetString, 128),
   4377         2000: ('SMS-Information', AVPV_Grouped, 192),
   4378         2001: ('Data-Coding-Scheme', AVPV_Integer32, 192),
   4379         2002: ('Destination-Interface', AVPV_Grouped, 192),
   4380         2003: ('Interface-Id', AVPV_StrLenField, 192),
   4381         2004: ('Interface-Port', AVPV_StrLenField, 192),
   4382         2005: ('Interface-Text', AVPV_StrLenField, 192),
   4383         2006: ('Interface-Type', AVP_10415_2006, 192),
   4384         2007: ('SM-Message-Type', AVP_10415_2007, 192),
   4385         2008: ('Originator-SCCP-Address', AVPV_Address, 192),
   4386         2009: ('Originator-Interface', AVPV_Grouped, 192),
   4387         2010: ('Recipient-SCCP-Address', AVPV_Address, 192),
   4388         2011: ('Reply-Path-Requested', AVP_10415_2011, 192),
   4389         2012: ('SM-Discharge-Time', AVPV_Time, 192),
   4390         2013: ('SM-Protocol-ID', AVPV_OctetString, 192),
   4391         2015: ('SM-User-Data-Header', AVPV_OctetString, 192),
   4392         2016: ('SMS-Node', AVP_10415_2016, 192),
   4393         2018: ('Client-Address', AVPV_Address, 192),
   4394         2019: ('Number-Of-Messages-Sent', AVPV_Unsigned32, 192),
   4395         2021: ('Remaining-Balance', AVPV_Grouped, 192),
   4396         2022: ('Refund-Information', AVPV_OctetString, 192),
   4397         2023: ('Carrier-Select-Routing-Information', AVPV_StrLenField, 192),
   4398         2024: ('Number-Portability-Routing-Information', AVPV_StrLenField, 192),
   4399         2025: ('PoC-Event-Type', AVP_10415_2025, 192),
   4400         2026: ('Recipient-Info', AVPV_Grouped, 192),
   4401         2027: ('Originator-Received-Address', AVPV_Grouped, 192),
   4402         2028: ('Recipient-Received-Address', AVPV_Grouped, 192),
   4403         2029: ('SM-Service-Type', AVP_10415_2029, 192),
   4404         2030: ('MMTel-Information', AVPV_Grouped, 192),
   4405         2031: ('MMTel-SService-Type', AVPV_Unsigned32, 192),
   4406         2032: ('Service-Mode', AVPV_Unsigned32, 192),
   4407         2033: ('Subscriber-Role', AVP_10415_2033, 192),
   4408         2034: ('Number-Of-Diversions', AVPV_Unsigned32, 192),
   4409         2035: ('Associated-Party-Address', AVPV_StrLenField, 192),
   4410         2036: ('SDP-Type', AVP_10415_2036, 192),
   4411         2037: ('Change-Condition', AVPV_Integer32, 192),
   4412         2038: ('Change-Time', AVPV_Time, 192),
   4413         2039: ('Diagnostics', AVPV_Integer32, 192),
   4414         2040: ('Service-Data-Container', AVPV_Grouped, 192),
   4415         2041: ('Start-Time', AVPV_Time, 192),
   4416         2042: ('Stop-Time', AVPV_Time, 192),
   4417         2043: ('Time-First-Usage', AVPV_Time, 192),
   4418         2044: ('Time-Last-Usage', AVPV_Time, 192),
   4419         2045: ('Time-Usage', AVPV_Unsigned32, 192),
   4420         2046: ('Traffic-Data-Volumes', AVPV_Grouped, 192),
   4421         2047: ('Serving-Node-Type', AVP_10415_2047, 192),
   4422         2048: ('Supplementary-Service', AVPV_Grouped, 192),
   4423         2049: ('Participant-Action-Type', AVP_10415_2049, 192),
   4424         2050: ('PDN-Connection-Charging-ID', AVPV_Unsigned32, 192),
   4425         2051: ('Dynamic-Address-Flag', AVP_10415_2051, 192),
   4426         2052: ('Accumulated-Cost', AVPV_Grouped, 192),
   4427         2053: ('AoC-Cost-Information', AVPV_Grouped, 192),
   4428         2056: ('Current-Tariff', AVPV_Grouped, 192),
   4429         2058: ('Rate-Element', AVPV_Grouped, 192),
   4430         2059: ('Scale-Factor', AVPV_Grouped, 192),
   4431         2060: ('Tariff-Information', AVPV_Grouped, 192),
   4432         2061: ('Unit-Cost', AVPV_Grouped, 192),
   4433         2062: ('Incremental-Cost', AVPV_Grouped, 192),
   4434         2063: ('Local-Sequence-Number', AVPV_Unsigned32, 192),
   4435         2064: ('Node-Id', AVPV_StrLenField, 192),
   4436         2065: ('SGW-Change', AVP_10415_2065, 192),
   4437         2066: ('Charging-Characteristics-Selection-Mode', AVP_10415_2066, 192),
   4438         2067: ('SGW-Address', AVPV_Address, 192),
   4439         2068: ('Dynamic-Address-Flag-Extension', AVP_10415_2068, 192),
   4440         2118: ('Charge-Reason-Code', AVP_10415_2118, 192),
   4441         2200: ('Subsession-Decision-Info', AVPV_Grouped, 192),
   4442         2201: ('Subsession-Enforcement-Info', AVPV_Grouped, 192),
   4443         2202: ('Subsession-Id', AVPV_Unsigned32, 192),
   4444         2203: ('Subsession-Operation', AVP_10415_2203, 192),
   4445         2204: ('Multiple-BBERF-Action', AVP_10415_2204, 192),
   4446         2206: ('DRA-Deployment', AVP_10415_2206, 128),
   4447         2208: ('DRA-Binding', AVP_10415_2208, 128),
   4448         2301: ('SIP-Request-Timestamp-Fraction', AVPV_Unsigned32, 192),
   4449         2302: ('SIP-Response-Timestamp-Fraction', AVPV_Unsigned32, 192),
   4450         2303: ('Online-Charging-Flag', AVP_10415_2303, 192),
   4451         2304: ('CUG-Information', AVPV_OctetString, 192),
   4452         2305: ('Real-Time-Tariff-Information', AVPV_Grouped, 192),
   4453         2306: ('Tariff-XML', AVPV_StrLenField, 192),
   4454         2307: ('MBMS-GW-Address', AVPV_Address, 192),
   4455         2308: ('IMSI-Unauthenticated-Flag', AVP_10415_2308, 192),
   4456         2309: ('Account-Expiration', AVPV_Time, 192),
   4457         2310: ('AoC-Format', AVP_10415_2310, 192),
   4458         2311: ('AoC-Service', AVPV_Grouped, 192),
   4459         2312: ('AoC-Service-Obligatory-Type', AVP_10415_2312, 192),
   4460         2313: ('AoC-Service-Type', AVP_10415_2313, 192),
   4461         2314: ('AoC-Subscription-Information', AVPV_Grouped, 192),
   4462         2315: ('Preferred-AoC-Currency', AVPV_Unsigned32, 192),
   4463         2317: ('CSG-Access-Mode', AVP_10415_2317, 192),
   4464         2318: ('CSG-Membership-Indication', AVP_10415_2318, 192),
   4465         2319: ('User-CSG-Information', AVPV_Grouped, 192),
   4466         2320: ('Outgoing-Session-Id', AVPV_StrLenField, 192),
   4467         2321: ('Initial-IMS-Charging-Identifier', AVPV_StrLenField, 192),
   4468         2322: ('IMS-Emergency-Indicator', AVP_10415_2322, 192),
   4469         2323: ('MBMS-Charged-Party', AVP_10415_2323, 192),
   4470         2400: ('LMSI', AVPV_OctetString, 192),
   4471         2401: ('Serving-Node', AVPV_Grouped, 192),
   4472         2402: ('MME-Name', AVPV_StrLenField, 192),
   4473         2403: ('MSC-Number', AVPV_OctetString, 192),
   4474         2404: ('LCS-Capabilities-Sets', AVPV_Unsigned32, 192),
   4475         2405: ('GMLC-Address', AVPV_Address, 192),
   4476         2406: ('Additional-Serving-Node', AVPV_Grouped, 192),
   4477         2407: ('PPR-Address', AVPV_Address, 192),
   4478         2408: ('MME-Realm', AVPV_StrLenField, 128),
   4479         2409: ('SGSN-Name', AVPV_StrLenField, 128),
   4480         2410: ('SGSN-Realm', AVPV_StrLenField, 128),
   4481         2411: ('RIA-Flags', AVPV_Unsigned32, 128),
   4482         2500: ('SLg-Location-Type', AVP_10415_2500, 192),
   4483         2501: ('LCS-EPS-Client-Name', AVPV_Grouped, 192),
   4484         2502: ('LCS-Requestor-Name', AVPV_Grouped, 192),
   4485         2503: ('LCS-Priority', AVPV_Unsigned32, 192),
   4486         2504: ('LCS-QoS', AVPV_Grouped, 192),
   4487         2505: ('Horizontal-Accuracy', AVPV_Unsigned32, 192),
   4488         2506: ('Vertical-Accuracy', AVPV_Unsigned32, 192),
   4489         2507: ('Vertical-Requested', AVP_10415_2507, 192),
   4490         2508: ('Velocity-Requested', AVP_10415_2508, 192),
   4491         2509: ('Response-Time', AVP_10415_2509, 192),
   4492         2510: ('Supported-GAD-Shapes', AVPV_Unsigned32, 192),
   4493         2511: ('LCS-Codeword', AVPV_StrLenField, 192),
   4494         2512: ('LCS-Privacy-Check', AVP_10415_2512, 192),
   4495         2513: ('Accuracy-Fulfilment-Indicator', AVP_10415_2513, 192),
   4496         2514: ('Age-Of-Location-Estimate', AVPV_Unsigned32, 192),
   4497         2515: ('Velocity-Estimate', AVPV_OctetString, 192),
   4498         2516: ('EUTRAN-Positioning-Data', AVPV_OctetString, 192),
   4499         2517: ('ECGI', AVPV_OctetString, 192),
   4500         2518: ('Location-Event', AVP_10415_2518, 192),
   4501         2519: ('Pseudonym-Indicator', AVP_10415_2519, 192),
   4502         2520: ('LCS-Service-Type-ID', AVPV_Unsigned32, 192),
   4503         2523: ('LCS-QoS-Class', AVP_10415_2523, 192),
   4504         2524: ('GERAN-Positioning-Info', AVPV_Grouped, 128),
   4505         2525: ('GERAN-Positioning-Data', AVPV_OctetString, 128),
   4506         2526: ('GERAN-GANSS-Positioning-Data', AVPV_OctetString, 128),
   4507         2527: ('UTRAN-Positioning-Info', AVPV_Grouped, 128),
   4508         2528: ('UTRAN-Positioning-Data', AVPV_OctetString, 128),
   4509         2529: ('UTRAN-GANSS-Positioning-Data', AVPV_OctetString, 128),
   4510         2530: ('LRR-Flags', AVPV_Unsigned32, 128),
   4511         2531: ('LCS-Reference-Number', AVPV_OctetString, 128),
   4512         2532: ('Deferred-Location-Type', AVPV_Unsigned32, 128),
   4513         2533: ('Area-Event-Info', AVPV_Grouped, 128),
   4514         2534: ('Area-Definition', AVPV_Grouped, 128),
   4515         2535: ('Area', AVPV_Grouped, 128),
   4516         2536: ('Area-Type', AVPV_Unsigned32, 128),
   4517         2537: ('Area-Identification', AVPV_Grouped, 128),
   4518         2538: ('Occurrence-Info', AVP_10415_2538, 128),
   4519         2539: ('Interval-Time', AVPV_Unsigned32, 128),
   4520         2540: ('Periodic-LDR-Information', AVPV_Grouped, 128),
   4521         2541: ('Reporting-Amount', AVPV_Unsigned32, 128),
   4522         2542: ('Reporting-Interval', AVPV_Unsigned32, 128),
   4523         2543: ('Reporting-PLMN-List', AVPV_Grouped, 128),
   4524         2544: ('PLMN-ID-List', AVPV_Grouped, 128),
   4525         2545: ('PLR-Flags', AVPV_Unsigned32, 128),
   4526         2546: ('PLA-Flags', AVPV_Unsigned32, 128),
   4527         2547: ('Deferred-MT-LR-Data', AVPV_Grouped, 128),
   4528         2548: ('Termination-Cause', AVPV_Unsigned32, 128),
   4529         2549: ('LRA-Flags', AVPV_Unsigned32, 128),
   4530         2550: ('Periodic-Location-Support-Indicator', AVP_10415_2550, 128),
   4531         2551: ('Prioritized-List-Indicator', AVP_10415_2551, 128),
   4532         2552: ('ESMLC-Cell-Info', AVPV_Grouped, 128),
   4533         2553: ('Cell-Portion-ID', AVPV_Unsigned32, 128),
   4534         2554: ('1xRTT-RCID', AVPV_OctetString, 128),
   4535         2601: ('IMS-Application-Reference-Identifier', AVPV_StrLenField, 192),
   4536         2602: ('Low-Priority-Indicator', AVP_10415_2602, 192),
   4537         2604: ('Local-GW-Inserted-Indication', AVP_10415_2604, 192),
   4538         2605: ('Transcoder-Inserted-Indication', AVP_10415_2605, 192),
   4539         2606: ('PDP-Address-Prefix-Length', AVPV_Unsigned32, 192),
   4540         2701: ('Transit-IOI-List', AVPV_StrLenField, 192),
   4541         2702: ('AS-Code', AVP_10415_2702, 192),
   4542         2704: ('NNI-Type', AVP_10415_2704, 192),
   4543         2705: ('Neighbour-Node-Address', AVPV_Address, 192),
   4544         2706: ('Relationship-Mode', AVP_10415_2706, 192),
   4545         2707: ('Session-Direction', AVP_10415_2707, 192),
   4546         2708: ('From-Address', AVPV_StrLenField, 192),
   4547         2709: ('Access-Transfer-Information', AVPV_Grouped, 192),
   4548         2710: ('Access-Transfer-Type', AVP_10415_2710, 192),
   4549         2711: ('Related-IMS-Charging-Identifier', AVPV_StrLenField, 192),
   4550         2712: ('Related-IMS-Charging-Identifier-Node', AVPV_Address, 192),
   4551         2713: ('IMS-Visited-Network-Identifier', AVPV_StrLenField, 192),
   4552         2714: ('TWAN-User-Location-Info', AVPV_Grouped, 192),
   4553         2716: ('BSSID', AVPV_StrLenField, 192),
   4554         2717: ('TAD-Identifier', AVP_10415_2717, 192),
   4555         2802: ('TDF-Application-Instance-Identifier', AVPV_OctetString, 128),
   4556         2804: ('HeNB-Local-IP-Address', AVPV_Address, 128),
   4557         2805: ('UE-Local-IP-Address', AVPV_Address, 128),
   4558         2806: ('UDP-Source-Port', AVPV_Unsigned32, 128),
   4559         2809: ('Mute-Notification', AVP_10415_2809, 128),
   4560         2810: ('Monitoring-Time', AVPV_Time, 128),
   4561         2811: ('AN-GW-Status', AVP_10415_2811, 128),
   4562         2812: ('User-Location-Info-Time', AVPV_Time, 128),
   4563         2816: ('Default-QoS-Information', AVPV_Grouped, 128),
   4564         2817: ('Default-QoS-Name', AVPV_StrLenField, 128),
   4565         2818: ('Conditional-APN-Aggregate-Max-Bitrate', AVPV_Grouped, 128),
   4566         2819: ('RAN-NAS-Release-Cause', AVPV_OctetString, 128),
   4567         2820: ('Presence-Reporting-Area-Elements-List', AVPV_OctetString, 128),
   4568         2821: ('Presence-Reporting-Area-Identifier', AVPV_OctetString, 128),
   4569         2822: ('Presence-Reporting-Area-Information', AVPV_Grouped, 128),
   4570         2823: ('Presence-Reporting-Area-Status', AVPV_Unsigned32, 128),
   4571         2824: ('NetLoc-Access-Support', AVPV_Unsigned32, 128),
   4572         2825: ('Fixed-User-Location-Info', AVPV_Grouped, 128),
   4573         2826: ('PCSCF-Restoration-Indication', AVPV_Unsigned32, 128),
   4574         2827: ('IP-CAN-Session-Charging-Scope', AVPV_Unsigned32, 128),
   4575         2828: ('Monitoring-Flags', AVPV_Unsigned32, 128),
   4576         2901: ('Policy-Counter-Identifier', AVPV_StrLenField, 192),
   4577         2902: ('Policy-Counter-Status', AVPV_StrLenField, 192),
   4578         2903: ('Policy-Counter-Status-Report', AVPV_Grouped, 192),
   4579         2904: ('SL-Request-Type', AVP_10415_2904, 192),
   4580         2905: ('Pending-Policy-Counter-Information', AVPV_Grouped, 192),
   4581         2906: ('Pending-Policy-Counter-Change-Time', AVPV_Time, 192),
   4582         3401: ('Reason-Header', AVPV_StrLenField, 192),
   4583         3402: ('Instance-Id', AVPV_StrLenField, 192),
   4584         3403: ('Route-Header-Received', AVPV_StrLenField, 192),
   4585         3404: ('Route-Header-Transmitted', AVPV_StrLenField, 192),
   4586         3405: ('SM-Device-Trigger-Information', AVPV_Grouped, 192),
   4587         3406: ('MTC-IWF-Address', AVPV_Address, 192),
   4588         3407: ('SM-Device-Trigger-Indicator', AVP_10415_3407, 192),
   4589         3408: ('SM-Sequence-Number', AVPV_Unsigned32, 192),
   4590         3409: ('SMS-Result', AVPV_Unsigned32, 192),
   4591         3410: ('VCS-Information', AVPV_Grouped, 192),
   4592         3411: ('Basic-Service-Code', AVPV_Grouped, 192),
   4593         3412: ('Bearer-Capability', AVPV_OctetString, 192),
   4594         3413: ('Teleservice', AVPV_OctetString, 192),
   4595         3414: ('ISUP-Location-Number', AVPV_OctetString, 192),
   4596         3415: ('Forwarding-Pending', AVP_10415_3415, 192),
   4597         3416: ('ISUP-Cause', AVPV_Grouped, 192),
   4598         3417: ('MSC-Address', AVPV_OctetString, 192),
   4599         3418: ('Network-Call-Reference-Number', AVPV_OctetString, 192),
   4600         3419: ('Start-of-Charging', AVPV_Time, 192),
   4601         3420: ('VLR-Number', AVPV_OctetString, 192),
   4602         3421: ('CN-Operator-Selection-Entity', AVP_10415_3421, 192),
   4603         3422: ('ISUP-Cause-Diagnostics', AVPV_OctetString, 192),
   4604         3423: ('ISUP-Cause-Location', AVPV_Unsigned32, 192),
   4605         3424: ('ISUP-Cause-Value', AVPV_Unsigned32, 192),
   4606         3425: ('ePDG-Address', AVPV_Address, 192),
   4607         3428: ('Coverage-Status', AVP_10415_3428, 192),
   4608         3429: ('Layer-2-Group-ID', AVPV_StrLenField, 192),
   4609         3430: ('Monitored-PLMN-Identifier', AVPV_StrLenField, 192),
   4610         3431: ('Monitoring-UE-HPLMN-Identifier', AVPV_StrLenField, 192),
   4611         3432: ('Monitoring-UE-Identifier', AVPV_StrLenField, 192),
   4612         3433: ('Monitoring-UE-VPLMN-Identifier', AVPV_StrLenField, 192),
   4613         3434: ('PC3-Control-Protocol-Cause', AVPV_Integer32, 192),
   4614         3435: ('PC3-EPC-Control-Protocol-Cause', AVPV_Integer32, 192),
   4615         3436: ('Requested-PLMN-Identifier', AVPV_StrLenField, 192),
   4616         3437: ('Requestor-PLMN-Identifier', AVPV_StrLenField, 192),
   4617         3438: ('Role-Of-ProSe-Function', AVP_10415_3438, 192),
   4618         3439: ('Usage-Information-Report-Sequence-Number', AVPV_Integer32, 192),
   4619         3440: ('ProSe-3rd-Party-Application-ID', AVPV_StrLenField, 192),
   4620         3441: ('ProSe-Direct-Communication-Data-Container', AVPV_Grouped, 192),
   4621         3442: ('ProSe-Direct-Discovery-Model', AVP_10415_3442, 192),
   4622         3443: ('ProSe-Event-Type', AVP_10415_3443, 192),
   4623         3444: ('ProSe-Function-IP-Address', AVPV_Address, 192),
   4624         3445: ('ProSe-Functionality', AVP_10415_3445, 192),
   4625         3446: ('ProSe-Group-IP-Multicast-Address', AVPV_Address, 192),
   4626         3447: ('ProSe-Information', AVPV_Grouped, 192),
   4627         3448: ('ProSe-Range-Class', AVP_10415_3448, 192),
   4628         3449: ('ProSe-Reason-For-Cancellation', AVP_10415_3449, 192),
   4629         3450: ('ProSe-Request-Timestamp', AVPV_Time, 192),
   4630         3451: ('ProSe-Role-Of-UE', AVP_10415_3451, 192),
   4631         3452: ('ProSe-Source-IP-Address', AVPV_Address, 192),
   4632         3453: ('ProSe-UE-ID', AVPV_StrLenField, 192),
   4633         3454: ('Proximity-Alert-Indication', AVP_10415_3454, 192),
   4634         3455: ('Proximity-Alert-Timestamp', AVPV_Time, 192),
   4635         3456: ('Proximity-Cancellation-Timestamp', AVPV_Time, 192),
   4636         3457: ('ProSe-Function-PLMN-Identifier', AVPV_StrLenField, 192),
   4637     },
   4638 }
   4639 
   4640 
   4641 #####################################################################
   4642 #####################################################################
   4643 #
   4644 #       Diameter commands classes and definitions
   4645 #
   4646 #####################################################################
   4647 #####################################################################
   4648 
   4649 # Version + message length + flags + code + Application-ID + Hop-by-Hop ID
   4650 # + End-to-End ID
   4651 DR_Header_Length = 20
   4652 DR_Flags_List = ["x", "x", "x", "x", "T", "E", "P", "R"]
   4653 
   4654 # The Diameter commands definition fields meaning:
   4655 # 2nd: the 2 letters prefix for both requests and answers
   4656 # 3rd: dictionary of Request/Answer command flags for each supported application ID. Each dictionnary key is one of the
   4657 # supported application ID and each value is a tupple defining the request
   4658 # flag and then the answer flag
   4659 DR_cmd_def = {
   4660     257: ('Capabilities-Exchange', 'CE', {0: (128, 0)}),
   4661     258: ('Re-Auth', 'RA', {0: (192, 64), 1: (192, 64), 16777250: (192, 64), 16777272: (192, 64), 16777264: (192, 64)}),
   4662     260: ('AA-Mobile-Node', 'AM', {2: (192, 64)}),
   4663     262: ('Home-Agent-MIP', 'HA', {2: (192, 64)}),
   4664     265: ('AA', 'AA', {16777272: (192, 64), 1: (192, 64), 16777250: (192, 64), 16777264: (192, 64)}),
   4665     268: ('Diameter-EAP', 'DE', {16777272: (192, 64), 16777264: (192, 64), 16777250: (192, 64), 5: (192, 64), 7: (192, 64)}),
   4666     271: ('Accounting', 'AC', {0: (192, 64), 1: (192, 64)}),
   4667     272: ('Credit-Control', 'CC', {4: (192, 64)}),
   4668     274: ('Abort-Session', 'AS', {0: (192, 64), 1: (192, 64), 16777250: (192, 64), 16777272: (192, 64), 16777264: (192, 64)}),
   4669     275: ('Session-Termination', 'ST', {0: (192, 64), 1: (192, 64), 16777250: (192, 64), 16777264: (192, 64), 16777272: (192, 64)}),
   4670     280: ('Device-Watchdog', 'DW', {0: (128, 0)}),
   4671     282: ('Disconnect-Peer', 'DP', {0: (128, 0)}),
   4672     283: ('User-Authorization', 'UA', {6: (192, 64)}),
   4673     284: ('Server-Assignment', 'SA', {6: (192, 64)}),
   4674     285: ('Location-Info', 'LI', {6: (192, 64)}),
   4675     286: ('Multimedia-Auth', 'MA', {6: (192, 64)}),
   4676     287: ('Registration-Termination', 'RT', {6: (192, 64)}),
   4677     288: ('Push-Profile', 'PP', {6: (192, 64)}),
   4678     300: ('User-Authorization', 'UA', {16777216: (192, 64)}),
   4679     301: ('Server-Assignment', 'SA', {16777216: (192, 64), 16777265: (192, 64)}),
   4680     302: ('Location-Info', 'LI', {16777216: (192, 64)}),
   4681     303: ('Multimedia-Auth', 'MA', {16777216: (192, 64), 16777265: (192, 64)}),
   4682     304: ('Registration-Termination', 'RT', {16777216: (192, 64), 16777265: (192, 64)}),
   4683     305: ('Push-Profile', 'PP', {16777216: (192, 64), 16777265: (128, 64)}),
   4684     306: ('User-Data', 'UD', {16777217: (192, 64)}),
   4685     307: ('Profile-Update', 'PU', {16777217: (192, 64)}),
   4686     308: ('Subscribe-Notifications', 'SN', {16777217: (192, 64)}),
   4687     309: ('Push-Notification', 'PN', {16777217: (192, 64)}),
   4688     316: ('Update-Location', 'UL', {16777251: (192, 64)}),
   4689     317: ('Cancel-Location', 'CL', {16777251: (192, 64)}),
   4690     318: ('Authentication-Information', 'AI', {16777251: (192, 64)}),
   4691     319: ('Insert-Subscriber-Data', 'ID', {16777251: (192, 64)}),
   4692     320: ('Delete-Subscriber-Data', 'DS', {16777251: (192, 64)}),
   4693     321: ('Purge-UE', 'PU', {16777251: (192, 64)}),
   4694     322: ('Reset', 'RS', {16777251: (192, 64)}),
   4695     323: ('Notify', 'NO', {16777251: (192, 64)}),
   4696     324: ('ME-Identity-Check', 'EC', {16777252: (192, 64)}),
   4697     325: ('MIP6', 'MI', {8: (192, 64)}),
   4698     8388620: ('Provide-Location', 'PL', {16777255: (192, 64)}),
   4699     8388621: ('Location-Report', 'LR', {16777255: (192, 64)}),
   4700     8388622: ('LCS-Routing-Info', 'RI', {16777291: (192, 64)}),
   4701     8388635: ('Spending-Limit', 'SL', {16777255: (192, 64)}),
   4702     8388636: ('Spending-Status-Notification', 'SN', {16777255: (192, 64)}),
   4703     8388638: ('Update-VCSG-Location', 'UV', {16777308: (192, 64)}),
   4704     8388642: ('Cancel-VCSG-Location', 'CV', {16777308: (192, 64)}),
   4705 }
   4706 
   4707 # Generic class + commands builder
   4708 #######################################
   4709 
   4710 
   4711 class DiamG (Packet):
   4712     """   Generic class defining all the Diameter fields"""
   4713     name = "Diameter"
   4714     fields_desc = [
   4715         # Protocol version field, 1 byte, default value = 1
   4716         XByteField("version", 1),
   4717         I3FieldLenField(
   4718             "drLen",
   4719             None,
   4720             length_of="avpList",
   4721             adjust=lambda p,
   4722             x:x +
   4723             DR_Header_Length),
   4724         DRFlags("drFlags", None, 8, DR_Flags_List),
   4725         # Command Code, 3 bytes, no default
   4726         DRCode("drCode", None, DR_cmd_def),
   4727         # Application ID, 4 bytes, no default
   4728         IntEnumField("drAppId", None, AppIDsEnum),
   4729         # Hop-by-Hop Identifier, 4 bytes
   4730         XIntField("drHbHId", 0),
   4731         # End-to-end Identifier, 4 bytes
   4732         XIntField("drEtEId", 0),
   4733         PacketListField(
   4734             "avpList",
   4735             [],
   4736             GuessAvpType,
   4737             length_from=lambda pkt:pkt.drLen -
   4738             DR_Header_Length),
   4739     ]
   4740 
   4741 
   4742 def getCmdParams(cmd, request, **fields):
   4743     """Update or fill the fields parameters depending on command code. Both cmd and drAppId can be provided
   4744        in string or int format."""
   4745     drCode = None
   4746     params = None
   4747     drAppId = None
   4748     # Fetch the parameters if cmd is found in dict
   4749     if isinstance(cmd, int):
   4750         drCode = cmd    # Enable to craft commands with non standard code
   4751         if cmd in DR_cmd_def.keys():
   4752             params = DR_cmd_def[drCode]
   4753         else:
   4754             params = ('Unknown', 'UK', {0: (128, 0)})
   4755             warning(
   4756                 'No Diameter command with code %d found in DR_cmd_def dictionary' %
   4757                 cmd)
   4758     else:  # Assume command is a string
   4759         if len(cmd) > 3:     # Assume full command name given
   4760             fpos = 0
   4761         else:         # Assume abbreviated name is given and take only the first two letters
   4762             cmd = cmd[:2]
   4763             fpos = 1
   4764         for k, f in DR_cmd_def.items():
   4765             if f[fpos][:len(
   4766                     cmd)] == cmd:   # Accept only a prefix of the full name
   4767                 drCode = k
   4768                 params = f
   4769                 break
   4770         if not drCode:
   4771             warning(
   4772                 'Diameter command with name %s not found in DR_cmd_def dictionary.' %
   4773                 cmd)
   4774             return (fields, 'Unknown')
   4775     # The drCode is set/overriden in any case
   4776     fields['drCode'] = drCode
   4777     # Processing of drAppId
   4778     if 'drAppId' in fields.keys():
   4779         val = fields['drAppId']
   4780         if isinstance(val, str):   # Translate into application Id code
   4781             found = False
   4782             for k, v in six.iteritems(AppIDsEnum):
   4783                 if v.find(val) != -1:
   4784                     drAppId = k
   4785                     fields['drAppId'] = drAppId
   4786                     found = True
   4787                     break
   4788             if not found:
   4789                 del(fields['drAppId'])
   4790                 warning(
   4791                     'Application ID with name %s not found in AppIDsEnum dictionary.' %
   4792                     val)
   4793                 return (fields, 'Unknown')
   4794         else:   # Assume type is int
   4795             drAppId = val
   4796     else:  # Application Id shall be taken from the params found based on cmd
   4797         drAppId = next(iter(params[2]))   # The first record is taken
   4798         fields['drAppId'] = drAppId
   4799     # Set the command name
   4800     name = request and params[0] + '-Request' or params[0] + '-Answer'
   4801     # Processing of flags (only if not provided manually)
   4802     if 'drFlags' not in fields.keys():
   4803         if drAppId in params[2].keys():
   4804             flags = params[2][drAppId]
   4805             fields['drFlags'] = request and flags[0] or flags[1]
   4806     return (fields, name)
   4807 
   4808 
   4809 def DiamReq(cmd, **fields):
   4810     """Craft Diameter request commands"""
   4811     upfields, name = getCmdParams(cmd, True, **fields)
   4812     p = DiamG(**upfields)
   4813     p.name = name
   4814     return p
   4815 
   4816 
   4817 def DiamAns(cmd, **fields):
   4818     """Craft Diameter answer commands"""
   4819     upfields, name = getCmdParams(cmd, False, **fields)
   4820     p = DiamG(**upfields)
   4821     p.name = name
   4822     return p
   4823 
   4824 # Binding
   4825 #######################################
   4826 
   4827 bind_layers(TCP, DiamG, dport=3868)
   4828 bind_layers(TCP, DiamG, sport=3868)
   4829 bind_layers(SCTPChunkData, DiamG, dport=3868)
   4830 bind_layers(SCTPChunkData, DiamG, sport=3868)
   4831 bind_layers(SCTPChunkData, DiamG, proto_id=46)
   4832 bind_layers(SCTPChunkData, DiamG, proto_id=47)
   4833