Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wifi: Hostap prepare upmerge #11899

Merged
merged 110 commits into from
Aug 1, 2023
Merged

Conversation

krish2718
Copy link
Contributor

This moves the Zephyr only code to sdk-nrf, and keeps Zephyr changes
part of OSS in sdk-hostap in preparation for upmerge.

@github-actions github-actions bot added changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. manifest labels Jul 27, 2023
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Jul 27, 2023

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
hostap nrfconnect/sdk-hostap@6921e3c nrfconnect/sdk-hostap@4b93835 (main) nrfconnect/sdk-hostap@6921e3c2..4b938352

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Jul 27, 2023

Test specification

CI/Jenkins/NRF

  • Integration Platforms

CI/Jenkins/integration

Test Module File based changes Manually selected West overwrite
test-sdk-wifi X

test-sdk-wifi: added because there was no .github/test-spec.yml in 'hostap'

Detailed information of selected test modules

Note: This message is automatically posted and updated by the CI

@NordicBuilder
Copy link
Contributor

You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds.

Note: This comment is automatically posted by the Documentation Publishing GitHub Action.

sr1dh48r and others added 8 commits August 1, 2023 15:10
Modifications for building supplicant on Zephyr RTOS.

Signed-off-by: Sridhar Nuvusetty <sridhar.nuvusetty@nordicsemi.no>
Signed-off-by: Sachin Kulkarni <sachin.kulkarni@nordicsemi.no>
Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
Signed-off-by: Krishna T <krishna.t@nordicsemi.no>

Co-authored-by: krishna T <krishna.t@nordicsemi.no>
The file was removed but was still included.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Remove uninitialized variable that is no longer needed, this causes
crash in case supplicant thread exits.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
* Include HOSTAP_BASE to fix header file paths
* Select WEP automatically through Kconfig

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
1. Add WPA_SUPP_LOG_LEVEL_* Kconfig options to control
   the WPA supplicant log level the same way as other
   SDK components.
2. Add WPA_SUPP_DEBUG_LEVEL Kconfig option to be used for
   compile-time filtering of WPA supplicant debug messages.
   By default, it is aligned with WPA_SUPP_LOG_LEVEL.
3. Implement Zephyr variants of wpa_debug.h and wpa_debug.c
   files that use Zephyr logging subystem as the default
   output and apply compile-time filtering for the messages.

Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
Eloop framework in wpa_supplicant uses select with minimal timeout of
all registered users, but by default it is 10secs (periodic cleanup
task), so, in case of no other events all registered users will be
delayed by 10secs.

In Linux, select exits without waiting for full 10secs as for there
is a handler registered for NL80211 sockets and whenever there is a
event from Kernel select exits and processes expired events immediately.

In Zephyr, we don't have such mechanism as we use direction function
calls between kernel and wpa_supplicant, so, add an event socket and
register it with Eloop and use this to post the event, the socket
handler pass the event to wpa_supplicant.

For user interface we just post a dummy message only to unblock select.

This solves both problems:

* Unblocking select for all interesting events immediately
* Terminate driver context for events as we use sockets, so, remove mbox
  + thread.

This significantly improves the association time from 30s to 5s.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Using first interface handle everywhere is not ideal, esp. when we add
support for multi-VIF, so, query wpa_supplicant with the interface name
to get the handle.

The interface name itself is hard coded to "wlan0" everywhere for now.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
These APIs will be used by nRF Wi-Fi management to interact with
wpa_supplicant.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
Krishna T and others added 26 commits August 1, 2023 15:10
* Add TLS none
* Enable PBKDF2 in WPA supplicant

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
In order to get nRF7002 NS build going, we need to use PSA MbedTLS
template to get entropy working. Rather than having a single set of
options which makes dependency management tough, have a separate entry
for PSA based MbedTLS which is enabled by for NS variants only.

Also, don't use MbedTLS APIs for entropy, instead use the Zephyr APIs
that can work for both NS and S builds.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
Update peer TWT capability from connection info.

Signed-off-by: Ajay Parida <ajay.parida@nordicsemi.no>
This is important for applications relying on WPA supplicant being
disconnected after the call to disconnect.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
ACK the disconnect command with disconnect complete.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
Raise connection timed out event to net management queue.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
Previously for some reason we have removed logs as they were causing
issues, but that is not true anymore. So, add back all error logs.

Signed-off-by: Krishna T <krishna.t@nordicsemi.no>
Use the pattern matching on interface names to filter only Wi-Fi
interfaces.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Remove remnants of mbedtls entropy usage.
Entropy is now accessed through zephyr APIs so enabling
MBEDTLS_ENTROPY_C is no longer needed.
Without MBEDTLS_ENTROPY_C option there is no reason to change
the default configuration value of MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG.

NCSDK-22096

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Generate supplicant ready event once the control connection
between cli and supplicant is setup.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
This significantly saves flash size that is much needed for Matter apps.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Key mgmt value being passed to wpas_key_mgmt_to_zephyr is
the combination (bitwise OR) of all configured security modes
for an SSID while the expected input is the security mode negotiated
for the association. This results in wpas_key_mgmt_to_zephyr failing
to identify correct security mode and falling through to the default
case (UNKNOWN). Security mode which is being used by the current
association is stored in supplicant interface structure. Refer to
this(struct wpa_supplicant) instead of network configuration
data (struct wpa_ssid), for reading security mode.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
Free the memory once its done.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Register WPA supplicant as a Wi-Fi network manager. Also fix a memory
leak while handling the error patch in remove interface.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Divide them cleanly in to private and public.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
These ops are not implemented by the WPA supplicant and too much of a
hassle to implement a pass through all the way to the driver, so, we use
the offloaded APIs registered by the driver and make direct calls.

Though offloaded APIs are are registered as long as the interface is
managed by the WPA supplicant, Wi-Fi management will not invoke them
directly. But if WPA supplicant is disabled (Scan only mode), then Wi-Fi
management invokes them directly.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Add support for newly added scan parameters structure handling.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This is not a user configuration option and is automatically selected by
CONFIG_WPS, hence no CONFIG_ prefix.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
As per 802.11-2020: 11.21.13 BSS max idle period management

"If dot11WirelessManagementImplemented is true,
dot11BSSMaxIdlePeriod is nonzero and
dot11BSSMaxIdlePeriodIndicationByNonAPSTA is true, then a
non-S1G non-AP STA shall include a BSS Max Idle Period element
in the (Re)Association Request frame. If the BSS Max Idle Period
element is present in the (Re)Association Request frame received
by a non-S1G AP that has dot11BSSMaxIdlePeriodIndicationByNonAPSTA
equal to true, then the non-S1G AP may choose the non-AP STA’s
preferred maximum idle period. The non-S1G AP indicates its chosen
value to the non-S1G STA in the (Re)Association Response frame."

Add BSS max idle timeout (default 300s) in association request. Use
CONFIG_BSS_MAX_IDLE_TIME to modify this timeout at build time.

Signed-off-by: Ravi Dondaputi <ravi.dondaputi@nordicsemi.no>
Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
Fix PSA dependency on random number support.
Random number generated is wanted, instead of a specific PRNG algorithm.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
…port

Enable the PSA key type which enables AES block cipher support.

Signed-off-by: Joakim Andersson <joakim.andersson@nordicsemi.no>
Include hostap module files.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This snapshot tag is taken before the force push to re-write history to
include nrf sauce tags as per [1], this will be over-written with the
force pushed commit in subsequent commits, see [2] for details.

[1] - https://nordicsemi.atlassian.net/wiki/spaces/NCS/pages/108201225/Pull+Requests
[2] - https://nordicsemi.atlassian.net/wiki/spaces/NCS/pages/108233364/Synchronization#Synchronization-RebasingOSStrees

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This moves the Zephyr only code to sdk-nrf, and keeps Zephyr changes
part of OSS in sdk-hostap in preparation for upmerge.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This code was never run through checkpatch, so, fix the compliance.
Also, Zephyr wpa_cli relies on macro with flow control, so, add an
exception to checkpatch.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
This wasn't caught till now as there was no CI in sdk-hostap.

Signed-off-by: Chaitanya Tata <Chaitanya.Tata@nordicsemi.no>
@NordicBuilder NordicBuilder removed the DNM label Aug 1, 2023
@rlubos rlubos merged commit a0a40db into nrfconnect:main Aug 1, 2023
13 of 14 checks passed
@krish2718 krish2718 deleted the hostap_prepare_upmerge branch December 14, 2023 10:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. manifest manifest-hostap
Projects
None yet
Development

Successfully merging this pull request may close these issues.