Source code for pcapkit.const.hip.notify_message
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long
"""Notify Message Types"""
from aenum import IntEnum, extend_enum
__all__ = ['NotifyMessage']
[docs]class NotifyMessage(IntEnum):
"""[NotifyMessage] Notify Message Types"""
_ignore_ = 'NotifyMessage _'
NotifyMessage = vars()
#: [:rfc:`7401`]
NotifyMessage['Reserved'] = 0
#: [:rfc:`7401`]
NotifyMessage['UNSUPPORTED_CRITICAL_PARAMETER_TYPE'] = 1
#: [:rfc:`7401`]
NotifyMessage['INVALID_SYNTAX'] = 7
#: [:rfc:`7401`]
NotifyMessage['NO_DH_PROPOSAL_CHOSEN'] = 14
#: [:rfc:`7401`]
NotifyMessage['INVALID_DH_CHOSEN'] = 15
#: [:rfc:`7401`]
NotifyMessage['NO_HIP_PROPOSAL_CHOSEN'] = 16
#: [:rfc:`7401`]
NotifyMessage['INVALID_HIP_CIPHER_CHOSEN'] = 17
#: [:rfc:`7402`]
NotifyMessage['NO_ESP_PROPOSAL_CHOSEN'] = 18
#: [:rfc:`7402`]
NotifyMessage['INVALID_ESP_TRANSFORM_CHOSEN'] = 19
#: [:rfc:`7401`]
NotifyMessage['UNSUPPORTED_HIT_SUITE'] = 20
#: [:rfc:`7401`]
NotifyMessage['AUTHENTICATION_FAILED'] = 24
NotifyMessage['Unassigned_25'] = 25
#: [:rfc:`7401`]
NotifyMessage['CHECKSUM_FAILED'] = 26
NotifyMessage['Unassigned_27'] = 27
#: [:rfc:`7401`]
NotifyMessage['HIP_MAC_FAILED'] = 28
#: [:rfc:`7401`]
NotifyMessage['ENCRYPTION_FAILED'] = 32
#: [:rfc:`7401`]
NotifyMessage['INVALID_HIT'] = 40
NotifyMessage['Unassigned_41'] = 41
#: [:rfc:`7401`]
NotifyMessage['BLOCKED_BY_POLICY'] = 42
NotifyMessage['Unassigned_43'] = 43
#: [:rfc:`7401`]
NotifyMessage['RESPONDER_BUSY_PLEASE_RETRY'] = 44
NotifyMessage['Unassigned_45'] = 45
#: [:rfc:`8046`]
NotifyMessage['LOCATOR_TYPE_UNSUPPORTED'] = 46
NotifyMessage['Unassigned_47'] = 47
#: [:rfc:`8002`]
NotifyMessage['CREDENTIALS_REQUIRED'] = 48
NotifyMessage['Unassigned_49'] = 49
#: [:rfc:`8002`]
NotifyMessage['INVALID_CERTIFICATE'] = 50
#: [:rfc:`8003`]
NotifyMessage['REG_REQUIRED'] = 51
#: [:rfc:`5770`]
NotifyMessage['NO_VALID_NAT_TRAVERSAL_MODE_PARAMETER'] = 60
#: [:rfc:`5770`]
NotifyMessage['CONNECTIVITY_CHECKS_FAILED'] = 61
#: [:rfc:`5770`]
NotifyMessage['MESSAGE_NOT_RELAYED'] = 62
#: [:rfc:`6079`]
NotifyMessage['OVERLAY_TTL_EXCEEDED'] = 70
#: [:rfc:`6028`]
NotifyMessage['UNKNOWN_NEXT_HOP'] = 90
#: [:rfc:`6261`]
NotifyMessage['NO_VALID_HIP_TRANSPORT_MODE'] = 100
#: [:rfc:`7401`]
NotifyMessage['I2_ACKNOWLEDGEMENT'] = 16384
[docs] @staticmethod
def get(key, default=-1):
"""Backport support for original codes."""
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]
[docs] @classmethod
def _missing_(cls, value):
"""Lookup function used when value is not found."""
if not (isinstance(value, int) and 0 <= value <= 65535):
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
if 2 <= value <= 6:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 8 <= value <= 13:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 21 <= value <= 23:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 29 <= value <= 31:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 33 <= value <= 39:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 52 <= value <= 59:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 63 <= value <= 69:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 71 <= value <= 89:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 91 <= value <= 99:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 101 <= value <= 8191:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 8192 <= value <= 16383:
#: [:rfc:`7401`]
extend_enum(cls, 'Reserved for Private Use [%d]' % value, value)
return cls(value)
if 16385 <= value <= 40959:
extend_enum(cls, 'Unassigned [%d]' % value, value)
return cls(value)
if 40960 <= value <= 65535:
#: [:rfc:`7401`]
extend_enum(cls, 'Reserved for Private Use [%d]' % value, value)
return cls(value)
return super()._missing_(value)