Source code for pcapkit.foundation.reassembly

# -*- coding: utf-8 -*-
# pylint: disable=unused-import
"""Fragmented Packets Reassembly
===================================

.. module:: pcapkit.foundation.reassembly

:mod:`pcapkit.foundation.reassembly`, based on algorithms described
in :rfc:`791`, :rfc:`815` and :rfc:`6347`, implements datagram
reassembly of IP packets, TCP segments and DTLS handshake messages.

"""
# Reassembly for DTLS handshake messages
from pcapkit.foundation.reassembly.dtls import DTLS as DTLS_Reassembly
from pcapkit.foundation.reassembly.ip import IP as IP_Reassembly
# Reassembly for IP
from pcapkit.foundation.reassembly.ipv4 import IPv4 as IPv4_Reassembly
from pcapkit.foundation.reassembly.ipv6 import IPv6 as IPv6_Reassembly
# Base Class for Reassembly
from pcapkit.foundation.reassembly.reassembly import Reassembly
# Reassembly for TCP
from pcapkit.foundation.reassembly.tcp import TCP as TCP_Reassembly

__all__ = [
    'IPv4_Reassembly', 'IPv6_Reassembly',   # IP Reassembly
    'TCP_Reassembly',                       # TCP Reassembly
    'DTLS_Reassembly',                      # DTLS Reassembly
    'ReassemblyManager',                    # Reassembly Manager, defined below
]

from typing import TYPE_CHECKING

from pcapkit.corekit.infoclass import Info, info_final

if TYPE_CHECKING:
    from typing import Optional


[docs] @info_final class ReassemblyManager(Info): """Reassembly Manager.""" #: IPv4 reassembly. ipv4: 'IPv4_Reassembly' #: IPv6 reassembly. ipv6: 'IPv6_Reassembly' #: TCP reassembly. tcp: 'TCP_Reassembly' #: DTLS handshake-message reassembly. #: #: .. versionadded:: 1.6.0 dtls: 'DTLS_Reassembly' if TYPE_CHECKING: def __init__(self, ipv4: 'Optional[IPv4_Reassembly]', ipv6: 'Optional[IPv6_Reassembly]', tcp: 'Optional[TCP_Reassembly]', dtls: 'Optional[DTLS_Reassembly]') -> 'None': ... # pylint: disable=unused-argument,super-init-not-called,multiple-statements,line-too-long