Base Class

pcapkit.foundation.reassembly.ip contains IP_Reassembly only, which reconstructs fragmented IP packets back to origin.

class pcapkit.foundation.reassembly.ip.IP_Reassembly(*, strict=True)[source]

Bases: Reassembly[Packet[AT], Datagram[AT], Tuple[AT, AT, int, TransType], Buffer[AT]], Generic[AT]

Reassembly for IP payload.

Important

This class is not intended to be instantiated directly, but rather used as a base class for the protocol-aware reassembly classes.

Parameters
  • *args (Any) – Arbitrary positional arguments.

  • **kwargs (Any) – Arbitrary keyword arguments.

Return type

Reassembly[PT, DT, IT, BT]

reassembly(info)[source]

Reassembly procedure.

Parameters

info (Packet[TypeVar(AT, IPv4Address, IPv6Address)]) – info dict of packets to be reassembled

Return type

None

submit(buf, *, bufid, checked=False)[source]

Submit reassembled payload.

Parameters
  • buf (Buffer[AT]) – buffer dict of reassembled packets

  • bufid (tuple[AT, AT, int, TransType]) – buffer identifier

  • checked (bool) – buffer consistency checked flag

Returns

Reassembled packets.

Return type

list[Datagram[AT]]

Data Structures

class pcapkit.foundation.reassembly.ip.Packet(*args, **kwargs)[source]

Bases: Info, Generic[AT]

Data model for ipv4.packet / ipv6.packet.

Parameters
  • *args (VT) – Arbitrary positional arguments.

  • **kwargs (VT) – Arbitrary keyword arguments.

Return type

Info

bufid: tuple[AT, AT, int, TransType]

Buffer ID.

num: int

Original packet range number.

fo: int

Fragment offset.

ihl: int

Internet header length.

mf: bool

More fragments flag.

tl: int

Total length, header included.

header: bytes

Raw bytes type header.

payload: bytearray

Raw bytearray type payload.

class pcapkit.foundation.reassembly.ip.DatagramID(*args, **kwargs)[source]

Bases: Info, Generic[AT]

Data model for ipv4.datagram / ipv6.datagram original packet identifier.

Parameters
  • *args (VT) – Arbitrary positional arguments.

  • **kwargs (VT) – Arbitrary keyword arguments.

Return type

Info

src: AT

Source address.

dst: AT

Destination address.

id: int

IP protocol identifier.

proto: TransType

Payload protocol type.

class pcapkit.foundation.reassembly.ip.Datagram(*args, **kwargs)[source]

Bases: Info, Generic[AT]

Data model for ipv4.datagram / ipv6.datagram.

Parameters
  • *args (VT) – Arbitrary positional arguments.

  • **kwargs (VT) – Arbitrary keyword arguments.

Return type

Info

completed: bool

Completed flag.

id: DatagramID[AT]

Original packet identifier.

index: tuple[int, ...]

Packet numbers.

header: bytes

Initial IP header.

payload: bytes | tuple[bytes, ...]

Reassembled IP payload.

packet: Optional[Protocol]

Parsed IP payload.

class pcapkit.foundation.reassembly.ip.Buffer(*args, **kwargs)[source]

Bases: Info, Generic[AT]

Data model for ipv4.buffer / ipv6.buffer.

Parameters
  • *args (VT) – Arbitrary positional arguments.

  • **kwargs (VT) – Arbitrary keyword arguments.

Return type

Info

TDL: int

Total data length.

RCVBT: bytearray

Fragment received bit table.

index: list[int]

List of reassembled packets.

header: bytes

Header buffer.

datagram: bytearray

Data buffer, holes set to b'\x00'.