Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pcapkit/corekit/infoclass.py
Original file line number Diff line number Diff line change
Expand Up @@ -836,7 +836,7 @@ class _OrderedMultiDict(OrderedMultiDict[KT, VT]):

__ne__ = _ne

#: Names of the keys the dumpers leave out: the :attr:`Info.__excluded__`
#: Names of the keys the dumpers leave out -- the :attr:`Info.__excluded__`
#: of the info exported, less the fields it renamed for clashing with a
#: builtin name (:issue:`2733`), kept by copies, deep copies and pickles;
#: none for an export of a multi-mapping (:issue:`2003`).
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/foundation/engines/pcap_ct.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class _PCAPCTPackage(Protocol):
@property
def pcap(self) -> 'Type[Handle]': ...

#: A `pcap-ct`_ "frame": the ``(timestamp, bytes)`` pair that
#: A `pcap-ct`_ "frame" -- the ``(timestamp, bytes)`` pair that
#: ``pcap.pcap`` iteration yields. Deliberately *not* named ``Frame``,
#: so that it is not mistaken for
#: :class:`pcapkit.protocols.misc.pcap.frame.Frame`, which is what the
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/foundation/engines/pcapng.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class PCAPNG(EngineBase[P_PCAPNG]):
#: across the whole file rather than per section.
_block_count: 'collections.Counter[str]'

#: The PCAP-NG magic number this engine claims: the Block Type of a Section
#: The PCAP-NG magic number this engine claims -- the Block Type of a Section
#: Header Block, read from its one home,
#: :class:`~pcapkit.const.pcapng.block_type.BlockType` (:issue:`1739`). It
#: reads the same in either byte order.
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/foundation/engines/pypcap.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class _PyPCAPPackage(Protocol):
@property
def pcap(self) -> 'Type[Handle]': ...

#: A PyPCAP "frame": the ``(timestamp, bytes)`` pair that ``pcap.pcap``
#: A PyPCAP "frame" -- the ``(timestamp, bytes)`` pair that ``pcap.pcap``
#: iteration yields. Deliberately *not* named ``Frame``, so that it is not
#: mistaken for :class:`pcapkit.protocols.misc.pcap.frame.Frame`, which is
#: what the built-in engines return.
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/foundation/reassembly/dtls.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ class DTLS(ReassemblyBase[Packet[_AT], Datagram[_AT], BufferID, Buffer], Generic

#: Protocol name of current reassembly object.
__protocol_name__ = 'DTLS'
#: Protocol of current reassembly object. An extension point: a protocol
#: Protocol of current reassembly object. An extension point -- a protocol
#: named here need only define ``analyze_handshake``, with the signature of
#: :meth:`DTLS.analyze_handshake
#: <pcapkit.protocols.application.dtls.DTLS.analyze_handshake>`, and is read
Expand Down
4 changes: 2 additions & 2 deletions pcapkit/foundation/traceflow/data/tcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ class Packet(Info, Generic[_AT]):

"""

#: Data link type: the PCAP global header's, or that of the PCAP-NG
#: Data link type -- the PCAP global header's, or that of the PCAP-NG
#: interface the packet was captured on.
protocol: 'Enum_LinkType'
#: Frame number.
index: 'int'
#: Extracted frame info: the default engine's frame, a third-party
#: Extracted frame info -- the default engine's frame, a third-party
#: engine's :class:`~pcapkit.foundation.traceflow.data.data.FrameRecord`, or
#: the :obj:`dict` PyShark's adapter reports, which carries no frame record.
frame: 'Data_Frame | FrameRecord | dict[str, Any]'
Expand Down
8 changes: 4 additions & 4 deletions pcapkit/protocols/application/dtls.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@

__all__ = ['DTLS', 'DTLSContext']

#: Length of a legacy record header: content type, legacy version, epoch,
#: Length of a legacy record header -- content type, legacy version, epoch,
#: sequence number and length (:rfc:`9147#section-4`).
_LEGACY_HEADER_LENGTH = 13

Expand All @@ -141,18 +141,18 @@
#: Legacy record version DTLS 1.2 carries, and the value DTLS 1.3 freezes its
#: own legacy-format records at (:rfc:`9147#section-4`).
_DTLSV1_2_VERSION = 0xFEFD
#: Legacy record versions a DTLS 1.3 record may carry: DTLS 1.2's always, and
#: Legacy record versions a DTLS 1.3 record may carry -- DTLS 1.2's always, and
#: DTLS 1.0's on an initial ``ClientHello`` (:rfc:`9147#section-4`).
_DTLS13_LEGACY_VERSIONS = frozenset({_DTLSV1_0_VERSION, _DTLSV1_2_VERSION})
#: Top three bits of a unified-header first octet, ``001`` (:rfc:`9147#section-4.1`).
_UNIFIED_PREFIX = 0b001
#: Shortest ciphertext a unified-header record may carry: the record-number
#: Shortest ciphertext a unified-header record may carry. The record-number
#: sample is taken from its first 16 octets (:rfc:`9147#section-4.2.3`).
_CIPHERTEXT_MIN_LENGTH = 16
#: Offset of a ``tls12_cid`` record's connection ID, after its content type,
#: legacy version, epoch and sequence number (:rfc:`9146#section-4`).
_CID_OFFSET = 11
#: Longest connection ID: its length is one octet (:rfc:`9146#section-3`).
#: Longest connection ID. Its length is one octet (:rfc:`9146#section-3`).
_CID_MAX_LENGTH = 255


Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/application/httpv2.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ def alias(self) -> 'Literal["HTTP/2"]':

@property
def length(self) -> 'int':
"""Header length of current protocol: the 9-octet frame header, after the
"""Header length of current protocol -- the 9-octet frame header, after the
24-octet connection preface when one opens the payload."""
return 9 + self._preface_length

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/application/ssl.py
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@
#: The ``supported_versions`` value for DTLS 1.3 (:rfc:`9147#section-5.3`).
DTLS13_VERSION = 0xFEFC

#: The ``random`` that makes a ``ServerHello`` a ``HelloRetryRequest``: the
#: The ``random`` that makes a ``ServerHello`` a ``HelloRetryRequest`` -- the
#: SHA-256 of ``"HelloRetryRequest"`` (:rfc:`9846#section-4.2.3`).
_HRR_RANDOM = bytes.fromhex('cf21ad74e59a6111be1d8c021e65b891c2a211167abb8c5e079e09e2c8a8339c')

Expand Down
4 changes: 2 additions & 2 deletions pcapkit/protocols/application/tls.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@

__all__ = ['TLS']

#: Length of the record header: content type, legacy version and length
#: Length of the record header -- content type, legacy version and length
#: (:rfc:`9846#section-5.1`).
_RECORD_HEADER_LENGTH = 5

Expand All @@ -106,7 +106,7 @@
0x0303: 'TLS 1.2',
} # type: dict[int, Literal["SSLv3", "TLS 1.0", "TLS 1.1", "TLS 1.2"]]

#: Legacy record versions a TLS 1.3 record may carry: ``0x0303`` always, and
#: Legacy record versions a TLS 1.3 record may carry -- ``0x0303`` always, and
#: ``0x0301`` on an initial ``ClientHello`` (:rfc:`9846#section-5.1`).
_TLS13_LEGACY_VERSIONS = frozenset({0x0301, 0x0303})

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/application/tls.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ class Extension(Data):

#: Extension type.
type: 'Enum_ExtensionType'
#: Extension data: decoded, or the raw octets.
#: Extension data -- decoded, or the raw octets.
data: 'Union[ExtensionData, bytes]'

if TYPE_CHECKING:
Expand Down
6 changes: 3 additions & 3 deletions pcapkit/protocols/data/internet/hopopt.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ class CALIPSOOption(Option):

#: CALIPSO domain of interpretation.
domain: 'int'
#: Compartment bitmap length, in octets: four times the ``Cmpt Length``
#: Compartment bitmap length, in octets -- four times the ``Cmpt Length``
#: field, which counts 32-bit words.
cmpt_len: 'int'
#: Sensitivity level.
Expand Down Expand Up @@ -167,7 +167,7 @@ class SMFIdentificationBasedDPDOption(SMFDPDOption):

#: TaggerID type.
tid_type: 'TaggerID'
#: ``TidLen`` field as on the wire: the TaggerID length in octets minus
#: ``TidLen`` field as on the wire -- the TaggerID length in octets minus
#: one, or ``0`` when there is no TaggerID [:rfc:`6621#section-6.1.1`].
tid_len: 'int'
#: TaggerID.
Expand Down Expand Up @@ -222,7 +222,7 @@ class QuickStartOption(Option):

#: QS function.
func: 'QSFunction'
#: Rate request/report, in kbps: ``40 * 2 ** N`` for the Rate Request or
#: Rate request/report, in kbps -- ``40 * 2 ** N`` for the Rate Request or
#: Rate Report field ``N``, or ``0`` if ``N`` is ``0`` (:rfc:`4782`
#: Section 3.1).
rate: 'int'
Expand Down
4 changes: 2 additions & 2 deletions pcapkit/protocols/data/internet/igmp.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class IGMP(Protocol):

"""

#: Version of IGMP the message was read as, ``1`` or ``2``: the
#: Version of IGMP the message was read as, ``1`` or ``2`` -- the
#: :attr:`~pcapkit.protocols.internet.igmp.IGMP.version` of the class that
#: read or built it. It is on no octet, since the versions share this
#: layout, and :meth:`IGMP.from_data
Expand All @@ -46,7 +46,7 @@ class IGMP(Protocol):
max_resp_time: 'int'
#: Checksum.
checksum: 'bytes'
#: Group address: the IPv4 multicast group being queried, reported or
#: Group address -- the IPv4 multicast group being queried, reported or
#: left, or ``0.0.0.0`` on a General Query.
group: 'IPv4Address'

Expand Down
4 changes: 2 additions & 2 deletions pcapkit/protocols/data/internet/igmpv3.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class IGMPv3(Protocol):

"""

#: Version of IGMP, always ``3``. It is on no octet: it names the class
#: Version of IGMP, always ``3``. It is on no octet; it names the class
#: that read or built the message, as on the IGMPv1/v2 data model, and
#: :meth:`IGMP.from_data <pcapkit.protocols.internet.igmp.IGMP.from_data>`
#: dispatches on it (:issue:`2574`).
Expand Down Expand Up @@ -71,7 +71,7 @@ class Query(IGMPv3):
max_resp_time: 'int'
#: Checksum.
checksum: 'bytes'
#: Group address: the IPv4 multicast group being queried, or ``0.0.0.0``
#: Group address -- the IPv4 multicast group being queried, or ``0.0.0.0``
#: on a General Query.
group: 'IPv4Address'
#: Resv, the 4 reserved high-order bits of the flags octet
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/internet/ipv4.py
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ class QSOption(Option):

#: QS function.
func: 'QSFunction'
#: Rate request/report, in kbps: ``40 * 2 ** N`` for the Rate Request or
#: Rate request/report, in kbps -- ``40 * 2 ** N`` for the Rate Request or
#: Rate Report field ``N``, or ``0`` if ``N`` is ``0`` (:rfc:`4782`
#: Section 3.1).
rate: 'int'
Expand Down
6 changes: 3 additions & 3 deletions pcapkit/protocols/data/internet/ipv6_opts.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ class CALIPSOOption(Option):

#: CALIPSO domain of interpretation.
domain: 'int'
#: Compartment bitmap length, in octets: four times the ``Cmpt Length``
#: Compartment bitmap length, in octets -- four times the ``Cmpt Length``
#: field, which counts 32-bit words.
cmpt_len: 'int'
#: Sensitivity level.
Expand Down Expand Up @@ -173,7 +173,7 @@ class SMFIdentificationBasedDPDOption(SMFDPDOption):

#: TaggerID type.
tid_type: 'TaggerID'
#: ``TidLen`` field as on the wire: the TaggerID length in octets minus
#: ``TidLen`` field as on the wire -- the TaggerID length in octets minus
#: one, or ``0`` when there is no TaggerID [:rfc:`6621#section-6.1.1`].
tid_len: 'int'
#: TaggerID.
Expand Down Expand Up @@ -231,7 +231,7 @@ class QuickStartOption(Option):

#: QS function.
func: 'QSFunction'
#: Rate request/report, in kbps: ``40 * 2 ** N`` for the Rate Request or
#: Rate request/report, in kbps -- ``40 * 2 ** N`` for the Rate Request or
#: Rate Report field ``N``, or ``0`` if ``N`` is ``0`` (:rfc:`4782`
#: Section 3.1).
rate: 'int'
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/link/gre.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class GRE(Protocol):
reserved: 'int'
#: Version Number; :rfc:`2784` requires this to be ``0``.
version: 'int'
#: Protocol Type: the EtherType of the encapsulated payload.
#: Protocol Type -- the EtherType of the encapsulated payload.
protocol_type: 'EtherType'
#: Checksum, present only when :attr:`checksum_present` is set.
checksum: 'Optional[int]'
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/misc/raw.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class Raw(Protocol):

#: Original enumeration of this protocol.
protocol: 'Optional[int]'
#: Message saying why the packet data is kept raw, if any: that of the error its
#: Message saying why the packet data is kept raw, if any -- that of the error its
#: parse raised, or the dissection limit it is past.
error: 'Optional[str]'

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/data/transport/tcp.py
Original file line number Diff line number Diff line change
Expand Up @@ -355,7 +355,7 @@ class QuickStartResponse(Option):

"""

#: Rate request, in kbps: ``40 * 2 ** N`` for the Rate Request field
#: Rate request, in kbps -- ``40 * 2 ** N`` for the Rate Request field
#: ``N``, or ``0`` if ``N`` is ``0`` (:rfc:`4782` Section 3.1).
req_rate: 'int'
#: TTL difference.
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/igmp.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ def name(self) -> 'Literal["Internet Group Management Protocol"]':
@property
@abc.abstractmethod
def version(self) -> 'Literal[1, 2, 3]':
"""IGMP version this class reads: ``1``, ``2`` or ``3``."""
"""IGMP version this class reads, ``1``, ``2`` or ``3``."""

@property
def alias(self) -> 'str':
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/igmpv1.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class IGMPv1(IGMPBase[Data_IGMP, Schema_IGMP],

@property
def version(self) -> 'Literal[1]':
"""IGMP version this class reads: ``1``."""
"""IGMP version this class reads, ``1``."""
return 1

@property
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/igmpv2.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ def name(self) -> 'Literal["Internet Group Management Protocol version 2"]': #

@property
def version(self) -> 'Literal[2]':
"""IGMP version this class reads: ``2``."""
"""IGMP version this class reads, ``2``."""
return 2

@property
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/igmpv3.py
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ def name(self) -> 'Literal["Internet Group Management Protocol version 3"]': #

@property
def version(self) -> 'Literal[3]':
"""IGMP version this class reads: ``3``."""
"""IGMP version this class reads, ``3``."""
return 3

@property
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/internet/internet.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ class Internet(ProtocolBase[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=ab
},
)

#: What :attr:`__proto__` is keyed by: the enum a key must be a member of,
#: What :attr:`__proto__` is keyed by -- the enum a key must be a member of,
#: and whether a bare :class:`int` is a valid key there too. Declared by the
#: class *owning* the registry, and read from it by
#: :func:`~pcapkit.foundation.registry.protocols.protocol.register_protocol_code` so a
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/link/link.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ class Link(ProtocolBase[_PT, _ST], Generic[_PT, _ST]): # pylint: disable=abstra
},
) # type: DefaultDict[int | Enum_EtherType, ModuleDescriptor[ProtocolBase] | Type[ProtocolBase]]

#: What :attr:`__proto__` is keyed by: the enum a key must be a member of,
#: What :attr:`__proto__` is keyed by -- the enum a key must be a member of,
#: and whether a bare :class:`int` is a valid key there too. Declared by the
#: class *owning* the registry, and read from it by
#: :func:`~pcapkit.foundation.registry.protocols.protocol.register_protocol_code` so a
Expand Down
8 changes: 4 additions & 4 deletions pcapkit/protocols/link/radiotap.py
Original file line number Diff line number Diff line change
Expand Up @@ -224,18 +224,18 @@
from pcapkit.corekit.fields.numbers import BitmapField
from pcapkit.protocols.data.link.radiotap import RadiotapField as Data_Field

#: A field given to :meth:`Radiotap.make`: a data model, or a ``(type, mapping)`` pair.
#: A field given to :meth:`Radiotap.make` -- a data model, or a ``(type, mapping)`` pair.
FieldEntry = Union[Data_Field, Tuple[Union[Enum_FieldType, int], Mapping[str, Any]]]
#: Parser of a field type registered as a callable: the type and the
#: Parser of a field type registered as a callable -- the type and the
#: parsed schema, to the data model.
FieldParser = Callable[[Enum_FieldType, Schema_Field], Data_Field]
#: Constructor of a field type registered as a callable: the type and a
#: Constructor of a field type registered as a callable -- the type and a
#: data model or a mapping of its subfields, to the schema.
FieldConstructor = Callable[[Enum_FieldType, Union[Data_Field, Mapping[str, Any]]], Schema_Field]

__all__ = ['Radiotap']

#: Bit 31 of an ``it_present`` word: set, another present-flags word
#: Bit 31 of an ``it_present`` word -- set, another present-flags word
#: follows; clear, the field-data region starts right after this word.
_IT_PRESENT_EXTENDED = 1 << 31

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/misc/checksum/ip_pseudo.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@

__all__ = ['IP_Pseudo', 'pseudo_header', 'verify_upper']

#: Extension headers that end the chain, as the upper layer: the Mobility Header
#: Extension headers that end the chain, as the upper layer -- the Mobility Header
#: (:rfc:`6275#section-6.1.1`) and HIP (:rfc:`7401#section-5.1.1`).
_TERMINAL_HEADERS = (Enum_ExtensionHeader.Mobility_Header, Enum_ExtensionHeader.HIP)

Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/misc/pcap/frame.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ class Frame(ProtocolBase[Data_Frame, Schema_Frame],
},
) # type: DefaultDict[Enum_LinkType | int, ModuleDescriptor[ProtocolBase] | Type[ProtocolBase]]

#: What :attr:`__proto__` is keyed by: the enum a key must be a member of,
#: What :attr:`__proto__` is keyed by -- the enum a key must be a member of,
#: and whether a bare :class:`int` is a valid key there too. Declared by the
#: class *owning* the registry, and read from it by
#: :func:`~pcapkit.foundation.registry.protocols.protocol.register_protocol_code` so a
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/misc/pcapng.py
Original file line number Diff line number Diff line change
Expand Up @@ -817,7 +817,7 @@ class PCAPNG(ProtocolBase[Data_PCAPNG, Schema_PCAPNG],
},
) # type: DefaultDict[Enum_LinkType | int, ModuleDescriptor[ProtocolBase] | Type[ProtocolBase]]

#: What :attr:`__proto__` is keyed by: the enum a key must be a member of,
#: What :attr:`__proto__` is keyed by -- the enum a key must be a member of,
#: and whether a bare :class:`int` is a valid key there too. Declared by the
#: class *owning* the registry, and read from it by
#: :func:`~pcapkit.foundation.registry.protocols.protocol.register_protocol_code` so a
Expand Down
2 changes: 1 addition & 1 deletion pcapkit/protocols/schema/application/dtls.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ class DTLSCiphertext(Schema):

"""

#: Unified-header first octet: fixed prefix, ``C``, ``S``, ``L`` and ``EE``.
#: Unified-header first octet -- fixed prefix, ``C``, ``S``, ``L`` and ``EE``.
flags: 'dict[str, int]' = BitField(length=1, namespace={
'fixed': (0, 3),
'connection_id': (3, 1),
Expand Down
8 changes: 4 additions & 4 deletions pcapkit/protocols/schema/internet/igmpv3.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ class QueryExtension(Schema):
length=lambda pkt: pkt['num_sources'] * 4,
item_type=IPv4AddressField(),
)
#: Additional data (:rfc:`3376#section-4.1.10`): octets past the source
#: Additional data (:rfc:`3376#section-4.1.10`) -- octets past the source
#: list that a received Query may carry and that must be kept (to verify
#: the checksum) but not otherwise acted on. Empty for a
#: standards-conformant Query, since :meth:`IGMPv3.make
Expand All @@ -143,11 +143,11 @@ class Query(Schema):

"""

#: Max response code; the raw octet :meth:`IGMPv3.read
#: <pcapkit.protocols.internet.igmpv3.IGMPv3.read>` decodes per
#: Max response code; the raw octet
#: :meth:`IGMPv3.read <pcapkit.protocols.internet.igmpv3.IGMPv3.read>` decodes per
#: :rfc:`3376#section-4.1.1`.
max_resp_code: 'int' = UInt8Field()
#: Checksum: the 16-bit one's complement of the one's complement sum of
#: Checksum. The 16-bit one's complement of the one's complement sum of
#: the message, with the checksum field itself taken as zero and no
#: pseudo-header involved -- the whole IP payload (:rfc:`3376#section-4.1.2`).
checksum: 'bytes' = BytesField(length=2)
Expand Down
Loading
Loading