-
Notifications
You must be signed in to change notification settings - Fork 214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Added wifi_raw_80211_wifishark example, and added IEEE_80211 interface to esp-wifishark #1926
Conversation
…ark to add an IEEE_802_11 DataLink interface
I would really like to collaborate on this. When I'm home, I'm gonna build an experimental abstraction, since the API is super simple. |
That'd be sweet! FYI, my end goal is to implement a subset of |
I know some of the people, that worked on batman. @redfast00 started the project and his goal was to implement 802.11s as well. My goal is, once we've reversed the PHY sufficiently, to implement a wifi stack completely in rust. Using the injection API will be fine for now. |
I still need to test sending/receiving frames with 4 MAC addresses (as required for 802.11s); my original end-goal for esp32-open-mac was indeed implementing proper 802.11s mesh networking. I think to get good performance, you will need to implement MAC address filtering in hardware instead of using promiscuous mode and filtering in software. We can do HW filtering already in esp32-open-mac. |
@leighleighleigh I just achieved the first raw transmission, with a very wonky setup, but it works. |
Related #1879 |
I've completed an experimental API on my private branch. I'll create a draft PR later today. Both sending and receiving are operational. #1935 |
Thanks @Frostie314159 , it looks good - I'll update my wifishark example to test it out in the next couple days. |
adapted from esp-rs#1926 Co-authored-by: Leigh Oliver <leighcharlesoliver@gmail.com>
Submission Checklist 📝
cargo xtask fmt-packages
command to ensure that all changed code is formatted correctly.CHANGELOG.md
in the proper section.Extra:
Pull Request Details 📖
Description
I wanted to view the raw 802.11 frames being received by the ESP32, so I have written a small proof-of-concept using the internal
esp-wifi-sys
API's. This can be found in thewifi_raw_80211_wifishark
example.I also added an additional packet-capture interface to
extras/esp-wifishark
, calledwifi-rfmon
, which correctly parses the serial data as IEEE 802.11 Link-Layer frames.I don't really think it's a good idea to make examples out of unsafe API calls... but I know a few people were looking for this, and it's a very useful tool for wireless debugging when you don't have a monitor-mode-compatible interface at hand!
Note that this PR is dependent on #1925, for the
queue_msg_waiting
function.As bjoernQ mentioned in #1603, I think it'd be a good idea to make an
Esp80211
driver similar to theEspNow
one. I will continue to look into this!Testing
This example was tested on a XIAO ESP32S3, and the extras/esp-wifishark extcap plugin was compiled and used with Wireshark 4.2.6.
Personal To-do's