Source code for pcapkit.const.sctp.parameter
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""SCTP Chunk Parameter Types
================================
.. module:: pcapkit.const.sctp.parameter
This module contains the constant enumeration for **SCTP Chunk Parameter Types**,
which is automatically generated from :class:`pcapkit.vendor.sctp.parameter.Parameter`.
"""
from aenum import IntEnum, extend_enum
__all__ = ['Parameter']
[docs]
class Parameter(IntEnum):
"""[Parameter] SCTP Chunk Parameter Types"""
#: Heartbeat Info [:rfc:`9260`]
Heartbeat_Info = 1
#: IPv4 Address [:rfc:`9260`]
IPv4_Address = 5
#: IPv6 Address [:rfc:`9260`]
IPv6_Address = 6
#: State Cookie [:rfc:`9260`]
State_Cookie = 7
#: Unrecognized Parameter [:rfc:`9260`]
Unrecognized_Parameter = 8
#: Cookie Preservative [:rfc:`9260`]
Cookie_Preservative = 9
#: Unassigned
Unassigned_10 = 10
#: Host Name Address [:rfc:`9260`]
Host_Name_Address = 11
#: Supported Address Types [:rfc:`9260`]
Supported_Address_Types = 12
#: Outgoing SSN Reset Request Parameter [:rfc:`6525`]
Outgoing_SSN_Reset_Request_Parameter = 13
#: Incoming SSN Reset Request Parameter [:rfc:`6525`]
Incoming_SSN_Reset_Request_Parameter = 14
#: SSN/TSN Reset Request Parameter [:rfc:`6525`]
SSN_TSN_Reset_Request_Parameter = 15
#: Re-configuration Response Parameter [:rfc:`6525`]
Re_configuration_Response_Parameter = 16
#: Add Outgoing Streams Request Parameter [:rfc:`6525`]
Add_Outgoing_Streams_Request_Parameter = 17
#: Add Incoming Streams Request Parameter [:rfc:`6525`]
Add_Incoming_Streams_Request_Parameter = 18
#: Reserved for ECN Capable (0x8000) [:rfc:`9260`]
Reserved_for_ECN_Capable = 32768
#: Zero Checksum Acceptable (0x8001) [:rfc:`9653`]
Zero_Checksum_Acceptable = 32769
#: Random (0x8002) [:rfc:`4895`]
Random = 32770
#: Chunk List (0x8003) [:rfc:`4895`]
Chunk_List = 32771
#: Requested HMAC Algorithm Parameter (0x8004) [:rfc:`4895`]
Requested_HMAC_Algorithm_Parameter = 32772
#: Padding (0x8005)
Padding = 32773
#: DTLS Key Management (0x8006) (TEMPORARY - registered 2026-02-20, expires
#: 2027-02-20) [draft-ietf-tsvwg-sctp-dtls-chunk-01]
DTLS_Key_Management = 32774
#: Unassigned
Unassigned_32775 = 32775
#: Supported Extensions (0x8008) [:rfc:`5061`]
Supported_Extensions = 32776
#: Forward TSN supported (0xC000) [:rfc:`3758`]
Forward_TSN_supported = 49152
#: Add IP Address (0xC001) [:rfc:`5061`]
Add_IP_Address = 49153
#: Delete IP Address (0xC002) [:rfc:`5061`]
Delete_IP_Address = 49154
#: Error Cause Indication (0xC003) [:rfc:`5061`]
Error_Cause_Indication = 49155
#: Set Primary Address (0xC004) [:rfc:`5061`]
Set_Primary_Address = 49156
#: Success Indication (0xC005) [:rfc:`5061`]
Success_Indication = 49157
#: Adaptation Layer Indication (0xC006) [:rfc:`5061`]
Adaptation_Layer_Indication = 49158
#: Reserved for IETF-defined Chunk Extensions [:rfc:`9260`]
Reserved_for_IETF_defined_Chunk_Extensions = 65535
@staticmethod
def get(key: 'int | str', default: 'int' = -1) -> 'Parameter':
"""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 Parameter(key)
if key not in Parameter._member_map_: # pylint: disable=no-member
return extend_enum(Parameter, key, default)
return Parameter[key] # type: ignore[misc]
[docs]
@classmethod
def _missing_(cls, value: 'int') -> 'Parameter':
"""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 <= 4:
#: Unassigned
return extend_enum(cls, 'Unassigned_%d' % value, value)
if 19 <= value <= 32767:
#: Unassigned
return extend_enum(cls, 'Unassigned_%d' % value, value)
if 32777 <= value <= 49151:
#: Unassigned
return extend_enum(cls, 'Unassigned_%d' % value, value)
if 49159 <= value <= 65534:
#: Unassigned
return extend_enum(cls, 'Unassigned_%d' % value, value)
return super()._missing_(value)