Skip to content

feat(internet): implement IGMPv3 (group-record list) #2448

Closed

Description

@JarryShaw

Follow-up from #2439 (IGMP v1/v2, PR #2444).

IGMPv3 (RFC 3376) adds a group-record list to the Membership Report (type 0x22) and an extended Query format with source-list filtering. #2439/#2444 deliberately scoped this out — PR #2444's dispatch raises ProtocolError for any type outside {0x11, 0x12, 0x16, 0x17}. For a v3 Report (0x22) this correctly falls back to Raw. For a v3 Query, correction (verified by cross-review): v3 reuses type 0x11 (same as v1/v2 Membership Query), so it currently decodes as a v1/v2 Query with the extra v3-only octets (S flag, QRV, QQIC, source list) kept as trailing Raw — RFC 2236 §2.5 explicitly permits this and no bytes are lost, so it is not a defect in #2444. One real gap to fix here: v3 Max Resp Codes ≥128 encode as floating point (RFC 3376 §4.1.1), which the current v1/v2 code reads as a plain integer tenths-of-a-second value — e.g. code 0x8c decodes as 14.0s when the real value is 22.4s. A v3 Query parser needs the floating-point decode for this field.

Scope: a new schema/data model for the v3 Membership Report's group-record list, the v3 Query's extended fields, and the floating-point Max Resp Code/QQIC decode. Likely shares IGMP's base rather than needing its own ICMP_Family-style split, since v3 is a strict superset dispatched by the same type bytes.

Activity

  1. added
    enhancementIssues requesting a new capability (set by the feature request template)
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 30, 2026
  2. added this to the PyPCAPKit v1.5 milestone on Oct 30, 2026
  3. moved this to Pending in PyPCAPKiton Oct 30, 2026
  4. added
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 30, 2026
  5. moved this from Pending to WIP in PyPCAPKiton Oct 30, 2026
  6. 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 30, 2026
  7. moved this from WIP to Blocked in PyPCAPKiton Oct 30, 2026
  8. 4 remaining items

  9. 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 31, 2026
  10. JarryShaw commented on Oct 31, 2026

    @JarryShaw
    OwnerAuthor

    Relabeled blocked -> wip: PR #2465 covers this issue (Closes #2448) and is now review: good-to-go, pending only the owner's merge. No comment here stated a checkable blocking condition, and blocked implies nothing is actively being worked -- that's no longer true.

  11. moved this from Blocked to WIP in PyPCAPKiton Oct 31, 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

    enhancementIssues requesting a new capability (set by the feature request template)wipWork in flight - a covering PR is open or an agent is actively on it

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions