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