Add support for MLD MAC address table to MLD.
This MLD address table allows API to add/delete/find entries by MLD MAC
address. This framework would be used for implementing FT over DS,
where Assoc request is received by AP without receiving Auth request.
Change-Id: I3dbc4c0507f2113d2c0cc5e58f41d69243a4cfc8
CRs-Fixed: 3608944
Currently in the driver, we hide 2nd, 3rd and 4th bytes of the
MAC address in GKI builds. Since 2nd and 3rd bytes are needed for
debugging, hide only 4th and 5th bytes of the MAC address.
Change-Id: Ia432bb0d40e0a09b56e581f192a810e727127d3a
CRs-Fixed: 3616774
Introduce API to populate parameter for connecting event
logging in order to be printed after STA INFO
event.
Add wlan_cm_is_first_attempt() api in order to
restrict the logging of STA INFO and connecting
event to first connection attempt.
Change-Id: Ica4253eea71ba72ea5176f733402d0758797463b
CRs-Fixed: 3599759
When F/W triggered roaming and wpa supplicant reassoc happen back to back,
disconnect may happen at last, but set send_disconnect flag of connect rsp
to true for last candidate, not for first candidate.
with Change-Id: I850c20cdfeb0c8423d074094f97c83599e43b409, first candidate
connect rsp is sent to kernel, kernel connected state isn’t cleared,
so SCAN RANDOMIZATION is always blocked later.
To fix it, copy send_disconnect flag of connect rsp from last candidate
to first candidate, then disconnect event of first candidate will be
sent to kernel to clear connected state, SCAN RANDOMIZATION won't be
blocked.
Change-Id: Ib7c0ec5d9b8e99de8f2548718f12ecddc94c792e
CRs-Fixed: 3615898
To prevent key installation in firmware before receiving the key from
user space. Currently, host receive the key in one thread
while simultaneously installing keys in a scheduler thread.
This change aims to resolve the synchronization issue by allowing key
installation only in one thread.
Change-Id: Ib5772cd2d0ed470756a4222aa9e11c356390f014
CRs-Fixed: 3591663
Register event handler for WMI_MLO_LINK_STATE_SWITCH_EVENTID.
Add target if event handler for the
WMI_MLO_LINK_STATE_SWITCH_EVENTID event, and register
corresponding mlo manager callbacks.
Add extract API for link state switch event parameters received
Call the diag event API from MLO manager post extracting the
event
Change-Id: Ib588ee87a5c37c6a34c86ce8cbf134a273c6461b
CRs-Fixed: 3610041
Limit non-SRG PD threshold for upto minimum of MAX allowed limit
and AP advertised value and check AP nonSRG PD threshold
with correct signedness.
Change for debug print to display param value in hex.
Change-Id: I630aa894c856226a886161ced648073782f379bc
CRs-Fixed: 3598056
Add mlo teardown support for standby active mode in
mlo setup sequences and wmi
Change-Id: Iaa727527c53ff0ad6c7682e039ef23fa537e1ae0
CRs-Fixed: 3613367
Currently, STA cannot perform SR when SAP does not include SR
IE in Beacon/Probe response/Assoc response.
This change is done to configure default non-SRG OBSS PD
parameters in FW in this case.
Change-Id: I8effbc31631267bd96a269e0bffff74139dafaf1
CRs-Fixed: 3607399
When WLAN_FEATURE_11BE flag is disabled, if opclass is 137, the API
reg_get_subchannels_for_opclass chooses the nchans as 16.
But the maximum size of the subchannels buffer is 8.
This leads to an array out of bound access issue.
To fix this issue, modularize reg_get_subchannels_for_opclass by
adding a new subfunction reg_get_nsubchaneels_for_opclass to get the
nchans. The maximum nchans returned by reg_get_nsubchanels_for_opclass
is 8, if WLAN_FEATURE_11BE is disabled.
Change-Id: I50095768e4a232fa83f1bc69690f64a745eecb05
CRs-Fixed: 3607354
Currently SET_DISABLE_CHANNEL_LIST command is used to disable
legacy channels only.
Update this command to accept frequency for all the bands along with
the channel numbers from legacy (2.4 GHz/5 GHz) and update the
channel state in secondary channel list also.
Change-Id: Iecc9f73dca65900d82a2f2a044cb854cea58c638
CRs-Fixed: 3601253
Currently the user configured MFP state that comes from the
userspace in connect request is not handled or processed.
Instead the RSN caps from assoc IE of connect request is inter-
sected with AP RSN caps and sent to Firmware using RSO command.
This RSN caps is used in FW in selecting a roam candidate, which
was causing the cross AKM (eg:SAE -> PSK) roam fail.
Hence, use the user configured MFP value in sending the RSN caps
to Firmware.
CRs-Fixed: 3606069
Change-Id: I3facfcf3616667b4749109d26d924c3fb1537494
Currently, in some API such as
"wlan_cfg80211_tdls_add_peer_mlo", when driver gets vdev, it is
MLO vdev, so it uses WLAN_MLO_MGR_ID ID, but when it tries to put
the vdev, since disconnection happens and mlo flag is cleared,
so it uses WLAN_OSIF_TDLS_ID ID which is non-ML vdev.
This causes release of vdev reference from different id for which
it never takes reference and result in crash.
To fix this, use same debug id throughout function. For that,
generalize the get_ml_vdev API by passing the debug id as
argument to the function.
Change-Id: I5800d207fdd17692297e71a0a9cdbcb86a4c5650
CRs-Fixed: 3608817
Reconfigure the link information structure for the partner
links and assoc link when a channel switch event is received.
Change-Id: I022bb6c6e2bcf43a1efaa6234e52648142b9fde2
CRs-Fixed: 3599451
Implement handling of mlo sta standby csa beacon
and initiate the transmission of a link bss request
command tlv to the firmware for standby link.
Change-Id: Ibdf903c69757b47f301ab9fa7c563407915532d6
CRs-Fixed: 3605764
Currently, max retail for connection is set to 1
it means only 2 trials are allowed, in case of 2
link MLO AP logic works fine but for n link only
first 2 combinations will be tried and SLO will
not be tried as no of retries will exceed than max
trials.
Fix is to update max retries to num_of_mlo_link - 1,
so that all combination tll SLO can be tried.
Change-Id: Id3e1da733d77eae79f2389b98ee9a664e44e6a2c
CRs-Fixed: 3607628
In case when DUT Roamed to single link MLO, Driver triggers MLO
roam internal disconnection wlan_cm_disconnect() with reason
"REASON_FW_TRIGGERED_ROAM_FAILURE" and source
CM_MLO_ROAM_INTERNAL_DISCONNECT on second link
for internal cleanup without informing the FW.
In this case, If Host issue RSO stop command to FW, RCL get
clean up in FW.
Fix is to avoid issuing RSO stop in cm_disconnect_active() if
source = CM_MLO_ROAM_INTERNAL_DISCONNECT and roam reason =
REASON_FW_TRIGGERED_ROAM_FAILURE.
Change-Id: I13ae95114f2a3134b39b3db7fefc6a24c408c484
CRs-Fixed: 3577024
In mlo_is_sta_csa_synced the mlo dev context lock is released
twice resulting in assert.
Release the mlo mutex once to avoid the assert
CRs-Fixed: 3598455
Change-Id: I1ceb797ddcaa8c57b8e7218c5b6aebf8d0136ab5
This change is to use ml dev context to fetch
link info, As ml dev context is available in both
vdev and psoc context. It's valid for both standby
and active links.
Change-Id: Ib705bd5a5a1144f980295331f5f26ba667906cf1
CRs-Fixed: 3568944
When generating MBSSID beacon/probe response frames, it
misses the last IE in the MBSSID ie list. To address it,
correcting the comparing length.
CRs-Fixed: 3609711
Change-Id: Ia406be0ade901c9bc01698faec473bd25c59dfb3
If link switch is in progress and no other disconnects are
pending in MLO manager sta ctx, save the new disconnect req
and move link switch state to abort. On link switch complete
schedule the pending disconnect in MLO manager.
In the scheduler callback for pending disconnect handling
add NULL check for disconnect request.
Change-Id: I4b144239eb1542cea934478643b6e53b371f2c93
CRs-Fixed: 3608727
In response to host set link request, FW might send link switch
request where FW will wait for response of link switch in order
to send response of set link. As set link is already in
serialization link switch will be in pending queue.
This will lead to dead lock case where set link in serialization
is waiting for FW response where FW is waiting for link switch
response which is in pending queue due to set link command.
To avoid this dead-lock, do not serialize link switch request
due to set link as FW will send the reason code as HOST_FORCE.
Change-Id: I338f6b4c90ceba5452ede77ad0237af7ddecb31f
CRs-Fixed: 3607164
Introduce new enum to hold the reason for invoking link switch
notify callback.
Notification happens in the following scenarios:
a) On FW request received in host before serialization.
b) Once link switch is serialized before link switch disconnect.
c) On link switch complete but before removed from serialization.
Change-Id: Id502db935ccc3835ab8bb8fab8d89276abe0a243
CRs-Fixed: 3606668
Clear bridge_sta_ctx during disconnect/connect failure.
There were issues in MLO WDS bridge STA mode when there was
multiple disconnect/connect failure, as the previous context
was not cleared and code logic was going into the earlier
state leading to issues.
Make sure to clear the context during disconnect and connect
failure so the STA context will be initialized properly.
CRs-Fixed: 3603610
Change-Id: I586ee44e7f4569693aa6c3550d1c5d94a1a9d3a7
Added new "is_ps_disabled" parameter in twt_psoc_priv_obj
and twt_work_params structure.
CRs-Fixed: 3606623
Change-Id: I2210251b1a96ffe39b152e73d6d82dddde80653d
Add bridge vdev count under MLO dev context and
free dev context when all vdevs in mlo dev context
are freed
Change-Id: I861ec17f0143df8e063cc245aa71195f0349b4a7
CRs-Fixed: 3598970
In present scenario, if AP advertises multiple AKMs(wpa2 PSK + wpa3)
validation of security happens on wpa2 AKMs before validation
on wpa3 AKM and driver downgrades the connection to 11AX even
though the selected AKM is wpa3.
This is due to the negotiated security info in scan entry is updated
with intersected value only after peer create but this variable may
contain multiple AKMs before peer create.
Modify the checks to validate security for 11be connection.
Change-Id: If0c7886062fcf0c483145641e9c3cbf972f1ef13
CRs-Fixed: 3599053
SAP BW needs to be updated to handle 320 MHz concurrencies.
Introduce a new serialization command for the same
Change-Id: Id9364a0dd03e458bf6d49edb65e05895ac418d4b
CRs-Fixed: 3601365
DUT is in connected state, and a connect request(reassoc)
to a new BSSID is issued from userspace. Host triggers
disconnect of the existing connection, but the candidate
is not found for the new bssid hint even after scan and this
leads to connection failure.
Host does not indicate the disconnect of the previous BSSID
connection, and only connect result with status failure is
sent to the userspace for the reassoc connection. As a result
of this kernel fails to reset wdev->connected flag, and leads
to out-of-sync issues between kernel and host driver.
To fix this, extend the current disconnect indication logic on
non-init & non-connected state to all non-init states. Upon
connect failure, this ensures to send the disconnect indication
to the kernel, to clear the previous connection info.
Change-Id: I917b6a187d76c80a68cb56c7e1f33ca1805cbe55
CRs-Fixed: 3604338
With MLO AP removal procedure, AP MLD can remove a link that happens to be
the assoc link for a given Non-AP MLD and the Non-AP MLD can continue to
function after that. In the existing implementation, Non-AP MLD is
returning failure in the MLO disconnect path if the assoc link is NULL, fix
the same.
Change-Id: Ib14c87da083a99f5350c9b73df2b31d08749ff0a
CRs-Fixed: 3604869
1.Enabling CFR capture for pebble.
2.Clean up redundant check for Pebble while fetching rtt info
3.Clean up redundant check for Miami while fetching rtt info
4.Add 2023 to copyright year
Change-Id: I2ac845a1c5914004a0af4a007264d0cd5f431d3f
CRs-Fixed: 3596397
Fix dec and test bit of shmem arena deinit count, as
qdf_dec_and_test returns true if the decremented resultant
value is 0,or false for all other cases.
Change-Id: I59523078bec409badbe253243443a12c508c036c
CRs-Fixed: 3593556
On disconnect ML peer state is set to disconnect initiated,
this helps to avoid sending multiple deauth/disassoc OTA
frames to AP on each VDEV.
If link switch fails the ML peer will be in this state so
for next userspace disconnect request deauth/disassoc frame
is not sent OTA and AP might not be aware of STA leaving the
network.
Do not change ML peer's state on VDEV link switch disconnect
to ML_PEER_DISCONN_INITIATED.
Change-Id: Icbbb46bbf78cea796a3a1e07754be3a626390ad0
CRs-Fixed: 3601739
EIRP Power value in master channel list for power type VLP
is filled with garbage values even though VLP rules are not present.
Due to this, best power mode selection algorithm selects VLP as
best power mode and fails while setting frequency.
To fix this, memset the master channel list 6 GHz AP.
Change-Id: I21bfd69445aeb4756474ad452be0099498e9d5a6
CRs-Fixed: 3574999
Currently, driver does not use "WLAN_TWT_CONV_SUPPORTED" flag in
TWT APIs declaration. So, for some targets, it causes
compilation failure.
So, this change fixes the compilation issue.
Change-Id: Ie1b92119ef37b85f4c7eb1d0e23e7910eeab3415
CRs-Fixed: 3603668
1. Upper layer sends QCA_WLAN_VENDOR_ATTR_LINK_STATE_CONTROL_MODE
vendor command to configure control mode in host/fw.
2. Host receives GET_ML_LINK_STATE driver command to return
control mode (configured at step 1) to upper layer.
Host should reply as a response of GET_ML_LINK_STATE with same
value of control mode configured at step 1 to upper layer.
Change-Id: I3b5cb3bec31957ee8479d7f366d1e360421a7573
CRs-Fixed: 3601735
Currently the T2LM timer is maintained by host.
Code change made to add support to run the T2LM timer in FW.
CRs-Fixed: 3594141
Change-Id: I7eee4800f68b07d5492a0336e3fe8e0db17d2020
Currently if fcc_constraint 0/2 is set and there are
active 6 GHz STA/P2P client connections, host keeps the
bonded channels enabled, but in super channel list
incorrect set of frequencies remain active. This
happens because the active frequency start and end
indexes are not according to the super channel list
indexes.
To address this issue, convert the active 6 GHz
range start and end indexes according to the super
channel list indexes.
CRs-Fixed: 3595197
Change-Id: I8bb3a5093eb3b8bd970fcd371a4939570207385b