RadioTap MCS is parsed wrong. PR #3963 seems to work for now.
Open
Nobody has claimed this yet.
needs additional info
- Dominant language
- Python
- Stars
- 12.6k
- Forks
- 2.2k
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 56
Description
Brief description
How i understand the problem:
- In Wireshark i see "Known MCS information: 0x00" which results in all Fields (Bandwith, MCS index, Guard interval...) are Absent. maybe odd of Wireshark too, it highlights 3 Bytes but only 7 bits (the previous mentioned Fields) are shown to me.
- dot11.py RadioTap is parsing to the Antenna signal correctly, but then everything is off by one byte. (Type, Subtype, MAC Address.....). I guess if known mcs information is 0x00 set everything to None or something.
- RadioTap documentation i don't understand it.
Scapy version
2.5.0+git20240324.2858b51
Python version
3.12.4
Operating system
Linux 6.9.9
Additional environment information
No response
How to reproduce
could take some time and compare it with Wireshark.
def write_mcs(pkt):
wrpcap(filename='/tmp/mcs_issue.pcap', pkt=pkt, append=True)
print(f'{pkt} written.', flush=True)
sniff(
iface=interface,
store=False,
count=100,
prn=write_mcs,
lfilter=lambda x: x.present.value & 0x80000,
)
Actual result
No response
Expected result
No response
Related resources
I think maybe PR #3963 is the Solution. Yes, parsing works.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in dot11.py and inspect the RadioTap MCS parsing path, then compare its behavior with PR #3963 and Wireshark. Reproduce with the provided sniffing script and captured packets; done means MCS fields and subsequent 802.11 fields remain correctly aligned when known MCS information is 0x00.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- networking
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100