Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ability to scan multiple access point SSIDs at once (IDFGH-14831) #15558

Open
bryghtlabs-richard opened this issue Mar 11, 2025 · 4 comments
Open
Assignees
Labels
Status: In Progress Work is in progress Type: Feature Request Feature request for IDF

Comments

@bryghtlabs-richard
Copy link
Contributor

Is your feature request related to a problem?

No response

Describe the solution you'd like.

I'd like the ability to specify multiple SSIDs in a wifi_scan_config_t.

Describe alternatives you've considered.

Currently to connect we do something like this pseudocode:

for each (SSID, Password) in CustomWifiManager's Credential List:
    if WiFiScan(SSID) is found:
        if Connect(SSID,Password) is okay:
            break

But, for SSIDs near the end of the list, we have to perform multiple scans first, which greatly lengthens the connection time.

Additional context.

We have a few product requirements to balance:

  • Must support connecting to loudest AP in a mesh networks - for this we perform an all-channel scan before connecting to identify the best node to connect with. This is needed for pre-802.11kr access points.
  • Must support multiple [SSID,password] pairs of credentials.
  • Must support connecting to hidden SSIDs. To support meshes with hidden SSIDs, this currently requires a separate scan per SSID.
  • Should support connecting to the loudest SSID if multiple are available.
  • Should have fast connect time
@bryghtlabs-richard bryghtlabs-richard added the Type: Feature Request Feature request for IDF label Mar 11, 2025
@github-actions github-actions bot changed the title Ability to scan multiple access point SSIDs at once Ability to scan multiple access point SSIDs at once (IDFGH-14831) Mar 11, 2025
@espressif-bot espressif-bot added the Status: Opened Issue is new label Mar 11, 2025
@espressif-bot espressif-bot added Status: In Progress Work is in progress and removed Status: Opened Issue is new labels Mar 17, 2025
@mhdong
Copy link
Collaborator

mhdong commented Mar 17, 2025

hi @bryghtlabs-richard
To scan for a specific SSID, we include the SSID field in the probe request. However, this field can only carry one SSID at a time, making it impossible to scan multiple AP SSIDs at once.
If hidden APs are not a concern, a full-channel scan can be performed first, followed by filtering the desired SSIDs. However, if hidden SSIDs need to be considered, each SSID must still be scanned individually.

@bryghtlabs-richard
Copy link
Contributor Author

To scan for a specific SSID, we include the SSID field in the probe request. However, this field can only carry one SSID at a time, making it impossible to scan multiple AP SSIDs at once.

@mhdong, 802.11 has supported "SSID List" probe requests since at least 2012.

Please consider the following steps:

  1. Allow sending multiple probe requests on a single channel during the scan so that wifi_scan_config_t.scan_time only applies per-channel instead of per-channel, per-SSID.
  2. Allow coalescing multiple SSIDs into fewer SSID List probe request packets. If the SSID List is too long for a single probe request, a few may be required. The relevant section in 802.11-2012, "8.3.3.9 Probe Request frame format", "Table 8-26—Probe Request frame body", frame field/order 10. In 802.11ax-2021, it's "Table 9-38—Probe Request frame body"

@mhdong
Copy link
Collaborator

mhdong commented Mar 18, 2025

hi @bryghtlabs-richard
Thank you very much for your correction. We will discuss internally whether to add support for this feature and how to implement it.

@bryghtlabs-richard
Copy link
Contributor Author

Thank you for your consideration @mhdong .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: In Progress Work is in progress Type: Feature Request Feature request for IDF
Projects
None yet
Development

No branches or pull requests

4 participants