Commit Graph

92 Commits

Author SHA1 Message Date
Chaitanya Tata
5f6e2a73cb modules: hostap: Fix build
Due to recent POSIX rejig, we need to select an extra config option for
"gettimeofday".

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-05-21 12:34:22 +02:00
Tomi Fontanilles
35f7eda545 modules: mbedtls: make key exchange Kconfigs depend on, not select
Turn the MBEDTLS_RSA_FULL selects into depends on.
This is how the other MBEDTLS_KEY_EXCHANGE_* Kconfig options are defined.

This is done to avoid circular dependencies.

At the same time update uses of the affected MBEDTLS_KEY_EXCHANGE_*
Kconfig options to enable/disable the dependencies which used to be
automatically handled.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2025-05-13 22:22:43 -04:00
Ravi Dondaputi
eb9d98a1af modules: hostap: Increase supplicant stack size
SoftAP operation needs around 5700 bytes of stack. With a
buffer of 100 bytes, set the supplicant stack size to 5800.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2025-04-29 20:08:57 -04:00
Fengming Ye
541b64747c modules: hostap: enable DPP3 kconfig option
DPP3 is must when we want to pass DPP certificate with
different elliptical curves.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2025-04-16 08:04:23 +02:00
Hui Bai
58c932cc46 hostap: Relocate hostapd related source code to new files
Created new files and relocate hostapd support code in glue layer to new
files. The new files will be compiled only if hostapd support is enabled.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2025-04-09 12:35:27 +02:00
Ravi Dondaputi
d073e622f5 modules: hostap: Fix issue with enterprise mode connection
Increase stack size of supplicant thread to fix crash seen during
enterprise mode connection. Increase heap requirement of hostap
to handle TLS processing failures.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2025-03-28 12:21:20 +01:00
Frank Audun Kvamtrø
b0cc4fe0de wifi: hostap: Fixing naming collisions for some TLS configurations
-Mbed TLS has come up with its own naming-convention with regards
 to certain Mbed TLS configurations for TLS/DTLS and X.509. This
 commit fixes a couple of them by depending on MBEDTLS_BUILTIN
 which is set when Kconfig.tls-generic is used
 1. Make MBEDTLS_PEM_CERTIFICATE_FORMAT depend on MBEDTLS_BUILTIN
    The proper name for this functionaity is MBEDTL_PEM_PARSE_C and
    MBEDTLS_PEM_WRITE_C
 2. Make MBEDTLS_SERVER_NAME_INDICATION depend on MBEDTLS_BUILTIN
    The proper name for this is MBEDTLS_SSL_SERVER_NAME_INDICATION

Signed-off-by: Frank Audun Kvamtrø <frank.kvamtro@nordicsemi.no>
2025-03-13 07:21:51 +01:00
Frank Audun Kvamtrø
29ed1ba13d wifi: Resolve PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 dependencies
-PSA_WANT_ALG_CMAC must be set for PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
 to be valid. This commit fixes this mismatch for hostap

Signed-off-by: Frank Audun Kvamtrø <frank.kvamtro@nordicsemi.no>
2025-03-13 07:21:51 +01:00
Jordan Yates
95fcf48fab modules: hostap: remove select FILE_SYSTEM
Remove `select FILE_SYSTEM` from `WIFI_NM_WPA_SUPPLICANT`, originally
added in 3fc932c5. The selection is not required by any tests, and does
not appear to be used by any code in the module.

Signed-off-by: Jordan Yates <jordan@embeint.com>
2025-03-07 20:27:12 +01:00
Ravi Dondaputi
4bab37e7dd modules: hostap: Enable SHA384 support
Enable MBEDTLS_SHA384 support to use of RSA3K + Suite-B, that
is required by WPA3-Enterprise.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2025-02-26 15:06:26 +01:00
Chaitanya Tata
e2bf746fe2 modules: hostap: Fix the SoF in iface_wq
In case interface is UP, the interface is added to WPA supplicant in the
iface_wq itself and the max stack size is 4264, so, increase the stack
size of the iface_wq.

If the interface is added via net_mgmt thread then it works fine.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-02-12 20:18:58 +01:00
Chaitanya Tata
96dc3d3311 modules: hostap: Reduce workqueue stack
During experiments it was observed that workqueue uses a maximum of
3872 bytes, so, with cushion added set it to 4096.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-02-07 17:54:51 +01:00
Chaitanya Tata
24cbc8805b modules: hostap: Fix SoF
When connecting to a WPA3 connection, the max stack size observed was
5456, fix the SoF by increasing by 200bytes (cushion added).

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-02-07 17:54:51 +01:00
Chaitanya Tata
e161ad675a modules: hostap: Disable advanced feature for nRF boards
nRF boards have a ROM crunch esp. with combined with Matter/networking
features, as the advanced features are not essential for typical Wi-Fi
operation, disable them by default. Individual samples can choose to
enable it.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-02-04 09:18:22 +01:00
Chaitanya Tata
83592e818b modules: hostap: Decrease supplicant thread stack size
Based on few tests, it was observed that WPA supplicant's maximum usage
for connection and disconnection is 4360.

This would save ~4K which is huge as we have a crunch for RAM.

This was missed when hostap was upstreamed from NCS.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-31 21:43:09 +01:00
Chaitanya Tata
819acf18f0 modules: hostap: Remove redundant default
Default is always disabled.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-15 19:06:22 +01:00
Chaitanya Tata
d909634ba8 modules: hostap: Fix advanced features disable
Zephyr introduced postive feature flags to make advanced features
conditional but the upstream has followed a negative feature flag
for advanced features, and during upmerge these two weren't reconciled.

Fix the build in case advanced features are disabled.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-15 19:06:22 +01:00
Chaitanya Tata
89b53f527d modules: hostap: Fix WPA supplicant debug logging
Despite having higher log buffer sizes the log messages are being
dropped due to high rate (and longer messages) as hostap debugging is
very verbose, so, use "immediate" logging by default. As hostap is only
for control path this will not have impact on timing.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-02 16:03:09 +01:00
Maochen Wang
42701fdb27 hostap: update the default heap size for hostap
As kernel heap is used for hostap, which replaced libc heap, then no
need to consider the MBEDTLS_ENABLE_HEAP case. For enterprise case,
mbedtls will use MBEDTLS_HEAP or libc heap to allocate memory, instead
of the kernel heap.
Modify the heap size for enterprise case to have necessary memory.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-01-02 12:35:46 +01:00
Maochen Wang
e40e0d66db hostap: fix build error when MBEDTLS_PSA_CRYPTO_C enabled
For TFM example, MBEDTLS_PSA_CRYPTO_C has some dependencies and may not
be enabled, so use 'imply' instead of 'select' here for hostap
MBEDTLS_PSA case.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-26 06:21:05 +01:00
Maochen Wang
be0be3d485 hostap: Enable WPA_CLI if WIFI_NM_WPA_SUPPLICANT_CLI is selected
Use WIFI_NM_WPA_SUPPLICANT_CLI to better control the config of WPA_CLI.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-19 07:06:26 +01:00
Rex Chen
b95a9d8bc2 net: wifi: shell: add EAP server types for EAP_SERVER_ALL
Add EAP server types for EAP_SERVER_ALL, and enable it by default.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-18 12:44:55 +01:00
Maochen Wang
75db72aa1f hostap: increase the default heap size of hostapd case
Hostapd consumes more heap than supplicant AP case, so increase the
default value of hostapd case.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-16 10:53:21 +01:00
Chaitanya Tata
6f574704b9 wifi: hostap: Remove CRYPTO default
We have now fully migrated to CRYPTO_ALT which is a superset, so, remove
unused CRYPTO module and it's related files.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-12-13 21:51:11 +01:00
Chaitanya Tata
eabf3f6adc modules: hostap: Enable error logs by default
Mandatory to debug any issues and is the norm in Zephyr.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-12-13 21:51:02 +01:00
Vivekananda Uppunda
4bbeb55e05 modules: hostap: Add needed PSA_WANT_XX settings in mbedtls PSA config
Add the PSA_WANT_XXX settings that might be needed for various crypto
algorithms and Keys in WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA
configuration setting.

Signed-off-by: Vivekananda Uppunda <vivekananda.uppunda@nordicsemi.no>
2024-12-13 09:13:27 +01:00
Chaitanya Tata
ff440ca597 modules: hostap: Fix DPP3 build failure
MbedTLS Crypto ALT implementation clearly states that DPP3 isn't
supported, remove DPP3 to fix a build error related to HPKE.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-12-05 17:08:25 +00:00
Maochen Wang
f23f2deda8 hostap: Extend EAP_ALL config option
Extend EAP_ALL config option to Zephyr supported.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-04 12:10:32 +01:00
Maochen Wang
1bf86f08fb hostap: Remove duplicate EAP config options
Remove the duplicate EAP config definitions.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-04 12:10:32 +01:00
Chaitanya Tata
60dbb6fa4f modules: hostap: Move Enterprise configs under Enterprise
These are only for Enterprise.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-11-26 10:36:11 +00:00
Maochen Wang
b18541768b hostap: distinguish suppliant AP and hostapd AP
To make AP related code/config more clear and clean, use
CONFIG_WIFI_NM_WPA_SUPPLICANT_AP for supplicant based AP case,
and use CONFIG_WIFI_NM_HOSTAPD_AP for hostapd based AP case.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-11-25 08:30:38 +01:00
Rex Chen
b4035e83d4 net: wifi: shell: add enterprise support for sap
Add EAP-TLS, EAP-PEAP-MSCHAPv2, EAP-PEAP-GTC, EAP-TTLS-MSCHAPv2,
EAP-PEAP-TLS, EAP-TLS-SHA256 enterprise wpa2 and wpa3 suiteb
support for sap.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-11-22 13:03:53 -06:00
Maochen Wang
13f473d7eb hostap: add WPS PBC and PIN for AP mode
add WPS PBC and PIN for AP mode.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-11-22 17:44:08 +01:00
Chaitanya Tata
bbfb546e57 modules: hostap: Add external crypto support
Add an option for platforms or forks to provide their own hostap
compatible crypto implementation. This may include proprietary or
platform specific stuff that may or may not be upstreamed to Zephyr.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-11-21 14:48:14 +01:00
Gang Li
14478cafa6 hostap: fix the issue of HE IE in beacon when disabled 11AX
Add WIFI_NM_WPA_SUPPLICAT_11AX Kconfig to enable or disable 11AX.

Signed-off-by: Gang Li <gang.li_1@nxp.com>
2024-10-29 07:11:33 -05:00
Hui Bai
83812f213f modules: hostap: add 11k/v/r roaming support
Added new ops and events in glue layer to support roaming.
Added new flag WIFI_NM_WPA_SUPPLICANT_ROAMING to control roaming
feature.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-10-25 13:53:49 +02:00
Hui Bai
91ec46e961 modules: hostap: add IEEE80211R support
Add 80211R support in hostap.
Add cmd wifi connect option '-R' to enable 80211R.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-10-25 13:53:49 +02:00
Chaitanya Tata
78f5821b37 modules: hostap: Add a config option for WPA control timeout
WPA control interface timeout is hardcoded to 10s, add a configuration
option to remove the hardcode, this is needed sometimes as a workaround
e.g., crypto taking too long to complete the request.

Work around for #79834, increase the default from 10 to 15s, in positive
case this will have no impact.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
6827ec0d93 hostap: P2P needs EAPOL to select it
The P2P support needs EAPOL support in order to avoid a compilation
error about missing eap field in wpa_ssid struct.

modules/lib/hostap/wpa_supplicant/wpa_supplicant.c:5102:65:
 error: ‘struct wpa_ssid’ has no member named ‘eap’
 5102 |      eap_is_wps_pin_enrollee(&wpa_s->current_ssid->eap)) {

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
5c5f3b0b51 hostap: Remove extra IEEE8021X_EAPOL as it was mentioned twice
The CONFIG_IEEE8021X_EAPOL was in the Kconfig file twice so
remove the extra entry.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Rex Chen
be151908d8 net: wifi: shell: add enterprise support for station
Add EAP-TLS, EAP-PEAP-MSCHAPv2, EAP-PEAP-GTC, EAP-TTLS-MSCHAPv2,
EAP-PEAP-TLS, EAP-TLS-SHA256  enterprise wpa2 and wpa3 suiteb
support for station.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-10-17 09:46:02 +02:00
Ravi Dondaputi
609520bf3f modules: hostap: Add config options for EAP types
Enabling all EAP types for enterprise mode increases
memory usage in both ROM and RAM. Provide config options for each
type to let solutions choose the methods based on their
requirements.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
2024-10-14 13:05:31 +02:00
Chaitanya Tata
3ade4bed27 modules: hostap: Fix heap pool allocation
Now that hostap is used k_heap, it needs to reserve the kernel heap not
libc heap.

Fixes #79477.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-10 10:07:41 +02:00
Fengming Ye
e40eef2d58 hostap: add crypto module test kconfig option
Add crypto module test kconfig option
CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_TEST,
which is default n and hidden.
It is only available by developer for crypto module test.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-10-09 13:45:30 +02:00
Vivekananda Uppunda
9679083e9f modules: hostap: Fix Kconfig parameters for build
Fix build failures when selecting WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT

Signed-off-by: Vivekananda Uppunda <vivekananda.uppunda@nordicsemi.no>
2024-09-03 14:40:45 +01:00
Vivekananda Uppunda
242f7ad3b4 modules: hostap: CRYPTO_MBEDTLS_PSA should not be default selected
WIFI_NM_WPA_SUPPLICANT_CRYPTO_MBEDTLS_PSA should not be by default
selected when WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT is selcted. Enable
PSA APIs if desired separately.

Signed-off-by: Vivekananda Uppunda <vivekananda.uppunda@nordicsemi.no>
2024-09-03 14:40:45 +01:00
Vivekananda Uppunda
f2eda942f8 modules: hostap: Set WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT as crypto
Set WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT as the default crypto
configuration. The crypto ALT implementation contains the necessary
crypto operations and also allows the user to choose PSA or non PSA
crypto operation.

Signed-off-by: Vivekananda Uppunda <vivekananda.uppunda@nordicsemi.no>
2024-09-03 14:40:45 +01:00
Hui Bai
2cc55bf85e modules: hostap: Add support of setting up softAP with hostapd
Added new flag CONFIG_WIFI_NM_HOSTAPD_AP for hostapd support. Once this
flag is enabled, softAP will be setup by hostapd. Both wpa_supplicant
and hostapd uses same task and eloop.
Included necessary hostapd files when compiling wifi samples if
CONFIG_WIFI_NM_HOSTAPD_AP is enabled. Added hostapd support for all
softAP command of L2 wifi shell commands.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-08-28 06:51:41 -04:00
Jilay Pandya
d08864c4b3 mbedtls: remove stray uses MBEDTLS_ENTROPY_ENABLED
This commit replaces stray uses of MBEDTLS_ENTROPY_ENABLED with
MBED_TLS_ENTROPY_C

Signed-off-by: Jilay Pandya <jilay.pandya@zeiss.com>
2024-08-25 11:21:26 +02:00
Chaitanya Tata
58b6bd6621 modules: hostap: Fix MbedTLS configs
For Wi-Fi Enterprise testing these configurations are necessary.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-08-20 10:30:55 +02:00