]> git.ipfire.org Git - thirdparty/hostap.git/log
thirdparty/hostap.git
10 months agoP2P2: Set DevIK expiration time to 24 hours
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P2: Set DevIK expiration time to 24 hours

Add a location for storing expiration time for DevIK. For now, this is
hardcoded to 24 hours and the value will be used in a subsequence commit
to construct the indication to the peer.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoSAE: Use sae_pwe in network profile for STA mode
Jouni Malinen [Thu, 26 Sep 2024 20:19:54 +0000 (23:19 +0300)] 
SAE: Use sae_pwe in network profile for STA mode

Commit 891bb1305bbd ("P2P: Enforce SAE-H2E for P2P GO in 6 GHz")
introduced a network profile specific sae_pwe to avoid having to change
the global sae_pwe parameter. However, this was enabled only for AP/P2P
GO mode. Extend that to cover STA mode as well.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agotests: WPA2-PSK AP and TKIP as a group cipher, but not pairwise
Jouni Malinen [Thu, 26 Sep 2024 08:49:30 +0000 (11:49 +0300)] 
tests: WPA2-PSK AP and TKIP as a group cipher, but not pairwise

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoSAE: Extend Basic MLE Recognition to external auth case
Hu Wang [Fri, 20 Sep 2024 01:58:18 +0000 (18:58 -0700)] 
SAE: Extend Basic MLE Recognition to external auth case

This commit extends ccba6921de63 ("SAE: Recognize Basic MLE in
Authentication frames even without H2E") to cover external auth case.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoExtend EAPOL frames processing workaround for reassociation to same AP
Kavita Kavita [Wed, 24 Jul 2024 12:23:06 +0000 (17:53 +0530)] 
Extend EAPOL frames processing workaround for reassociation to same AP

With commit 3ab35a660364 ("Extend EAPOL frames processing workaround for
roaming cases") wpa_supplicant postpones EAPOL frame processing till
roam indication from the driver when the source address of EAPOL frame
does not match the current BSSID/AP MLD MAC address.

However, this does not handle the cases in which STA tries to
reassociate with the current AP. When STA tries to reassociate with the
current AP, the source address of the EAPOL frame will be same as the
current BSSID. So, wpa_supplicant does not postpone the EAPOL frame from
the current connected AP since AP might have sent the EAPOL frame for
PTK rekey.

To address this issue, add additional support for reassociating to the
same AP case. Check if replay counter value of the new EAPOL frame is
greater than the reply counter of the last EAPOL frame, and if the new
EAPOL frame replay counter is less, postpone the new EAPOL frame
processing until roam indication from the driver.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoSTA: Update driver roaming policy on connection completion
Purushottam Kushwaha [Fri, 23 Aug 2024 13:23:08 +0000 (18:53 +0530)] 
STA: Update driver roaming policy on connection completion

When the network profile is configured with BSSID before connection,
roaming policy in the driver (for driver-based BSS selection) doesn't
get updated if the same BSSID is configured after connection. Update
roaming policy to the driver on connection completion to cover this
case.

Signed-off-by: Purushottam Kushwaha <quic_pkushwah@quicinc.com>
10 months agoAdd QCA vendor command to fetch offload scan data from firmware
Veerendranath Jakkam [Tue, 17 Sep 2024 05:13:28 +0000 (10:43 +0530)] 
Add QCA vendor command to fetch offload scan data from firmware

Add a new QCA vendor command
QCA_NL80211_VENDOR_SUBCMD_GET_FW_SCAN_REPORT to fetch scan data stored
by firmware during offload scans.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agotests: sigma_dut controlled SAE association and random RSNXE
Jouni Malinen [Thu, 19 Sep 2024 10:40:03 +0000 (13:40 +0300)] 
tests: sigma_dut controlled SAE association and random RSNXE

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agotests: SAE with EAPOL-Key msg 2/4 Key Info field reserved bits set
Jouni Malinen [Thu, 19 Sep 2024 10:35:06 +0000 (13:35 +0300)] 
tests: SAE with EAPOL-Key msg 2/4 Key Info field reserved bits set

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoAdd TEST_RSNXE_DATA for RSNXE testing of AP functionality
Veerendranath Jakkam [Mon, 9 Sep 2024 20:01:28 +0000 (01:31 +0530)] 
Add TEST_RSNXE_DATA for RSNXE testing of AP functionality

Add support to set test data in the default RSNXE with wpa_supplicant
control interface command "TEST_RSNXE_DATA <data hexdump> <mask
hexdump>". This can be used to do protocol testing of AP side processing
of RSNXE.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoAllow forced enabling of EAPOL-Key msg 2/4 key info bits for testing
Veerendranath Jakkam [Tue, 10 Sep 2024 21:36:15 +0000 (03:06 +0530)] 
Allow forced enabling of EAPOL-Key msg 2/4 key info bits for testing

This can be used to increasing AP testing coverage for different 4-way
handshake behavior.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoQCA vendor interface to exclude 6 GHz non-PSC channels as primary channel in ACS
Veerendranath Jakkam [Tue, 17 Sep 2024 09:15:19 +0000 (14:45 +0530)] 
QCA vendor interface to exclude 6 GHz non-PSC channels as primary channel in ACS

Add support to exclude 6 GHz non-PSC channels as primary channel with
QCA_NL80211_VENDOR_SUBCMD_DO_ACS.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoAdd QCA vendor status for TWT termination due to multiple MLO links activated
Veerendranath Jakkam [Wed, 11 Sep 2024 19:21:19 +0000 (00:51 +0530)] 
Add QCA vendor status for TWT termination due to multiple MLO links activated

Add a new status value
QCA_WLAN_VENDOR_TWT_STATUS_MULTIPLE_LINKS_ACTIVE_TERMINATE to indicate
the TWT session termination due to more than one MLO link being in
active state.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoFix STA's SSID protection capability when AP SME is offloaded to driver
Shreyat Pandey [Mon, 16 Sep 2024 09:43:05 +0000 (15:13 +0530)] 
Fix STA's SSID protection capability when AP SME is offloaded to driver

Correctly set STA's SSID protection capability to STA's wpa_sm for AP
SME offload to the driver case when processing association events.

Signed-off-by: Shreyat Pandey <quic_shrepand@quicinc.com>
10 months agotests: D-Bus interface for NAN USD
Jouni Malinen [Sat, 14 Sep 2024 15:24:24 +0000 (18:24 +0300)] 
tests: D-Bus interface for NAN USD

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agodbus: Methods for NAN USD
Lo,Chin-Ran [Mon, 15 Jul 2024 06:01:11 +0000 (14:01 +0800)] 
dbus: Methods for NAN USD

USD had a control interface commands and events defined for it. Extend
this by providing similar USD methods through the dbus control
interface.

Signed-off-by: Lo,Chin-Ran <chin-ran.lo@nxp.com>
10 months agodbus: Signals for NAN USD
Lo,Chin-Ran [Mon, 15 Jul 2024 06:01:11 +0000 (14:01 +0800)] 
dbus: Signals for NAN USD

USD had a control interface events defined for it. Extend this by
providing similar USD signals through the dbus control interface.

Signed-off-by: Lo,Chin-Ran <chin-ran.lo@nxp.com>
10 months agodbus: Dict helpers for fetching integers of any type
Jouni Malinen [Sun, 15 Sep 2024 08:59:24 +0000 (11:59 +0300)] 
dbus: Dict helpers for fetching integers of any type

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoNAN: Fix UpdatePublish offload to driver
Jouni Malinen [Sat, 14 Sep 2024 11:11:40 +0000 (14:11 +0300)] 
NAN: Fix UpdatePublish offload to driver

This was supposed to call wpa_drv_nan_update_publish() instead of
wpa_drv_nan_cancel_publish().

Fixes: 633e969311ed ("NAN: Option to offload NAN DE for USD into the driver")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoNAN: Handle A3 copying internally to simplify control interface
Jouni Malinen [Sat, 14 Sep 2024 09:54:04 +0000 (12:54 +0300)] 
NAN: Handle A3 copying internally to simplify control interface

There is no need to copy the A3 value for follow-up frames through the
control interface events and commands since it can be handled internally
in the service with sufficient accuracy. More parallel operations with
multiple peers might need per-peer information, but that can be extended
in the future, if that level of complexity is really needed in practice.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoRevert "tests: Copy A3 into NAN SDF Follow-up"
Jouni Malinen [Sat, 14 Sep 2024 10:04:14 +0000 (13:04 +0300)] 
Revert "tests: Copy A3 into NAN SDF Follow-up"

This reverts commit 81322fa43d1d ("tests: Copy A3 into NAN SDF
Follow-up") to allow simplification of the control interface by removing
the external A3 copying.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agotests: Copy A3 into NAN SDF Follow-up
Jouni Malinen [Fri, 13 Sep 2024 18:58:29 +0000 (21:58 +0300)] 
tests: Copy A3 into NAN SDF Follow-up

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoNAN: Update A3 for USD to use NAN Network ID or NAN Cluster ID in A3
Jouni Malinen [Fri, 13 Sep 2024 18:58:51 +0000 (21:58 +0300)] 
NAN: Update A3 for USD to use NAN Network ID or NAN Cluster ID in A3

Wi-Fi Aware spec v4.0 was not clear on all cases and used a bit unclear
definition of A3 use in Table 5 (Address field definiton for NAN SDF
frames in USD). That resulted in the initial implementation using
Wildcard BSSID to comply with the IEEE 802.11 rules on Public Action
frame addressing.

For USD to have chances of working with synchronized NNA devices, A3
needs to be set to the NAN Cluster ID when replying to a frame received
from a synchronized NAN device. While there is no cluster ID for USD,
this can be done by copying the A3 from the received frame. For the
cases where sending out an unsolicited multicast frame, the NAN Network
ID should be used instead of the Wildcard BSSID.

While this behavior is not strictly speaking compliant with the IEEE
802.11 standard, this is the expected behavior for NAN devices, so
update the USD implementation to match.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agohostapd: Add drv_send_action variant for forcing A3
Jouni Malinen [Fri, 13 Sep 2024 18:58:51 +0000 (21:58 +0300)] 
hostapd: Add drv_send_action variant for forcing A3

This is needed for cases that are not compliant with the IEEE 802.11
standard rules for Public Action frame addressing. For example, NAN USD
needs this.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoNAN: Process received NAN SDFs with NAN Network ID in A3 on AP
Jouni Malinen [Fri, 13 Sep 2024 18:58:51 +0000 (21:58 +0300)] 
NAN: Process received NAN SDFs with NAN Network ID in A3 on AP

hostapd did not accept NAN SDFs that used NAN Network ID instead of
Wildcard BSSID in A3. Extend this to process NAN Network ID just like
Wildcard BSSID for these frames to allow the specific group address to
be used.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoSAE: Recognize Basic MLE in Authentication frames even without H2E
Jouni Malinen [Fri, 13 Sep 2024 00:15:31 +0000 (03:15 +0300)] 
SAE: Recognize Basic MLE in Authentication frames even without H2E

IEEE P802.11be requires H2E to be used whenever SAE is used for ML
association. However, some early Wi-Fi 7 APs enable MLO without H2E.
Recognize this special case based on the fixed length Basic Multi-Link
element being at the end of the data that would contain the unknown
variable length Anti-Clogging Token field. The Basic Multi-Link element
in Authentication frames include the MLD MAC addreess in the Common Info
field and all subfields of the Presence Bitmap subfield of the
Multi-Link Control field of the element zero and consequently, has a
fixed length of 12 octets.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoFT: Discard EAPOL-Start frames when FT was used for association
Jouni Malinen [Thu, 12 Sep 2024 19:26:24 +0000 (22:26 +0300)] 
FT: Discard EAPOL-Start frames when FT was used for association

When FT is used, reauthentication to generate a new PMK-R0 would be
complicated since the current AP might not be the one with which the
currently used PMK-R0 was generated. IEEE Std 802.11-2020, 13.4.2 (FT
initial mobility domain association in an RSN) mandates STA to perform a
new FT initial mobility domain association whenever its Supplicant would
trigger sending of an EAPOL-Start frame.

Discard received EAPOL-Start frames from STAs that use FT to avoid
unexpected behavior. This is important in particular if a driver were to
allow unprotected EAPOL-Start frames to be processed when TK has been
configured.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agonl80211: Remove nl_msg free on send failure for NAN USD commands
Shivani Baranwal [Thu, 12 Sep 2024 12:19:03 +0000 (17:49 +0530)] 
nl80211: Remove nl_msg free on send failure for NAN USD commands

Remove nl_msg_free() after send failure for NAN USD commands. Freeing
the nl_msg is already taken care as part of send_and_recv_cmd() for both
success and failure cases.

Fixes: 58f04221fdef ("nl80211: NAN USD commands for offloading")
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoPASN: Fix pasn-resp fuzzing tester build
Jouni Malinen [Thu, 12 Sep 2024 18:33:30 +0000 (21:33 +0300)] 
PASN: Fix pasn-resp fuzzing tester build

The recently added calls to src/ap/pmksa_cache_auth.c needs to be faked
to allow pasn-resp to be built without having to pull in multiple
additional files from src/ap.

Fixes: b7de417c8a47 ("PASN: Define PMKSA helper functions for initiator and responder")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoPASN: Fix fuzzing tester compilation after function prototype change
Jouni Malinen [Thu, 12 Sep 2024 18:26:03 +0000 (21:26 +0300)] 
PASN: Fix fuzzing tester compilation after function prototype change

Addition of the new argument to handle_auth_pasn_1() forgot to update
testing code.

Fixes: 8f21cdf9d765 ("PASN: Add support to reject PASN auth 1 based on user input")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoP2P2: Add alternative PASN RX handler
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P2: Add alternative PASN RX handler

This is needed for P2P2 pairing using PASN. The actual processing will
be covered in separate commits.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoSAE: Mark the groups argument to sae_derive_pt() const
Jouni Malinen [Wed, 11 Sep 2024 18:15:37 +0000 (21:15 +0300)] 
SAE: Mark the groups argument to sae_derive_pt() const

This makes it clearer that the list of groups is not going to be
modified.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agonl80211: Fix conditional checks of nlmsg attributes for NAN publish
Shivani Baranwal [Sat, 7 Sep 2024 13:45:42 +0000 (19:15 +0530)] 
nl80211: Fix conditional checks of nlmsg attributes for NAN publish

Some of the cleanup changes had lost the "goto fail" and broken the
logic. Restore correct behavior.

Fixes: 58f04221fdef ("nl80211: NAN USD commands for offloading")
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agowlantest: Adjust kdk_len according to RSNX capability for FT roaming cases
Veerendranath Jakkam [Wed, 11 Sep 2024 13:29:44 +0000 (18:59 +0530)] 
wlantest: Adjust kdk_len according to RSNX capability for FT roaming cases

This is needed to derive the PTK correct when Secure LTF support is used
and the additional KDK component needs to be considered.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoFix documentation for vendor interface command
Shivani Baranwal [Mon, 9 Sep 2024 04:48:31 +0000 (10:18 +0530)] 
Fix documentation for vendor interface command

Fix the placement of documentation of attribute used for the
QCA_NL80211_VENDOR_SUBCMD_CONNECT_EXT command.

Fixes: 97c6ef258890 ("QCA vendor interface to set the P2P mode configuration")
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoInclude the NAN header file into driver.h to avoid C++ constraints
Shivani Baranwal [Tue, 3 Sep 2024 08:38:41 +0000 (14:08 +0530)] 
Include the NAN header file into driver.h to avoid C++ constraints

Include src/common/nan.h file into src/drivers/driver.h to resolve the
compilation issue "ISO C++ forbids forward references to 'enum' types"
by pulling in the full definition of enum nan_service_protocol_type.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agotests: SAE anti-clogging token with MLO
Jouni Malinen [Wed, 11 Sep 2024 09:58:43 +0000 (12:58 +0300)] 
tests: SAE anti-clogging token with MLO

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agonl80211: Check nla_parse_nested() result
Jouni Malinen [Thu, 5 Sep 2024 21:53:30 +0000 (00:53 +0300)] 
nl80211: Check nla_parse_nested() result

This recently added instance did not verify that parsing of nested
attributes succeeded.

Fixes: 15bf093b5b48 ("hostapd: Fetch multiple radios information from the driver")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoAP MLD: Fix link_id validity check for own links
Jouni Malinen [Thu, 5 Sep 2024 21:47:29 +0000 (00:47 +0300)] 
AP MLD: Fix link_id validity check for own links

The check against MAX_NUM_MLD_LINKS was off by one for the loop that
goes through hapd->partner_links[]. It does not look like this would
actually result in any real issues since the loop is on own set of
configured links. Anyway, it is better to have the bounds checking
accurate.

Fixes: 2042cae9b3a4 ("AP MLD: Generate and keep per STA profiles for each link")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoPass CSA parameters by reference instead by value
Jouni Malinen [Thu, 5 Sep 2024 21:42:26 +0000 (00:42 +0300)] 
Pass CSA parameters by reference instead by value

There is no need to make a copy of the full struct csa_settings for
this.

Fixes: 5cb6747f9721 ("Add support to switch channel when CAC is in progress")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoAdd QCA vendor subcommand to trigger Channel Usage Request
Shivani Baranwal [Thu, 15 Aug 2024 15:48:15 +0000 (21:18 +0530)] 
Add QCA vendor subcommand to trigger Channel Usage Request

Add a new QCA vendor subcommand QCA_NL80211_VENDOR_SUBCMD_CHAN_USAGE_REQ
to support Channel Usage Request. It carries channel usage information
for BSSs that are not infrastructure BSSs or an off channel TDLS direct
link.

Implementation and scheduling of Channel Usage frames are present in the
driver/firmware. One of the key reason for this is that the TSF
timestamp required to be filled in these frames is available only in the
firmware.  So, this interface is used to configure the required
parameters to the driver/firmware for Channel Usage Request frame.

This uses attributes defined in enum
qca_wlan_vendor_attr_chan_usage_req.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoQCA vendor test configuration to add random PMKIDs in RSNE
Veerendranath Jakkam [Mon, 2 Sep 2024 07:27:05 +0000 (12:57 +0530)] 
QCA vendor test configuration to add random PMKIDs in RSNE

Add QCA vendor test configuration interface to add random PMKIDs in the
RSNE of the (Re)Association Request frames.

Signed-off-by: Veerendranath Jakkam <quic_vjakkam@quicinc.com>
10 months agoPASN: Allow frequency to be set for responder
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
PASN: Allow frequency to be set for responder

This will be needed for P2P2 cases.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Parse new attributes
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P2: Parse new attributes

Recognize new attributes when parsing P2P2 IE.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Add PMKSA caches for PASN initiator and responder
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P2: Add PMKSA caches for PASN initiator and responder

These are needed for pairing.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoPASN: Use allocated memory for RSNXE and allow its contents to be set
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
PASN: Use allocated memory for RSNXE and allow its contents to be set

This will be needed for P2P2 cases.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoPASN: PASN Encrypted Data element parsing
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
PASN: PASN Encrypted Data element parsing

Add the PASN Encrypted Data element from IEEE P802.11bh/D6.0 into the
element parser. This is needed for P2P2.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Export p2p_build_go_neg_req()
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P2: Export p2p_build_go_neg_req()

This is needed for PASN pairing.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P: Debug print details on address mapping errors
Shivani Baranwal [Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)] 
P2P: Debug print details on address mapping errors

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agonl80211: Configure capability flag for NAN USD offload
Shivani Baranwal [Sun, 18 Aug 2024 10:35:20 +0000 (16:05 +0530)] 
nl80211: Configure capability flag for NAN USD offload

Configure the capability flag based on the nl80211 feature advertisement
for NAN USD offload support.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoAdd QCA vendor feature flags to indicate NAN USD offload support
Vinay Gannevaram [Sun, 18 Aug 2024 10:30:26 +0000 (16:00 +0530)] 
Add QCA vendor feature flags to indicate NAN USD offload support

Add a separate feature flag to indicate support for NAN USD offload
feature.

Signed-off-by: Vinay Gannevaram <quic_vganneva@quicinc.com>
10 months agonl80211: NAN USD commands for offloading
Shivani Baranwal [Tue, 14 May 2024 06:12:59 +0000 (11:42 +0530)] 
nl80211: NAN USD commands for offloading

Add driver nl80211 support for the NAN USD flush, publish, subscribe,
update publish, cancel publish and cancel subscribe commands for cases
where these operations are offloaded to the driver
(WPA_DRIVER_FLAGS2_NAN_OFFLOAD).

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Do not include WPS IE in GO Negotiation
Shivani Baranwal [Sun, 4 Aug 2024 21:03:48 +0000 (02:33 +0530)] 
P2P2: Do not include WPS IE in GO Negotiation

Do not include WPS IE when going through GO Negotiation with a P2P2
peer.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Fragment P2P IE if subelements are too long in GO Negotiation
Shivani Baranwal [Sun, 4 Aug 2024 21:03:48 +0000 (02:33 +0530)] 
P2P2: Fragment P2P IE if subelements are too long in GO Negotiation

Add a function to fragment P2P/P2P2 IE exceeding 255 bytes in size and
use this for P2P IE in GO Negotiation frames in preparation for P2P2.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: GO Negotiation Action frame contents for wrapped case
Shivani Baranwal [Sun, 4 Aug 2024 20:56:10 +0000 (02:26 +0530)] 
P2P2: GO Negotiation Action frame contents for wrapped case

Support generation of the GO Negotiation frames with contents that is
needed for P2P2 wrapped case.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P: Use enum p2p_status_code more consistently for PD
Jouni Malinen [Wed, 4 Sep 2024 08:19:21 +0000 (11:19 +0300)] 
P2P: Use enum p2p_status_code more consistently for PD

It is clearer to use enum p2p_status_code instead of u8 when processing
and passing the P2P Status Code to other components.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
10 months agoP2P2: Refactor GO Negotiation and Invitation processing
Shivani Baranwal [Sun, 4 Aug 2024 20:42:10 +0000 (02:12 +0530)] 
P2P2: Refactor GO Negotiation and Invitation processing

Add wrapper functions to process and prepare a response for GO
Negotiation and Invitation frames. Send the response Action frames in
handle_ functions. This is in preparation for encapsulating these
messages within PASN Authentication frames for P2P2.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoPASN: Define PMKSA helper functions for initiator and responder
Shivani Baranwal [Sun, 4 Aug 2024 20:13:58 +0000 (01:43 +0530)] 
PASN: Define PMKSA helper functions for initiator and responder

Define helper functions to init, add, get, remove, flush, and deinit
PMKSA cache for PASN initiator and responder. P2P devices can be in
a role of pairing initiator and responder. Hence define a cache for
each role separately.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoPASN: Optional KEK derivation in PTK
Shivani Baranwal [Sun, 4 Aug 2024 20:02:07 +0000 (01:32 +0530)] 
PASN: Optional KEK derivation in PTK

Add support to derive KEK in PTK per IEEE P802.11bh/D6.0. This can be
used to encrypt keys and passwords in opportunistic P2P pairing defined
in P2P2.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
10 months agoP2P2: Notify bootstrapping request and completed events
Shivani Baranwal [Thu, 30 May 2024 19:53:51 +0000 (01:23 +0530)] 
P2P2: Notify bootstrapping request and completed events

Add support to notify P2P2 bootstrapping request and completed events to
the user.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Add a new method to P2P_CONNECT control interface command
Shivani Baranwal [Fri, 30 Aug 2024 16:41:17 +0000 (22:11 +0530)] 
P2P2: Add a new method to P2P_CONNECT control interface command

Add a new method "pair" to indicate the connect request perform the
Wi-Fi Direct R2 methods like bootstrapping and pairing for connection.
This fixes control interface command parsing which expects method as
mandatory.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agohostapd: Do not indicate a punctured secondary channel in HT operation
Michael-CY Lee [Mon, 19 Aug 2024 02:54:10 +0000 (10:54 +0800)] 
hostapd: Do not indicate a punctured secondary channel in HT operation

If the secondary channel is punctured, the HT operation in the Beacon
frames should not indicate a secondary channel offset.

Co-developed-by: Money Wang <money.wang@mediatek.com>
Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
11 months agomacsec_linux: Hardware offload requires Linux headers >= v5.7
Sergey Matyukevich [Wed, 21 Aug 2024 21:03:41 +0000 (00:03 +0300)] 
macsec_linux: Hardware offload requires Linux headers >= v5.7

Hardware offload in Linux macsec driver is enabled in compile time if
libnl version is >= v3.6. This is not sufficient for successful build
since enum 'macsec_offload' has been added to Linux header if_link.h
in kernels v5.6 and v5.7, see commits:
- https://github.com/torvalds/linux/commit/21114b7feec29e4425a3ac48a037569c016a46c8
- https://github.com/torvalds/linux/commit/76564261a7db80c5f5c624e0122a28787f266bdf

New libnl with older Linux headers is a valid combination. This is how
hostapd build failure has been detected by Buildroot autobuilder, see:
- http://autobuild.buildroot.net/results/b59d5bc5bd17683a3a1e3577c40c802e81911f84/

Extend compile time condition for the enablement of the macsec hardware
offload adding Linux headers version check.

Fixes: 40c139664439 ("macsec_linux: Add support for MACsec hardware offload")
Signed-off-by: Sergey Matyukevich <geomatsi@gmail.com>
11 months agotests: DPP and SAE password identifier
Jouni Malinen [Sun, 1 Sep 2024 13:33:26 +0000 (16:33 +0300)] 
tests: DPP and SAE password identifier

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoDPP: Support for provisioning SAE password identifiers (Configurator)
Jouni Malinen [Sun, 1 Sep 2024 13:32:39 +0000 (16:32 +0300)] 
DPP: Support for provisioning SAE password identifiers (Configurator)

Allow SAE password identifiers to be provisioned to Enrollees that
indicate support for this capability.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoDPP: Support for provisioning SAE password identifiers (Enrollee)
Dan Harkins [Fri, 23 Aug 2024 17:50:36 +0000 (10:50 -0700)] 
DPP: Support for provisioning SAE password identifiers (Enrollee)

DPP supports provisioning of SAE password identifiers to uniquely
identify a password if the enrollee indicates support for them. Indicate
Enrollee support for that and add the received value into the network
profile.

I put everything under defines for CONFIG_DPP3 as this is a bleeding
edge feature in DPP.

This was tested against my DPP reference implementation acting as the
Configurator.

Signed-off-by: Dan Harkins <dharkins@lounge.org>
11 months agonl80211: Pass "global" events to all interfaces
Cermak Dominik [Thu, 29 Aug 2024 08:01:21 +0000 (08:01 +0000)] 
nl80211: Pass "global" events to all interfaces

We got connection failures because of outdated channel information.
That's because the NL80211_CMD_REG_CHANGE event is important for all
interfaces.

Commit f13683720239 ("nl80211: Pass wiphy events to all affected
interfaces") skips the early termination for events directed to a wiphy,
but that doesn't cover the regulatory change event because it doesn't
have a wiphy set either. Therefore the early termination still kicks in
and from three interfaces, only one got the updated channel list.

Fix this by changing the early termination logic to only apply to events
directed either to a specific interface index for wdev.

Signed-off-by: Dominik Cermak <dominik.cermak@joynext.com>
11 months agoAP MLD: Check SAE message length without depending on pointer arithemetic
Jouni Malinen [Sun, 1 Sep 2024 10:24:29 +0000 (13:24 +0300)] 
AP MLD: Check SAE message length without depending on pointer arithemetic

The way this was checked previously used pointer arithmetic could result
in undefined behavior due to the pointer ending up pointing more than
one byte beyond the end of the buffer. Avoid this by checking the buffer
length before incrementing the pointer.

Fixes: bcbe80a66a9b ("AP: MLO: Handle Multi-Link element during authentication")
Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoAP MLD: Work around delayed STA entry addition for SAE confirm
Jouni Malinen [Sun, 1 Sep 2024 10:14:12 +0000 (13:14 +0300)] 
AP MLD: Work around delayed STA entry addition for SAE confirm

The driver is expected to have an STA entry for a non-AP MLD ready to
translate the address fields for SAE confirm messages. However, there is
at least a theoretical race condition in a case where the peer sends the
SAE confirm message quickly enough for the driver translation mechanism
to not be available to update the SAE confirm message addresses. Work
around that by searching for the STA entry using the link address of the
non-AP MLD if no match is found based on the MLD MAC address.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agotests: AP MLD control socket connectivity test case
Aditya Kumar Singh [Tue, 13 Aug 2024 08:38:52 +0000 (14:08 +0530)] 
tests: AP MLD control socket connectivity test case

Add a simple test case to bring up a two link AP MLD and get the status
of each link via the MLD level control socket.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
11 months agoAP MLD: Introduce MLD level control interface socket
Aditya Kumar Singh [Tue, 13 Aug 2024 08:38:48 +0000 (14:08 +0530)] 
AP MLD: Introduce MLD level control interface socket

With MLO, each link have socket created with "<ifname>_link<link id>"
under the control interface directory.

Introduce a MLD level socket "<ifname>" as well under the same control
interface directory. This socket can be used to pass the command to its
partner links directly instead of using the link level socket. Link ID
needs to be passed with the command in a prefix way. If no Link ID is
provided the first link ID is selected.

The structure of the command is -
 "LINKID <link id> <COMMAND APPLICABALE FOR THE LINK>"

Directory looks something like this -
  $ ls /var/run/hostapd/
    wlan0
    wlan0_link0
    wlan0_link1

wlan0 here is the MLD level socket. Rest are each link level sockets.

This also helps to maintain backwards compatibility with applications
which looks for <ifname> under the control interface directory.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
11 months agotests: MLO: Use link ID to access control sockets
Aditya Kumar Singh [Tue, 13 Aug 2024 08:38:51 +0000 (14:08 +0530)] 
tests: MLO: Use link ID to access control sockets

With MLO, each BSS will create sockets under the given ctrl_iface
directory with the socket name being '<ifname>_link<link_ID>'.

Make necessary changes in MLO related test cases so that it can access
the new socket and proceed further as expected.

Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
11 months agoAP MLD: Create link based hostapd control sockets
Karthikeyan Kathirvel [Tue, 13 Aug 2024 08:38:47 +0000 (14:08 +0530)] 
AP MLD: Create link based hostapd control sockets

Create link based control sockets to access the link based commands
through hostapd_cli. This will create the link interfaces in the name of
<ifname>_link<X>

Example:
To fetch link 0 status from wlan0, below command can be used -
    $ hostapd_cli -i wlan0 -l 0 status

On failure of link/interface selection, below error will be observed
    $ hostapd_cli -i wlan0 -l 2 status
    Failed to connect to hostapd - wpa_ctrl_open: No such file or directory

Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
Co-developed-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
Signed-off-by: Aditya Kumar Singh <quic_adisi@quicinc.com>
11 months agotests: Clear scan cache in wifi_display_parsing
Jouni Malinen [Thu, 29 Aug 2024 17:21:31 +0000 (20:21 +0300)] 
tests: Clear scan cache in wifi_display_parsing

This is needed to avoid false failures if an old BSS entry is still
present for dev[0]. This could happen, e.g., with the following test
case sequence: wpas_mesh_max_peering wifi_display_parsing

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoAdd QCA vendor attribute to disable channel switch initiation
Shivani Baranwal [Fri, 16 Aug 2024 07:14:36 +0000 (12:44 +0530)] 
Add QCA vendor attribute to disable channel switch initiation

Add a test config u8 attribute to disable the channel switch
initiation in P2P GO mode.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agotests: Make rsn_override_mld_too_long_elems more robust
Jouni Malinen [Thu, 29 Aug 2024 13:14:43 +0000 (16:14 +0300)] 
tests: Make rsn_override_mld_too_long_elems more robust

Wait longer for the disconnection event since the previous wait was
exactly the same length as the authentication timeout in wpa_supplicant
and as such, subject to race conditions.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agotests: More robust error handling for wifi_display_parsing
Jouni Malinen [Thu, 29 Aug 2024 13:00:10 +0000 (16:00 +0300)] 
tests: More robust error handling for wifi_display_parsing

Check explicitly that wfd_subelems is present in the dict instead of
failing on a key error when trying to fetch it.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoUSD: Move control interface events to notify.c
Lo,Chin-Ran [Mon, 15 Jul 2024 06:01:11 +0000 (14:01 +0800)] 
USD: Move control interface events to notify.c

This separates the control interface specific generation of a text event
message away from the main implementation of USD and makes it more
convenient to add support for other control interface mechanisms like
dbus.

Signed-off-by: Lo,Chin-Ran <chin-ran.lo@nxp.com>
11 months agoQCA vendor interface to set the P2P mode configuration
Vinay Gannevaram [Wed, 14 Aug 2024 15:41:53 +0000 (21:11 +0530)] 
QCA vendor interface to set the P2P mode configuration

Add the QCA_NL80211_VENDOR_SUBCMD_SET_P2P_MODE for setting the P2P mode
in which the P2P Group Owner (GO) should be brought up. These modes
include Wi-Fi Direct R1 only, Wi-Fi Direct R2 only, and P2P Connection
Compatibility Mode, which supports both R1 and R2. These modes are
defined in the enum qca_wlan_vendor_p2p_mode.

Signed-off-by: Vinay Gannevaram <quic_vganneva@quicinc.com>
11 months agoAdd QCA vendor attribute to change P2P GO beacon interval
Kiran Kumar Lokere [Mon, 12 Aug 2024 07:26:57 +0000 (00:26 -0700)] 
Add QCA vendor attribute to change P2P GO beacon interval

Add new QCA vendor attribute to configure the P2P GO beacon interval
dynamically while the BSS continues operating.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoP2P2: Add bootstrapping support with PD frames
Shivani Baranwal [Mon, 5 Aug 2024 09:33:07 +0000 (15:03 +0530)] 
P2P2: Add bootstrapping support with PD frames

Add support for P2P2 bootstrapping with comeback mechanism using
Provision Discovery frames. Extend the control interface command
P2P_CONNECT to allow P2P2 bootstrapping handshake.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Refactor provision discovery request/response processing
Shivani Baranwal [Mon, 5 Aug 2024 09:33:06 +0000 (15:03 +0530)] 
P2P2: Refactor provision discovery request/response processing

Parse the P2P IEs in functions that handle provision discovery request
and response. Process the frames based on the IEs received in the PD
frames. This makes it easier to extend PD for P2P2 cases.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Process Element container attribute from NAN SDFs
Shivani Baranwal [Mon, 5 Aug 2024 09:33:05 +0000 (15:03 +0530)] 
P2P2: Process Element container attribute from NAN SDFs

Process the Element Container attribute from NAN SDF frames and check if
P2P attributes are present. Add a P2P peer device entry if the NAN SDF
frame has matching service and P2P capabilities.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Parse P2P2 IE
Shivani Baranwal [Mon, 5 Aug 2024 09:33:05 +0000 (15:03 +0530)] 
P2P2: Parse P2P2 IE

Add parsing of the P2P2 IE similarly to the way the P2P IE is parsed.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoNAN USD: Add publishChannelList option for Subscriber
Shivani Baranwal [Mon, 5 Aug 2024 09:33:04 +0000 (15:03 +0530)] 
NAN USD: Add publishChannelList option for Subscriber

Add frequency list to active NAN USD Subscriber to search for a
Publisher on multiple channels. This is the publish channel list used by
the Subscriber to periodically search for a service on these channels.
publishChannelList was already supported in the Publisher and this
commit extends that to the Subscriber.

This is needed for a P2P2 seeker that is an active subscriber looking
for an advertiser on a list of publish channels.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Device Identity Key generation and storage in configuration
Shivani Baranwal [Mon, 5 Aug 2024 09:33:03 +0000 (15:03 +0530)] 
P2P2: Device Identity Key generation and storage in configuration

Generate a random device identity key and save it to the config file.
Use the same identity key from config to derive DIRA for NAN SDF frames.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoFT: Fix writing of ft_prepend_pmkid configuration parameter
Shivani Baranwal [Mon, 5 Aug 2024 09:33:03 +0000 (15:03 +0530)] 
FT: Fix writing of ft_prepend_pmkid configuration parameter

This was missing a newline at the end of the line.

Fixes: 8fa52a797496 ("FT: Allow wpa_supplicant to be configured to prepend PMKR1Name")
Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Add DIRA attributes to P2P2 IE of NAN SDFs
Shivani Baranwal [Mon, 5 Aug 2024 09:33:02 +0000 (15:03 +0530)] 
P2P2: Add DIRA attributes to P2P2 IE of NAN SDFs

Add DIRA attribute in P2P2 IE of NAN Subscribe and Publish frames
to enable support for device identity of paired peers.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Add PCEA and PBMA attributes to P2P2 IE of NAN SDFs
Shivani Baranwal [Mon, 5 Aug 2024 09:33:01 +0000 (15:03 +0530)] 
P2P2: Add PCEA and PBMA attributes to P2P2 IE of NAN SDFs

Add PCEA and PBMA attribute in P2P2 IE of NAN Subscribe and Publish frames
to include the P2P2 capabilities and bootstrapping methods.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: Allow P2P IE to be added into NAN SDFs
Shivani Baranwal [Mon, 5 Aug 2024 09:33:00 +0000 (15:03 +0530)] 
P2P2: Allow P2P IE to be added into NAN SDFs

Extend the NAN Subscribe and Publish methods to allow p2p=1 to be
specified to include P2P attributes in a P2P IE to be added into the NAN
Element Container attribute. In addition, use the P2P Device Address for
the NAN SDFs for the P2P cases.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoP2P2: New element and attribute definitions
Shivani Baranwal [Mon, 5 Aug 2024 09:33:00 +0000 (15:03 +0530)] 
P2P2: New element and attribute definitions

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agoNAN: Option to offload NAN DE for USD into the driver
Shivani Baranwal [Mon, 5 Aug 2024 09:32:59 +0000 (15:02 +0530)] 
NAN: Option to offload NAN DE for USD into the driver

Support implementation architecture where the NAN discovery engine is
located in the driver/firmware instead of wpa_supplicant.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
11 months agotests: AP MLD and RSN overriding with too long elements
Jouni Malinen [Fri, 23 Aug 2024 15:42:55 +0000 (18:42 +0300)] 
tests: AP MLD and RSN overriding with too long elements

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoRSNO: Check that RSNOE/RSNO2E/RSNXOE fit into RSN Override Link KDE
Jouni Malinen [Fri, 23 Aug 2024 15:40:53 +0000 (18:40 +0300)] 
RSNO: Check that RSNOE/RSNO2E/RSNXOE fit into RSN Override Link KDE

While these elements fit without issue in production use cases, it is
possible to override the elements for testing purposes and if such
overridden elements are overly long, they would nto fit into the maximum
length RSN Override Link KDE. This could result in difficult to debug
failure cases, so check for this explicitly and instead of sending out
the invalid M3, report the internal issue in the debug log and do not
send M3.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agotests: RSNXE extensibility
Jouni Malinen [Fri, 23 Aug 2024 07:09:10 +0000 (10:09 +0300)] 
tests: RSNXE extensibility

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoAllow IE overriding to use maximum element length
Jouni Malinen [Fri, 23 Aug 2024 07:07:19 +0000 (10:07 +0300)] 
Allow IE overriding to use maximum element length

Elements can actually be 257 octets long (2 octets of header followed by
255 octets of payload). The maximum length for various IE override
testing parameters had somehow ended up being one octet too short to
cover the maximum. Increase this to allow the maximum element length to
be reached for testing purposes.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agotests: Fix EHT 320 MHz tests to clear sae_groups
Jouni Malinen [Thu, 22 Aug 2024 09:09:20 +0000 (12:09 +0300)] 
tests: Fix EHT 320 MHz tests to clear sae_groups

These test cases could fail if they happened to be executed after a test
case that set a specific SAE group.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoPASN: Add a function to configure noauth variable
Shivam Rai [Mon, 5 Aug 2024 04:50:10 +0000 (10:20 +0530)] 
PASN: Add a function to configure noauth variable

When the PASN implementation is used as a library for Wi-Fi Aware
applications there is need to allow the Responder to set the noauth
parameter to support opportunistic pairing method using PASN AKMP. Add
pasn_set_noauth() to address this.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agoPASN: Add support to reject PASN auth 1 based on user input
Shivam Rai [Mon, 12 Aug 2024 06:09:46 +0000 (11:39 +0530)] 
PASN: Add support to reject PASN auth 1 based on user input

When the PASN implementation is used as a library for Wi-Fi Aware
applications there is need to reject the PASN auth 1 frame based on the
user input. Add support to send PASN auth 2 with failure status for
auth 1 frame received to address this need.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
11 months agotests: DPP and SAE with short password
Jouni Malinen [Thu, 22 Aug 2024 08:27:00 +0000 (11:27 +0300)] 
tests: DPP and SAE with short password

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>