[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.
General issue report
Hello,
I have a question regarding the promiscuous mode.
A PC is connected to an OPEN Wi-Fi, sending broadcast UDP packets 10 times per second, through the Wi-Fi interface.
I can observe them well on another PC set in monitor mode with wireshark (not connected to the Wi-Fi).
Yet, the ESP32 doesn't get them. It only gets some other packets sent by the APs and devices around, but not our UDP data packets.
The objective is to catch the UDP packets without being connected to the Wi-Fi.
payload[0] != 0x88 is used to filter (i.e. let only) the QoS Data packets come through (I have verified on wireshark that the UDP packets have this 0x88 at the beginning of the frame, after the radiotap header). I also see that DNS packets are absent. Yet, all ARP packets are catched. And ARP packets are about the same length as UDP ones (observed on Wireshark).
Here is what the packet i want to capture looks like :
There are not a lot of frames that start with 0x88, so I don't think it happens because I print the payload at the same time as the sniffing, nor a buffer issue.
Channel and BW is the same between the ARP packets i can receive and the UDP packets I can't receive.
I feel like there is some pre-filtering in the TCP/IP stack.
Answers checklist.
General issue report
Hello, I have a question regarding the promiscuous mode. A PC is connected to an OPEN Wi-Fi, sending broadcast UDP packets 10 times per second, through the Wi-Fi interface. I can observe them well on another PC set in monitor mode with wireshark (not connected to the Wi-Fi). Yet, the ESP32 doesn't get them. It only gets some other packets sent by the APs and devices around, but not our UDP data packets.
Code used :
The objective is to catch the UDP packets without being connected to the Wi-Fi. payload[0] != 0x88 is used to filter (i.e. let only) the QoS Data packets come through (I have verified on wireshark that the UDP packets have this 0x88 at the beginning of the frame, after the radiotap header). I also see that DNS packets are absent. Yet, all ARP packets are catched. And ARP packets are about the same length as UDP ones (observed on Wireshark).
Here is what the packet i want to capture looks like :
There are not a lot of frames that start with 0x88, so I don't think it happens because I print the payload at the same time as the sniffing, nor a buffer issue.
Channel and BW is the same between the ARP packets i can receive and the UDP packets I can't receive.
I feel like there is some pre-filtering in the TCP/IP stack.
Many thanks, evoon