Commit Graph

134 Commits

Author SHA1 Message Date
Abhishek Singh
39455350a3 qcacld-3.0: Add self reassoc and Hw mode change logic for LFR2
Add self reassoc and Hw mode change logic for LFR2.

Change-Id: I2c48f0d36d541df58b6d6c2448bfe526b60df142
CRs-Fixed: 2941794
2021-05-10 14:47:48 -07:00
Amruta Kulkarni
7c43640fdc qcacld-3.0: Allocate separate memory for set pmksa
In roam sync handling, pmksa memory is freed right after
set pmka entry is updated in crypto priv params instead
allocate separate buffer for crypto.

Change-Id: I337efcb29d2233b016f93cae7f4f23d3203786a6
CRs-Fixed: 2931162
2021-05-06 16:56:35 -07:00
Utkarsh Bhatnagar
cd22a0f327 qcacld-3.0: Add Reassoc req handling code for connection manager
Add Reassoc req handling code for connection manager.

Change-Id: I2735642df3132738993e801acdb6c9dcba1ac80f
CRs-Fixed: 2939872
2021-05-06 13:49:44 -07:00
lihual
5a8e94dad0 qcacld-3.0: Restart roam for LFR2 when there is no candidate
When the AP channel is changed, fw reports a suitable AP.
But it's skipped by host as it has same bssid as the one
currently associated. The same process repeats continually,
which result in fail to reconnect with the AP. To avoid this,
send BMISS indication to upper layer and restart roam.

Change-Id: Idfcb69f81ce72a4ab7ef0c105f3af40cb92c53d5
CRs-Fixed: 2913663
2021-05-06 03:31:00 -07:00
abhinav kumar
17a2fc170b qcacld-3.0: Update pmk cache entry for roamed AP
Consider two APs: AP1, AP2

Both APs configured with EAP 802.1x security mode
and OKC is enabled in both APs by default. Initially
DUT successfully associated with AP1, and generated
PMK1 by performing full EAP and added an entry for AP1
in pmk table. At this stage, pmk table has only one
entry for PMK1 (1. AP1-->PMK1).

Now DUT roams to AP2 using PMK1 (as OKC is enabled)
but session timeout happens on AP2 just before 4 way
handshake completion in FW. At this point of time DUT not
in authenticated state. Due to this DUT performs full EAP
with AP2 and generates PMK2. As there is no previous
entry of AP2 (AP2-->PMK1) in pmk table. When host gets
pmk delete command for BSSID of AP2, the BSSID match
fails. Hence host will not delete pmk entry of AP1 as well.

At this point of time, the PMK table has two entry
1. AP1-->PMK1 and 2. AP2 --> PMK2.

Ideally, if OKC is enabled then whenever timeout occurs in
a mobility domain, then the driver should clear all APs
cache entries related to that domain but as the BSSID
doesn't exist yet in the driver cache there is no way of
clearing the cache entries, without disturbing the legacy
roaming. Now security profile for both APs changed to FT-RSN.
DUT first disassociate with AP2 and successfully associated
with AP2 and perform full EAP and generates PMK3. DUT first
deletes PMK entry for AP2 and then adds a new entry for AP2.

At this point of time pmk table has two entry AP2--> PMK3
and AP1-->PMK1. Now DUT roamed to AP1 using
PMK3 but sends stale entry of AP1 (PMK1) to fw via RSO
command. This override PMK for both APs with PMK1
(as FW uses mlme session PMK for both APs in case of FT
roaming) and next time when FW try to roam to AP2 using
PMK1, AP2 rejects PMK1 (As AP2 is expecting PMK3) and
initiates full EAP with AP2, which is wrong.

Fix is to update pmk table entry for roamed AP1 with PMK3 value
comes to host via roam sync indication event.. By this host
override stale entry (if any) with the latest valid pmk for
that AP at a point of time.

Also add new api to get the sae single pmk ini value and
update the bss desc of single_pmk cap after intersecting the ini
value.

Change-Id: I12fecbae69d0d2a11f2a39eee6be960752d831bd
CRs-Fixed: 2889847
2021-05-03 15:03:10 -07:00
abhinav kumar
9ca87d9490 qcacld-3.0: Address corner scenarios for dual sta roaming
Address below corner scenarios for dual sta roaming:

1. Initialize primary interface vdev id
with WLAN_UMAC_VDEV_ID_MAX.

2. Enable roaming while processing set primary interface
vendor command irrespective of dual sta roam policy.

3. Disable mcc_adaptive_scheduler before sending
WMI_RESMGR_ADAPTIVE_OCS_ENABLE_DISABLE_CMDID to FW and
enable it if host receives dual sta policy as unbiased.

Change-Id: I8e5254c6f9053bd5fe7f925af4b577e76c9b9a2e
CRs-Fixed: 2928870
2021-04-26 10:01:30 -07:00
abhinav kumar
18dc7adec9 qcacld-3.0: Dont allow roaming on non primary STA iface
Presently the roaming design is to support roaming on
both the STA in DBS mode (with different bands).

With commit I60f6bdb7df4d9eece4fd14abe1fab2d5644d47f1,
Driver allow STA2 connection to any available AP(s).

So in case if STA2 connectes in MCC mode then host
should not allow roaming on non primary STA iface.

Change-Id: I84c77644c6023322ac77e307b06be70ec0f58ed5
CRs-Fixed: 2928804
2021-04-26 10:01:24 -07:00
abhinav kumar
09474f3886 qcacld-3.0: Don’t consider pcl weightage for STA conn
If there is more than one STA iface concurrently active
and one of them is marked as a primary iface. The host
received CONCURRENT_DUAL_STA_POLICY vendor command with
policy PREFER_PRIMARY. Then Don’t consider PCL weightage
for an STA connection. Due to this host/fw allows a new
connection either in DBS, SCC or in MCC.

Change-Id: I400165f8dd3ab7b94b2cb808f8b34b34d6d42fee
CRs-Fixed: 2929015
2021-04-26 10:01:08 -07:00
Utkarsh Bhatnagar
955173c481 qcacld-3.0: Fix few roaming issue for wake lock and scan
Reset scan reject params on roam abort and also if connect
lead to roam invoke release the wake lock as we do in legacy
case, if required roam invoke can use new wake lock.

Change-Id: Ieb870e2598687a1418e896d761f19a198a03a98f
CRs-Fixed: 2929311
2021-04-23 04:35:53 -07:00
Bapiraju Alla
feddfb47cb qcacld-3.0: Add missing implementation for 11be association
Currently below implementation is missing in the driver. So driver
is failing to associate in 11be. Add this implementation to support
11be association in the driver
  - Filling EHT IEs in probe response
  - Sending EHT mcs capabilities while creating the peer
  - Fix compilation issues when 11BE feature is enabled
  - Add the the 320MHZ to wma_chan_phy_mode

Change-Id: Ib535db413d5578840feed7fd18bb00e5e28cfb6f
CRs-Fixed: 2926471
2021-04-23 04:35:43 -07:00
abhinav kumar
0cf80481e1 qcacld-3.0: Allow STA2 connection to any available AP(s)
Currently, the driver restricts the connection of the 2nd
STA to channels on the other band of the 1st STA connected
band. As per the new requirement, the host should allow STA2
connection to any available AP(s), if primary iface is
configured.

Change-Id: I60f6bdb7df4d9eece4fd14abe1fab2d5644d47f1
CRs-Fixed: 2915733
2021-04-22 21:59:13 -07:00
Utkarsh Bhatnagar
d6fc151325 qcacld-3.0: clear pmkid cache when ap off
Add logic similar to I5d8ec9e9d4f8a44178b113d370799fe2bc0373fb
in connection manager to flush PMID on HB failure.

Change-Id: Id87b5774a18a377719c56d3f34dc31284f0a39a3
CRs-Fixed: 2928282
2021-04-21 11:03:35 -07:00
Amruta Kulkarni
d32aa6c182 qcacld-3.0: Add ssid info during roam sync
During roam sync add ssid infoemation in connect response structure.

Change-Id: I00c03305ddbfcf03397ad5e27fa3d5e52acdbb90
CRs-Fixed: 2919735
2021-04-13 11:52:15 -07:00
Abhishek Singh
e948157697 qcacld-3.0: Fix the PMK sent for 11r
As part of I418be56d452389a9f7b8d48e28f793567e81767a due to copy
paste error in cm_roam_scan_offload_fill_lfr3_config the pmk was
copied to rso_11i_info instead of rso_11r_info.

Fix this by copying pmk to rso_11r_info.

Change-Id: If4d1ea23ab4b4c43db3fac78fbfd43ad74a7e1b4
CRs-Fixed: 2920206
2021-04-09 20:50:27 -07:00
Pragaspathi Thilagaraj
1d6fac590c qcacld-3.0: Clear TWT context on receiving roam synch indication
The userspace doesn't expect TWT teardown or notify events after
roaming. So to clear the driver internal TWT context, for old
peer, call the mlme_init_twt_context() on roam synch complete.

Change-Id: If1e4fe2d79561885052caf8d5231d1c943f10c96
CRs-Fixed: 2912872
2021-04-07 19:28:59 -07:00
Will Huang
4d62bb1bc2 qcacld-3.0: Fix roaming/disconnect not sync issue
Change I588a56f4c96d137d3283b2dc57274de069ecb4ab changed
wlan_cm_abort_rso() return status from BUSY to FAILURE when roaming
in progress, it caused disconnect command not wait for roaming
complete/abort, and lead to abnormal data access.

Change-Id: I16004b006283c05ed94fb3ca4bc0e9376485aca7
CRs-Fixed: 2910443
2021-04-07 01:21:54 -07:00
Utkarsh Bhatnagar
f469d5b928 qcacld-3.0: Add connection record info in connection manager code
Add connection record info in connection manager code.

Change-Id: Idf61755eeaad5990223895b66487a08fc69bdfc3
CRs-Fixed: 2913983
2021-04-01 11:00:56 -07:00
Amruta Kulkarni
07ff785c3e qcacld-3.0: Fix param passed to sme_qos_csr_event and cm_remove_cmd
Fix to pass assoc_info instead of address of assoc_info
to sme_qos_csr_event_ind() and cm_remove_cmd()

Change-Id: I9f6c12870954c42f2b1e6250e7547c45a593cae8
CRs-Fixed: 2911027
2021-03-30 22:54:57 -07:00
Amruta Kulkarni
6c678097a0 qcacld-3.0: Support roam ho fail and roam invoke fail ind in CM
Add change to support roam ho fail and roam invoke fail
indication in connection manager.

Change-Id: I8e4fed2ca4b9c6e95da86b0c37e39da8f2bc4953
CRs-Fixed: 2906319
2021-03-25 22:23:16 -07:00
gaurank kathpalia
b8c690744f qcacld-3.0: Change the cm ext init function to pass ext ptr
Change the cm ext init function to pass ext ptr.

Change-Id: I6c40bb54b96b94bec66d161ae924cd723720357d
CRs-Fixed: 2907938
2021-03-25 09:43:54 -07:00
Amruta Kulkarni
15ac4a4e5a qcacld-3.0: Support roam sync indication in CM
Add change to support roam synch indication
in connection manager.

Change-Id: I06b23ae085a5a86caf4fe04fe5929b86d8d5c543
CRs-Fixed: 2901858
2021-03-24 09:47:46 -07:00
Srinivas Dasari
84f2788e50 qcacld-3.0: Wait for RSO stop response only if roaming is enabled
When host driver receives RSO_STOP from userspace, HDD sends the
RSO_STOP down to lower layers and starts a wait for response upon
success status.
Below layers(connection mgr/CSR) ignore the RSO_STOP request and
return success if the current state is not RSO_ENABLED or
IN_PROGRESS. This keeps the HDD waiting for response and a timeout
happens after 2 seconds.
So, wait for RSO stop response only if roaming is in enabled state
to avoid this wait and timeout.

Change-Id: I3ed81c5da26ebe05d17fc37dc43665f1f7b7c8b2
CRs-Fixed: 2901494
2021-03-24 04:33:20 -07:00
Jianmin Zhu
a9e52b12a3 qcacld-3.0: Remove btm cap in SAE assoc req if SAE roaming disabled
Some legacy Helium firmware doesn't support SAE roaming, but btm cap is set
in associate request of DUT, then connected SAE AP thinks DUT supports btm,
AP will send btm request to DUT, DUT triggers roaming, but fails and
disconnects from current AP, users will complain this unexpected
disconnect.

Change-Id: Ife9860addef6898a518618f555158e7888ac74db
CRs-Fixed: 2884694
2021-03-17 20:31:43 -07:00
Bapiraju Alla
e899c9c52d qcacld-3.0: Increase max number of allowed whitelist SSIDs count
Increase MAX allowed number of whitelist SSIDs count to 8

Change-Id: Ic74abeb82876966ce4aedee9f7a4681f17217d63
CRs-Fixed: 2900486
2021-03-17 13:11:12 -07:00
Amruta Kulkarni
604d76d660 qcacld-3.0: Send roam score delta and min rssi params
When "wmi_service_configure_roam_trigger_param_support" service
bit is set populate roam score delta and min rssi parameters
and send via WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID.

Change-Id: I3c7fc56a95c28c43992763be3351d91d9fd44041
CRs-Fixed: 2890148
2021-03-11 16:11:23 -08:00
Utkarsh Bhatnagar
9f9dc3d5ee qcacld-3.0: Cleanup the tCsrRoamConnectedProfile params
Cleanup the tCsrRoamConnectedProfile params

Change-Id: I6c6f9a8888eebc320191c88020a8ec19cd32c998
CRs-Fixed: 2896190
2021-03-10 19:12:16 -08:00
Utkarsh Bhatnagar
9131f1bc48 qcacld-3.0: Move prev ap info under connection manager macro
Move prev ap info and connected bss in connection manager
macro in csr session.

Change-Id: Ie2b8ecdbcf7134f93f908ba596c0398712da7ac8
CRs-Fixed: 2895259
2021-03-09 18:54:33 -08:00
Amruta Kulkarni
33a5b0a35d qcacld-3.0: Support roam start and roam abort request in CM
Add change to support roam start and roam abort request
in connection manager.

Change-Id: Ibc1f2887902e2020c93b2827f8ffa247001cfa5f
CRs-Fixed: 2882221
2021-03-05 10:09:51 -08:00
Utkarsh Bhatnagar
6664a74b45 qcacld-3.0: Fill op and ext rates in LIM
Fill operational and extended rates in LIM
instead of CSR as part of connection manager.

Change-Id: I9197e835703059d61bc67897a9670ff166460318
CRs-Fixed: 2892415
2021-03-05 07:32:00 -08:00
gaurank kathpalia
fac5527d3f qcacld-3.0: Remove join_resp from roam sync structure
Remove join_resp from roam sync structure.

Change-Id: Ifabd9383954394f00afce635c90dc54cc6cb5aa3
CRs-Fixed: 2891728
2021-03-04 11:04:58 -08:00
Amruta Kulkarni
999081053f qcacld-3.0: Add new files for CM roaming
New files added for handling FW based roaming
in connection manager.

Change-Id: Ibb5b74475699719cb901bf067f5d498ad16e0a60
CRs-Fixed: 2864490
2021-03-02 14:22:26 -08:00
gaurank kathpalia
88fddb8238 qcacld-3.0: Handle host roam start req
Handle host roam start req from firmware.

Change-Id: I53455c011e3737c9b4a52d54797e3224b98a628e
CRs-Fixed: 2888383
2021-03-01 09:09:20 -08:00
gaurank kathpalia
758f6c8bc3 qcacld-3.0: Refactor the roaming code
Refactor the roaming code by moving to component.

Change-Id: I566967482ec3eb0d15d3ff357855b58b9579d3cf
CRs-Fixed: 2887126
2021-02-26 11:50:20 -08:00
gaurank kathpalia
006888171e qcacld-3.0: Move ESE channel list code to connection manager
Move ESE channel list code to connection manager.

Change-Id: I885ba96eaff435a8f3f4366d6d201e6f2d648e6e
CRs-fixed: 2885327
2021-02-25 01:48:47 -08:00
CNSS_WLAN Service
fe9ccbca6d Merge "qcacld-3.0: Move LFR2 code under connection manager flag" into wlan-cld3.driver.lnx.2.0 2021-02-22 22:28:35 -08:00
gaurank kathpalia
dd6f134f2d qcacld-3.0: Move LFR2 code under connection manager flag
Move LFR2 code under connection manager flag.

Change-Id: Ic82817a3265af0342cf317ec4f9f086f1a70bef0
CRs-fixed: 2883189
2021-02-22 19:55:21 +05:30
gaurank kathpalia
a06175edf3 qcacld-3.0: Add roaming support in hdd for conenction manager
Add roaming support in hdd for conenction manager.

Change-Id: Id93e3411ab8dedca89768042b5fc96b318447846
CRs-fixed: 2881820
2021-02-19 13:44:53 -08:00
gaurank kathpalia
0e06319d7e qcacld-3.0: Refactor connection manager connect code
Refactor connection manager connect code.

Change-Id: I34379170595637159ba13970fec8b9bff3620cc3
CRs-Fixed: 2880933
2021-02-18 23:58:14 -08:00
Pragaspathi Thilagaraj
1cbfd5f909 qcacld-3.0: Update ciphers in RSO command from crypto component
Currently driver fills unicast, multicast & auth mode values from
csr session which is not updated after roaming to AP with different
security profile. This causes incorrect values in AP profile command.
Send correct authmode/unicast and multicast ciphers in AP profile
command to firmware.

Also modify the below 2 ini default values as:
candidate_min_rssi_for_beacon_miss=-75
candidate_min_rssi_for_disconnect=-75

Change-Id: I33cc9f516447071e977768f01738eea7a2ecd99c
CRs-Fixed: 2879943
2021-02-18 12:06:47 -08:00
gaurank kathpalia
404eabd9ab qcacld-3.0: Move Sta specific code under connection manager macro
Move Sta specific code under connection manager macro.

Change-Id: I37e0c382aa9b8403647f12feb39bbfc1201515c6
CRs-Fixed: 2880716
2021-02-18 10:01:28 -08:00
Amruta Kulkarni
e4df806aa6 qcacld-3.0: Support roam invoke request in connection manager
Add change to support roam invoke request in connection manager

Change-Id: I87bd39263c7c210fa87250aca59ef5f2f89d4c67
CRs-Fixed: 2869211
2021-02-18 03:12:04 -08:00
abhinav kumar
76bae47f3e qcacld-3.0: Cache roam related states for the vdev
Cache roam_fail_reason, roam_invoke_fail_reason and
roam_trigger_reason in mlme value for the vdev.
Host sends these values to userspace via a vendor
command after disconnection.

Change-Id: Ief7d027f69b0449254de3615b39829f346589095
CRs-Fixed: 2877230
2021-02-16 19:15:51 -08:00
Pragaspathi Thilagaraj
9d61fc3d0e qcacld-3.0: Add support for SAE single pmk validity
Currently when SAE single pmk lifetime expires, the userspace
issues disconnect. To avoid this, on reaching a threshold value
of the total pmk lifetime, the firmware will clear the single
PMK and initiate a roam scan to perform full SAE and derive
new pmk.

Add changes to:
1. Send the remaining single pmk timeout value in seconds to
firmware.
this is calculated as the diffence in pmk timeout configured by
userspace and the time passed after set_pmksa was done (which is
system timestamp between the set_pmksa timestamp and timestamp at
which RSO command is filled).
2. Add internal roam trigger for SPMK timeout trigger.
3. Set the roam score delta value as 0 for SPMK timeout roam
trigger.

Change-Id: I62c2ddbbfeb2811a4342d41f2bdaa8d988568bcc
CRs-Fixed: 2869665
2021-02-15 06:21:11 -08:00
gaurank kathpalia
5c1b42944d qcacld-3.0: Fix compilation issue in connection manager
Fix compilation issue in connection manager.

Change-Id: Ib46a0b45facf0552723d1ab9400444b7fdb7a08e
CRs-fixed: 2876303
2021-02-12 14:40:00 -08:00
Abhishek Ambure
780908d5be qcacld-3.0: Move wait for key timer to mlme priv vdev
Move wait for key timer logic to mlme priv vdev. Thus host handles
wait for key per vdev.

Change-Id: Idfc7e7e17ec631a0a364c75b1bac992f1a4d1872
CRs-Fixed: 2870707
2021-02-10 10:11:25 -08:00
gaurank kathpalia
54195d40bd qcacld-3.0: Avoid calling disconnect API while holding sme lock
Add RSO lock and use it to send RSO commands. Also
avoid calling the cm_disconnect API while holding
SME global lock to avoid race.

Change-Id: I588a56f4c96d137d3283b2dc57274de069ecb4ab
CRs-Fixed: 2870603
2021-02-04 20:07:33 -08:00
gaurank kathpalia
2fb03473aa qcacld-3.0: Use is wps/osen from the connect req/rsp
Use is wps/osen from the connect req/rsp, instead of parsing
the assoc ie and deciding the value.

Change-Id: I628c8aab22d1e842219b8d38fd025299d91cc68f
CRs-Fixed: 2868657
2021-02-02 15:17:37 -08:00
gaurank kathpalia
c29ed658d3 qcacld-3.0: Add supported channels, 11r, ESE etc. to LIM
Add csr join req params in LIM and fill them
accordingly.

Change-Id: Iea26867168b4e211a42e501c2aa36bebec1808e6
CRs-Fixed: 2867376
2021-02-01 15:29:58 -08:00
gaurank kathpalia
c13a047628 qcacld-3.0: Fix FILS auth failure in connection manager
Fix FILS auth failure in connection manager.

Change-Id: I727d374a820375110723a081cd3a27828e92ba66
CRs-Fixed: 2865370
2021-01-28 13:47:42 -08:00
gaurank kathpalia
ca5b8c897c qcacld-3.0: Add diag events for disconnect and connect complete
Add diag events for disconnect and connect complete for connection
manager.

Change-Id: I71cd968dd14e26cab9178c5bab892520b8d8af8c
CRs-Fixed: 2864507
2021-01-28 13:47:37 -08:00