Skip to content

Use more efficient filter configuration for BSS scan. #42

Open
@Frostie314159

Description

@Frostie314159

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions