Commit Graph

193 Commits

Author SHA1 Message Date
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
Chaitanya Tata
9e63357355 modules: hostap: TLS is only needed for Enterprise
Move TLS MbedTLS wrapper to Enterprise only.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-11-26 10:36:11 +00:00
Chaitanya Tata
6316e40053 modules: hostap: Fix indentation
Cmake uses spaces (2) as the indentation.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-11-26 10:36:11 +00:00
Maochen Wang
9f72e651b5 hostap: fix Matter over Wi-Fi build warning
Fix the build warning that 'method may be used uninitialized' when
build Matter over Wi-Fi.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-11-25 08:30:43 +01: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
407259462c hostap: use the correct config for EAP_SERVER
Should use EAP_SERVER and EAP_SERVER_IDENTITY as the correct config,
for the WPS case of AP.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-11-22 17:44:08 +01: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
Alberto Escolar Piedras
faba6325e9 modules/hostap: Fix size_t print format specifier
The format specifier for size_t is zu.
Using d only works when int and size_t are the same
underlying type which is not the case for 64bit systems,
which leads to a build warning in this case.

Signed-off-by: Alberto Escolar Piedras <alberto.escolar.piedras@nordicsemi.no>
2024-10-25 22:43:01 +01:00
Hui Bai
71b9d8ad66 hostap: More fixes to crypto=none compilation
The aes_unwrap() and aes_decrypt() functions were missing
if CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE is enabled.
Add missing C files to fix this.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-10-25 13:53:49 +02: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
Hui Bai
7c167c67c3 modules: hostap: add 11k cmd support
Add 11k cmds support. User can issue 11k cmds to enable/disable 11k and
send Neighbor Report Request packet.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-10-25 13:53:49 +02:00
Maochen Wang
6f2517807e hostap: fix build error when WPS enabled
Fix build error of multiple definition of `dh5_init' in
crypto_mbedtls_alt.c when WPS enabled.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-10-24 09:29:21 +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
ec21dab31a hostap: Avoid warning of different enum mapping
Even if the enum contains the same values, the values might
change if the wpa_supplicant sources change or Zephyr values
change. In order to avoid weird errors later and prevent the
following warning, add a conversion functions for the enums.

modules/hostap/src/supp_api.c:1172:23: warning: implicit conversion
from enumeration type 'enum mfp_options' to different enumeration
type 'enum wifi_mfp_options' [-Wenum-conversion]
                status->mfp = ssid->ieee80211w; /* Same mapping */

modules/hostap/src/supp_api.c:1190:30: warning: implicit conversion
from enumeration type 'enum wpas_mode' to different enumeration
type 'enum wifi_iface_mode' [-Wenum-conversion]
                status->iface_mode = ssid->mode;

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
c9b8365f6d hostap: Add needed include files to fix compilation
The "enum wpa_msg_type" was not found by default so add needed
include files to get the definitions.

modules/hostap/src/supp_main.h:61:57: warning: ‘enum wpa_msg_type’
   declared inside parameter list will not be visible outside of
   this definition or declaration
   61 | void wpa_supplicant_msg_send(void *ctx, int level,
                                     enum wpa_msg_type type,
                                     const char *txt,

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
6ac4e9c3b7 hostap: Remove not found hostapd functions
Both the supplicant_set_btwt() and supplicant_ap_bandwidth() are
not found in Zephyr sources so remove them.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
980a352d39 hostap: Fix crypto=none compilation
If CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE is enabled, there
are lot of missing functions reported during linking.
Add missing C files to the compilation to fix this.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
e9ec7a23a3 hostap: Enterprise mode needs sha1-internal.c
Without this there is an error

modules/lib/hostap/src/crypto/fips_prf_internal.c:47: \
    undefined reference to `SHA1Transform'

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
33bc6f05c8 hostap: Fix compilation error when enterprise support is enabled
The code was missing ")" when checking crypto support.

Signed-off-by: Jukka Rissanen <jukka.rissanen@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
0edb64db5f hostap: Add ip-addr.c compilation to the build
The functions in ip-addr.c are needed in more places than just
for hostapd so add it unconditionally to the build.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-23 17:00:45 +02:00
Jukka Rissanen
18275f84d7 hostap: Fix hostapd AP compilation error
The supplicant_ap_status() is only available if
CONFIG_WIFI_NM_HOSTAPD_AP is enabled.

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
Chaitanya Tata
be65de0d09 modules: hostap: Fix memory leak of network
In "connect" all networks are removed and  new network is always added,
but in disconnect the network isn't deleted, so, the memory is
unnecessarily held till next connect. This is not exactly a leak, but if
someone profiles using "kernel heap" then this can be construed as a
leak.

Fix this by removing network during the disconnection (for now "all") so
that the memory can be used by someone else.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-17 10:48:46 -04: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
Fengming Ye
9e8b7bd3ad modules: hostap: fix DPP build error
Fix DPP build error when HOSTAPD enabled and DPP disabled.
Guard hapd_dpp_dispatch in both CONFIG_WIFI_NM_WPA_SUPPLICANT_DPP
and CONFIG_WIFI_NM_HOSTAPD_AP.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-10-17 09:43:08 +02:00
Maochen Wang
a259900720 hostap: fix DUT hang when start SAP on wrong channel
When try to start SAP on channel 12 with region code US, the channel
check will fail and calls supplicant_send_wifi_mgmt_ap_status() with
iface->owner is NULL, which causes DUT hang. Set iface->owner when
enable the SAP can fix this issue.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-10-16 09:55:44 +02:00
Gaofeng Zhang
0c54a3f8c7 hostapd: add ap status in l2 wifi
add ap status in l2 wifi

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
2024-10-15 19:09:33 -04:00
Chaitanya Tata
48916d66e7 modules: hostap: Fix checks for Enterprise security
Enterprise security doesn't have either SAE or PSK, so, using a blanker
else throws a false warning. Fix the checks to proper handler enterprise
mode.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-15 13:53:30 +02:00
Chaitanya Tata
39b904d9cc modules: hostap: Add separate config for EAP-FAST
EAP-FAST has extra requirements (TLS 1.3, session tickets etc) and is
seldom used, so, remove it from Enterprise list and add a separate
Kconfig option.

This solves the build error when Enterprise mode is enabled.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-15 13:53:30 +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
Gang Li
79222c9c11 hostap: add WPA-Auto-Personal(WPA2/WPA3 mixed) support
Add WPA-Auto-Personal support for AP and STA.
This mode uses WPA2/WPA3 SAE mixed security with PSK.

Signed-off-by: Gang Li <gang.li_1@nxp.com>
2024-10-10 14:59:55 -04:00
Maochen Wang
838ff13fe2 hostap: fix other STA failed to connect to SAP
The format of wpa_passphrase and sae_password is wrong when start the
SAP, which leads the invaild MIC check error when other STA try to
connect in security mode. Change the wrong format can fix this issue.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-10-10 14:58:31 -04:00
Chaitanya Tata
970428419c modules: hostap: Use the build time flag
Instead of hard-coded value, use the build time flag.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-10 10:07:41 +02:00
Chaitanya Tata
b2c6f6c53b modules: hostap: Add missing default for max STAs in AP mode
The default should honor the build time flag.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-10 10:07:41 +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
Chaitanya Tata
bcef9ac6ea modules: hostap: Use OS primitive even in native code
This was we can modify it in a single place that works both for native
and OS specific code.

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
Jukka Rissanen
4b83b2346f hostap: Use proper value when generating supplicant event
The previous NET_EVENT_SUPPLICANT_CMD_INT_EVENT is from
"enum net_event_supplicant_cmd" but the supplicant_send_wifi_mgmt_event()
has the event parameter as an "enum net_event_wifi_cmd" and those event
number spaces are different.

This meant that the wrong event value NET_EVENT_SUPPLICANT_CMD_INT_EVENT
maps to NET_EVENT_WIFI_CMD_TWT (from "enum net_event_wifi_cmd") which
fortunately did not cause issue in this case because the
supplicant_send_wifi_mgmt_event() has no handling for this TWT event value.

It is important we fix this as this can cause great confusion in the
future.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-10-08 18:17:42 +01:00
Rex Chen
5a195001e3 net: wifi: shell: add reg domain support
Supp api add reg domain support.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-10-08 06:00:36 -04:00
Chaitanya Tata
2dec9313e4 modules: hostap: Use net_mgmt context
Using a separate workqueue causes issues without any special locking to
synchronize with networking threads e.g., interface being removed while
the workqueue is trying to synchronize with WPA supplicant.

It's easier to use the net_mgmt thread which is in better sync with
networking.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-07 17:12:24 +01:00
Chaitanya Tata
56d7e9a487 modules: hostap: Fix typo in NM unregistration
The module name is not modified in remove.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-07 17:12:24 +01:00
Chaitanya Tata
c44aa6b18e modules: hostap: Fix double free in case of error conditions
In case of error conditions post successfully sending the message, the
event is already freed but we attempt to free it again.

Rejig the labels to easily reflect thier purpose.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-07 17:12:24 +01:00
Chaitanya Tata
2d7c995395 modules: hostap: Fix double free of the event
When an event is sent the receiver gets is asynchronously and hence is
responsible for free the event, the sender should only free in case of
error conditions i.e., unable to send.

Else, this causes a tough to debug double-free.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-07 17:12:24 +01:00
Chaitanya Tata
1da74ef705 net: wifi: Fix DPP disabled build
In case WPA supplicant disabled DPP, we need to compile out the
corresponding DPP code in Wi-Fi shell too.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-10-07 17:12:16 +01:00
Rex Chen
82ec1d7862 net: wifi: shell: add wps support
Add wps pin and wps pbc L2 layer cmd support.

Signed-off-by: Rex Chen <rex.chen_1@nxp.com>
2024-10-05 14:07:48 -04:00