Commit Graph

195 Commits

Author SHA1 Message Date
Amruta Kulkarni
f8ca4c5c52 qcacld-3.0: Update chan freq for roam invoke
In roam invoke request, if bssid is same as connected
bssid use connected frequency.

Change-Id: I0e205ffab002b80021bf6a615e4cfc0a723f0ba5
CRs-Fixed: 3022351
2021-08-26 20:56:07 -07:00
Bapiraju Alla
d599410e45 qcacld-3.0: Populate assoc link id in ML IE of assoc request
Populate assoc assoc link id in ML IE of an assoc request from
scan cache entry

Change-Id: I82b2b68f45411b1588c76ddd7ce9d21a93d972f3
CRs-Fixed: 3013684
2021-08-26 01:11:17 -07:00
Amruta Kulkarni
07e3dc73ab qcacld-3.0: Wmi changes for mlo roaming
-Extract new wmi struct added as part of MLO roaming
 changes.
- Send EHT and MLO weightage percentage to FW via
 WMI_ROAM_AP_PROFILE.

Change-Id: I6b3f1f62ef6ea323cd1b75f63a5c63c38b000f1f
CRs-Fixed: 3010039
2021-08-25 17:31:29 -07:00
Sai Pavan Akhil Remella
b35419136e qcacld-3.0: wma to target_if migration of roam_stats_event
Currently, wmi_roam_stats_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I5e336b01e1a2183e49b3e6eeb125c7c9fd0fd73c
CRs-Fixed: 3003125
2021-08-24 13:12:34 -07:00
Ashish Kumar Dhanotiya
36945867a8 qcacld-3.0: Set global opclass if country is not present in beacon IE
When driver gets rrm request it tries to get country from beacon IE
and if country is not present in beacon IE it sets the current
country information from regulatory and does not sets the op class
which is not the right way.
If AP does not send country in beacon IE, driver should set
GLOBAL_OP_CLASS for rrm request.

Change-Id: I4797d03f38817ac580f3bfea08f1939dad4da5d1
CRs-Fixed: 2996921
2021-08-20 01:18:25 -07:00
Utkarsh Bhatnagar
235135f84d qcacld-3.0: Fix unnecessary logs in connect path
Fix unnecessary logs in connect path.

Change-Id: I60a5e7380eccbe0406e45da398f1f690b09ce820
CRs-Fixed: 3016952
2021-08-18 18:43:27 -07:00
Paul Zhang
2e903a08b7 qcacld-3.0: Invalid ADDROAMSCANCHANNELS if specific channels configured
For roam scanning, "specific channels list" is preferred over
"preferred channel list". Hence if user configured specific channels
then return invalid for ADDROAMSCANCHANNLES command.

Change-Id: I858eef5c990cedb4b12c21c1a00f34ff6b819849
CRs-Fixed: 3014609
2021-08-17 18:03:14 -07:00
bings
4320b87f57 qcacld-3.0: Pass mld mac addr correctly when creating peer
Make sure mld mac addr is passed to wma when creating peer obj

Change-Id: I4500033d75edd59255e299174de1c49d09a45422
CRs-Fixed: 3014211
2021-08-16 01:08:33 -07:00
Jia Ding
94054464bf qcacld-3.0: Add 320MHz support in connection info
Add 320MHz support in cm so that connection info can reflect
correct 11BE 320MHz bandwidth.

Change-Id: I44772472bf9e64af0e47ad71ca7d29d1ff90daed
CRs-Fixed: 3009311
2021-08-12 03:14:06 -07:00
Pragaspathi Thilagaraj
5a540a315f qcacld-3.0: Add additional debugs in PMKSA caching path
Add additional debugs in pmksa caching path.

Change-Id: I5e412c60c3455c1a40d6f742fb6536b9ac621748
CRs-Fixed: 2978751
2021-08-11 15:50:27 -07:00
Will Huang
08dab6a394 qcacld-3.0: Update country code from beacon when do rrm scan
The RRM request may have different country code with DUT internal
regdb configure, use country code from beacon IE if it is present,
otherwise use internal country code to verify op class of neighbor
report channel list.

CRs-Fixed: 2997474
Change-Id: I35a62d9791f08d26dd8a892739612eb422805523
2021-08-08 21:00:29 -07:00
Pragaspathi Thilagaraj
e8aac242d4 qcacld-3.0: Send RSO stop when roam auth status is connected
When firmware sends Roam synch indication, driver changes the
roam offload state to ROAM_INIT and after set key completion is
received, RSO start will be sent. But if EAP/EAPOL fails and
disconnection is triggered then deinit command is sent without
setting roam scan mode to 0 with RSO stop command.

So change roam offload state to RSO_STOPPED if auth status is
connected in roam synch indication.

Change-Id: If8f56ce48500f6848fa917854b6252f8deb67c01
CRs-Fixed: 3005697
2021-08-07 13:41:50 -07:00
Amruta Kulkarni
c71017d971 qcacld-3.0: Roam sync event migration
Wma to target_if migration for ROAM SYNC EVENT

Change-Id: Id2e9d5697f12f709cfdd665dabf1095863d87277
CRs-Fixed: 2990767
2021-08-07 02:58:54 -07:00
bings
5ebabb221f qcacld-3.0: Populate mlo IE for assoc req
Populate mlo IE for assoc req with inheritance mode.
populate base rate, extend rate, capability, extend capability
and HT/VHT/HE/EHT capability based on mac context.

Change-Id: I5e1c350a9c5f23a63d11c6d4b5cdbf0422dd53e0
CRs-Fixed: 3000895
2021-08-06 14:08:37 -07:00
abhinav kumar
5761f0f95e qcacld-3.0: Dont enable roaming on STA2 in STA+STA SCC
In case of STA + STA concurrency, enable roaming on
another interface only if STA + STA concurrency is in
DBS.

Add sanity for SCC concurrency also along with MCC
concurrency in cm_roam_switch_to_init.

Change-Id: I8787828b4b950c355e9bf70af58aad7779de3e9f
CRs-Fixed: 3001723
2021-08-05 20:23:01 -07:00
bings
bebd7a8b45 qcacld-3.0: Pass mld address and assoc link info when creating bss peer
MLO sta needs mld mac and assoc link information to create bss peer
Get mld address and assoc link info from connection manager and pass
it to bss peer creation

Change-Id: Ie04d4eb01f1a039f068b32b6c53aa3e65c919518
CRs-Fixed: 2987483
2021-08-05 15:13:13 -07:00
Pragaspathi Thilagaraj
2c4afe8c59 qcacld-3.0: Disable hi-rssi roam trigger when roamed to 6Ghz band
Host driver enables hi-rssi roam trigger when STA roams to 6Ghz
AP. But hi-rssi trigger should be enabled only for 2.4Ghz AP
else it will cause frequent roams even though connected to
good candidate AP.

Disable hi-rssi roam when roamed to 6Ghz band AP.

Change-Id: I2ea2d06634963c1190aa1ca0d466b0873e36fbfe
CRs-Fixed: 3001090
2021-08-02 01:59:01 -07:00
Srinivas Dasari
f39f703609 qcacld-3.0: wma to target_if migration of roam_scan_ch list_event
Currently, wmi_roam_scan_chan_list_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I8f59f9ebfe1bbdc7ef37ccc1f10178fe8128e912
CRs-Fixed: 2990376
2021-07-30 21:50:44 -07:00
Srinivas Dasari
a655f5e64e qcacld-3.0: wma to target_if migration of vdev_disconnect_event
Currently, wmi_vdev_disconnect_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I2486cc3f63c4b35305b60ac55cd0a622c7185323
CRs-Fixed: 2990373
2021-07-30 21:50:40 -07:00
Srinivas Dasari
cb5b2dde46 qcacld-3.0: wma to target_if migration of btm_blacklist_event
Currently, wmi_roam_blacklist_event_id data is extracted and
processing is also done in wma. This is not inline with component
model where target_if takes care of data extraction and handover
the extracted data to corresponding component(connection mgr in
this case). Add changes to support the same.

Change-Id: I41d2ef6c228acd8f86f24107c02d11f1a8ac6dea
CRs-Fixed: 2990369
2021-07-30 21:50:35 -07:00
Srinivas Dasari
78cb3008e6 qcacld-3.0: wma to target_if migration of wmi_roam_event
Currently, wmi_roam_event_id data is extracted and processing is
also done in wma. This is not inline with component model where
target_if takes care of data extraction and handover the extracted
data to corresponding component(connection mgr in this case).
Add changes to support the same. As the legacy CSR/LIM is not
yet converged, have a wrapper from connection mgr to wma to call
these legacy APIs.

Change-Id: I0e22bbccfe21200b90771a01f9ee7454f4ecb119
CRs-Fixed: 2990355
2021-07-30 14:29:36 -07:00
Mohammed Ahmed
7f3cf46f40 qcacld-3.0: Adding policy manager check in roam done
In ROAM DONE event handling, policy mgr restart sap is not invoked after
updating the connection info and hw mode info thus not restarting the sap
after roam sync

To solve this, adding policy manager check after updating the policy
manager connection table.

Change-Id: Ifb8a5eecb98c05166986052ccc32422dbbe3bef7
CRs-Fixed: 2991721
2021-07-29 22:44:50 -07:00
Pragaspathi Thilagaraj
5c04f676f5 qcacld-3.0: Fix null pointer dereference in cm_roam_switch_to_init()
In cm_roam_switch_to_init(), vdev returned from the api
wlan_objmgr_get_vdev_by_id_from_psoc_debug() could be NULL.
Vdev is dereferenced without NULL check.

Validate vdev against NULL before dereference.

Change-Id: I42ff6943e568f16b78290a3310a8999d26c15af9
CRs-Fixed: 2996914
2021-07-23 01:55:09 -07:00
Deeksha Gupta
ed12a74d8c qcacld-3.0: Add support for FT over DS
Add support to enable the "FT over DS" via
QCA_WLAN_VENDOR_ATTR_CONFIG_FT_OVER_DS vendor config
command.

This configuration helps the firmware to support
“FT over DS” instead of “FT over Air”

Change-Id: I493bf15f83bc39135aaeefa9d8ef328f0fc0cda3
CRs-Fixed: 2968680
2021-07-15 04:13:04 -07:00
Srikanth Marepalli
0ec902c074 qcacld-3.0: Invalid pmkid in the FT-EAP disconnection case
During FT-EAP roaming after session timeout if the FTIE received
in the EAPOL of full EAP is improper, the supplicant would
disconnect the AP with the reason FTIE mismatch.
During this disconnection supplicant flushes all the existing PMK
cache entries and eventually the framework would add these cache
entries again (apparently, the current entry would be with the
older PMK). On this addition to the driver, there is no connected
profile and thus no MDID is associated to this PMKSA entry(AP1-PMK1).
Further, on the fresh (Full EAP) connection to the AP2 with the
same MDID, a new cache entry gets added and thus MDID from the
connected profile gets associated with the PMKSA cache entry. At
this point of time, there are two PMKSA cache entries (AP1-PMK1
without MDID and AP2-PMK2 with MDID).
Adding further, if the incorrect PMK (without MDID / stale entry)
i.e. PMK1 is given to the firmware on the RSO command for the
specific BSSID (here AP1) during roam, further roams shall be
calculated with this PMK1 and result in to the invalid pmkid
issue.
Thus, avoid this situation by removing that stale PMKSA entry in
the driver and this entry can be deleted only when it is associated
with the MDID. Driver on the new pmksa addition shall check for the
matching pmksa cache entry with the MDID and delete the earlier ones.
To associate the MDID, this commit checks for the same from the scan
entry of the BSSID, if there is no connected profile for the same
(this happened when the framework has added the cache entry when in
the disconnected state).

Change-Id: If81d66059173dda8d7a2940ca10dc96ef16e125c
CRs-Fixed: 2972115
2021-07-14 20:14:22 -07:00
Utkarsh Bhatnagar
7f9ad91112 qcacld-3.0: Move sme_ft_api to connection manager ucfg api
Move sme_ft_api to connection manager ucfg apis.

Change-Id: If710be0d8a4a9d45d37f588389e40f66c62c7487
CRs-Fixed: 2990112
2021-07-14 07:25:23 -07:00
Pragaspathi Thilagaraj
2a34774b65 qcacld-3.0: Update fils erp sequence number after roaming
Fils info is stored per vdev. In RSO scan mode command, in FILS
TLV, the next ERP sequence number to be used in the next FILS
connection is sent to firmware and is filled from the vdev fils
info. But after roam sych event is received, the erp sequence
number is not updated in the vdev fils info, causing FILS roaming
failure.

Update the fils erp sequence number to vdev fils info after
roaming.

Change-Id: Ibc624d9c4b0fc535c430881d3033169b002c8419
CRs-Fixed: 2988113
2021-07-13 04:11:43 -07:00
Amruta Kulkarni
0c30cb8f04 qcacld-3.0: Roam sync frame event Wma cleanup
Wma to target_if migration for ROAM SYNC FRAME EVENT

Change-Id: I2a56dadf7f45a13a577bdf49bc9514ab2e6dee29
CRs-Fixed: 2968404
2021-07-12 19:12:01 -07:00
Abhishek Singh
bac97712b7 qcacld-3.0: Cleanup crypto params from roam profile struct
Cleanup crypto params from roam profile struct.

Change-Id: Ib3acb7f2ee669ba05da7011a56a54487d5100033
CRs-Fixed: 2988892
2021-07-12 12:09:40 -07:00
Pragaspathi Thilagaraj
ce1e9e80f0 qcacld-3.0: Don't send RSO start after HO failure
When HO failure happens or roam synch failure happens due to
north bound disconnect being already processed, host
transitions to RSO STOP-> Roam Deinit as part of the disconnect.
But after this roam abort is done, which tries to reset the
state to ROAM enabled. This causes roam init to be sent
immediately and in STA + STA scenario where STA2 roaming
is also enabled, it causes fw to go to invalid state
as STA 1 vdev is deleted.

Allow roam abort to transition to RSO Enabled only in
Roam Synch in progress state or Roam in progress state
and not in RSO deinit state.

Change-Id: I1f07d4a3068f719b8d05e111bc8d45626c6a2468
CRs-Fixed: 2969507
2021-07-08 21:31:15 -07:00
Amruta Kulkarni
bf0114a811 qcacld-3.0: Skip reset roam trigger during disconnect
For STA+STA case, if disconnect is started on one vdev,
roaming is getting disabled on other vdev to fix this
skip updating RSO state.

Change-Id: If527555c3ea3d50516be3a743bb03914b3a2359f
CRs-Fixed: 2981648
2021-07-08 00:07:05 -07:00
Bapiraju Alla
660d463b88 qcacld-3.0: Add partner links information in join request
Add partner links information in join request to proceed for ML
connection in best links selected in ML scoring.

Change-Id: I463264d9c78f3ab061d54a3245b15174d0940910
CRs-Fixed: 2961881
2021-07-06 17:33:21 -07:00
Pragaspathi Thilagaraj
70e6c4fc40 qcacld-3.0: Add support to send set IE request in cnx manager
With connection manager enabled, the send IE request is
not sent after connection.

Add support to send set IE request after connection is
successful in connection manger.

Change-Id: I2f30eb67ba295e0ca416ccb40e12a376e0d7a47e
CRs-Fixed: 2976734
2021-07-02 07:24:42 -07:00
Abhishek Singh
a2c4145a3c qcacld-3.0: Cleanup unused params from csr structs
Cleanup unused params from csr structures.

Change-Id: I8384ad5e8c6a9d7f33ffe9bc1ed5508776f39607
CRs-Fixed: 2980067
2021-06-29 19:14:49 -07:00
Ashish Kumar Dhanotiya
89c41b9256 qcacld-3.0: Enable utf for connection manager
Add a logic to enable utf for connection manager.

Change-Id: Id8ac70c6437bb9d77cc374abbbeea17dab6f9e3a
CRs-Fixed: 2975701
2021-06-29 19:14:36 -07:00
abhinav kumar
d6c9e893a0 qcacld-3.0: Print 5g & 6g candidate rssi threshold in kmsg
In case of WTC_BTM roam trigger reason, if FW reports rssi
threshold for 5G and 6G AP via wmi_roam_trigger_reason,
Host should print it in kmsg.

If wtc_candi_rssi_ext_present is set (1), It means fw
reports 5g and 6g candidate rssi (new firmware case).
If wtc_candi_rssi_ext_present is clear (0), It means fw
doesn’t report 5g and 6g candidate rssi (old firmware case).

Host use flag "wtc_candi_rssi_ext_present" to keep backward
compatibility.

Change-Id: Idbaac2e9d470525641c152b024b8786d262e600c
CRs-Fixed: 2965025
2021-06-29 12:45:35 -07:00
Abhishek Singh
5ca9e12a4e qcacld-3.0: Code cleanup for connection manager MLME/SME
Remove unused code related to ndef FEATURE_CM_ENABLE in MLME/SME.

Change-Id: I022823296d2e186450a1a1082a975eccf0b7c122
CRs-Fixed: 2977907
2021-06-28 14:41:24 -07:00
Huashan Qu
c2aa4de42f qcacld-3.0: Only zero out reassoc_ft_ie under 11r and open mode
Currently, if it's 11r connection, zero out reassoc_ft_ie in
cm_preauth_success(), it will cause FT roaming failed due to
ft ie loss with reassoc request frame.

Fix is to only zero out reassoc_ft_ie when connection is 11r
and open mode.

Change-Id: I8c1d6ca743b528c4ab0211723a792b14abe5acab
CRs-Fixed: 2976385
2021-06-25 07:19:50 -07:00
Huashan Qu
fbd16dd492 qcacld-3.0: Fix LFR2 roaming related memory leak issues
Fix LFR2 roaming related memory leak issues in function
lim_send_reassoc_req_with_ft_ies_mgmt_frame() and
wlan_cm_host_roam_start().

Change-Id: I83271b57d0651d680324b67f0e6e6a3694c9ab8c
CRs-Fixed: 2976469
2021-06-24 22:24:55 -07:00
abhinav kumar
29bb6774c1 qcacld-3.0: Change roam state after connect complete
With commit I84c77644c6023322ac77e307b06be70ec0f58ed5, Host
allows dual sta roaming only if two STA's sessions for are
active (STA + STA) and concurrency is in DBS.

Currently, before the increment of the number of active
sessions in the policy manager, the host tries to enable
dual-band roaming. This results in dual sta roaming failure
with the reason number of active sessions equal to one.

The fix is to make sure the host should try to enable dual-band
roaming after incrementing the number of active sessions in the
policy manager.

Change-Id: I150926897cb773db979279edc54e5fb731d98e43
CRs-Fixed: 2971831
2021-06-23 08:30:07 -07:00
Gururaj Pandurangi
c627a01463 qcacld-3.0: Add Multi-link IE support
Add Multi-link IE support.

Change-Id: I0d4811c6dfb0758c284c299c90ab1832f95dff2b
CRs-Fixed: 2942499
2021-06-16 21:30:55 -07:00
Deeksha Gupta
785ab5431d qcacld-3.0: Fix status overwrite by disconnect req
Fix status overwrite by disconnect req if
WLAN_CM_SM_EV_ROAM_INVOKE_FAIL fail

Change-Id: I014965faf89c3bf8efc8b2036fc0f0466239fc19
CRs-Fixed: 2969763
2021-06-16 16:50:51 -07:00
Srinivas Dasari
ff58fd853b qcacld-3.0: Wait for key install in SAE/OWE as well
EAPOL handshake is done by wpa_supplicant in initial connection
and WPA3 roaming as well. Driver is supposed to wait for EAPOL
handshake/key complete timeout after getting roam sync indication
from firmware. But this wait is skipped with the change
change-id : Ie4f06cfcb066ae245de024b62da586aade783aec.
Add the same check again.

Change-Id: I437c6be15d7c1a3775a177c2da6c581d417c2533
CRs-Fixed: 2963548
2021-06-14 03:10:44 -07:00
Utkarsh Bhatnagar
d6a03bf7e0 qcacld-3.0: Refactor LFR3 code to use cm api
Refactor csr_roam_pmkid_req_callback to use
mlme_cm_osif_pmksa_candidate_notify and move other
unused API under CM flag.

Change-Id: I835d54804f733eddff48de38e4c545a87f34bb30
CRs-Fixed: 2965602
2021-06-10 10:21:35 -07:00
Jianmin Zhu
8ef9b522a7 qcacld-3.0: Failed to roam to all band after dual sta enabled
For dual sta case, if vdev0 disconnected before vdev2 disconnected, vdev0
PCL cmd retained vdev level, after vdev0 reconnected first, just allowed
intra band in PCL, only can roam in intra band.
Fix: When vdev disconnect, reset it's PCL cmd to pdev level.

Change-Id: I3ed3ec398cfe1a17d07ce716c27026b9660305bd
CRs-Fixed: 2960194
2021-06-09 03:14:54 -07:00
Utkarsh Bhatnagar
3e95b94add qcacld-3.0: Fix bssid printing in preauth logic
Fix bssid printing in preauth logic by adding space before printing
the bssid.

Change-Id: I32becd76be24f9c7f21dc72034f5a1ca26c90bbd
CRs-Fixed: 2964158
2021-06-08 18:17:14 -07:00
Amruta Kulkarni
b294c04540 qcacld-3.0: Fix possible OOB access
Add check to fix possible out of bound array access

Change-Id: I621441bbdc41ce58f444b221eba086ab2f0b2e5a
CRs-Fixed: 2960525
2021-06-08 13:18:12 -07:00
Pragaspathi Thilagaraj
22019b0a18 qcacld-3.0: Add support to retain WTC params across disconnection
The WTC parameters are stored in MLME vdev private object.
So the parameters are cleared once vdev delete is done.

Move the WTC parameters to psoc->mlme_cfg to retain the
values across disconnections.

Change-Id: Icecfbef19af994f8a05622501d435bfb63beca50
CRs-Fixed: 2959715
2021-06-08 01:08:17 -07:00
Srikanth Marepalli
e4323e039d qcacld-3.0: Enhance the EAPOL handshake offload INI per AKM
Existing INI disable_4way_hs_offload is defined as a boolean
that controls the EAPOL Handshake to be offloaded to Firmware or
Not. There is no way to specify the EAPOL offload per AKM.

Hence extended the support of EAPOL handshake offload to firmware
per AKM by converting this INI to a bitmap integer.
With ini value as 0 by default Firmware takes care of 4-way HS
during roam for all AKMs except for SAE and OWE. If
this ini value is 1 then Host takes care of EAPOL for all AKMs.

Having the backward compatibility, added a new value to ini.
If this ini value is set to 2 and also if the SAE EAPOL offload
service bit is set by Firmware then the behavior is same as ini
with 0 except that Firmware takes care of 4-way HS for SAE roam
as well. And for OWE it is still handled by supplicant.

To achieve this, new roam offload flag is introduced to indicate
Firmware about SAE roam EAPOL offload, So that in Roam sync
indication Firmware will inform the status as connected but not
authenticated so that supplicant can take care of 4-way EAPOL HS.

Change-Id: I8b65a1768fad91fac7e427712d3ccf4586176f5f
CRs-Fixed: 2955029
2021-06-07 22:54:32 -07:00
Huashan Qu
4827a8421e qcacld-3.0: Fix some LFR2.0 issues for connection manager path
Fix some LFR2.0 issues for connection manager path as below:
1: Add ptr null pointer and len check before access
rsp->connect_ies.bcn_probe_rsp.
2: Remove aged AP threshold check so that roam process can find
candidate AP with more probability.
3: Set cm_ctx->vdev to cmd_info.vdev in
cm_remove_preauth_cmd_from_serialization().
4: Add more debug logs for preauth part.

Change-Id: I4b0766bba40e3ebc3d01bdd4ae59aec1ec3a21d9
CRs-Fixed: 2961151
2021-06-03 22:16:28 -07:00