Skip to content

refactor(protocols): every versioned family base dispatches on read and make (IGMP, IP, ICMP, L2TP, LinuxSLL) #2574

Open

Description

@JarryShaw

Standing convention from the owner on #2544: on a versioned protocol family, the base class is a dispatcher on both the read and the make path. Parsing bytes through the base, or building through it (constructor or make), yields the matching member, never a base-class layer. #2544 applies it to HTTP (HTTPv1/HTTPv2) and writes it onto protocol-family-grouping.rst.

Families to bring into line, those protocol-family-grouping.rst lists with versioned members:

  • IGMP (IGMPv1–3). Its base is abstract today and dispatches only from Internet._import_next_layer.
  • IP (IPv4/IPv6).
  • ICMP (ICMPv4/ICMPv6).
  • L2TP (L2TPv2).
  • LinuxSLL (LinuxSLL1/2).

For each, check what the base does now on direct construction from bytes and from fields. Make both paths yield the member, mirroring #2544's mechanism, and keep byte-exact round trips. Then test each family, and show the tests fail before the change.

Blocked: this mirrors #2544's mechanism and edits files #2542 (IGMP), #2527 (LinuxSLL) and #2544 change. It unblocks when #2544 merges; IGMP and LinuxSLL also need #2542 and #2527 merged first.

Activity

  1. added
    refactorRestructuring for its own sake — neither a fix nor a new capability (refactor: prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Nov 1, 2026
  2. moved this to Blocked in PyPCAPKiton Nov 1, 2026
  3. JarryShaw commented on Nov 1, 2026

    @JarryShaw
    OwnerAuthor

    #2544 has merged. The family rollout still touches IGMP, whose names #2558 is changing, and LinuxSLL, which #2587 edits. Blocked: this unblocks when #2587 and #2558's PR merge.

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

    blockedDeferred pending another issue or decision; see the last comment for what unblocks itrefactorRestructuring for its own sake — neither a fix nor a new capability (refactor: prefix)

    Projects

    • Status
      Blocked

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions