Send and recieve raw WiFi packets
Posted: Mon Jan 25, 2021 9:40 pm
Hi,
I'm trying to send raw WiFi data packets and to receive them on another ESP32. I'm using esp_wifi_80211_tx() to send the packets to a specific address (not broadcast). I'm using promiscuous mode to receieve them, callback registered through esp_wifi_set_promiscuous_rx_cb(). Note that those raw packets are sent while using the ESP32 in STA mode.
My issue is that packets are sent many times because they are not acknowledged (ACK) by the reciever (which is in promiscuous mode).
Is there a way to configure the ESP32 to acknowledge WiFi packets when the receiver address matched the MAC of the ESP32?
Is there another way I can recieve raw packets (another API that the promiscuous mode) that will acknowledge specifically targeted addresses (I only need to get packets targeted my own MAC or that are broadcasted)?
In last resort, how can I configure the sender not to retry packets when no ACK is recieved?
Details: in my raw packets, frame control = 0x308 (protocol:0, type: data, subtype: data, ToDS and FromDS set)
Regards,
I'm trying to send raw WiFi data packets and to receive them on another ESP32. I'm using esp_wifi_80211_tx() to send the packets to a specific address (not broadcast). I'm using promiscuous mode to receieve them, callback registered through esp_wifi_set_promiscuous_rx_cb(). Note that those raw packets are sent while using the ESP32 in STA mode.
My issue is that packets are sent many times because they are not acknowledged (ACK) by the reciever (which is in promiscuous mode).
Is there a way to configure the ESP32 to acknowledge WiFi packets when the receiver address matched the MAC of the ESP32?
Is there another way I can recieve raw packets (another API that the promiscuous mode) that will acknowledge specifically targeted addresses (I only need to get packets targeted my own MAC or that are broadcasted)?
In last resort, how can I configure the sender not to retry packets when no ACK is recieved?
Details: in my raw packets, frame control = 0x308 (protocol:0, type: data, subtype: data, ToDS and FromDS set)
Regards,