Description
Checklist
- Checked the issue tracker for similar issues to ensure this is not a duplicate.
- Provided a clear description of your suggestion.
- Included any relevant context or examples.
Issue or Suggestion Description
Hi,
so this maybe a bit unusual, but I'd like to suggest a different hardware packet filter configuration for BSS scanning. I'm a contributor to the esp32-open-mac project, and we recently found the register, which controls scanning mode. This is set in hal_mac_rx_set_policy
(libpp.a), where the value 0x110
is OR'ed into a register, when RX policy number 3 is set. This is the case, when the upper layers initiate a BSS scan. As far as I'm aware, this applies to all chips with Wi-Fi support.
In the past few days, we were able to identify the meaning of the individual bits. Setting bit 4 (0x10
) allows beacon frames to pass the RX filter in the MAC peripheral, and bit 8 (0x100
) allows all frames (except control frames) to pass the RX filter.
For a plain BSS scan, setting only bit 4 is sufficient, but currently bit 8 is enabled as well. Simply not setting this bit will reduce the number of frames the CPU has to process drastically, especially on a busy channel. This also does not affect probe requests, since those will still pass the normal MAC address filter, when the RA matches.
I hope, that we're able to help with this and make the official stack benefit from the research.
Greetings
Simon