Source code for pcapkit.const.hip.notify_message

# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""Notify Message Types
==========================

This module contains the constant enumeration for **Notify Message Types**,
which is automatically generated from :class:`pcapkit.vendor.hip.notify_message.NotifyMessage`.

"""

from aenum import IntEnum, extend_enum

__all__ = ['NotifyMessage']


[docs]class NotifyMessage(IntEnum): """[NotifyMessage] Notify Message Types""" #: Reserved [:rfc:`7401`] Reserved_0 = 0 #: UNSUPPORTED_CRITICAL_PARAMETER_TYPE [:rfc:`7401`] UNSUPPORTED_CRITICAL_PARAMETER_TYPE = 1 #: INVALID_SYNTAX [:rfc:`7401`] INVALID_SYNTAX = 7 #: NO_DH_PROPOSAL_CHOSEN [:rfc:`7401`] NO_DH_PROPOSAL_CHOSEN = 14 #: INVALID_DH_CHOSEN [:rfc:`7401`] INVALID_DH_CHOSEN = 15 #: NO_HIP_PROPOSAL_CHOSEN [:rfc:`7401`] NO_HIP_PROPOSAL_CHOSEN = 16 #: INVALID_HIP_CIPHER_CHOSEN [:rfc:`7401`] INVALID_HIP_CIPHER_CHOSEN = 17 #: NO_ESP_PROPOSAL_CHOSEN [:rfc:`7402`] NO_ESP_PROPOSAL_CHOSEN = 18 #: INVALID_ESP_TRANSFORM_CHOSEN [:rfc:`7402`] INVALID_ESP_TRANSFORM_CHOSEN = 19 #: UNSUPPORTED_HIT_SUITE [:rfc:`7401`] UNSUPPORTED_HIT_SUITE = 20 #: AUTHENTICATION_FAILED [:rfc:`7401`] AUTHENTICATION_FAILED = 24 #: Unassigned Unassigned_25 = 25 #: CHECKSUM_FAILED [:rfc:`7401`] CHECKSUM_FAILED = 26 #: Unassigned Unassigned_27 = 27 #: HIP_MAC_FAILED [:rfc:`7401`] HIP_MAC_FAILED = 28 #: ENCRYPTION_FAILED [:rfc:`7401`] ENCRYPTION_FAILED = 32 #: INVALID_HIT [:rfc:`7401`] INVALID_HIT = 40 #: Unassigned Unassigned_41 = 41 #: BLOCKED_BY_POLICY [:rfc:`7401`] BLOCKED_BY_POLICY = 42 #: Unassigned Unassigned_43 = 43 #: RESPONDER_BUSY_PLEASE_RETRY [:rfc:`7401`] RESPONDER_BUSY_PLEASE_RETRY = 44 #: Unassigned Unassigned_45 = 45 #: LOCATOR_TYPE_UNSUPPORTED [:rfc:`8046`] LOCATOR_TYPE_UNSUPPORTED = 46 #: Unassigned Unassigned_47 = 47 #: CREDENTIALS_REQUIRED [:rfc:`8002`] CREDENTIALS_REQUIRED = 48 #: Unassigned Unassigned_49 = 49 #: INVALID_CERTIFICATE [:rfc:`8002`] INVALID_CERTIFICATE = 50 #: REG_REQUIRED [:rfc:`8003`] REG_REQUIRED = 51 #: NO_VALID_NAT_TRAVERSAL_MODE_PARAMETER [:rfc:`5770`] NO_VALID_NAT_TRAVERSAL_MODE_PARAMETER = 60 #: CONNECTIVITY_CHECKS_FAILED [:rfc:`5770`] CONNECTIVITY_CHECKS_FAILED = 61 #: MESSAGE_NOT_RELAYED [:rfc:`5770`] MESSAGE_NOT_RELAYED = 62 #: SERVER_REFLEXIVE_CANDIDATE_ALLOCATION_FAILED [:rfc:`9028`] SERVER_REFLEXIVE_CANDIDATE_ALLOCATION_FAILED = 63 #: RVS_HMAC_PROHIBITED_WITH_RELAY [:rfc:`9028`] RVS_HMAC_PROHIBITED_WITH_RELAY = 64 #: OVERLAY_TTL_EXCEEDED [:rfc:`6079`] OVERLAY_TTL_EXCEEDED = 70 #: UNKNOWN_NEXT_HOP [:rfc:`6028`] UNKNOWN_NEXT_HOP = 90 #: NO_VALID_HIP_TRANSPORT_MODE [:rfc:`6261`] NO_VALID_HIP_TRANSPORT_MODE = 100 #: I2_ACKNOWLEDGEMENT [:rfc:`7401`] I2_ACKNOWLEDGEMENT = 16384 #: NAT_KEEPALIVE [:rfc:`9028`] NAT_KEEPALIVE = 16385 @staticmethod def get(key: 'int | str', default: 'int' = -1) -> 'NotifyMessage': """Backport support for original codes. Args: key: Key to get enum item. default: Default value if not found. """ if isinstance(key, int): return NotifyMessage(key) if key not in NotifyMessage._member_map_: # pylint: disable=no-member extend_enum(NotifyMessage, key, default) return NotifyMessage[key] # type: ignore[misc]
[docs] @classmethod def _missing_(cls, value: 'int') -> 'NotifyMessage': """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 2 <= value <= 6: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 8 <= value <= 13: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 21 <= value <= 23: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 29 <= value <= 31: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 33 <= value <= 39: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 52 <= value <= 59: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 65 <= value <= 69: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 71 <= value <= 89: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 91 <= value <= 99: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 101 <= value <= 8191: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 8192 <= value <= 16383: #: Reserved for Private Use [:rfc:`7401`] extend_enum(cls, 'Reserved_for_Private_Use_%d' % value, value) return cls(value) if 16386 <= value <= 40959: #: Unassigned extend_enum(cls, 'Unassigned_%d' % value, value) return cls(value) if 40960 <= value <= 65535: #: Reserved for Private Use [:rfc:`7401`] extend_enum(cls, 'Reserved_for_Private_Use_%d' % value, value) return cls(value) return super()._missing_(value)