You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
feat: verify IGMP and GRE checksums, which are parsed but never checked #2618
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.
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.
#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.
Activity
JarryShaw commentedon Nov 2, 2026
Blocked: the two files are already being edited by other work.
link/gre.pyis in #2614's_make_uintadoption (G2), andinternet/igmp.pyis in #2574's family-dispatch IGMP commit. This is dispatched once both land, so that the checksum hooks do not conflict with them.docs(pep): correct stale status lines and drop the redundant release …
JarryShaw commentedon Nov 2, 2026
#2629 has merged, so
link/gre.pyis free. Still blocked:internet/igmp.pyis being reworked in #2574, which also adds aversionattribute to IGMP's data model. This unblocks when #2574's PR merges.JarryShaw commentedon Nov 2, 2026
#2639 has merged as
e87eb83b1, sointernet/igmp.pyis free. Unblocked. A worker is adding the IGMP and GRE checksum checks now.JarryShaw commentedon Nov 2, 2026
The PR is #2654.
feat(protocols): verify the IGMP and GRE checksums (#2618) (#2654)