Source code for pcapkit.const.radiotap.field_type
# -*- coding: utf-8 -*-
# pylint: disable=line-too-long,consider-using-f-string
"""Radiotap Field Types
==========================
.. module:: pcapkit.const.radiotap.field_type
This module contains the constant enumeration for **Radiotap Field Types**,
which is automatically generated from :class:`pcapkit.vendor.radiotap.field_type.FieldType`.
"""
from typing import TYPE_CHECKING
from aenum import IntEnum
from pcapkit.corekit.enum import EnumRegistry
from pcapkit.utilities.exceptions import EnumValueError
if TYPE_CHECKING:
from typing import Any
__all__ = ['FieldType']
[docs]
class FieldType(EnumRegistry, IntEnum):
"""[FieldType] Radiotap Field Types"""
#: TSFT
TSFT = 0
#: Flags
Flags = 1
#: Rate
Rate = 2
#: Channel
Channel = 3
#: FHSS
FHSS = 4
#: Antenna signal
Antenna_signal = 5
#: Antenna noise
Antenna_noise = 6
#: Lock quality
Lock_quality = 7
#: TX attenuation
TX_attenuation = 8
#: dB TX attenuation
dB_TX_attenuation = 9
#: dBm TX power
dBm_TX_power = 10
#: Antenna
Antenna = 11
#: dB antenna signal
dB_antenna_signal = 12
#: dB antenna noise
dB_antenna_noise = 13
#: RX flags
RX_flags = 14
#: TX flags
TX_flags = 15
#: RTS retries [unofficial, generated by Linux (only libertas driver), NetBSD
#: (?)]
RTS_retries = 16
#: data retries [unofficial, generated by Linux (mac80211), parsed by
#: wireshark]
data_retries = 17
#: MCS
MCS = 19
#: A-MPDU status
A_MPDU_status = 20
#: VHT
VHT = 21
#: timestamp
timestamp = 22
#: HE
HE = 23
#: HE-MU
HE_MU = 24
#: HE-MU-other-user
HE_MU_other_user = 25
#: 0-length-PSDU
FieldType_0_length_PSDU = 26
#: L-SIG
L_SIG = 27
#: TLV fields in radiotap
TLV_fields_in_radiotap = 28
#: Radiotap Namespace
Radiotap_Namespace = 29
#: Vendor Namespace
Vendor_Namespace = 30
#: S1G
S1G = 32
#: U-SIG
U_SIG = 33
#: EHT
EHT = 34
[docs]
@classmethod
def _validate_value(cls, value: 'Any') -> 'None':
"""Reject ``value`` unless it passes the range check :meth:`_missing_` makes.
Overrides :meth:`~pcapkit.corekit.enum.EnumLookup._validate_value`
with that check and the message it raises, so
:meth:`~pcapkit.corekit.enum.EnumRegistry.register` refuses exactly the
values :meth:`~pcapkit.corekit.enum.EnumLookup.get` refuses, in the
same words (:issue:`1816`).
Args:
value: Value about to be looked up or minted.
Raises:
EnumValueError: If ``value`` fails that check. A
:exc:`ValueError`, so an ``except ValueError`` caller is
unaffected.
"""
if not (isinstance(value, int) and 0 <= value <= 0xFFFF):
raise EnumValueError('%r is not a valid %s' % (value, cls.__name__))
[docs]
@classmethod
def _missing_(cls, value: 'int') -> 'FieldType':
"""Lookup function used when value is not found.
Args:
value: Value to get enum item.
"""
if not (isinstance(value, int) and 0 <= value <= 0xFFFF):
raise ValueError('%r is not a valid %s' % (value, cls.__name__))
if value % 32 in (29, 30, 31):
#: Reserved in every presence word
return cls._unregistered_member(value, 'Reserved')
return cls._unregistered_member(value, 'Unassigned')