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
test: the dispatch generator has no family for LinuxSLL's ARPHRD registry #2592
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).
#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.
#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.
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.
Activity
JarryShaw commentedon Nov 2, 2026
#2560, #2575 and #2489 have merged. #2615 is restructuring
examples/generators/dispatch.pyand the dispatch-case count guard so that concurrent additions stop conflicting. Still blocked: this unblocks when #2615's PR merges, after which thelinux_sllfamily becomes a one-entry addition.JarryShaw commentedon Nov 2, 2026
#2644 has merged (
c9c334f68, closes #2615), and #2560, #2575 and #2489 merged before it. Dispatch families now live one per module underexamples/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 thelinux_sllfamily and the test-coverage.rst clause.JarryShaw commentedon Nov 2, 2026
Landed on
mainas27667075a, test-only. It was replayed onto #2642's merge with an identical patch-id.linux_sllandlinux_sll2probe everyLinuxSLL.__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 tomain's.test_a_versioned_base_table_has_a_family_per_memberrequires every member of a versioned base to appear among the frames probing its table. Removing either family fails it.Familyprobing that table.test: generate a dispatch family for LinuxSLL's ARPHRD registry (#2592)
docs(changelog): fold HTTP's versioned-base rules, the IGMP and GRE c…