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
refactor(link): dispatch LinuxSLL's non-EtherType ARPHRD values through its own registry map #2510
Owner ruling (this session, 2026-11-01), paraphrased: the link dissectors LinuxSLL dispatches by arphrd_type should index by their ARPHRD value, and LinuxSLL should hold those values in a registry map of its own instead of a hard-coded branch chain.
Scope
FRAD, GRE and NETLINK: __index__ returns the matching pcapkit.const.linux.arphrd.ARPHRD member (each currently raises).
LinuxSLL overrides __proto__ with its own map keyed by the non-EtherType ARPHRD values, as FRAD already does for NLPID. _import_next_layer dispatches through that map first, then hands every other value to super()._import_next_layer for the EtherType path. The _ARPHRD_NOT_ETHERTYPE branch chain goes.
LinuxSLL, FRAD and NETLINK each define their own register classmethod. Today FRAD and NETLINK inherit Link.register, which is EtherType-typed.
Handed over from #2509's merge: once Radiotap lands, every _ARPHRD_NOT_ETHERTYPE member has a dissector. That makes LinuxSLL._import_next_layer's final Raw fallback unreachable, and leaves test_the_non_ethertype_arphrds_are_kept_raw (SLL1/SLL2) looping over (). The registry map here decides whether the fallback stays (tested with a patched entry) or goes, along with that test.
Activity
JarryShaw commentedon Nov 1, 2026
Handed over from #2509's merge: once Radiotap lands, every
_ARPHRD_NOT_ETHERTYPEmember has a dissector. That makesLinuxSLL._import_next_layer's final Raw fallback unreachable, and leavestest_the_non_ethertype_arphrds_are_kept_raw(SLL1/SLL2) looping over(). The registry map here decides whether the fallback stays (tested with a patched entry) or goes, along with that test.docs(link): reword ARPHRD registry docstrings per review (#2510)