]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
23 months agoDefragmentation of FTE
Jouni Malinen [Tue, 8 Aug 2023 09:37:39 +0000 (12:37 +0300)] 
Defragmentation of FTE

Defragment the FTE if it was fragmented. This is needed for MLO when the
FTE in Reassociation Response frame might be longer than 255 octets to
include all the group keys for all the links.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
23 months agoRecognize FTE MLO subelements
Jouni Malinen [Tue, 8 Aug 2023 08:57:06 +0000 (11:57 +0300)] 
Recognize FTE MLO subelements

Recognize the new MLO GTK/IGTK/BIGTK subelements when parsing an FTE.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
23 months agowlantest: Support multiple input files
Jouni Malinen [Tue, 8 Aug 2023 08:00:42 +0000 (11:00 +0300)] 
wlantest: Support multiple input files

Allow the -r<file> command line argument to be used multiple times to
read more than a single capture file for processing. This reduces need
for external tools to be used first to merge capture files for wlantest.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
23 months agowlantest: Handle variable length MIC field in EAPOL-Key with OWE
Jouni Malinen [Tue, 8 Aug 2023 07:30:10 +0000 (10:30 +0300)] 
wlantest: Handle variable length MIC field in EAPOL-Key with OWE

The Key MIC field is of variable length when using OWE, so determine the
correct length based on which group was negotiated for OWE during
association.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agotests: Fix eht_mld_sae_legacy_client to restore sae_pwe
Jouni Malinen [Fri, 21 Jul 2023 17:17:53 +0000 (20:17 +0300)] 
tests: Fix eht_mld_sae_legacy_client to restore sae_pwe

Changing sae_pwe and leaving the modified value for the following test
cases can result in failures.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAP MLD: Handle new STA event when using SME offload to the driver
Veerendranath Jakkam [Mon, 6 Mar 2023 03:03:53 +0000 (08:33 +0530)] 
AP MLD: Handle new STA event when using SME offload to the driver

Parse link id and station MLD address received from the driver in the
NL80211_CMD_NEW_STA event.

Set MLO information of the station to the sta_info and wpa_sm.

Co-authored-by: Manaswini Paluri <quic_mpaluri@quicinc.com>
Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agonl80211: Skip STA MLO link channel switch handling in AP mode
Manaswini Paluri [Thu, 22 Jun 2023 08:49:36 +0000 (14:19 +0530)] 
nl80211: Skip STA MLO link channel switch handling in AP mode

Add check to skip the STA mode specific MLO link channel switch handling
in AP mode. Commit 1b6f3b5850a7 ("MLD STA: Indicate per link channel
switch") added this indication only for STA mode.

Signed-off-by: Manaswini Paluri <quic_mpaluri@quicinc.com>
2 years agoAP MLD: OWE when SME is offloaded to the driver
Manaswini Paluri [Mon, 6 Mar 2023 10:49:04 +0000 (16:19 +0530)] 
AP MLD: OWE when SME is offloaded to the driver

Add support to parse association link id and MLD address from the
NL80211_CMD_UPDATE_OWE_INFO event.

Set MLO information of the station to the sta_info and wpa_sm.

Use station association link address for sending DH IE info to the
driver.

Signed-off-by: Manaswini Paluri <quic_mpaluri@quicinc.com>
2 years agoAP MLD: Use STA assoc link address in external auth status to the driver
Manaswini Paluri [Mon, 17 Apr 2023 14:04:44 +0000 (19:34 +0530)] 
AP MLD: Use STA assoc link address in external auth status to the driver

Use station association link address for sending SAE authentication
status to the driver in AP mode external authentication status.

Signed-off-by: Manaswini Paluri <quic_mpaluri@quicinc.com>
2 years agoSet RRM used config if the (Re)Association Request frame has RRM IE
Kiran Kumar Lokere [Thu, 8 Jun 2023 19:30:02 +0000 (12:30 -0700)] 
Set RRM used config if the (Re)Association Request frame has RRM IE

Set the sme RRM used config if the RRM element is present in the
(Re)Association Request frame sent in association event to cover the
cases where the driver SME takes care of negotiating RRM capabilities.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAdd QCA vendor attributes for user defined power save parameters
Vishal Miskin [Tue, 27 Jun 2023 14:13:36 +0000 (19:43 +0530)] 
Add QCA vendor attributes for user defined power save parameters

Extend QCA_WLAN_VENDOR_ATTR_CONFIG_OPTIMIZED_POWER_MANAGEMENT
attribute to support enum qca_wlan_vendor_opm_mode.

Add QCA vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_ITO and
QCA_WLAN_VENDOR_ATTR_CONFIG_OPM_SPEC_WAKE to configure inactivity
timeout and speculative wake interval in User defined optimized
power save mode.

Signed-off-by: Vishal Miskin <quic_vmiskin@quicinc.com>
2 years agoP2P: Check p2p_channel_select() return value
Jouni Malinen [Tue, 18 Jul 2023 13:15:01 +0000 (16:15 +0300)] 
P2P: Check p2p_channel_select() return value

Verify that the operation succeeds before a debug print indicating that
it did. This was already done in most callers, so be more consistent and
do it here as well.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoFILS: Fix HE MCS field initialization
Jouni Malinen [Tue, 18 Jul 2023 13:11:08 +0000 (16:11 +0300)] 
FILS: Fix HE MCS field initialization

The second argument to memset() is only eight bits, so there is no point
in trying to set 0xffff values for an array of 16-bit fields. 0xff will
do the exact same thing without causing static analyzes warnings about
truncated value.

Fixes: 903e3a1e6259 ("FILS: Fix maximum NSS calculation for FD frame")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoACS: Remove invalid debug print
Jouni Malinen [Tue, 18 Jul 2023 13:08:44 +0000 (16:08 +0300)] 
ACS: Remove invalid debug print

ideal_chan is NULL here, so it is not really valid to try to debug print
something from it due to the implied NULL pointer dereferencing.

Fixes: af0f60e7dd00 ("EHT: Calculate puncturing bitmap for ACS")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoCheck whether element parsing has failed
Jouni Malinen [Tue, 18 Jul 2023 13:02:44 +0000 (16:02 +0300)] 
Check whether element parsing has failed

Check the ieee802_11_parse_elems() return code and do not proceed in
various cases if parsing failed. Previously, these cases would have been
allowed to continue by ignoring whatever might have followed in the IE
buffer after the first detected parsing failure. This is not really an
issue in practice, but it feels cleaner to explicitly stop when
receiving an invalid set of IEs.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoWPS: Optimize attribute parsing workaround
Jouni Malinen [Tue, 18 Jul 2023 08:33:37 +0000 (11:33 +0300)] 
WPS: Optimize attribute parsing workaround

Optimize the search for nonzero octets when checking for the need to
work around WPS M1 padding. The previous implementation was really
inefficient (O(n^2)) and while that was likely sufficiently fast for the
cases where the MMPDU size limit prevents long buffers (e.g., all P2P
Action frames), it might be able to take tens of seconds on low-end CPUs
with maximum length EAP-WSC messages during WPS provisioning. More
visibly, this was causing OSS-Fuzz to time out a test case with
unrealisticly long data (i.e., almost 10 times the maximum EAP-WSC
buffer length).

Credit to OSS-Fuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60039
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoP2P: Do not print control characters in debug
Jouni Malinen [Tue, 18 Jul 2023 08:15:15 +0000 (11:15 +0300)] 
P2P: Do not print control characters in debug

Do not print the received country code as characters if it includes
control characters.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agotests: PEAP and TTLS phase2_auth behavior
Jouni Malinen [Mon, 17 Jul 2023 18:11:09 +0000 (21:11 +0300)] 
tests: PEAP and TTLS phase2_auth behavior

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoTTLS client: Support phase2_auth=2
Jouni Malinen [Mon, 17 Jul 2023 18:20:37 +0000 (21:20 +0300)] 
TTLS client: Support phase2_auth=2

Allow the phase2_auth=2 parameter (in phase1 configuration item) to be
used with EAP-TTLS to require Phase 2 authentication. In practice, this
disables TLS session resumption since EAP-TTLS is defined to skip Phase
2 when resuming a session.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoPEAP client: Update Phase 2 authentication requirements
Jouni Malinen [Sat, 8 Jul 2023 16:55:32 +0000 (19:55 +0300)] 
PEAP client: Update Phase 2 authentication requirements

The previous PEAP client behavior allowed the server to skip Phase 2
authentication with the expectation that the server was authenticated
during Phase 1 through TLS server certificate validation. Various PEAP
specifications are not exactly clear on what the behavior on this front
is supposed to be and as such, this ended up being more flexible than
the TTLS/FAST/TEAP cases. However, this is not really ideal when
unfortunately common misconfiguration of PEAP is used in deployed
devices where the server trust root (ca_cert) is not configured or the
user has an easy option for allowing this validation step to be skipped.

Change the default PEAP client behavior to be to require Phase 2
authentication to be successfully completed for cases where TLS session
resumption is not used and the client certificate has not been
configured. Those two exceptions are the main cases where a deployed
authentication server might skip Phase 2 and as such, where a more
strict default behavior could result in undesired interoperability
issues. Requiring Phase 2 authentication will end up disabling TLS
session resumption automatically to avoid interoperability issues.

Allow Phase 2 authentication behavior to be configured with a new phase1
configuration parameter option:
'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
tunnel) behavior for PEAP:
 * 0 = do not require Phase 2 authentication
 * 1 = require Phase 2 authentication when client certificate
   (private_key/client_cert) is no used and TLS session resumption was
   not used (default)
 * 2 = require Phase 2 authentication in all cases

Signed-off-by: Jouni Malinen <j@w1.fi>
2 years agowlantest: Support HT Control field in Robust Management frames
Jouni Malinen [Thu, 22 Jun 2023 19:44:51 +0000 (22:44 +0300)] 
wlantest: Support HT Control field in Robust Management frames

Check the +HTC bit in FC to determine if the HT Control field is present
when decrypting Robust Management frames. This was already done for QoS
Data frames, but the Management frame case had not been extended to
cover this option.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAdd support to configure per-MLO link maximum supported channel width
Veerendranath Jakkam [Thu, 22 Jun 2023 05:34:02 +0000 (11:04 +0530)] 
Add support to configure per-MLO link maximum supported channel width

Update documentation of the QCA_WLAN_VENDOR_ATTR_CONFIG_CHANNEL_WIDTH
and QCA_WLAN_VENDOR_ATTR_CONFIG_CHAN_WIDTH_UPDATE_TYPE attributes to
indicate support for per-MLO link configuration.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoAdd QCA vendor interface to support per-MLO link configurations
Veerendranath Jakkam [Thu, 22 Jun 2023 05:21:21 +0000 (10:51 +0530)] 
Add QCA vendor interface to support per-MLO link configurations

Add support for per-MLO link configurations in
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and
QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands.

Additionally, add documentation for
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION and
QCA_NL80211_VENDOR_SUBCMD_GET_WIFI_CONFIGURATION commands.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoReserve QCA vendor sub command id 232
Vamsi Krishna [Fri, 16 Jun 2023 06:22:19 +0000 (11:52 +0530)] 
Reserve QCA vendor sub command id 232

This is reserved for QCA use.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoQCA vendor test config attribute for MLO link powersave
Kiran Kumar Lokere [Thu, 8 Jun 2023 19:43:29 +0000 (12:43 -0700)] 
QCA vendor test config attribute for MLO link powersave

Define a new QCA vendor test config attribute to configure powersave
on MLO links.

This attribute is used for testing purposes.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAdd vendor attributes for EPCS feature
Paul Zhang [Mon, 12 Jun 2023 08:32:17 +0000 (16:32 +0800)] 
Add vendor attributes for EPCS feature

Add vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_EPCS_CAPABILITY
to set EPCS (Emergency Preparedness Communications Service)
feature capability.

Add vendor attribute QCA_WLAN_VENDOR_ATTR_CONFIG_EPCS_FUNCTION
to enable/disable EPCS priority access.

These are for testing purposes.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoQCA vendor interface to control maximum allowed bandwidth update type
Ainy Kumari [Thu, 25 May 2023 11:55:33 +0000 (17:25 +0530)] 
QCA vendor interface to control maximum allowed bandwidth update type

Add support to control maximum allowed bandwidth update type for
the current connection.

Signed-off-by: Ainy Kumari <quic_ainykuma@quicinc.com>
2 years agoAdd support to get the TDLS wider bandwidth capability
Aleti Nageshwar Reddy [Wed, 21 Jun 2023 09:04:53 +0000 (14:34 +0530)] 
Add support to get the TDLS wider bandwidth capability

Extend bitwise mask in enum qca_wlan_tdls_caps_features_supported to get
the TDLS wider bandwidth capability from the driver.

Signed-off-by: Aleti Nageshwar Reddy <quic_anageshw@quicinc.com>
2 years agoAdd documentation and nested attribute enums for existing QCA TDLS commands
Aleti Nageshwar Reddy [Tue, 13 Jun 2023 11:20:25 +0000 (16:50 +0530)] 
Add documentation and nested attribute enums for existing QCA TDLS commands

Add missing documentation and nested attribute enums for the existing
QCA TDLS vendor commands.

Signed-off-by: Aleti Nageshwar Reddy <quic_anageshw@quicinc.com>
2 years agoDefine a QCA vendor attribute to configure UL MU transmission
Nirav Shah [Wed, 21 Jun 2023 15:26:29 +0000 (20:56 +0530)] 
Define a QCA vendor attribute to configure UL MU transmission

Define a new QCA vendor attribute to enable/suspend trigger
based UL MU transmission.

Signed-off-by: Prasanna JS <quic_pjs@quicinc.com>
2 years agoEHT: Process puncturing bitmap from channel select driver event for ACS
Chenming Huang [Thu, 23 Mar 2023 08:04:45 +0000 (16:04 +0800)] 
EHT: Process puncturing bitmap from channel select driver event for ACS

Retrieve the puncturing bitmap sent by the driver in channel select
events for ACS when using the QCA vendor specific event.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agonl80211: Always return NL_SKIP from survey dump handler
Veerendranath Jakkam [Thu, 1 Jun 2023 10:02:26 +0000 (15:32 +0530)] 
nl80211: Always return NL_SKIP from survey dump handler

Previously, NL_STOP was returned from the survey dump handler if the
maximum number of frequencies was reached for storing survey
information, but this is causing wpa_supplicant context getting stuck if
the current SKB returned by the kernel itself ends with NLMSG_DONE type
message. This is due to libnl immediately stopping processing the
current SKB upon receiving NL_STOP and not being able to process
NLMSG_DONE type message, and due to this wpa_supplicant's
finish_handler() not getting called. Fix this by returning NL_SKIP
instead while still ignoring all possible additional frequencies.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoDetermine current hw mode before channel switch
Xinyue Ling [Wed, 7 Jun 2023 08:13:34 +0000 (16:13 +0800)] 
Determine current hw mode before channel switch

There are two hw modes (5 GHz and 6 GHz) with HOSTAPD_MODE_IEEE80211A
and the current hw mode may be wrong after one channel switch to 6 GHz.
This will cause hostapd_set_freq_params() to return -1 when saving
previous state and the second channel switch to fail. Fix this by adding
hostapd_determine_mode() before every channel switch.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoEnhance QCA_WLAN_VENDOR_ATTR_CONFIG_EHT_MLO_MAX_NUM_LINKS
Shivani Baranwal [Wed, 31 May 2023 09:41:24 +0000 (15:11 +0530)] 
Enhance QCA_WLAN_VENDOR_ATTR_CONFIG_EHT_MLO_MAX_NUM_LINKS

Use zero value with QCA_WLAN_VENDOR_ATTR_CONFIG_EHT_MLO_MAX_NUM_LINKS to
restore the device default maximum number of allowed MLO links
capability.

Also, as per IEEE 802.11be/D3.0, the maximum number of allowed links for
an MLO connection is 15. Update the documentation of the attribute to
indicate the same.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2 years agoAP MLD: Provide Link ID when requesting current seqnum for a group key
Jouni Malinen [Thu, 15 Jun 2023 14:43:17 +0000 (17:43 +0300)] 
AP MLD: Provide Link ID when requesting current seqnum for a group key

This is needed to match the key configuration design with a single
netdev and the nl80211 driver interface.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agotests: Additional EHT MLD AP coverage
Jouni Malinen [Wed, 14 Jun 2023 17:03:08 +0000 (20:03 +0300)] 
tests: Additional EHT MLD AP coverage

Verify behavior in SAE/PSK transition mode and PTK rekeying.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agotests: Add basic MLD hwsim tests
Andrei Otcheretianski [Mon, 22 May 2023 19:34:12 +0000 (22:34 +0300)] 
tests: Add basic MLD hwsim tests

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP/MLO: Forward received EAPOL frames to correct BSS
Andrei Otcheretianski [Mon, 22 May 2023 19:34:10 +0000 (22:34 +0300)] 
AP/MLO: Forward received EAPOL frames to correct BSS

In case of MLO AP and legacy client, make sure received EAPOL frames are
processed on the correct BSS.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP/MLO: Forward Management frame TX status to correct BSS
Andrei Otcheretianski [Mon, 22 May 2023 19:34:10 +0000 (22:34 +0300)] 
AP/MLO: Forward Management frame TX status to correct BSS

In case of MLO AP and legacy client, make sure Management frame TX
status is processed on the correct BSS.

Since there's only one instance of i802_bss for all BSSs in an AP MLD in
the nl80211 driver interface, the link ID is needed to forward the
status to the correct BSS. Store the link ID when transmitting
Managements frames and report it in TX status.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP/MLO: Forward EAPOL TX status to correct BSS
Andrei Otcheretianski [Mon, 22 May 2023 19:34:10 +0000 (22:34 +0300)] 
AP/MLO: Forward EAPOL TX status to correct BSS

In case of MLO AP and legacy client, make sure EAPOL TX status is
processed on the correct BSS.

Since there's only one instance of i802_bss for all BSSs in an AP MLD in
the nl80211 driver interface, the link ID is needed to forward the EAPOL
TX status to the correct BSS. Store the link ID when transmitting EAPOL
frames over control interface and report it in TX status.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Use MLD address for traffic tests
Andrei Otcheretianski [Mon, 22 May 2023 19:34:09 +0000 (22:34 +0300)] 
AP: Use MLD address for traffic tests

In case of MLD use the MLD address.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Don't process SAE/OWE association info on MLD links
Andrei Otcheretianski [Mon, 22 May 2023 19:34:08 +0000 (22:34 +0300)] 
AP: Don't process SAE/OWE association info on MLD links

Only the main link handles SAE authentication and OWE, skip them on
other links.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Use MLD address for SAE commit derivation
Andrei Otcheretianski [Mon, 22 May 2023 19:34:07 +0000 (22:34 +0300)] 
AP: Use MLD address for SAE commit derivation

MLO associations use the MLD address instead of the MAC address in SAE
derivation.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Specify the link ID for set_key() callback for group keys
Ilan Peer [Mon, 22 May 2023 19:34:06 +0000 (22:34 +0300)] 
AP: Specify the link ID for set_key() callback for group keys

If the AP is part of an AP MLD specify the link ID in the set_key
parameters whenever setting a group key.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Get the correct AA and SPA based on MLD operation for RSN authenticator
Ilan Peer [Mon, 22 May 2023 19:34:05 +0000 (22:34 +0300)] 
MLO: Get the correct AA and SPA based on MLD operation for RSN authenticator

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoMLO: Add MLO KDEs to EAPOL-Key msg 1/2 of the group handshake
Ilan Peer [Mon, 22 May 2023 19:34:04 +0000 (22:34 +0300)] 
MLO: Add MLO KDEs to EAPOL-Key msg 1/2 of the group handshake

This provides the link specific group keys and last used PN/IPN/BIPN
values to the Supplicant in the MLO KDEs instead of the KDEs used for
non-MLO cases.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoMLO: Validate MLO KDEs in EAPOL-Key msg 4/4
Ilan Peer [Mon, 22 May 2023 19:34:03 +0000 (22:34 +0300)] 
MLO: Validate MLO KDEs in EAPOL-Key msg 4/4

Verify that the MLD address in EAPOL-Key msg 4/4 is set correctly for
MLO cases. Note that the mechanism used here for distinguishing between
EAPOL-Key msg 2/4 and 4/4 is not exactly ideal and should be improved in
the future.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Add MLO KDEs to EAPOL-Key msg 3/4
Andrei Otcheretianski [Mon, 22 May 2023 19:34:02 +0000 (22:34 +0300)] 
MLO: Add MLO KDEs to EAPOL-Key msg 3/4

This provides the link specific group keys and last used PN/IPN/BIPN
values to the Supplicant in the MLO KDEs instead of the KDEs used for
non-MLO cases.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Mechanism for fetching group key information for the links
Andrei Otcheretianski [Mon, 22 May 2023 19:34:02 +0000 (22:34 +0300)] 
MLO: Mechanism for fetching group key information for the links

Allow RSN authenticator to fetch the current group key information with
the keys and the last used PN/IPN/BIPN for MLO specific KDEs.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Validate MLO Link KDEs in EAPOL-Key msg 2/4
Ilan Peer [Mon, 22 May 2023 19:34:01 +0000 (22:34 +0300)] 
MLO: Validate MLO Link KDEs in EAPOL-Key msg 2/4

Verify that the affiliated link information matches between association
(unprotected) and 4-way handshake (protected).

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Add MAC Address KDE to EAPOL-Key msg 1/4 for MLO association
Ilan Peer [Mon, 22 May 2023 19:34:00 +0000 (22:34 +0300)] 
MLO: Add MAC Address KDE to EAPOL-Key msg 1/4 for MLO association

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoMLO: Store MLO link information in RSN Authentication
Andrei Otcheretianski [Mon, 22 May 2023 19:33:59 +0000 (22:33 +0300)] 
MLO: Store MLO link information in RSN Authentication

Make the MLO related information available for the RSN Authenticator
state machine to be able to perform steps needed on an AP MLD. The
actual use of this information will be in the following commits.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Forward link specific events to the identified link
Andrei Otcheretianski [Mon, 22 May 2023 19:33:58 +0000 (22:33 +0300)] 
AP: MLO: Forward link specific events to the identified link

Process Management and EAPOL frames on the correct link.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agonl80211: Use frequency to determine MLD link for MLME events
Andrei Otcheretianski [Mon, 22 May 2023 19:33:57 +0000 (22:33 +0300)] 
nl80211: Use frequency to determine MLD link for MLME events

This is needed since link_id is not always available. In addition,
recognize the link address as a known address.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP/driver: Add link id to the set_tx_queue_params() callback
Ilan Peer [Mon, 22 May 2023 19:33:56 +0000 (22:33 +0300)] 
AP/driver: Add link id to the set_tx_queue_params() callback

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP: Provide the link ID for an MLD setting when setting VLAN
Ilan Peer [Mon, 22 May 2023 19:33:55 +0000 (22:33 +0300)] 
AP: Provide the link ID for an MLD setting when setting VLAN

This is a required modification to the driver interface and driver
nl80211.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP/driver: Add link ID to send EAPOL callbacks
Andrei Otcheretianski [Mon, 22 May 2023 19:33:54 +0000 (22:33 +0300)] 
AP/driver: Add link ID to send EAPOL callbacks

EAPOL frames may need to be transmitted from the link address and not
MLD address. For example, in case of authentication between AP MLD and
legacy STA. Add link_id parameter to EAPOL send APIs.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Print MLD info in STATUS command
Andrei Otcheretianski [Mon, 22 May 2023 19:33:53 +0000 (22:33 +0300)] 
AP: Print MLD info in STATUS command

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Handle Management frame TX status for AP MLD address
Ilan Peer [Mon, 22 May 2023 19:33:52 +0000 (22:33 +0300)] 
AP: Handle Management frame TX status for AP MLD address

This allows proper TX status handling when MLD addressing is used for
Management frames. Note, that the statuses are still not forwarded to
the correct link BSS. This will be handled in later commits.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP: Do not prune station when adding a link station
Ilan Peer [Mon, 22 May 2023 19:33:51 +0000 (22:33 +0300)] 
AP: Do not prune station when adding a link station

As otherwise the original station would be pruned.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agodriver: Specify link ID for 'send_mlme' and 'sta_deauth' callbacks
Ilan Peer [Mon, 22 May 2023 19:33:50 +0000 (22:33 +0300)] 
driver: Specify link ID for 'send_mlme' and 'sta_deauth' callbacks

This is needed for the driver to know on which link it should transmit
the frames in MLO cases.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoUse a shared function for setting port authorization changes
Jouni Malinen [Mon, 12 Jun 2023 12:42:52 +0000 (15:42 +0300)] 
Use a shared function for setting port authorization changes

Get rid of the duplicated code for setting IEEE 802.1X port
authorization for MLD and non-MLD cases.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAP: MLO: Handle IEEE 802.1X port authorization
Ilan Peer [Mon, 22 May 2023 19:33:49 +0000 (22:33 +0300)] 
AP: MLO: Handle IEEE 802.1X port authorization

Handle IEEE 802.1X port authorization in the context of MLO.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Handle deauthentication/disassociation of MLD station
Ilan Peer [Mon, 22 May 2023 19:33:48 +0000 (22:33 +0300)] 
AP: MLO: Handle deauthentication/disassociation of MLD station

When a non-AP MLD is deauthenticated/disassociated from an MLD AP, make
sure to clean up its state from all links.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Cleanup coding style for deauth/disassoc handling
Ilan Peer [Mon, 22 May 2023 19:33:48 +0000 (22:33 +0300)] 
AP: Cleanup coding style for deauth/disassoc handling

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Move deauthentication/disassociation steps into helper functions
Ilan Peer [Mon, 22 May 2023 19:33:48 +0000 (22:33 +0300)] 
AP: Move deauthentication/disassociation steps into helper functions

This is a step towards handling of deauthentication/disassociation from
an MLD AP.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Handle association callback
Ilan Peer [Mon, 22 May 2023 19:33:47 +0000 (22:33 +0300)] 
AP: MLO: Handle association callback

Handle association request callback in the context of MLO.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Add Multi-Link element to (Re)Association Response frame
Andrei Otcheretianski [Mon, 22 May 2023 19:33:46 +0000 (22:33 +0300)] 
AP: MLO: Add Multi-Link element to (Re)Association Response frame

Add the full station profile to the Multi-Link element in the
(Re)Association Response frame. In addition, use the AP MLD's MLD MAC
address as SA/BSSID once the non-AP MLD has been added to the driver to
use address translation in the driver.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Process Multi-Link element from (Re)Association Request frame
Andrei Otcheretianski [Mon, 22 May 2023 19:33:45 +0000 (22:33 +0300)] 
AP: MLO: Process Multi-Link element from (Re)Association Request frame

Implement processing of the Multi-Link element in the (Re)Association
Request frame, including processing of the Per-STA Profile subelement.

After handling the basic parsing of the element and extracting the
information about the requested links, handle the link specific
processing for each link:

- Find the interface with the corresponding link ID.
- Process the station profile in the interface.
- Prepare the Per-STA Profile subelement to be included in the
  Multi-Link element in the (Re)Association Response frame.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: AID allocation for MLD
Andrei Otcheretianski [Mon, 22 May 2023 19:33:44 +0000 (22:33 +0300)] 
AP: AID allocation for MLD

Find an AID that is unused on all the affiliated links when assigning an
AID to a non-AP MLD.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Fill MLO information in struct hostapd_sta_add_params
Andrei Otcheretianski [Mon, 22 May 2023 19:33:43 +0000 (22:33 +0300)] 
AP: Fill MLO information in struct hostapd_sta_add_params

Provide MLO information when adding a new station to the driver.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: MLO: Handle Multi-Link element during authentication
Andrei Otcheretianski [Mon, 22 May 2023 19:33:42 +0000 (22:33 +0300)] 
AP: MLO: Handle Multi-Link element during authentication

In case the AP is an AP MLD, parse the Multi-Link element from the
Authentication frame, store the relevant information, and prepare the
response Multi-Link element.

If the AP is not an AP MLD or the parsing of the element fails, continue
the authentication flow without MLD support.

For SAE, it is needed to skip various fixed fields in
the Authentication frame. Implement it for SAE with H2E.

TODO: This should be extended to other authentication algorithms which
are allowed for MLD connections and have fixed fields in the
Authentication frames, according to IEEE P802.11-REVme/D3.0, Table 9-69
(Presence of fields and elements in Authentications frames).

This commit doesn't support FILS, FT, etc.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Support building Basic Multi-Link element
Andrei Otcheretianski [Mon, 22 May 2023 19:33:41 +0000 (22:33 +0300)] 
AP: Support building Basic Multi-Link element

Define a struct to hold MLD station info and implement publishing of the
Basic Multi-Link element. Add it into Beacon and Probe Response frames.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Match received Management frames against MLD address
Ilan Peer [Mon, 22 May 2023 19:33:40 +0000 (22:33 +0300)] 
AP: Match received Management frames against MLD address

Once a station is added to the underlying driver, the driver is expected
to do address translation and use MLD addresses. Thus, when handling a
received Management frame, match it against the MLD address.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP: MLO: Make IEEE 802.1X SM, authserv, and RADIUS client singletons
Ilan Peer [Mon, 22 May 2023 19:33:39 +0000 (22:33 +0300)] 
AP: MLO: Make IEEE 802.1X SM, authserv, and RADIUS client singletons

To simplify the handling of MLD stations, assume that all
interfaces/BSSs use the same IEEE 802.1X authenticator, the same RADIUS
server instance, and the same RADIUS client.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agonl80211: Select frame TX frequency according to the transmitting link
Andrei Otcheretianski [Mon, 22 May 2023 19:33:38 +0000 (22:33 +0300)] 
nl80211: Select frame TX frequency according to the transmitting link

In MLO, multiple BSSs can transmit on different frequencies. Select
link frequencies according to the transmitter address.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agoAP: Include an RNR element in Beacon frames for AP MLD
Ilan Peer [Mon, 22 May 2023 19:33:37 +0000 (22:33 +0300)] 
AP: Include an RNR element in Beacon frames for AP MLD

- Include RNR element in Beacon frames of AP MLDs.
- Whenever a new interface is added to an AP MLD, reconfigure
  the Beacon frame templates for all other interfaces, to allow
  updating their RNR elements.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agonl80211: Support setting up an AP on a specified link
Andrei Otcheretianski [Mon, 22 May 2023 19:33:35 +0000 (22:33 +0300)] 
nl80211: Support setting up an AP on a specified link

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agonl80211: Move nl80211_put_freq_params()
Andrei Otcheretianski [Mon, 22 May 2023 19:33:35 +0000 (22:33 +0300)] 
nl80211: Move nl80211_put_freq_params()

Move this static function to an earlier place within the file.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agodriver: Allow to provide a link ID when setting a channel
Ilan Peer [Mon, 22 May 2023 19:33:34 +0000 (22:33 +0300)] 
driver: Allow to provide a link ID when setting a channel

This includes:

- Modifications of the driver API, to include the link ID as part
  of 'struct hostapd_freq_params'.
- Modifications to nl80211 driver.
- Modifications for the driver wrappers.

Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agodriver: Add MLD link id to AP parameters
Andrei Otcheretianski [Mon, 22 May 2023 19:33:33 +0000 (22:33 +0300)] 
driver: Add MLD link id to AP parameters

To be used in later patches, e.g., for link tracking etc.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP: Allow starting multiple interfaces within single MLD
Andrei Otcheretianski [Mon, 22 May 2023 19:33:36 +0000 (22:33 +0300)] 
AP: Allow starting multiple interfaces within single MLD

Add support for including multiple hostapd interfaces in the same AP
MLD, i.e., all using the same underlying driver network interface.

To do so, when a new hostapd interface is added, if there is already
another interface using the same underlying network interface, associate
the new interface with the same private data object, instead of creating
a new one.

As some of the BSSs are non-first BSSs, meaning that they reuse the
drv_priv of the initial BSS, make sure not to double free it.

Currently multiple BSS entries are not supported so always use bss[0]
for MLD.

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
2 years agoAP: Add some basic MLD configuration options
Andrei Otcheretianski [Mon, 22 May 2023 19:33:32 +0000 (22:33 +0300)] 
AP: Add some basic MLD configuration options

Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
2 years agonl80211: Fetch EML/MLD capabilities
Benjamin Berg [Mon, 22 May 2023 19:33:30 +0000 (22:33 +0300)] 
nl80211: Fetch EML/MLD capabilities

Retrieve the EML capabilities as well as the MLD capabilities and ops
from nl80211 and expose them using the new driver interface
get_mld_capa().

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
2 years agoAP: MLO: Retrieve EML and MLD capabilities from driver
Benjamin Berg [Mon, 22 May 2023 19:33:31 +0000 (22:33 +0300)] 
AP: MLO: Retrieve EML and MLD capabilities from driver

Add a new driver API get_mld_capab() and and use it to fetch MLD and EML
capabilities.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
2 years agonl80211: Rename the per iface-type capabilities struct
Benjamin Berg [Mon, 22 May 2023 19:33:29 +0000 (22:33 +0300)] 
nl80211: Rename the per iface-type capabilities struct

We will start using this structure to also track MLD related
capabilities instead of just extended capabilities. As such, give the
structure a more generic name.

Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
2 years agotests: Fix the previous update of the regulatory database to VMs
Jouni Malinen [Tue, 6 Jun 2023 14:02:51 +0000 (17:02 +0300)] 
tests: Fix the previous update of the regulatory database to VMs

The last update of the wireless-regdb database to the wireless-regdb.git
version of 2023-02-13 in commit c4034a69fea1 ("tests: Update regulatory
database to VMs") forgot to update regulatory.db.p7s. Update it as well.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoAP: Handle 6 GHz AP state machine with NO_IR flags
Pooventhiran G [Tue, 14 Mar 2023 06:05:41 +0000 (11:35 +0530)] 
AP: Handle 6 GHz AP state machine with NO_IR flags

AP cannot come up in channels that are marked as NO_IR. If AP moves to
HAPD_IFACE_DISABLED state, it will deinitialize the nl80211 driver
interface and sockets.

Hence, introduce a new state called HAPD_IFACE_NO_IR, for 6 GHz APs to
handle NO_IR scenarios, such as AFC, where the channels not allowed by
AFC will have HOSTAPD_CHAN_NO_IR flag set. In this state, AP is still
kept in a non-operational state (stopped) without deinitializing the
nl80211 driver interface. wiphy reg change event can then update the
channels and bring up the AP in a valid channel.

Signed-off-by: Pooventhiran G <quic_pooventh@quicinc.com>
2 years agoDefine a QCA vendor command to configure MLO link id for TDLS
Kiran Kumar Lokere [Thu, 11 May 2023 01:38:59 +0000 (18:38 -0700)] 
Define a QCA vendor command to configure MLO link id for TDLS

Define a QCA vendor command to configure MLO link id to the driver on
which the TDLS discovery response frame needs to be transmitted when the
local station is connected in MLO mode. This command is configured to
the driver the prior to every TDLS discover frame transmission when the
station is connected in MLO mode. If the station is connected in non-MLO
mode this command is not configured to the driver for TDLS discovery
frame transmission.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoIndicate link reconfiguration with QCA vendor interface
Veerendranath Jakkam [Wed, 24 May 2023 19:49:52 +0000 (01:19 +0530)] 
Indicate link reconfiguration with QCA vendor interface

Add support to indicate link reconfiguration event reported by the QCA
vendor interface to the wpa_supplicant control interface.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoIndicate TID to link mapping changes with QCA vendor interface
Shivani Baranwal [Wed, 24 May 2023 09:14:55 +0000 (14:44 +0530)] 
Indicate TID to link mapping changes with QCA vendor interface

Add support to indicate TID-to-link mapping changes reported by the QCA
vendor interface to the wpa_supplicant control interface.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2 years agotests: PASN with pasn_noauth=0
Jouni Malinen [Thu, 25 May 2023 19:59:00 +0000 (22:59 +0300)] 
tests: PASN with pasn_noauth=0

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
2 years agoPASN: Introduce configuration option to allow/deny PASN-UNAUTH
Sai Pratyusha Magam [Wed, 17 May 2023 04:50:38 +0000 (10:20 +0530)] 
PASN: Introduce configuration option to allow/deny PASN-UNAUTH

Per IEEE P802.11az/D7.0, 12.12.3.2 (PASN Frame Construction and
Processing), responder should REFUSE PASN authentication frame 1 with
Base AKM as PASN AKM if dot11NoAuthPASNActivated is false. That
configuration was not previously available and hostapd was hardcoded
with dot11NoAuthPASNActivated being true.

Allow this to be configured and reject PASN authentication frame 1 from
initiator if pasn_noauth=0 and Base AKM in RSNE of this frame is PASN.
The default value for pasn_noauth is 1 to maintain previous
functionality even though the dot11NoAuthPASNActivated is defined to
have default value of false.

Signed-off-by: Sai Pratyusha Magam <quic_smagam@quicinc.com>
2 years agoIncrease MAX_NL80211_NOISE_FREQS in survey dump handler for 6 GHz
Ainy Kumari [Thu, 25 May 2023 11:19:14 +0000 (16:49 +0530)] 
Increase MAX_NL80211_NOISE_FREQS in survey dump handler for 6 GHz

The current value of 50 is not sufficient for getting survey info for
all the frequencies when the 6 GHz band is enabled. Increase the limit
to 100 to be able to receive survey info for 6 GHz frequencies also.

Signed-off-by: Ainy Kumari <quic_ainykuma@quicinc.com>
2 years agoMLD STA: Use AP MLD address as previous BSSID for reassociation requests
Veerendranath Jakkam [Fri, 5 May 2023 11:17:42 +0000 (16:47 +0530)] 
MLD STA: Use AP MLD address as previous BSSID for reassociation requests

The Linux kernel expects to use the AP MLD address in
NL80211_ATTR_PREV_BSSID for reassociation requests when the current
association is MLO capable.

Previously, wpa_supplicant was using the BSSID value in
NL80211_ATTR_PREV_BSSID even if the connection is MLO capable. Fix this
by sending the AP MLD address in NL80211_ATTR_PREV_BSSID for
reassociation requests when MLO is used.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoMLD STA: Allow auth frames without ML IE for failure status codes
Veerendranath Jakkam [Tue, 9 May 2023 13:53:21 +0000 (19:23 +0530)] 
MLD STA: Allow auth frames without ML IE for failure status codes

In some cases like unknown-group rejection, AP MLD can't parse the
received Authentication frame to the point of the Multi-Link element if
the group used by the peer is unknown to the AP MLD.

In such cases, AP MLD not including Multi-Link element in rejection
Authentication frames can be considered as standard compliant since AP
MLD doesn't know whether the received Authentication frame has
Multi-Link element or not.

To avoid connection issues in such cases, don't reject Authentication
frames without Multi-Link element when status code is other than
WLAN_STATUS_SUCCESS, WLAN_STATUS_SAE_HASH_TO_ELEMENT,
WLAN_STATUS_SAE_PK, and WLAN_STATUS_ANTI_CLOGGING_TOKEN_REQ.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
2 years agoAdd QCA vendor command to indicate STA MLD setup links removal
Shivani Baranwal [Wed, 3 May 2023 03:59:32 +0000 (09:29 +0530)] 
Add QCA vendor command to indicate STA MLD setup links removal

Add a new vendor command and attributes to indicate STA MLD setup links
removal.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2 years agoAdd QCA vendor command to notify TID-to-Link mapping changes
Shivani Baranwal [Fri, 28 Apr 2023 10:01:46 +0000 (15:31 +0530)] 
Add QCA vendor command to notify TID-to-Link mapping changes

Add a new vendor command and attributes to notify TID-to-link mapping
changes to the userspace.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
2 years agoWPS: Fix multi-ap fronthaul association
Sathishkumar Muruganandam [Sat, 20 May 2023 06:36:07 +0000 (12:06 +0530)] 
WPS: Fix multi-ap fronthaul association

Setting 4addr mode on fronthaul BSS breaks WPS association on backhaul
STA which is still on 3addr mode.

Fix the interop issue by not setting 4addr mode on fronthaul BSS with
WPS instead of setting by default for multi-ap case.

Fronthaul BSS for non-WPS STA shall continue to use 4addr mode.

Signed-off-by: Sathishkumar Muruganandam <quic_murugana@quicinc.com>
2 years agoStore pmk_r1_name derived with wpa_ft_local_derive_pmk_r1() properly
Adil Saeed Musthafa [Thu, 4 May 2023 16:34:51 +0000 (09:34 -0700)] 
Store pmk_r1_name derived with wpa_ft_local_derive_pmk_r1() properly

The parameter req_pmk_r1_name was not used at all in the function
wpa_ft_local_derive_pmk_r1(). In addition, the PMK-R1-NAME should be
updated in this function along with the PMK-R1. This means the parameter
should change from "req_pmk_r1_name" to "out_pmk_r1_name" to match the
design used for other paths that derive the PMK-R1.

sm->pmk_r1_name needs to be properly updated when pmk_r1_name is derived
from the local pmk_r0.

Signed-off-by: Adil Saeed Musthafa <quic_adilm@quicinc.com>