Skip to content

fix(toolkit): dpkt gives no IPv4 reassembly input for IPv4 carried in IPv6 #1615

Closed

Description

@JarryShaw

With engine='dpkt', IPv4 carried inside IPv6 (next header 4, RFC 2473) gets no IPv4 reassembly input.

Repro on main (d6f627481): two fragments of one 24-octet IPv4 datagram inside IPv6.

Engine IPv4 inputs Datagrams reassembled
default 2 1 (complete)
dpkt 0 0
scapy 2 1 (complete)

Plain IPv4 fragments (control) give 2 inputs and 1 datagram on every engine.

Cause: pcapkit/toolkit/dpkt.py:588 sets ipv4 = None if hasattr(network, 'extension_hdrs') else network. The IPv6 network layer is never looked inside.

Expected: dpkt hands over the first IPv4 layer of the frame, as the default engine does.

Found by the #1614 cross-review; I reproduced it. Blocked until #1614 merges, because it edits pcapkit/toolkit/dpkt.py.

Activity

  1. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Blocked until #1614 merges, because it edits pcapkit/toolkit/dpkt.py.

  2. added
    fixPull requests that fix a defect (fix: subject prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 10, 2026
  3. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #1614 merged. A worker is on it together with #1616, since both are in dpkt's ipv4_reassembly.

  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Oct 10, 2026
  5. moved this from Blocked to WIP in PyPCAPKiton Oct 10, 2026
  6. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 12, 2026
  7. added a commit that references this issue on Oct 13, 2026
  8. added this to the PyPCAPKit v1.5 milestone on Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    fixPull requests that fix a defect (fix: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions