Skip to content

feat(link): bind LinkType 105 and 127 to the 802.11 and radiotap dissectors - #2632

Merged
JarryShaw merged 1 commit into
mainfrom
feat/2608-linktype-80211
Nov 2, 2026
Merged

JarryShaw merged 1 commit into
mainfrom
feat/2608-linktype-80211

Conversation

@JarryShaw

Copy link
Copy Markdown
Owner

What is the purpose of your pull request?

  • feat — a new feature

Description of your pull request and other information

Frame and PCAP-NG now bind LinkType.IEEE802_11 (105) to IEEE802_11 and LinkType.IEEE802_11_RADIOTAP (127) to Radiotap, inserted in enum value order (#2443). A native 802.11 or radiotap capture used to stay Raw in both formats; it now parses to 802.11 / Radiotap:802.11 and rebuilds byte-exactly. IEEE802_11.__index__ returns LinkType.IEEE802_11, following the owner's ruling on #2627 that __index__ returns the standard registry value. Radiotap.__index__ moves to 127 under #2627. examples/generators/dispatch.py gains a probe for each new binding, and the dispatch-case pin is re-derived.

Both maps differ from main only by the two added keys. All 23 sample captures parse identically; none of them carries link type 105 or 127, so the new test module is what covers the changed path. A Sonnet cross-review checked the frames against the 802.11 and radiotap layouts and returned GOOD TO GO.

Closes #2608

…ectors (#2608)

- Frame.__proto__, PCAPNG.__proto__: IEEE802_11 (105) -> IEEE802_11 and
  IEEE802_11_RADIOTAP (127) -> Radiotap, in enum value order; docstring
  tables to match.
- IEEE802_11.__index__ returns LinkType.IEEE802_11 rather than raising.
- docs: 802.11 and radiotap pages name the native link types; the FCS note
  no longer assumes radiotap.
- dispatch generator: payload builders and PINNED_TARGETS for both codes in
  both tables; the registry count pin follows.
- tests: pcap and pcapng captures of each parse to 802.11 and
  Radiotap:802.11 with byte-exact rebuilds; fail without the change.

Sample-capture differential matches main; pylint and mypy unchanged.
@JarryShaw JarryShaw added this to the PyPCAPKit v1.6 milestone Nov 2, 2026
@JarryShaw JarryShaw added feat Pull requests that add a new capability (feat: subject prefix) review: good-to-go Cross-review at the current head says ready; CI state is separate labels Nov 2, 2026
@JarryShaw

Copy link
Copy Markdown
Owner Author

GOOD TO GO at 08fbf3c14.

A Sonnet cross-review dumped Frame's and PCAP-NG's maps against main. The only difference is the two added keys, in ascending order. It re-derived the dispatch cases, 60 before and 64 after, and checked the hand-built ACK, DATA and radiotap frames against the specs. The new tests fail with the change reverted.

Radiotap.__index__ switching to 127 is part of #2627, per the owner's ruling, so it is not in this PR.

@JarryShaw
JarryShaw merged commit 5a02306 into main Nov 2, 2026
59 of 61 checks passed
@github-project-automation github-project-automation Bot moved this to Done in PyPCAPKit Nov 2, 2026
@JarryShaw
JarryShaw deleted the feat/2608-linktype-80211 branch November 2, 2026 05:42
@JarryShaw JarryShaw removed the review: good-to-go Cross-review at the current head says ready; CI state is separate label Nov 2, 2026
JarryShaw added a commit that referenced this pull request Nov 2, 2026
…types and the registry split into 1.6.0 (#2449)

- Breaking: Quick-Start values their fields cannot carry raise, reversing
  1.5.0's round-down of a TCP rate under 80 kbps (#2630).
- Folded into unreleased entries: tls12_cid records and DTLSContext
  (#2631), LinkType 105 and 127 in Frame and PCAP-NG (#2632), and
  DTLS.analyze_handshake behind dtls_handshake and packet (#2634).
- Changed: foundation.registry.protocols split into per-layer submodules
  (#2635); 1.6.0's register_* roles and 1.5.0's three register_protocol*
  roles point at their submodules, 1.5.0's text unchanged.
- The conventions entry records the per-layer wrapper placement (#2635)
  and parse ownership (#2634). No entry for #2629, which changes no
  released behaviour.
- CHANGELOG.md regenerated; util/changelog_md.py --check passes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

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

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

feat(link): bind LinkType 105 and 127 to the 802.11 and radiotap dissectors in Frame and PCAP-NG

1 participant