Commit Graph

396 Commits

Author SHA1 Message Date
Vijay Raj
3d128118ef qcacld-3.0: Modify cm_roam_mgmt_frame_event to log correct rssi value
In the api cm_roam_mgmt_frame_event(), the rssi is logged
as a positive value.

Modify cm_roam_mgmt_frame_event() to log rssi value as
a negative value.

Change-Id: I1af7827beda23381e89880cf7ef73c24a7e38a15
CRs-Fixed: 3327027
2022-11-11 19:41:41 -08:00
Amruta Kulkarni
67e405ee90 qcacld-3.0: Add new files for T2LM handling
Add new files for TID to Link mapping handling.

Change-Id: I296a898e09b67490b85f4f7fba29322dbc3a757f
CRs-Fixed: 3322944
2022-11-04 03:18:47 -07:00
Srinivas Dasari
4cfbb4b30c qcacld-3.0: Free the old bcn if new one is rcvd in sync frame ind
Firmware may send two consecutive roam sync frame indications when
it supports MLO roaming. The first event carries link beacon and
second event carries assoc beacon. This is to let host driver have
both the link scan results if host has to take care of link
connect(e.g. OWE MLO roaming, EAP MLO roaming,.. ).
If host driver doesn't have support/doesn't need link beacon,
it would be overwritten by assoc beacon(e.g. wpa2 MLO roaming,
SAE MLO roaming, ..).
This results in a memleak as the previous cached beacon is
not freed(vdev->rso_cfg->roam_sync_frame_ind->bcn_probe_rsp).

Free the existing beacon if new one is received. Also, remove the
current free's from extract_roam_sync_frame_event_tlv() which
doesn't need any such freeing as the copy always happens to a
freshly allocated buffer.

Change-Id: If3b4d6e4b8e1e2af5306171ad7eda28e744da64e
CRs-Fixed: 3322094
2022-10-31 17:13:22 -07:00
sandhu
d8b7b21f76 qcacld-3.0: For MLO link vdev get partner link info from connect req
If link beacon is not scanned, host driver will send ML probe request
and generate link scan entry from ML probe response. The ML probe
response does not include RNR IE. This is causing failure in the link
vdev connect path as the partner information is updated from rnr ie.

To fix this, for link vdev connection get partner link information from
connect request.

Change-Id: Id22f57cefbf28cb20fa7e17b4b71b362b1ba0ae5
CRs-Fixed: 3312421
2022-10-26 13:06:02 -07:00
Amruta Kulkarni
cc38830548 qcacld-3.0: Clear and set connected links bitmap
In case of MLO to SLO roaming, the connected links
bitmap is not reset for link vdev correctly.

To solve this post roaming, clear and then set the connected links bitmap.

Change-Id: I9e63593fe3452d0c2075360432dfaddc81999ae0
CRs-Fixed: 3317229
2022-10-21 23:25:35 -07:00
David Oladunjoye
b31db9db49 qcacld-3.0: Add lock to Set/clear WLAN_VDEV_FEXT2_MLO_STA_LINK flag
Currently, this MLO flag is being set/clear without regard for
concurrency. We need to lock the vdev when updating these values to
prevent race condition.

Change-Id: I7b1e6424d6fcedc6934a9f6aa1d01068a2b43277
CRs-Fixed: 3305564
2022-10-21 21:30:59 -07:00
Amruta Kulkarni
2fe6f6adb9 qcacld-3.0: Update link id after roaming
Update the link id in vdev mlme after roam sync is processed.

Change-Id: I4f7a80ad91235ebafd2bab10c1de22ac8798a816
CRs-Fixed: 3314935
2022-10-18 11:56:58 -07:00
Surya Prakash Sivaraj
38061a4dfa qcacld-3.0: Reset SPMK cache before every connection
SPMK global cache in the vdev private is persistent
across connections. Therefore, in cross-ssid roaming
cases with different AKMs, SPMK in the global cache
will always be sent to the firmware in RSO start, even
for non-SAE connections. This causes roam failure.

Reset the spmk global cache for every new connection.

Change-Id: I03deefe16242ef79d0985a8c05881914e6f7af01
CRs-Fixed: 3310182
2022-10-17 04:52:03 -07:00
Surya Prakash Sivaraj
2517893ac1 qcacld-3.0: Enhance the debugs in RSO path
Add changes to enhance the debugs in the RSO path,
to identify the current pmk stored in the rso config.

Also, restrict the PMK dumps to a minimum size of 2.

Change-Id: I6e89afed45f5d43b45508ae43b59400a6e24e5ef
CRs-Fixed: 3312677
2022-10-17 04:51:57 -07:00
Yu Wang
61d6a7e8d1 qcacld-3.0: print SSID with QDF_SSID_FMT and QDF_SSID_REF
To protect user privacy, print SSID with QDF_SSID_FMT
and QDF_SSID_REF, then SSID will be hide in logs if
anonymization is enabled.

Change-Id: I3dd129b52c85c84e666f4f07b28a1e58f81259b7
CRs-Fixed: 3291841
2022-10-14 08:31:04 -07:00
Amruta Kulkarni
40598153fa qcacld-3.0: Store and send keys after peer assoc
For STA mlo connection the AP might send M1 right after assoc
response on assoc link which can result in keys sent down to FW
for mlo links before host has sent wmi_peer_assoc for link vdev.
Current code does not have handling for this case.

To solve this, store the keys and once connection is completed
on link vdev send keys.

Change-Id: I3675451ef0e047caf8c77d256ea67f0eac6ed797
CRs-Fixed: 3289589
2022-10-12 23:22:17 -07:00
Amruta Kulkarni
434bb9c7ca qcacld-3.0: Roam abort on mlo links
Currently for mlo roaming if roam sync event is not
handled roaming is aborted only on that vdev,
other vdevs are not cleaned up.
Another issue is link vdev is added to connection manager
list but not removed.

To fix this code change made to abort roaming on all links.
Also remove request from connection manager list.

Change-Id: Ib6e9db21b64e5c44ab7d51ebf795b169c5e7eb29
CRs-Fixed: 3305685
2022-10-11 00:47:16 -07:00
Srinivas Dasari
8a48ce4c7c qcacld-3.0: Treat ROAM enable and RSO enable as different
Host driver sends ROAM enable to firmware by setting the
vdev param WMI_VDEV_PARAM_ROAM_FW_OFFLOAD and the internal
state is moved from WLAN_ROAM_DEINIT to WLAN_ROAM_INIT.
Then host driver can send ROAM SCAN OFFLOAD enable and firmware
honors it. Firmware drops the RSO enable command if ROAM enable
vdev param is not sent. Host tracks RSO enable through the states
WLAN_ROAM_RSO_ENABLED/WLAN_ROAMING_IN_PROG/
WLAN_ROAM_SYNCH_IN_PROG/WLAN_MLO_ROAM_SYNCH_IN_PROG.

Have different APIs to track ROAM enable and RSO enable which can
help to cleanup the corresponding params/states.

It's observed that ROAM enable/disable vdev param is not sent
to firmware properly when RSO is stopped in some other path
than disconnect (e.g. SAP concurrency, fast_roaming_disable
through wpa_supplicant). Check if the roam state is INIT and
send ROAM DISABLE to firmware while disconnect.


Change-Id: I1074c8f93e21f02086dfbcfae61fa6deb91c7d9d
CRs-Fixed: 3305563
2022-10-08 03:33:26 -07:00
Jeff Johnson
fe99b99d11 qcacld-3.0: components: umac: Fix misspellings
Fix misspellings in components/umac/...

Change-Id: I6464cb4708ffa099987e086edcd6852b681f6003
CRs-Fixed: 3303632
2022-10-07 00:27:13 -07:00
Arun Kumar Khandavalli
254b29126e qcacld-3.0: Print mld address as part of the connection info
Add the logs for the mld address of the self and peer mld as
part of the current connection info.

Change-Id: Ie73a9b94cb13cf0f4c70eb4ad212e2fc3bd7ff22
CRs-Fixed: 3300168
2022-10-06 15:15:29 -07:00
Divyajyothi Goparaju
3498515802 qcacld-3.0: Replace wlan_reg_get_channel_state_for_freq
Replace all occurrences of
wlan_reg_get_channel_state_for_freq with
wlan_reg_get_channel_state_for_pwrmode and use extra
parameter as REG_CURRENT_PWR_MODE.

Change-Id: I7f7e4e700091918eeebc87ccbbc85ececdd9bf52
CRs-Fixed: 3145011
2022-10-06 13:01:14 -07:00
Pragaspathi Thilagaraj
da70e5bcee qcacld-3.0: Reset per vdev roam trigger config upon disconnect
Roam trigger bitmap is configured to enable few specific
triggers when SETNCHOMODE command is issued. But if disconnect
happens without NCHO disable, then the roam_trigger_bitmap
per vdev doesn't reflect the ini configuration. This causes
some roam triggers not getting triggered.

Reset per vdev roam trigger configuration.

Change-Id: I3dc008a58a2a20c4f0820fe43aa4b6406ba8dd2a
CRs-Fixed: 3300488
2022-10-02 20:46:12 -07:00
Divyajyothi Goparaju
9e02702427 qcacld-3.0: Replace wlan_reg_is_disable_for_freq
As part of upgrading legacy code
with 6 GHz power APIs, replace
all ocurrances of
wlan_reg_is_disable_for_freq with
wlan_reg_is_disable_for_pwrmode.

Change-Id: Id18e48e27eb118945d56205797882874eb552153
CRs-Fixed: 3145764
2022-10-01 11:35:16 -07:00
Liangwei Dong
d90e41b18c qcacld-3.0: Set link frequency to partner info
Update channel frequency to partner infor from scan entry.
And correct debug print to show correct channel frequency value.

Change-Id: I3fc3a04b3ef0a4e627e724ad88c5038d35cd8e4a
CRs-Fixed: 3303855
2022-09-30 11:20:59 -07:00
Jianmin Zhu
a9db1fa24b qcacld-3.0: Fix assert for wrong mlo_vdev count
Current issue:
When roam from legacy to MLO, set vdev MLO flags but not increase the
mlo_vdev count, when disconnect, decrease mlo_vdev count, assert will
happen.
Solution:
Use API wlan_vdev_mlme_set_mlo_vdev and wlan_vdev_mlme_clear_mlo_vdev to
set MLO vdev flag.

Change-Id: Ib6fc2e479f222dca2f1c30df6d5fcf27fd07ae29
CRs-Fixed: 3299156
2022-09-28 13:24:55 -07:00
Jianmin Zhu
8028a343a7 qcacld-3.0: Fix issue that assoc link MLO flag cleared when roam to SLO
When roam from MLO to SLO, don't clear assoc link MLO flag.
Remove 1 useless vdev parameter of mlo_cleanup_link.

Change-Id: I3e3dff0ad3f3fef8f955eaae8af1a3c564248432
CRs-Fixed: 3298471
2022-09-23 20:20:33 -07:00
vijaraj
356a5cde4e qcacld-3.0: Fix incorrect reason code logging for Deauth/Disassoc
During Deauth/Disassoc event logging, reason code is being
logged as '0' irrespective of the real reason code.

Modified the api wlan_connectivity_mgmt_event() and
api cm_roam_mgmt_frame_event() to og correct value of
the reason code.

Change-Id: I6d5ba65a9ae312dc82e70202fe598da27a033ff3
CRs-Fixed: 3297871
2022-09-22 19:18:31 -07:00
Jianmin Zhu
89a8d6b96b qcacld-3.0: Clean up vdev1 when roam to single link
When roam from MLO to SLO, partner link vdev1 keeps UP wrongly.
To fixe it, clean up partner link vdev1, but keep assoc link vdev0
MLO flag.

Change-Id: I13d256e9f05755f01cea668456f00bf33c8862b4
CRs-Fixed: 3290015
2022-09-22 17:46:53 -07:00
Aditya Kodukula
1472d9ad6d qcacld-3.0: Disable 11be when not supported by target
Disable 11be when not supported by target

Change-Id: Iecf9ab3eab5a9e69b01fb03b30b028b57019b10d
CRs-Fixed: 3291961
2022-09-22 06:09:24 -07:00
Jianmin Zhu
76b7b34cdd qcacld-3.0: Support transmit addr for roam pre-auth
When roam from SAE legacy to SAE MLO, pre-auth TA is MLD address,
while peer AP expects link address, pre-auth fails.
Parse transmit address field from firmware roam_preauth_start_event and
include it when send NL80211_EXTERNAL_AUTH_START to wpa supplicant for
SAE roaming cases.
If transmit address is all zeros, wpa_supplicant will not do ML sae
auth, use MLD address as TA.
If transmit address is not zeros, wpa_supplicant will do ML sae auth,
use 'transmit address' as TA.

Since self peer is created with mld address, when roam from legacy to
MLO, try to get peer by mld address during pre-auth tx since bss peer
absent, or TX fails for no peer.

Change-Id: I99ed846e94165bfe01e1d1e8c620f035751c7056
CRs-Fixed: 3289987
2022-09-21 21:38:08 -07:00
Jeff Johnson
d5403c42a4 qcacld-3.0: Rename wlan_cm_ese_populate_addtional_ies()
Rename wlan_cm_ese_populate_addtional_ies() to fix misspelling in the
name: addtional ==> additional

Change-Id: I3a5528d09804628cc665ee882ced3af2581b0f34
CRs-Fixed: 3281750
2022-09-16 13:27:23 -07:00
Liangwei Dong
091666830d qcacld-3.0: Send ROAM MLO config to target
Send MLO Roam config to target, including:
support_link_num: Configure max number of link mlo connection supports.
support_link_band: Configure the band bitmap of mlo connection supports
Bit 0: 2.4 GHz band support if 1
Bit 1: 5 GHz band support if 1
Bit 2: 6 GHz band support if 1

Change-Id: Id59fc93cc271266ff794702d997ffc5113de5bc1
CRs-Fixed: 3273012
2022-09-13 21:27:28 -07:00
Amruta Kulkarni
65f19e6dae qcacld-3.0: Use link address and channel to update phymode after roam
After roam sync is recevied the phymode will be updated for bss peer.
For MLO roaming use link address and channel to find the bss peer and
update the phymode.

Change-Id: Ic181fdb73ceeb8dfb980a4121a7569b12d3361dd
CRs-Fixed: 3280059
2022-09-12 13:58:24 -07:00
Srinivas Dasari
0d8db0609e qcacld-3.0: Synchronize disconnect in RSO stop req-resp path
Host driver sends RSO stop request to firmware as part of
disconnect and waits for RSO stop response. It pauses the
disconnection and resumes once RSO stop response is received
from the firmware.
But cm_lock is not taken when disconnection is resumed from RSO
stop response path. This causes synchronization issues with
north bound thread which issued the disconnection.
Acquire cm_lock by using cm_sm_deliver_event() API to avoid
this issue.
Disconnect initiator thread and scheduler thread are
synchronized with this change. So, no need to set the RSO
state to STOPPED before sending RSO stop command to
firmware. So the change: I4d43508bdee2b33caba28579939fffdebfab121d
can be reverted.

Change-Id: Id29cd992ecd1bd75cb1b32eebb9e46ca5dcc728d
CRs-Fixed: 3285154
2022-09-10 01:30:41 -07:00
Jianmin Zhu
a4c7f4f50a qcacld-3.0: Fix roam to legacy failed
When roam to legacy, need keep legacy way to get bssid and freq.

Change-Id: If38e5e28fcc9bc783b10a234d673f4eba32aa61c
CRs-Fixed: 3284986
2022-09-08 14:00:12 -07:00
Jianmin Zhu
56608e95ec qcacld-3.0: Fix assert for race condition
When disconnect from wpa_supplicant and cm event from F/W happen at same
time, supplicant holds cm cm_req_lock and wait rsp of p2p cleanup roc from
scheduler thread until 2 sec timeout, sheduler thread is blocked to wait
for cm_req_lock.

When wmi peer delete of vdev0 is not sent within 1.2 sec after host send
wmi peer delete of vdev1, firmware will assert.

To fix it, don't wait rsp of p2p cleanup roc when disconnect by async way.

Change-Id: I877b7a446dfd12f621dad5049a67574359bdd322
CRs-Fixed: 3285115
2022-09-08 14:00:06 -07:00
Srinivas Dasari
284ee6b50b qcacld-3.0: Add link entry to policy_mgr upon legacy to MLO roam
Currently, link entry is not added to connection_list of
policy_mgr in case of legacy to MLO roaming. This causes
policy_mgr to miss track of the MLO link.
Check if the connection entry is present in the policy mgr
for the link vdev id and add an entry if it's not present.

Change-Id: Ib19f3616a3384670f1faef20c39476a2bcac2588
CRs-Fixed: 3274435
2022-09-06 13:46:26 -07:00
Jianmin Zhu
b905ea4fac qcacld-3.0: Fix race condition between supplicant and driver
There is a race condition issue between supplicant and driver thread.
1.	Suppliant disable F/W roaming.
2.	Supplicant Invoked roaming.
3.	Driver reported roam completed to supplicant before EV_ROAM_DONE.
4. 	Supplicant tried to enabled roaming, failed for vdev ROAMING state.
5.	Roaming completed, but RSO kept disabled for supplicant disabled
	roaming flag not cleared.
6. 	F/W roaming kept disabled until next disconnect and reconnect.

To fix it, driver don't report roam completed event to supplicant until
vdev changed from ROAMING to CONNECTED.

Change-Id: I8f0db74b5dce69ea355fde2c43edaf6419c87eb0
CRs-Fixed: 3280727
2022-09-06 04:23:18 -07:00
Jianmin Zhu
2a7d4c1cee qcacld-3.0: Fix wrong bssid and freq after mlo roaming
For mlo AP, bssid in wmi_roam_synch_event_fixed_param of
WMI_ROAM_SYNCH_EVENT is AP MLD addr, when use it as link addr,
failed to register peer and set peer as connected, so all Tx
are not allowed including EAPOL.
Fix it by getting AP link addr and frequency of each link from
setup_links_param array of WMI_ROAM_SYNCH_EVENT.

Copy link info from roam sync event to connect response before notify
os_if roam complete, os_if will send link info from connect response
to wpa_supplicant, supplicant will use it to add MLO Link KDE(s) into
EAPOL-Key 2/4.

Change-Id: I87833784a4e0b9240725223069c55fb0db3bc88f
CRs-Fixed: 3277878
2022-08-31 21:10:02 -07:00
Amruta Kulkarni
7a2871544b qcacld-3.0: RSO enable for open and secure connection
Currently rso enable for open and secure connection is handled
incorrectly.
For secure connection roaming should be enabled
after key exchange is complete.
For open connection rso enable is done twice.

Fix is for enabling roam offload for open and secure connection.

Change-Id: I0abde2a6001f176c97e4aa59947260a50c48e6cc
CRs-Fixed: 3271248
2022-08-31 16:03:54 -07:00
Amruta Kulkarni
7ad653825e qcacld-3.0: Single link ML connection
Currently if link specific probe response generation fails
STA keeps sending probe requests until proper probe response
is received or join timeout failure. This results in ML
connection failure

Change is to continue with single link ML connection if probe
response generation for link/s by clearing partner link information.

Change-Id: Ia969501a3bdd1ac70e14f3a0eafd0752207b66da
CRs-Fixed: 3238861
2022-08-31 16:03:47 -07:00
Srinivas Dasari
e85f7f098c qcacld-3.0: Set the RSO state before sending cmds to firmware
Currently, switch_to_rso_stop happens based on the
current state check and the expected state is
RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
The thread(e.g. user thread) that is sending rso_stop to
firmware might have got the expected state value when
it has read the state and proceeded with commands needed
to send to firmware. ROAM_SCAN_MODE is one of these commands
and firmware sends a response for the same. The response
gets processed in scheduler thread.

The expected sequence as per the current implementation is,
1. Check the current RSO state and proceed if it's any of
   RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send all commands corresponds to switch_to_rso_stop to fw
3. Set the new state to RSO_STOPPED
4. In scheduler thread, get response for
   ROAM_SCAN_MODE(one of the commands sent in step2) and
   proceed from RSO state RSO_STOPPED
5. scheduler thread sets the state to DEINIT.

But the user thread may get suspended while sending commands
to firmware (step2) and may get resumed after step4. The new
sequence could be,
1. Check the current RSO state and proceed if it's any of
   RSO_ENABLED/ROAMING_IN_PROGRESS/ROAM_SYNC_IN_PROGRESS.
2. Send some commands corresponds to switch_to_rso_stop and
   thread gets suspended. Assume it has sent ROAM_SCAN_MODE.
3. In scheduler thread, get response for
   ROAM_SCAN_MODE(one of the commands sent in step2) and
   proceed from RSO state RSO_ENABLED.
4. As part of step-3, scheduler thread moves the state to
   RSO_STOPPED and then to RSO_DEINIT.
5. User thread gets resumed and sets the new state
   to RSO_STOPPED. This leaves the RSO state in invalid
   state even after disconnect.

Set the state to RSO_STOPPED before sending any commands
to firmware. This is to ensure the state is not corrupted by
the scheduler thread.

Change-Id: I4d43508bdee2b33caba28579939fffdebfab121d
CRs-Fixed: 3278047
2022-08-31 14:31:42 -07:00
Amruta Kulkarni
d7bed8d11c qcacld-3.0: Set dp peer flags for single link ML roaming
In case of single link mlo roaming, set both dp peer flags
is_first_link and is_primary_link to 1, then datapath will
create MLD peer.

Change-Id: I935c42b2c3eaa558028d45bdbf502007723f656c
CRs-Fixed: 3271224
2022-08-27 18:20:02 -07:00
Pragaspathi Thilagaraj
74d3b5dbcb qcacld-3.0: Enable SAE auth cache api for Diag logging
SAE authentication frames during roaming should be cached and
printed after roam scan done print. This support is not present
in diag logging.
Enable SAE auth frame caching for diag logging.

Change-Id: I205bd2fd1c91253d1e6aaf3361857baf67ccd6fd
CRs-Fixed: 3254216
2022-08-27 15:15:33 -07:00
Jianmin Zhu
e3ff91adef qcacld-3.0: Don't treat assoc req as reassoc req
Add a flag to indicate assoc req is used for this roaming,
don't treat assoc req as reassoc req.

Change-Id: I3a13985b6b173892fbe281668d07f7179d1c364c
CRs-Fixed: 3274314
2022-08-27 13:48:14 -07:00
Bing Sun
082f9da230 qcacld-3.0: Add support for WPA3 LFR2 roaming
On some projects, LFR3 roaming is not supported due to
limitation of FW memory, thus, add support for WPA3 LFR2
roaming.

Change-Id: I80888049a243c0d37e08377d89a6aa44e75a8850
CRs-Fixed: 2973554
2022-08-21 20:50:17 -07:00
Surya Prakash Sivaraj
20f32531a3 qcacld-3.0: Fix SAE whitelist SSID roam failure
In whitelist roaming, the roam offload event is sent
for an BSSID with different SSID, however host driver
copies the connected bssid in the external auth event
to the userspace. This leads to preauth failure.

Cache the ssid from the beacon received as part of the
roam frame event before every roam auth offload event
and use that ssid for external auth events to userspace.

Change-Id: I634992baf0c98054897707aaf3b1265e17d46f04
CRs-Fixed: 3262859
2022-08-16 09:14:28 -07:00
Pragaspathi Thilagaraj
d66eab7ba7 qcacld-3.0: Fix order of BTM frame logging
Reorder the BTM logging according to the below
scenarios:

Scenario 1: Roaming to AP2 and BTM query is sent to AP2.
1. Connected to AP1.
2. <Low RSSI> triggered roam to AP2. Successful roam to AP2.
==== Roam stats event 1 with full TLV case with AP1
(scan_type == partial, roam_trigger = low rssi) ====
3. BTM query to AP2 after 1sec.
4. BTM req from AP2
5. BTM resp to AP2
==== Roam stats event 2 with full TLV case having AP2 BTM info
(scan_type ==NO_SCAN, roam_trigger = BTM) ====

Scenario 2: Connected to AP1, send BTM query to AP1
==== Roam stats event 1 with full TLV case having AP1 BTM info
(scan_type ==NO_SCAN, roam_trigger = BTM) ====

Scenario 3: BTM request initiated by the AP
1. Connected to AP1.
2. AP1 sends BTM request with disassoc imminent set.
3. Roam scan is triggered.
4. BTM response to AP1
5. Roam to AP2.
==== Roam stats event 1 with full TLV case having AP1 BTM info
(scan_type = full or partial, roam_trigger = BTM) ====

6. Send BTM query to roamed AP2.
7. AP2 sends BTM req.
8. Send BTM resp to AP2
==== Roam stats event 2 with full TLV case having AP2 BTM info
(scan_type=NO_SCAN, roam_trigger = BTM) ====

Change-Id: I4571cbe75397fb795046abe8711571264ed98a65
CRs-Fixed: 3260060
2022-08-15 20:44:01 -07:00
vijaraj
98152442f6 qcacld-3.0: Incorrect TX status in logging after Roaming
In the api cm_roam_mgmt_frame_event(), TX status is sent
without conversion to the userspace resulting in
wrong value of tx status during logging.

Correct this by converting the tx status value before
sending to userspace in order for userspace to properly
evaluate the tx status.

Change-Id: Ie4b6b8bff5e8b9c88edfaf303ce6a4ae370edd67
CRs-Fixed: 3250473
2022-08-15 20:43:56 -07:00
Jianmin Zhu
5a9556bf4b qcacld-3.0: Update linkspeed state to F/W for roaming protocol part
To avoid unmeaningful roaming, when low RSSI trigger,
only roam when rx linkspeed is also bad.
Steps:
1. F/W indicates feature supported by:
	wmi_service_linkspeed_roam_trigger_support
2. App sets vdev rx link speed threshold by vendor cmd.
3. Bus_bw_work gets rx link speed from data path periodically.
4. If found rx link speed change from good to poor, or poor to good, send
	to F/W.
5. F/W low rssi roaming is triggered only when both RSSI and link speed are
	poor.

Change-Id: I56829e42b26e407dd8e989a870aee2b3ea406232
CRs-Fixed: 3261996
2022-08-12 08:24:53 -07:00
Deeksha Gupta
446d532959 qcacld-3.0: Check disconnect state while fetching MLO vdev_id
In wlan_cm_mlo_update_disconnecting_vdev_id(), add an extra
check of wlan_cm_is_vdev_disconnecting with
wlan_cm_get_active_req_type, to check the vdev state as well,
along with the active_cm_id flag.

Change-Id: I80d59d419555864d6c9712e0d93efce0a6c203e4
CRs-Fixed: 3262543
2022-08-11 03:15:21 -07:00
Amruta Kulkarni
37a60702d1 qcacld-3.0: Reset roam band value to default
When Roam control config is disabled reset roam band
value to default.

Change-Id: I5efc7b0c05604ed30f8c3c4f7ff48481f9211e61
CRs-Fixed: 3259399
2022-08-09 11:17:24 -07:00
Surya Prakash Sivaraj
ba05c22b03 qcacld-3.0: Fix FT-FILS roaming failure
The AP rejects the FILS-IM association request with reason
"Invalid IE format". In the assoc request, two problems are
seen:
    1. The RSN IE has a junk group management cipher suite.
    2. FILS HLP container IE is fragmented, and the fragment
       IE does not immediately follow the HLP container IE.

In the assoc request, the RSN IE encoded in the authentication
is unpacked and the PMKID is replaced with the pmkr1 name
derived at the end of FILS authentication. Currently, the
existing PMKID in the RSN IE is replaced only if the group
management cipher is present. In non-802.11w case, the new
PMKID is appended at the end of existing PMKID, and leads to
improper IE format.

To fix this, replace the existing PMKID whenever PMKID is
present.

To fix invalid HLP container IE format, encode the HLP
container and its fragment IEs together in the assoc request.

Also, inorder to get the pmksa match from the crypto table for
a FT-FILS, fill both ssid and cache ID. Without cache id, the
cached entry is not updated with MDIE.

Change-Id: I654b5527a726eb7872b90fb19a3d97623f3caa68
CRs-Fixed: 3233081
2022-07-21 21:09:18 -07:00
VIJAY RAJ
702557e085 qcacld-3.0: Roam reason and sub-reason code conversion during diag logging
Wrong value of Roam reason and sub-reason code is sent to
userspace via diag logging.

Convert the value of reason and sub-reason code to qca
specific code before sending it to userspace

Change-Id: Iebdc5f8673e2da6a208a89caca9a742202256bcc
CRs-Fixed: 3236178
2022-07-19 03:33:41 -07:00
VIJAY RAJ
bcf0e588e7 qcacld-3.0: Incorrect bssid value during Roam Result logging
In the cm_roam_result_info_event() api, for roam result the
current AP bssid is sent instead of candidate AP.

Correct this to send candidate AP bssid during roam result
logging.

Change-Id: I4b1d4634faa3fbf3e7b32af8c13d4b444d26c505
CRs-Fixed: 3237021
2022-07-18 17:44:18 -07:00