Skip to content

feat: verify IGMP and GRE checksums, which are parsed but never checked #2618

Closed

Description

@JarryShaw

IGMP and GRE parse their checksum field and keep it, but nothing ever checks it. Neither pcapkit/protocols/internet/igmp.py nor pcapkit/protocols/link/gre.py records a ChecksumStatus, whereas IPv4, ICMP, TCP and UDP do. Both checksums are the Internet ones' complement over the protocol's own octets, with no pseudo-header:

  • IGMP: RFC 1112 and RFC 2236 cover the whole IGMP message. RFC 3376 covers the whole IGMPv3 message.
  • GRE: RFC 2784, when the C bit is set, covers the GRE header and payload.

The ones' complement code that IPv4 and ICMP already use covers both, so each needs a verification hook in the same shape. pep.rst's statement that the ones' complement half is done holds only for the protocols it names. Found while #2564 re-checked pep.rst's status lines.

Activity

  1. added this to the PyPCAPKit v1.6 milestone on Nov 2, 2026
  2. added
    featPull requests that add a new capability (feat: subject prefix)
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Nov 2, 2026
  3. JarryShaw commented on Nov 2, 2026

    @JarryShaw
    OwnerAuthor

    Blocked: the two files are already being edited by other work. link/gre.py is in #2614's _make_uint adoption (G2), and internet/igmp.py is in #2574's family-dispatch IGMP commit. This is dispatched once both land, so that the checksum hooks do not conflict with them.

  4. 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 Nov 2, 2026
  5. moved this to Blocked in PyPCAPKiton Nov 2, 2026
  6. JarryShaw commented on Nov 2, 2026

    @JarryShaw
    OwnerAuthor

    #2629 has merged, so link/gre.py is free. Still blocked: internet/igmp.py is being reworked in #2574, which also adds a version attribute to IGMP's data model. This unblocks when #2574's PR merges.

  7. JarryShaw commented on Nov 2, 2026

    @JarryShaw
    OwnerAuthor

    #2639 has merged as e87eb83b1, so internet/igmp.py is free. Unblocked. A worker is adding the IGMP and GRE checksum checks now.

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

    @JarryShaw
    OwnerAuthor

    The PR is #2654.

  11. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Nov 2, 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

    featPull requests that add a new capability (feat: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions