Commit Graph

63 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
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
Chaitanya Tata
e0ac3ec126 modules: hostap: Fix heap requirements for Enterprise
For Enterprise crypto MbedTLS needs more heap either separate pool or
libc heap, based on experiments 55000 was arrived for a successful
WPA2-EAP-TLS association.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-08-20 10:30:55 +02:00
Gang Li
cb1c377e7c hostap: add SAE_PWE_EARLY_EXIT Kconfig
In order to mitigate side channel attacks, even if the PWE is found the WPA
supplicant goes through full iterations, but in some low-resource systems
this can be intensive, so, add an option to exit early.
Note that this is highly insecure and shouldn't be used in production

Signed-off-by: Gang Li <gang.li_1@nxp.com>
2024-08-15 10:17:28 +01:00
Chaitanya Tata
6b79e34b95 modules: hostap: Convert WPA cli to selectable option
This should be configurable by applications in case a full CLI interface
to the WPA supplicant is needed.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-08-15 10:17:21 +01:00
Chaitanya Tata
176a47c2df modules: hostap: Fix SoF
Due to recent changes to hostap, the stack usage is increased, so,
increase the stack size to fix SoF.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-07-03 09:33:41 -04:00
Chaitanya Tata
f4e0a1abea modules: hostap: Fix MbedTLS config issue
Fixes build issues when Wi-Fi security is enabled for default
implementation, the alternative implementation is managed separately,
and doesn't need these.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
2024-07-03 09:33:41 -04:00
Maochen Wang
c116c9faf8 hostap: Add macro to wrap the interface monitoring code
Add macro to wrap the interface monitoring code and user can choose if
enable it.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-06-20 12:47:18 +02:00
Maochen Wang
001ac3976a modules: hostap: fix hostap compile error and support enterprise
Fix compile error when enable enterprise security mode.

Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
2024-06-20 12:47:18 +02:00
Fengming Ye
bdb0768882 hostap: remove CONFIG_NO_PBKDF2 and CONFIG_NO_CONFIG_BLOBS in cmake
Remove CONFIG_NO_PBKDF2 and CONFIG_NO_CONFIG_BLOBS definition
and let them be decided in kconfig.
CONFIG_NO_PBKDF2 is default y when crypto backend is
WIFI_NM_WPA_SUPPLICANT_CRYPTO_NONE.
CONFIG_NO_CONFIG_BLOBS is default y when both DPP and enterprise disable.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-06-06 20:07:38 -04:00
Fengming Ye
271d7084b5 hostap: add DPP support
Add kconfig and cmake to support DPP (Easy Connect).

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-06-06 20:07:38 -04:00
Fengming Ye
d3b3aa1c35 hostap: add PSA apis support for mbedtls 3.x
Add Platform Secure Architecture support support to use
HW acceleration, which needs to be called under PSA driver wrapper
in mbedtls 3.x.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-06-06 20:07:38 -04:00
Fengming Ye
6f0c836337 hostap: add crypto backend alt for enterprise and DPP
Add kconfig CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT to get more mbedtls
functionality for enterprise and DPP.
Split cmake sources related to hostap SME and crypto backend.
Default backend CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO use internal crypto
and some mbedtls apis.
Backend CONFIG_WIFI_NM_WPA_SUPPLICANT_CRYPTO_ALT use most mbedtls apis
and PSA apis, except some apis no longer supported in mbedtls 3.x,
or called in the middle of hostap and mbedtls.

Signed-off-by: Fengming Ye <frank.ye@nxp.com>
2024-06-06 20:07:38 -04:00
Chris Friedt
3f29b17bd1 posix: deprecate POSIX_SIGNAL in favour of POSIX_SIGNALS
This change deprecates CONFIG_POSIX_SIGNAL in favour of
the plural CONFIG_POSIX_SIGNALS, which maps directly to the
name of the standard POSIX Option Group POSIX_SIGNALS.

Additionally, mark signals as experimental.

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-06-04 16:27:12 -05:00
Chris Friedt
bc4374b5fe posix: deprecate POSIX_MAX_FDS and add POSIX_DEVICE_IO
The POSIX_MAX_FDS option does not correspond to any standard
POSIX option. It was used to define the size of the file
descriptor table, which is by no means exclusively used by
POSIX (also net, fs, ...).

POSIX_MAX_FDS is being deprecated in order to ensure that
Zephyr's POSIX Kconfig variables correspond to those defined in
the specification, as of IEEE 1003.1-2017. Namely,
POSIX_OPEN_MAX. CONFIG_POSIX_MAX_OPEN_FILES is being deprecated
for the same reason.

To mitigate any possible layering violations, that option is
not user selectable. It tracks the newly added
CONFIG_ZVFS_OPEN_MAX option, which is native to Zephyr.

With this deprecation, we introduce the following Kconfig
options that map directly to standard POSIX Option Groups by
simply removing "CONFIG_":

* CONFIG_POSIX_DEVICE_IO

Similarly, with this deprecation, we introduce the following
Kconfig options that map directly to standard POSIX Options by
simply removing "CONFIG":

* CONFIG_POSIX_OPEN_MAX

In order to maintain parity with the current feature set, we
introduce the following Kconfig options.

* CONFIG_POSIX_DEVICE_IO_ALIAS_CLOSE
* CONFIG_POSIX_DEVICE_IO_ALIAS_OPEN
* CONFIG_POSIX_DEVICE_IO_ALIAS_READ
* CONFIG_POSIX_DEVICE_IO_ALIAS_WRITE

Gate open(), close(), read(), and write() via the
CONFIG_POSIX_DEVICE_IO Kconfig option and move
implementations into device_io.c, to be conformant with the
spec.

Lastly, stage function names for upcoming ZVFS work, to be
completed as part of the LTSv3 Roadmap (e.g. zvfs_open(), ..).

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-06-04 16:27:12 -05:00
Chris Friedt
4a5c4e5f73 posix: timers: deprecate CONFIG_POSIX_CLOCK and TIMER
The POSIX_CLOCK option does not correspond to any standard
option. It was used to active features of several distinct
POSIX Options and Option Groups, which complicated API and
application configuration as a result.

POSIX_CLOCK is being deprecated in order to ensure that Zephyr's
POSIX Kconfig variables correspond to those defined in the
specification, as of IEEE 1003.1-2017.

Additionally, CONFIG_TIMER is being deprecated because it does
not match the corresponding POSIX Option (_POSIX_TIMERS).

With this deprecation, we introduce the following Kconfig
options that map directly to standard POSIX Option Groups by
simply removing "CONFIG_":

* CONFIG_POSIX_TIMERS

Similarly, we introduce the following Kconfig options that
map directly to standard POSIX Options by simply removing
"CONFIG":

* CONFIG_POSIX_CLOCK_SELECTION
* CONFIG_POSIX_CPUTIME
* CONFIG_POSIX_DELAYTIMER_MAX
* CONFIG_POSIX_MONOTONIC_CLOCK
* CONFIG_POSIX_TIMEOUTS
* CONFIG_POSIX_TIMER_MAX

In order to maintain parity with the current feature set, we
introduce the following Kconfig options that map directly to
standard POSIX Option Groups by simply removing "CONFIG_":

* CONFIG_POSIX_MULTI_PROCESS - sleep()

Similarly, in order to maintain parity with the current feature
set, we introduce the following additional Kconfig options that
map directly to standard POSIX Options by simply removing
"CONFIG":

* CONFIG_XSI_SINGLE_PROCESS - gettimeofday()

Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
2024-06-04 16:27:12 -05:00
Tomi Fontanilles
3efdbe6c0c modules: mbedtls: rename CONFIG_MBEDTLS_MAC_*_ENABLED and rm duplicates
Remove the `_MAC` part because those Kconfig options enable only hash
algorithms, nothing MAC-related, and the `_ENABLED` part to align the
naming to the Mbed TLS defines (plus we don't need such a part).

As a bonus, enabling SHA-256 does not automatically enable SHA-224
anymore.

See the migration guide entries for more details on the practical
changes.

Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
2024-05-29 08:39:26 +02:00
Jukka Rissanen
b03cb04411 hostap: Enable suitable mbedtls options
Enable all needed mbedtls options to allow crypto support.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-05-06 14:55:09 +01:00
Jukka Rissanen
af75192910 hostap: Comment out offeding mbedtls configs
Comment out mbedtls symbols that do not have a proper Kconfig
setting. Future commits will need to add relevant support in mbedtls
side to provided needed symbols so that they can be used in hostap
and uncomment these.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Chaitanya Tata
873106faf1 hostap: Add configuration options for NW selection
To cater for different needs add an configuration options for WPA
supplicant network selection (scan results sorting). The default is
still left unchanged.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Chaitanya Tata
a62f85c2ee hostap: Reduce WPA supplicant heap when MbedTLS heap is enabled
If MbedTLS uses its own heap which is a static heap (not libc heap),
then WPA supplicant heap usage will come down, so, reduce 8K (minimum
MbedTLS heap for Wi-Fi) from the libc heap size.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Chaitanya Tata
86c3e0ade4 hostap: SAP mode needs more heap
SAP mode adds more functionality that increases the heap usage, based on
experiments, 40000 works well to avoid startup failures.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Vidar Lillebø
6f5d50fec9 hostap: Select MBEDTLS_PKCS5_C
For WPA_SUPP_CRYPTO_LEGACY, MBEDTLS_PKCS5_C is needed.

Signed-off-by: Vidar Lillebø <vidar.lillebo@nordicsemi.no>
Signed-off-by: Markus Swarowsky <markus.swarowsky@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Sebastian Bøe
acd0aa7bb3 hostap: Add missing deps in WPA_SUPP_CRYPTO_
Add missing MBEDTLS_PK_C dependcy for legacy crypto.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
Signed-off-by: Markus Swarowsky <markus.swarowsky@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Chaitanya Tata
2f29c1057f hostap: Reserve the heap
By default (-1) libc uses all the available heap, this is good to
efficiently use the RAM, but for scenarios which there isn't enough RAM
the build will be success, but we see runtime failures.

Reserved the necessary RAM based on tests ahead to catch such scenarios,
of course this would mean that we might be no using full RAM in case
more is left, but that's never the case the with Wi-Fi :).

And this also adds the constant evaluation and fine tuneing like we do
for kernel heap and other parameters.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-04-05 12:19:55 +02:00
Jukka Rissanen
d5dd3a0a54 hostap: Remove PSA crypto support
The PSA is referring to Kconfig symbols that are only found
in Nordic downstream repo so we cannot use it anyway atm.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00
Jukka Rissanen
57b4ff137d hostap: Replace menuconfig by config
This avoid compliance warning

Found pointless 'menuconfig' symbols without children. Use regular 'config'
symbols instead. See
https://docs.zephyrproject.org/latest/build/kconfig/tips.html#menuconfig-symbols.

WIFI_NM_WPA_SUPPLICANT              modules/hostap/Kconfig:8
WIFI_NM_WPA_SUPPLICANT              modules/hostap/Kconfig:8

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00
Jukka Rissanen
5af390c600 hostap: Fix missing items in Kconfig and CMakeLists.txt files
Various settings in Kconfig and CMakeLists.txt file were
plain wrong or missing.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00
Jukka Rissanen
e648f0c24a hostap: Make sure CONFIG_AP gets enabled in AP mode
If user enables AP mode, make sure CONFIG_AP symbol
is enabled so that access point sources get compiled etc.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00
Chaitanya Tata
786fee7ae5 hostap: Fix WFA mandatory features
MBO and WMM-AC are mandatory for WFA certification, so cannot be
disabled for memory saving.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00
Emanuele Di Santo
ef5dda3378 hostap: kconfig: let entry be a menuconfig
wpa_supplicant has a lot of entries, and it appears in the top-level menu.
Let it be a menuconfig, so that it gets its own menu page with
all the options, instead of expanding in the top-level menu when
selected.

Signed-off-by: Emanuele Di Santo <emdi@nordicsemi.no>
Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
2024-03-20 09:00:52 +01:00