Repository navigation
feat(link): dissect the IEEE 802.11 MAC header behind radiotap - #2607
Conversation
|
GOOD TO GO at |
|
Question for the owner: the five
|
|
Coverage: 94.05% (unit tier, Python 3.15,
Per-file detail: the |
|
take 1 |
|
Owner chose 1, paraphrased: a pinned secondary revision is an acceptable DATA source where the primary source is paywalled and the values are cross-checked, as here against the Linux kernel and Wireshark. The rule is being written onto const-vendor-pairing.rst in this PR, so the next crawler of this kind has a page to cite. |
b258b98 to
53185d8
Compare
|
GOOD TO GO at |
|
Prefer to move the |
|
Owner request, paraphrased: move this PR's |
|
#2595 has merged, so |
- Add IEEE802_11: Frame Control, Duration/ID, two to four addresses, Sequence, QoS and HT Control (IEEE Std 802.11-2020 clause 9). The body and any FCS stay Raw, versions other than 0 are refused, and field ranges go through ProtocolBase._make_uint. - Radiotap dispatches through its own __proto__, keyed by link type, with Radiotap.register and register_radiotap, replacing _import_next_layer; _get_payload starts at it_len, so a refused frame falls back to Raw. - Add pcapkit.const.ieee802_11 (Table 9-1) with DATA-literal crawlers; register and document the new names and the DATA-source rule. - Tests: an 802.11 sweep, crawler regeneration, radiotap dispatch, a dispatch-generator family, and the registrar tables and census pins. The protocols/link leg and the touched modules pass.
53185d8 to
845c94e
Compare
|
Fix round pushed:
|
|
GOOD TO GO at
|
…nto 1.6.0 (#2449) - Added: IEEE802_11, the 802.11 MAC header behind radiotap, with the pcapkit.const.ieee802_11 type and subtype registries (#2607); the Radiotap entry drops its stale "no dissector yet" note and names its own registry and register_radiotap. - Added: ip_datagram and tcp_datagram beside dtls_handshake (#2619). - The conventions entry records #2607's ruling on a paywalled registry's pinned secondary source. - CHANGELOG.md regenerated; util/changelog_md.py --check passes.
make pylint,make mypy,make isort)make testpasses, and a test case covers the changeWhat is the purpose of your pull request?
feat— adds a featureDescription of your pull request and other information
A new
pcapkit.protocols.link.ieee802_11.IEEE802_11dissects the IEEE 802.11 MAC header behind radiotap.Raw, and a protocol version other than 0 is refused.__proto__, keyed by LinkType, withRadiotap.registerandregister_radiotap. It also fixesRadiotap._get_payload, which included the radiotap fields in the payload.pcapkit.const.ieee802_11, built by DATA crawlers that regenerate byte-identically.Measured:
main, a 4,292-case radiotap differential shows only intended changes, and the 23 sample captures are byte-identical.Settled on the worker's recommendations:
ieee802_11.A refused frame's CRITICAL log is #2588's ruling: once #2597 merges, it is quiet under the fallback.
Follow-up: bind
LinkType.IEEE802_11(105) andIEEE802_11_RADIOTAP(127) in Frame and PCAP-NG for native 802.11 captures. Until then the dissector is reached through LinuxSLL or direct use.Closes #2575