Commit Graph

128 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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
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
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
Jukka Rissanen
2f47de60a0 hostap: The security keys were checked in wrong function
The security check case statements were in frequency band
setting checks. This is totally wrong and will cause compiler
warnings. Moving the checks to correct function.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-09-27 21:06:44 +01:00
Gang Li
4bfdb64386 hostap: add AP configuration cmd support
Implement AP configuration parameter operations.

Signed-off-by: Gang Li <gang.li_1@nxp.com>
2024-09-27 10:56:57 +01:00
Gaofeng Zhang
94386e103e zephyr: hostap: fix eap secure mode print UNKNOWN
wpas_key_mgmt_to_zephyr doesn't support eap secure mode, add code to
support eap secure mode.

Signed-off-by: Gaofeng Zhang <gaofeng.zhang@nxp.com>
2024-09-27 10:56:16 +01:00
Maochen Wang
e2f671ee00 hostap: only add STA interface when hostapd enabled
For add_interface(), only add STA interface when hostapd enabled,
and the Soft-AP interface will be added in zephyr_hostapd_init().

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-09-20 11:08:19 +02:00
Fengming Ye
c642b44c95 net: wifi_mgmt: add DPP reconfig support
Hostap does not support wpa_cli DPP reconfig command.
So add wifi_mgmt DPP reconfig command and api.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Fengming Ye
27d882e740 hostap: add hostapd cli shell command
Add hostapd_cli shell command for test.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Fengming Ye
0961928b3a hostap: add dispatch for hostapd and wpa_supplicant wpa_msg
When we have coexistence of hostapd and wpa_supplicant,
wpa_msg has different implementation.
So to let them work together, we need to have common implementation
for wpa_msg and dispatch msgs for hostapd and wpa_supplicant.

So add register zephyr_hostap_ctrl_iface_msg_cb,
and judge if ctx is hostapd by the first integer where ctx points to.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Fengming Ye
5e9377e051 hostap: add AP DPP wpa_msg event handler
Hostapd has TODO in hostapd_dpp_handle_config_obj,
to save DPP connector using wpa_msg.

AP DPP needs to use dpp_connector, dpp_netaccesskey and dpp_csign
in DPP Peer Discovery handshake in hostapd_dpp_rx_peer_disc_req.
So add AP DPP wpa_msg event handler to store these info.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Fengming Ye
a1eee8ac0c hostap: add AP DPP dispatch mgmt api
Add hostapd mgmt ops, some use same api as wpa_supplicant,
and DPP use different ops.
supplicant_dpp_dispatch use wpa_cli and hapd_dpp_dispatch use hostapd_cli.
And use common DPP param parse.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Fengming Ye
4f93c84a94 hostap: add AP network security type DPP
Add DPP security type for AP DPP support.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-09-18 09:57:27 +02:00
Kapil Bhatt
ccc243c129 modules: hostap: Add wifi statistics reset support
This change will add  an API to reset the wifi statistics
when reset command is called.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-09-17 17:48:36 +01:00
Kapil Bhatt
6c6f5beee7 hostap: Add rts threshold get api support
Add api to get rts threshold.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-09-13 13:42:26 +02:00
Kapil Bhatt
e71dc74228 hostap: Fix null termination of ssid and psk
Add null termination of ssid and psk. If user pass ssid,
psk without null terminator it will add by default.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-09-11 14:01:07 -04:00
Maochen Wang
8562ae6155 hostap: fix SAP UDP RX low throughput in 5GHz
The default Max A-MPDU length is 8191 shown in the VHT Cap Info from
SAP's beacon/Assoc response, and this length is read from
hapd->iface->conf->vht_capab. It will lead to the AMPDU only contains
5 packets and the throughput is only 60Mbps for 1x1 HE case in 5GHz.
Change the default vht_capab to VHT_CAP_MAX_A_MPDU_LENGTH_EXPONENT_MAX
(1048575), and the throughput can be increased to 83Mbps.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-09-06 10:07:07 -05:00
Kapil Bhatt
70be6ad8a0 hostap: Add rts threshold set api support
Add api to set rts threshold.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-08-29 18:03:41 +02:00
Kapil Bhatt
ec0b9ccbc1 hostap: Add currnet PHY rate to status
Add current PHY rate to the wifi status.
It will a TX data rate in bits per second.

Signed-off-by: Kapil Bhatt <kapil.bhatt@nordicsemi.no>
2024-08-28 13:59:59 -04:00
Hui Bai
dbc6cdc711 modules: hostap: Supports link mode of legacy STA.
Link mode shows unknown when legacy (A or bg only) device connects to
APUT. Set the link mode to WIFI_2 when the host freq over 4000 and set
link mode to WIFI_3 when the host freq over 2000.

Signed-off-by: Hui Bai <hui.bai@nxp.com>
2024-08-28 06:51:41 -04:00