Skip to content

test: the dispatch generator has no family for LinuxSLL's ARPHRD registry #2592

Closed

Description

@JarryShaw

LinuxSLL.__proto__, the ARPHRD-keyed registry from #2510/#2527, has entries for FRAD, IPGRE, IP6GRE, IEEE80211_RADIOTAP and NETLINK, but no Family in examples/generators/dispatch.py. The FRAD probe that #2560 adds reaches LinuxSLL's FRAD entry only indirectly, and nothing generates the others. test-coverage.rst's protocol row asks for a PINNED_TARGETS entry per __proto__ registration, but it does not say that a protocol with a registry of its own (FRAD, Loopback, LinuxSLL) also needs a Family. That gap is how #2560 happened.

Fix: add a linux_sll family covering every LinuxSLL.__proto__ entry, with PINNED_TARGETS, and bump the count guard in test_cases_cover_every_table_named_in_the_issue. Add the missing clause to test-coverage.rst's protocol row.

Blocked: #2560's branch, #2575 (radiotap) and #2489 (DCCP) all append to dispatch.py's FAMILIES/PINNED_TARGETS and to that count guard. This issue unblocks when their PRs merge (gh pr view <n> --json state -q .state prints MERGED).

Activity

  1. added
    testPull requests that add or correct tests (test: subject 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. added this to the PyPCAPKit v1.6 milestone on Nov 2, 2026
  4. JarryShaw commented on Nov 2, 2026

    @JarryShaw
    OwnerAuthor

    #2560, #2575 and #2489 have merged. #2615 is restructuring examples/generators/dispatch.py and the dispatch-case count guard so that concurrent additions stop conflicting. Still blocked: this unblocks when #2615's PR merges, after which the linux_sll family becomes a one-entry addition.

  5. JarryShaw commented on Nov 2, 2026

    @JarryShaw
    OwnerAuthor

    #2644 has merged (c9c334f68, closes #2615), and #2560, #2575 and #2489 merged before it. Dispatch families now live one per module under examples/generators/dispatch_families/, and the count guard is derived from them, so adding a family no longer edits a shared pin. Unblocked. A worker is adding the linux_sll family and the test-coverage.rst clause.

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

    @JarryShaw
    OwnerAuthor

    Landed on main as 27667075a, test-only. It was replayed onto #2642's merge with an identical patch-id.

    • Two families: linux_sll and linux_sll2 probe every LinuxSLL.__proto__ entry. Each builds its cases from the registry, so a new ARPHRD entry gets a case without an edit. Every case reaches its pinned class, and the other families' cases are byte-identical to main's.
    • New test: test_a_versioned_base_table_has_a_family_per_member requires every member of a versioned base to appear among the frames probing its table. Removing either family fails it.
    • test-coverage.rst: the protocol row now says that a protocol with a dispatch registry of its own needs a Family probing that table.
  9. 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

    testPull requests that add or correct tests (test: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions