Skip to content

fix(toolkit): the scapy engine dates a Simple Packet Block with the time it was read #1503

Closed

Description

@JarryShaw

Describe the bug
A PCAP-NG Simple Packet Block carries no timestamp. scapy leaves its construction time on the packet, and the scapy adapter passes that on as the capture time.

Reproduction
On examples/captures/test.pcapng, frame 4 (an SPB) is 1791577350.34… from scapy and 0 from the default engine. The scapy value changes on every run.

Expected behavior
The same value as the default engine, with no wall-clock time leaking in.

System information
Linux, CPython 3.14.7, main at 00aa1fc90.

Additional context
pcapkit/toolkit/scapy.py:186 passes float(packet.time) unconditionally.

Found by the #1202 foundation round-trip slice; reproduced on main.

Activity

  1. added
    fixPull requests that fix a defect (fix: subject prefix)
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  2. JarryShaw commented on Oct 9, 2026

    @JarryShaw
    OwnerAuthor

    Blocked until the #1202 foundation-slice test PR (branch test/1202-foundation-roundtrips) merges. That PR adds this defect's Gap row, and the fix must delete the row.

  3. added
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 9, 2026
  4. moved this to Blocked in PyPCAPKiton Oct 9, 2026
  5. JarryShaw commented on Oct 9, 2026

    @JarryShaw
    OwnerAuthor

    Still blocked, now on #1511 instead of #1508. #1508 has merged, but #1511 is editing the same file this fix needs. Unblocks when #1511 merges.

  6. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #1511 has merged (2d088a745). A worker is on this together with #1517, since both fixes are in pcapkit/toolkit/scapy.py. One PR will close both.

  7. 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
  8. moved this from Blocked to WIP in PyPCAPKiton Oct 10, 2026
  9. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Blocked again, this time on the #1522 fix. The worker found that the link type and the "no timestamp" signal are only visible in _reader_type() (pcapkit/foundation/engines/scapy.py:61-121). scapy never copies either onto the packet, and the #1522 fix edits that same function. Once the #1522 PR merges, one PR will fix #1503 and #1517 across the engine and toolkit/scapy.py.

  10. added
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    and removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 10, 2026
  11. moved this from WIP to Blocked in PyPCAPKiton Oct 10, 2026
  12. JarryShaw commented on Oct 10, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #1546 has merged, so the scapy reader now resets its interfaces per section. A worker is fixing #1503, #1517 and #1549 together in one PR, because all three need _reader_type() in pcapkit/foundation/engines/scapy.py.

  13. 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
  14. moved this from Blocked to WIP in PyPCAPKiton Oct 10, 2026
  15. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Oct 10, 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

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions