Skip to content

Dissectors for non-ethertype ARPHRD types on LINUX_SLL/SLL2 (NETLINK/IPGRE/IP6GRE/802.11 radiotap/FRAD) #2460

Closed

Description

@JarryShaw

Summary

Follow-up from #2443. LinuxSLL/LinuxSLL2 fall back to Raw for the five arphrd_type values whose protocol_type field isn't an EtherType (NETLINK, IPGRE, IP6GRE, IEEE80211_RADIOTAP, FRAD — see _ARPHRD_NOT_ETHERTYPE in pcapkit/protocols/link/linux_sll.py). The header is preserved, nothing crashes, but nothing is dissected either.

Scope

Five potential new dissectors, of varying rarity:

  • NETLINK — Linux kernel Netlink sockets, a different framing entirely from "next protocol over this link".
  • IPGRE/IP6GRE — GRE over IPv4/IPv6; a GRE dissector doesn't exist yet in this codebase.
  • IEEE80211_RADIOTAP — 802.11 with radiotap headers; no 802.11 dissector exists yet.
  • FRAD — Frame Relay Access Device; niche, declining real-world capture volume.

Left as a separate follow-up (not folded into #2443/#2438's current wave) given the scope — each of these is effectively its own new-protocol implementation, not a tweak to the existing LINUX_SLL work.

Activity

  1. added
    featPull requests that add a new capability (feat: subject prefix)
    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. JarryShaw commented on Oct 30, 2026

    @JarryShaw
    OwnerAuthor

    Relabeling to blocked: this extends LinuxSLL/SLL2's next-layer dispatch logic, which is still under active revision on PR #2443 (currently review: running after two correction rounds). Starting these 5 dissectors against an unmerged, still-moving base risks rebasing the same work twice.

    Unblocks when #2443 merges to main.

  5. added
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    and removed
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 30, 2026
  6. moved this from Pending to Blocked in PyPCAPKiton Oct 30, 2026
  7. added
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Oct 31, 2026
  8. 3 remaining items

  9. 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 31, 2026
  10. moved this from Pending to WIP in PyPCAPKiton Oct 31, 2026
  11. JarryShaw commented on Oct 31, 2026

    @JarryShaw
    OwnerAuthor

    Tracking/umbrella issue for the five follow-ups, now underway:

    Relabelling wip (dropping pending) since #2499 is open against the first
    slice.

  12. JarryShaw commented on Oct 31, 2026

    @JarryShaw
    OwnerAuthor

    NETLINK's dissector is up: #2507. Dissects the fixed 16-octet nlmsghdr framing (nlmsg_len/type/flags/seq/pid); per-family message payloads and multiple messages packed into one capture frame are out of scope for this first cut and documented as such. Byte order is guessed the way Wireshark's own netlink dissector does, since Netlink has none of its own (kernel/userspace IPC, not wire format). IPGRE/IP6GRE and IEEE80211_RADIOTAP remain Raw.

  13. JarryShaw commented on Oct 31, 2026

    @JarryShaw
    OwnerAuthor

    GRE (IPGRE/IP6GRE) dissector up in #2508. FRAD (#2499) and NETLINK (#2507) each have their own PR already; IEEE80211_RADIOTAP (#2502) remains.

  14. JarryShaw commented on Oct 31, 2026

    @JarryShaw
    OwnerAuthor

    Radiotap's dissector is up: #2509. Decodes the fixed 8-octet start (it_version/it_pad/it_len) and walks the present-flags chain (including bit-31 extended-word chaining) far enough to count its words; the optional-field region those bits select is skipped whole rather than decoded field by field, and the 802.11 MAC frame behind it -- which has no dissector anywhere in this package yet -- is kept as Raw/NoPayload, same choice Netlink makes for its own per-family payloads.

    The last of the five arphrd_type follow-ups to get a dissector of its own. FRAD (#2499), NETLINK (#2507) and GRE (#2508) are each still open on their own PR; none has merged yet, so this stays "Part of #2460" rather than closing it -- whichever of the four lands last should close the umbrella.

  15. removed
    wipWork in flight - a covering PR is open or an agent is actively on it
    on Nov 1, 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

    featPull requests that add a new capability (feat: subject prefix)

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions