Commit Graph

254 Commits

Author SHA1 Message Date
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
Jukka Rissanen
ff769d4c40 net: hostap: Set names for the threads
The interface workq thread and supplicant handler thread
did not had names set to them. Set the names so that it is
easier to find them from "kernel thread stacks" list.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-03-24 09:54:42 +01:00
Hui Bai
b23d1c2dbd hostap: AP is not allowed if unsupported security type is configured
Return error if any of unsupported type is configured and softAP
will not be started.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2025-03-13 07:23:28 +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
Qingling Wu
159332d591 net: wifi: hostap: add CA certificate used or skipped support
Added new parameter "A" in wifi connect command to support
CA certificate used or CA certificate skipped for
EAP-TTLS-MSCHAPV2 and EAP-PEAP-MSCHAPV2.

Signed-off-by: Qingling Wu <qingling.wu@nxp.com>
2025-02-11 15:38:58 +01:00
Fengming Ye
54ef1b54d1 net: wifi: add SAE extended key security type support
Add WPA3 SAE extended key security type support in
L2 wifi mgmt and hostap.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2025-02-10 14:32:38 +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
e34d5caac8 modules: hostap: Fix EAP-AKA only build
The SIM common file is applicable for AKA as well.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-31 09:40:00 +01:00
Chaitanya Tata
7b6220b448 modules: hostap: Fix EAP-MD5 only build
Include chap.c for EAP-MD5 also.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-31 09:40:00 +01:00
Chaitanya Tata
965dae6701 modules: hostap: Fix EAP-TTLS only build
The TLS common file is applicable for TLS/TTLS/PEAP (TLS_FUNCS).

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-31 09:40:00 +01:00
Chaitanya Tata
3435608cca modules: hostap: Fix missing EAP-LEAP
When built with LEAP only this causes a build failure.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-31 09:40:00 +01:00
Jukka Rissanen
e658bc1b2b net: Extend the protocol handling in Ethernet
Allow user to specify protocol extensions when receiving data
from Ethernet network. This means that user can register L3
protocol handler using NET_L3_REGISTER() with the desired
protocol type. Ethernet code will then call the handler if
such a protocol type packet is received. This is currently
only implemented for Ethernet. The original IPv4 and IPv6
handling is left intact even if they can be considered to
be L3 layer protocol. This could be changed in the future
if needed so that IPv4 and IPv6 handling could be made
pluggable protocols.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2025-01-20 09:21:32 +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
0953ea0010 modules: hostap: Fix AP and no MBO build
Add check for MBO feature before including the source file.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2025-01-15 19:06:22 +01:00
Maochen Wang
263ddc236a hostap: Fix wrong security printing about WPA3 PWE
'wifi status' CMD shows wrong security information when STA connects to
Ext-AP with WIFI_SECURITY_TYPE_SAE_HNP, after connection using
WIFI_SECURITY_TYPE_SAE_AUTO. Setting sae_pwe for all the WPA3 SAE types
can fix this issue.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-01-14 10:55:57 +01:00
Maochen Wang
f2f2fbb315 hostap: support getting enterprise type by status cmd
For 'wifi status' and 'wifi ap status' cmd of the hostap case,
originally only support getting 'EAP-TLS' for the enterprise
mode, which is not correct. Now support getting the specific
enterprise mode, including the WPA3 enterprise mode and
the EAP method type.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-01-10 07:48:40 +01:00
Maochen Wang
c1782420d5 hostap: add WPA3 enterprise security type
Change Wi-Fi suiteb type into WPA3 enterprise security type, it
includes suiteB, suiteB-192 and WPA3 enterprise only mode.
Support setting WPA3 enterprise only mode, which should use
cipher_config->key_mgmt as WPA-EAP-SHA256, and the AKM in RSN
IE will show 00-0F-AC:5.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-01-10 07:48:40 +01:00
Maochen Wang
4777dfaa28 net: l2: wifi: remove EAP TLS SHA256 security
Remove EAP TLS SHA256 security, as it was added to support the AKM
of 00-0F-AC:5 in RSN IE, but actually this AKM is used by WPA3
enterprise only mode.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2025-01-10 07:48:40 +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
Rex Chen
dabeb9c95c net: wifi: shell: wifi status support all sae pwe types
Add support for wifi status show sae HNP,H2E and AUTO exactly.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-30 13:49:50 +01:00
Rex Chen
2dc288cf85 net: wifi: shell: add sae pwe support for sap
Add sae pwe H2E and AUTO support for sap.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-30 13:49:50 +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
Rex Chen
8955d9f71b net: wifi: shell: free station certs memory during disconnect
It will be have a relative high probability to get continuous memory
for the next enterprise conenction, if free station certs memory
during disconnect, thus sys_heap need less memory for big size
EAP-TLS server cert packet, otherwise more memory space needed.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-25 08:41:03 +01:00
Maochen Wang
9e77fd3491 hostap: fix build error when disable enterprise mode
In Kconfig, already check both dpp and enterprise mode for enable
NO_CONFIG_BLOBS, so remove the wrong one in the cmakelist.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-20 10:19:14 +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
Qingling Wu
d22026c440 net: wifi: hostap: add set RTS threshold command support
Add set RTS threshold command support for sta and sap.

Signed-off-by: Qingling Wu <qingling.wu@nxp.com>
2024-12-18 10:17:24 +01:00
Rex Chen
9b470ad664 net: wifi: shell: fix sap mix mode password configure error issue
Fix sap mix mode psk and sae password configure error issue,
hostapd doesn't expect double-quoted string like wpa_supplicant.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-17 15:21:58 +01:00
Maochen Wang
7260f2ddd5 hostap: remove unnecessary register of mgd iface in hostapd
In zephyr_hostapd_init, calls net_if_get_wifi_sap to get the SAP iface,
it means mgd iface of SAP type is registered before zephyr_hostapd_init.
Actually the mgd iface of SAP should be called in iface_api.init phase.
Therefore, remove unnecessary register of mgd iface in hostapd init.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-12-17 09:48:29 +01:00
Gaofeng Zhang
0e59cf41d7 hostap: support legacy roaming
There are currently four types of roaming, 11r roaming, 11v roaming, 11k
roaming and legacy roaming, The priority of the roaming mode is
11r-->11v-->11k-->legacy roaming. If the ap does not support 11r/11v/11k
roaming, we will use legacy roaming. legecy roaming needs to do
full channel scan, which is the same as the general scan connection
process, so the legacy roaming time will be longer.

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
2024-12-17 05:49:21 +01:00
Rex Chen
a1f579a2f3 net: wifi: shell: add btwt feature support
Add btwt_setup cmd for sap.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-12-16 13:10:02 +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
Gaofeng Zhang
ae7e852512 hostap: fix hostap enable fail during stress test
1.everytime ap wpa3 sae enable command will increase the sae_passpharse
list of config_bss, and sae_derive_pt will derive all sae pt in the
sae_passpharse list, every sae derive pt spend 100ms.
2.with the time going, the sae_passpharse list has more sae, and the
time to derive pt for sae will become long, sae_derive_pt will held
cpu and doesn't sleep.
3.hostapd task prio is 3, and imu task is 3, hostapd task run before
imu task, when the imu interrupt arrive and wake up the imu task, imu
task can't run,
4.hostapd task is deriving pt for every sae in the sae_passpharse
list. imu task can't run and sleep rwlock can't be release, sleep
rwlock timeout is 3s, when derive pt spend over 3s, wlcmgr task
waiting command resp on sleep rwlock will assert and hang.

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
2024-12-12 11:09:28 +01:00
Li Long
4d178f664c modules: hostap: add tls_cipher param
Add tls_cipher param for client WPA3 enterprise suiteb-192.
Add parameter "-T" to specify tls_cipher:
Specify "-T 1": client use ECC P384.
Specify "-T 2": client use RSA 3K.

Signed-off-by: Li Long <li.long@nxp.com>
2024-12-12 11:09:15 +01:00
Gaofeng Zhang
ecf35f39eb hostap: wps: Enable PIN expiry timeout
Enable WPS PIN expire timeout parameter, this helps us in cleanup of
the Authorized MAC IE in the beacon in case no peer is connected
within the timeout.
Without this parameter the  IE is not removed from the beacon.

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
2024-12-11 21:34:11 +01:00
Gang Li
5dcb3a0f6a hostap: fix VHT channel center segment0
1) Unless ACS is being used, both "channel" and
"vht_oper_centr_freq_seg0_idx" parameters must be set.
Fixed "channel center segment 0" not being set in VHT Operation IE.
2) Set HT capabilities and VHT capabilities via the wifi ap config command.
3) Set AP bandwidth to wifi driver via the wifi_mgmt_api->ap_config_params.

Signed-off-by: Gang Li <gang.li_1@nxp.com>
2024-12-10 11:09:09 +01:00
Chaitanya Tata
12b24be7cc modules: hostap: Fix the callback for EAPoL
The signature of callback and the callback function is now changed, so,
add a wrapper to convert b/w them.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-12-05 17:08:25 +00: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