Skip to content

drivers: wifi: options for application usage of Wi-Fi #84353

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

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

JordanYates
Copy link
Collaborator

The CONFIG_WIFI symbol currently covers a number of different use-cases of Wi-Fi, primarily:

  • Wi-Fi AP (Broadcasting a network others can connect to)
  • Wi-Fi Station (Connecting to an AP + SSID scanning)
  • Wi-Fi AP + Station (Both the above)
  • Wi-Fi SSID scanning (SSID scanning only)

Each of these application usages of Wi-Fi requires a different set of supporting options to operate correctly (WPA_SUPP, NET_CONNECTION_MANAGER, etc), and different opportunities for resource optimization (System heap, buffer counts, etc).

Currently, optimizing the Wi-Fi drivers depends on driver specific options, which can be challenging to find and are obviously not portable across different drivers.

The addition of this choice allows applications to specify in a single Kconfig option which features of Wi-Fi they use, and enable individual Wi-Fi drivers to choose defaults based on those features.

Looking for initial feedback before documentation updates.

Includes the commit from #84350.

jukkar
jukkar previously approved these changes Jan 22, 2025
@@ -40,15 +40,16 @@ config NRF70_QSPI_LOW_POWER

choice NRF70_OPER_MODES
bool "nRF70 operating modes"
default NRF70_SYSTEM_MODE if !WIFI_NRF7000
default NRF70_SCAN_ONLY if WIFI_NRF7000
default NRF70_SYSTEM_MODE if !WIFI_USAGE_MODE_SCAN_ONLY
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we still need a link b/w nRF7000 and WIFI_USAGE_MODE_SCAN_ONLY

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was written with the intent that WIFI_USAGE_MODE is more of a "hint" than a hard request. In that case, if WIFI_USAGE_MODE_AP is set on a nRF7000, the NRF70_OPER_MODE will fall through NRF70_SYSTEM_MODE because it isn't supported and enable NRF70_SCAN_ONLY.

If the consensus is for more explicit configuration failures, I can take a look at that.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah it works fine, but I don't see any Kconfig warnings with west build -p -b nrf9160dk/nrf9160/ns samples/net/wifi/shell --shield nrf7002ek_nrf7000 --cmake-only it silently falls back to scan-only.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I said, its currently a hint, not a hard request. Do you think it should fail to build if the driver can't support the requested mode?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

At least a Kconfig warning would be good to keep the users informed.

@@ -539,7 +539,7 @@ config NXP_WIFI_SOFTAP_SUPPORT
bool "Wi-Fi SoftAP Support"
select NET_DHCPV4_SERVER
select WIFI_NM_HOSTAPD_AP if WIFI_NM_WPA_SUPPLICANT
default y
default y if WIFI_USAGE_MODE_AP || WIFI_USAGE_MODE_STA_AP
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently NXP_WIFI_SOFTAP_SUPPORT is default enabled for NXP wifi chip, but your change will change the logic that we have to add extra WIFI_USAGE_MODE_STA_AP into the .conf, right?
Can you keep the original config logic?

Copy link
Member

@jukkar jukkar Apr 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently NXP_WIFI_SOFTAP_SUPPORT is default enabled for NXP wifi chip, but your change will change the logic that we have to add extra WIFI_USAGE_MODE_STA_AP into the .conf, right?
Can you keep the original config logic?

This is changed by #87410 which disables AP mode by default.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great, I will try and keep an eye on that PR and update this one (and address the file conflicts) once it is in.

Copy link

This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time.

@github-actions github-actions bot added the Stale label Mar 24, 2025
@jukkar
Copy link
Member

jukkar commented Mar 28, 2025

This seems to have been fall through the cracks and become stale. @JordanYates is this still valid one, there did not seem to be too much resistance against it?

@github-actions github-actions bot removed the Stale label Mar 29, 2025
@krish2718 krish2718 added this to Wi-Fi Mar 29, 2025
@krish2718 krish2718 moved this to In Progress in Wi-Fi Mar 29, 2025
@JordanYates
Copy link
Collaborator Author

This seems to have been fall through the cracks and become stale. @JordanYates is this still valid one, there did not seem to be too much resistance against it?

Yes, the desire to set what WiFi mode the application wants from the application is still valid.
I have rebased and addressed the file conflicts.

jukkar
jukkar previously approved these changes Apr 8, 2025
@@ -539,7 +539,7 @@ config NXP_WIFI_SOFTAP_SUPPORT
bool "Wi-Fi SoftAP Support"
select NET_DHCPV4_SERVER
select WIFI_NM_HOSTAPD_AP if WIFI_NM_WPA_SUPPLICANT
default y
default y if WIFI_USAGE_MODE_AP || WIFI_USAGE_MODE_STA_AP
Copy link
Member

@jukkar jukkar Apr 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently NXP_WIFI_SOFTAP_SUPPORT is default enabled for NXP wifi chip, but your change will change the logic that we have to add extra WIFI_USAGE_MODE_STA_AP into the .conf, right?
Can you keep the original config logic?

This is changed by #87410 which disables AP mode by default.

@jukkar jukkar requested review from krish2718 and MaochenWang1 April 9, 2025 10:21
krish2718
krish2718 previously approved these changes Apr 9, 2025
bool "Wi-Fi interface acts as an Access Point"

config WIFI_USAGE_MODE_STA_AP
bool "Wi-Fi interface acts as an Access Point and Station"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
bool "Wi-Fi interface acts as an Access Point and Station"
bool "Wi-Fi interface(s) acts as an Access Point and Station"

@JordanYates JordanYates added the DNM This PR should not be merged (Do Not Merge) label Apr 9, 2025
The `CONFIG_WIFI` symbol currently covers a number of different
use-cases of Wi-Fi, primarily:
  * Wi-Fi AP (Broadcasting a network others can connect to)
  * Wi-Fi Station (Connecting to an AP + SSID scanning)
  * Wi-Fi AP + Station (Both the above)
  * Wi-Fi SSID scanning (SSID scanning only)

Each of these application usages of Wi-Fi requires a different set of
supporting options to operate correctly (`WPA_SUPP`,
`NET_CONNECTION_MANAGER`, etc), and different opportunities for resource
optimisation (System heap, buffer counts, etc).

Currently, optimizing the Wi-Fi drivers depends on driver specific
options, which can be challenging to find and are obviously not portable
across different drivers.

The addition of this choice allows applications to specify in a single
Kconfig option which features of Wi-Fi they use, and enable individual
Wi-Fi drivers to choose defaults based on those features.

Signed-off-by: Jordan Yates <jordan@embeint.com>
Default the operation mode from the application requested Wi-Fi
features, not the nRF70 part number.

Signed-off-by: Jordan Yates <jordan@embeint.com>
Automatically enabled `ESP32_WIFI_AP_STA_MODE` if the application
specifies it wants either feature.

Signed-off-by: Jordan Yates <jordan@embeint.com>
Reduce the number of config overrides needed for the various testcases
by only enabling the options if needed in the first place.

Signed-off-by: Jordan Yates <jordan@embeint.com>
@JordanYates JordanYates dismissed stale reviews from krish2718 and jukkar via b7c8498 April 17, 2025 00:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Wi-Fi Wi-Fi DNM This PR should not be merged (Do Not Merge) platform: ESP32 Espressif ESP32 platform: nRF Nordic nRFx platform: NXP Drivers NXP Semiconductors, drivers
Projects
Status: In Progress
Development

Successfully merging this pull request may close these issues.

5 participants