12

Is it possible to gain access to 802.11 action frames TX/RX from software? There's a proprietary protocol based on vendor-specific action frames called ESP-NOW for ESP8266 and ESP32 chips, and I'd like to try to implement it on a Raspberry Pi.

It began with my private project where I connected Raspberry Pi with ESP8266 (to exchange short messages), then I've noticed there are additional APIs for ESP8266 (ESP-NOW and Simple Pair) and wanted to compare the performance to ordinary WiFi connection.

If my search for details on accessing WiFi Action frames succeeds, I will post any results (perhaps a library for use in other applications).

6

3 Answers 3

3

I'll bet ESP-Now frames can be sniffed by tshark using something like tshark -n -l -i wlp0s29u1u2 -I -y IEEE802_11_RADIO (add a -t type such as ek or json), then add a filter like -Y 'wlan.fc.type_subtype eq 4' to find the packets you want.

You can use any wireless-aware packet injection tool to send WiFi packets. (i.e. Scapy)

2

This depends on the WiFi adapter you are using; some grant this level of access, others do not, or at least not in any documented or discovered way.

Given that the ESP-series modules are comparable in price to USB WiFi adapters and without the concern of a vendor changing the internals without changing the part number, if you don't need other networking or want to keep this task separate, you could just use one as an air interface for your other embedded system. Delegating the job to an ESP chip might be easier than re-implementing it anyway.

0

I'm not quite sure what you mean with "access [them] from software", but there is an ESP-NOW implementation for Raspberry Pi here.

Also, if you take your WiFi adapter into monitor mode (on Windows by running %WINDIR%\system32\Npcap\WlanHelper.exe) and tick the "Monitor Mode" checkbox in Wireshark's Capture Options, you can look at the messages:

screenshot

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.