Source code for pcapkit.const.mh.option

# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""Mobility Options
======================

.. module:: pcapkit.const.mh.option

This module contains the constant enumeration for **Mobility Options**,
which is automatically generated from :class:`pcapkit.vendor.mh.option.Option`.

"""

from aenum import IntEnum, extend_enum

__all__ = ['Option']


[docs] class Option(IntEnum): """[Option] Mobility Options""" #: Pad1 [:rfc:`6275`] Pad1 = 0 #: PadN [:rfc:`6275`] PadN = 1 #: Binding Refresh Advice [:rfc:`6275`] Binding_Refresh_Advice = 2 #: Alternate Care-of Address [:rfc:`6275`] Alternate_Care_of_Address = 3 #: Nonce Indices [:rfc:`6275`] Nonce_Indices = 4 #: Authorization Data [:rfc:`6275`] Authorization_Data = 5 #: Mobile Network Prefix Option [:rfc:`3963`] Mobile_Network_Prefix_Option = 6 #: Mobility Header Link-Layer Address option [:rfc:`5568`] Mobility_Header_Link_Layer_Address_option = 7 #: MN-ID-OPTION-TYPE [:rfc:`4283`] MN_ID_OPTION_TYPE = 8 #: AUTH-OPTION-TYPE [:rfc:`4285`] AUTH_OPTION_TYPE = 9 #: MESG-ID-OPTION-TYPE [:rfc:`4285`] MESG_ID_OPTION_TYPE = 10 #: CGA Parameters Request [:rfc:`4866`] CGA_Parameters_Request = 11 #: CGA Parameters [:rfc:`4866`] CGA_Parameters = 12 #: Signature [:rfc:`4866`] Signature = 13 #: Permanent Home Keygen Token [:rfc:`4866`] Permanent_Home_Keygen_Token = 14 #: Care-of Test Init [:rfc:`4866`] Care_of_Test_Init = 15 #: Care-of Test [:rfc:`4866`] Care_of_Test = 16 #: DNS-UPDATE-TYPE [:rfc:`5026`] DNS_UPDATE_TYPE = 17 #: Experimental Mobility Option [:rfc:`5096`] Experimental_Mobility_Option = 18 #: Vendor Specific Mobility Option [:rfc:`5094`] Vendor_Specific_Mobility_Option = 19 #: Service Selection Mobility Option [:rfc:`5149`] Service_Selection_Mobility_Option = 20 #: Binding Authorization Data for FMIPv6 (BADF) [:rfc:`5568`] Binding_Authorization_Data_for_FMIPv6 = 21 #: Home Network Prefix Option [:rfc:`5213`] Home_Network_Prefix_Option = 22 #: Handoff Indicator Option [:rfc:`5213`] Handoff_Indicator_Option = 23 #: Access Technology Type Option [:rfc:`5213`] Access_Technology_Type_Option = 24 #: Mobile Node Link-layer Identifier Option [:rfc:`5213`] Mobile_Node_Link_layer_Identifier_Option = 25 #: Link-local Address Option [:rfc:`5213`] Link_local_Address_Option = 26 #: Timestamp Option [:rfc:`5213`] Timestamp_Option = 27 #: Restart Counter [:rfc:`5847`] Restart_Counter = 28 #: IPv4 Home Address [:rfc:`5555`] IPv4_Home_Address = 29 #: IPv4 Address Acknowledgement [:rfc:`5555`] IPv4_Address_Acknowledgement = 30 #: NAT Detection [:rfc:`5555`] NAT_Detection = 31 #: IPv4 Care-of Address [:rfc:`5555`] IPv4_Care_of_Address = 32 #: GRE Key Option [:rfc:`5845`] GRE_Key_Option = 33 #: Mobility Header IPv6 Address/Prefix [:rfc:`5568`] Mobility_Header_IPv6_Address_Prefix = 34 #: Binding Identifier [:rfc:`5648`] Binding_Identifier = 35 #: IPv4 Home Address Request [:rfc:`5844`] IPv4_Home_Address_Request = 36 #: IPv4 Home Address Reply [:rfc:`5844`] IPv4_Home_Address_Reply = 37 #: IPv4 Default-Router Address [:rfc:`5844`] IPv4_Default_Router_Address = 38 #: IPv4 DHCP Support Mode [:rfc:`5844`] IPv4_DHCP_Support_Mode = 39 #: Context Request Option [:rfc:`5949`] Context_Request_Option = 40 #: Local Mobility Anchor Address Option [:rfc:`5949`] Local_Mobility_Anchor_Address_Option = 41 #: Mobile Node Link-local Address Interface Identifier Option [:rfc:`5949`] Mobile_Node_Link_local_Address_Interface_Identifier_Option = 42 #: Transient Binding [:rfc:`6058`] Transient_Binding = 43 #: Flow Summary Mobility Option [:rfc:`6089`] Flow_Summary_Mobility_Option = 44 #: Flow Identification Mobility Option [:rfc:`6089`] Flow_Identification_Mobility_Option = 45 #: Redirect-Capability Mobility Option [:rfc:`6463`] Redirect_Capability_Mobility_Option = 46 #: Redirect Mobility Option [:rfc:`6463`] Redirect_Mobility_Option = 47 #: Load Information Mobility Option [:rfc:`6463`] Load_Information_Mobility_Option = 48 #: Alternate IPv4 Care-of Address [:rfc:`6463`] Alternate_IPv4_Care_of_Address = 49 #: Mobile Node Group Identifier [:rfc:`6602`] Mobile_Node_Group_Identifier = 50 #: MAG IPv6 Address [:rfc:`6705`] MAG_IPv6_Address = 51 #: Access Network Identifier [:rfc:`6757`] Access_Network_Identifier = 52 #: IPv4 Traffic Offload Selector [:rfc:`6909`] IPv4_Traffic_Offload_Selector = 53 #: Dynamic IP Multicast Selector [:rfc:`7028`] Dynamic_IP_Multicast_Selector = 54 #: Delegated Mobile Network Prefix [:rfc:`7148`] Delegated_Mobile_Network_Prefix = 55 #: Active Multicast Subscription IPv4 [:rfc:`7161`] Active_Multicast_Subscription_IPv4 = 56 #: Active Multicast Subscription IPv6 [:rfc:`7161`] Active_Multicast_Subscription_IPv6 = 57 #: Quality-of-Service [:rfc:`7222`] Quality_of_Service = 58 #: LMA User-Plane Address [:rfc:`7389`] LMA_User_Plane_Address = 59 #: Multicast Mobility Option [:rfc:`7411`] Multicast_Mobility_Option = 60 #: Multicast Acknowledgement Option [:rfc:`7411`] Multicast_Acknowledgement_Option = 61 #: LMA-Controlled MAG Parameters [:rfc:`8127`] LMA_Controlled_MAG_Parameters = 62 #: MAG Multipath-Binding [:rfc:`8278`] MAG_Multipath_Binding = 63 #: MAG Identifier [:rfc:`8278`] MAG_Identifier = 64 #: Anchored Prefix [:rfc:`8885`] Anchored_Prefix = 65 #: Local Prefix [:rfc:`8885`] Local_Prefix = 66 #: Previous MAAR [:rfc:`8885`] Previous_MAAR = 67 #: Serving MAAR [:rfc:`8885`] Serving_MAAR = 68 #: DLIF Link-Local Address [:rfc:`8885`] DLIF_Link_Local_Address = 69 #: DLIF Link-Layer Address [:rfc:`8885`] DLIF_Link_Layer_Address = 70 @staticmethod def get(key: 'int | str', default: 'int' = -1) -> 'Option': """Backport support for original codes. Args: key: Key to get enum item. default: Default value if not found. :meta private: """ if isinstance(key, int): return Option(key) if key not in Option._member_map_: # pylint: disable=no-member return extend_enum(Option, key, default) return Option[key] # type: ignore[misc]
[docs] @classmethod def _missing_(cls, value: 'int') -> 'Option': """Lookup function used when value is not found. Args: value: Value to get enum item. """ if not (isinstance(value, int) and 0 <= value <= 255): raise ValueError('%r is not a valid %s' % (value, cls.__name__)) return extend_enum(cls, 'Unassigned_%d' % value, value)