Source code for pcapkit.const.ipv6.router_alert
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""IPv6 Router Alert Option Values
=====================================
This module contains the constant enumeration for **IPv6 Router Alert Option Values**,
which is automatically generated from :class:`pcapkit.vendor.ipv6.router_alert.RouterAlert`.
"""
from aenum import IntEnum, extend_enum
__all__ = ['RouterAlert']
[docs]class RouterAlert(IntEnum):
"""[RouterAlert] IPv6 Router Alert Option Values"""
#: Datagram contains a Multicast Listener Discovery message [:rfc:`2710`]
Datagram_contains_a_Multicast_Listener_Discovery_message = 0
#: Datagram contains RSVP message [:rfc:`2711`]
Datagram_contains_RSVP_message = 1
#: Datagram contains an Active Networks message [:rfc:`2711`]
Datagram_contains_an_Active_Networks_message = 2
#: Reserved [:rfc:`5350`]
Reserved_3 = 3
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_0 = 4
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_1 = 5
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_2 = 6
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_3 = 7
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_4 = 8
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_5 = 9
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_6 = 10
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_7 = 11
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_8 = 12
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_9 = 13
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_10 = 14
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_11 = 15
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_12 = 16
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_13 = 17
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_14 = 18
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_15 = 19
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_16 = 20
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_17 = 21
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_18 = 22
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_19 = 23
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_20 = 24
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_21 = 25
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_22 = 26
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_23 = 27
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_24 = 28
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_25 = 29
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_26 = 30
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_27 = 31
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_28 = 32
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_29 = 33
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_30 = 34
#: Aggregated Reservation Nesting Level [:rfc:`3175`]
Aggregated_Reservation_Nesting_Level_31 = 35
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_0 = 36
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_1 = 37
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_2 = 38
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_3 = 39
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_4 = 40
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_5 = 41
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_6 = 42
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_7 = 43
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_8 = 44
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_9 = 45
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_10 = 46
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_11 = 47
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_12 = 48
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_13 = 49
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_14 = 50
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_15 = 51
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_16 = 52
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_17 = 53
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_18 = 54
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_19 = 55
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_20 = 56
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_21 = 57
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_22 = 58
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_23 = 59
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_24 = 60
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_25 = 61
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_26 = 62
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_27 = 63
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_28 = 64
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_29 = 65
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_30 = 66
#: QoS NSLP Aggregation Levels 0-31 [:rfc:`5974`]
QoS_NSLP_Aggregation_Level_31 = 67
#: NSIS NATFW NSLP [:rfc:`5973`]
NSIS_NATFW_NSLP = 68
#: MPLS OAM [:rfc:`7506`]
MPLS_OAM = 69
#: Reserved [The Internet Assigned Numbers Authority]
Reserved_65535 = 65535
@staticmethod
def get(key: 'int | str', default: 'int' = -1) -> 'RouterAlert':
"""Backport support for original codes.
Args:
key: Key to get enum item.
default: Default value if not found.
"""
if isinstance(key, int):
return RouterAlert(key)
if key not in RouterAlert._member_map_: # pylint: disable=no-member
extend_enum(RouterAlert, key, default)
return RouterAlert[key] # type: ignore[misc]
[docs] @classmethod
def _missing_(cls, value: 'int') -> 'RouterAlert':
"""Lookup function used when value is not found.
Args:
value: Value to get enum item.
"""
if not (isinstance(value, int) and 0 <= value <= 65535):
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
if 70 <= value <= 65502:
#: Unassigned
extend_enum(cls, 'Unassigned_%d' % value, value)
return cls(value)
if 65503 <= value <= 65534:
#: Reserved for experimental use [:rfc:`5350`]
extend_enum(cls, 'Reserved for experimental use_%d' % value, value)
return cls(value)
return super()._missing_(value)