Commit Graph

373 Commits

Author SHA1 Message Date
VIJAY RAJ
ebe3c21573 qcacld-3.0: Enable full scan logging in cm_roam_scan_info_event
In the api cm_roam_scan_info_event(), only for partial
roam scan the frequencies are logged in logcat. For full scan,
the expectation is to print the frequency count as the number
of characters for scanning all frequencies exceed 255.

Enable Roam full scan logging in api cm_roam_scan_info_event()

Change-Id: Ib644a4e8d85e434e8b826c7656cda1251134c4fa
CRs-Fixed: 3131791
2022-03-20 07:24:25 -07:00
CNSS_WLAN Service
7e61f523c5 Merge changes I75556848,Ib1695962,If033fdb2 into wlan-cld3.driver.lnx.2.0
* changes:
  Release 5.2.1.14G
  qcacld-3.0: Send BMISS disconnection event after roam result event
  Release 5.2.1.14F
2022-03-18 07:50:46 -07:00
Pragaspathi Thilagaraj
54fee51319 qcacld-3.0: Send BMISS disconnection event after roam result event
Currently the beacon miss disconnection is sent when host
wlan driver triggers disconnect and roam result is printed
after the roam stats event is received. Since roam
stats event is received after host triggers disconnect,
the order of prints is BMISS_DISCONN -> ROAM SCAN ->
ROAM_SCAN_DONE-> ROAM_RESULT.

But the expected order is ROAM_SCAN->ROAM_SCAN_DONE->ROAM_RESULT
->BMISS_DISCONN.
So send beacon miss disconnection event after roam result.

Change-Id: Ib1695962bc1613fa4101cebf28b188db42fb5ab5
CRs-Fixed: 3152370
2022-03-17 11:18:48 -07:00
abhinav kumar
4e2cc50408 qcacld-3.0: Send kernel time to userspace
Send kernel timestamp to userspace via a
new vendor attribute
QCA_WLAN_VENDOR_ATTR_DIAG_KERNEL_TIMESTAMP.

Change-Id: I085a1f140b5036895249723f6a5b34b18d9aa574
CRs-Fixed: 3146742
2022-03-16 19:33:46 -07:00
Deeksha Gupta
620ca069f1 qcacld-3.0: Add support for allowed_authmode
Currently, STA doesn't support roam between WPA2 to WPA3
security or vice versa. To support this feature, host sends
list of allowed_authmode. So that Firmware will check and
roam on those authmode.

Fix, add support for allowed_authmode list in ap_profile.

Change-Id: I438a133a434ea12ec34680997ace358fd4910028
CRs-Fixed: 3113219
2022-03-15 19:16:43 -07:00
Deeksha Gupta
5a5a3deb12 qcacld-3.0: Add support for security scoring
Add support for security score. On the basis of score,
host will select AP for initial connection and roaming.

Change-Id: I041a1b0c1456d7f01dd07e9b282996c56755655e
CRs-Fixed: 3113213
2022-03-14 10:10:56 -07:00
chunquan
03c551de67 qcacld-3.0: Rename files with blacklist/whitelist
Rename files with blacklist/whitelist to denylist/whitelist.
Rename files with blm to dlm.

Change-Id: Ief7ce0a797f74460c9708f8d2dd440412af5b7eb
CRs-Fixed: 3099864
2022-03-14 08:50:05 -07:00
Deeksha Gupta
777ebf8d3a qcacld-3.0: Handle status code for TWT Notify event
Handle status code for TWT Notify event

Change-Id: Icc802a19eaac3ccd92dc6447ed0f797ea43ff454
CRs-Fixed: 3138650
2022-03-14 07:28:18 -07:00
Pragaspathi Thilagaraj
4648e9fece qcacld-3.0: Fix ROAM/NO_ROAM print conditions
As part of the Roam candidate result logging, the
driver prints ROAM if reassociation is successful and
NO_ROAM if candidate is found and roaming is successful.
But the expectation is to print ROAM even if candidate
is found and roaming has failed.

Change the logic to print ROAM/NO_ROAM based on below condition:
1. Roam result successful -> ROAM
2. Roam result failure && candidate is found -> ROAM
3. ROam result failure && candidate is not found -> NO_ROAM

Fix the authentication/association missing frame print
in the roam logging, also cleanup the unused API's.

Change-Id: I43e0cea007890f4796b421b0a42cc71b8ca1a600
CRs-Fixed: 3146630
2022-03-11 09:16:12 -08:00
Pragaspathi Thilagaraj
f1dd1a7be4 qcacld-3.0: Fix BTM response ordering in connectivity logs
Currently for WTC BTM roam trigger, below order is followed:
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]

But expected order is:
[22:22:51.127129][BTM] WTC reason_code=6 [vdev_id=0
fw_time=00:53:58.350672]
[22:22:51.127105][BTM] RESP token=1 status=1 delay=0 [vdev_id=0
fw_time=00:53:58.350672]

Fix this order issue and also ignore the BTM response TLV if
timestamp is 0.

Change-Id: I21fe268a3e3ea065482c1c2938d03b844cd387ea
CRs-Fixed: 3143297
2022-03-10 19:23:52 -08:00
Amruta Kulkarni
6b446b0074 qcacld-3.0: Add checks in mlo api's
- Pass appropriate length size in lim_send_mlo_caps_ie().
- Initialize ml ie reserved bits to 0.
- Add null check in mlo_cm_roam_sync_cb() and
lim_mlo_roam_delete_link_peer().

Change-Id: I70abcca14f29b4a417ae8ca3dda840bbef0de6a0
CRs-Fixed: 3126553
2022-03-08 23:59:10 -08:00
Pragaspathi Thilagaraj
0ca74f6926 qcacld-3.0: Fix cu load/current rssi/rssi threshold invalid values
Driver fetches CU load/current rssi/rssi threshold values from
wmi_roam_trigger_reason TLV.
But the values are applicable only for below roam triggers:
wmi_roam_trigger_reason->cu_load : BSS LOAD trigger
wmi_roam_trigger_reason->current_ap_rssi: Low RSSI trigger/
Periodic scan
wmi_roam_trigger_reason->rssi_threshold: Low Rssi/Periodic
scan trigger

So based on agreement with target, use the values from
wmi_roam_ap_info TLV of the current connected AP
irrespective of the roam trigger.

Change-Id: Iaf204198778c1912f77a625154dd63756b1d23e5
CRs-Fixed: 3128803
2022-03-08 05:37:35 -08:00
Liangwei Dong
a92b03d325 qcacld-3.0: Check vdev and sync_ind ptr before access
Add NULL check for vdev in hdd_stop_sap_set_tx_power and
sync_ind NULL check in cm_roam_sync_event_handler.

Change-Id: I1a760cdd17975403f48b75459ecb5ea9ac3e9d77
CRs-Fixed: 3144140
2022-03-07 02:16:32 -08:00
abhinav kumar
bbfffd169c qcacld-3.0: Handle HI-RSSI scan trigger in 2Ghz connection
The issue is: If STA is connected to a 2.4Gh AP with such a
high RSSI (say around -30dBm) then STA immediately triggers
a high RSSI roam scan.

As per the current design, when connected AP's RSSI is better
than the (gNeighborLookupThreshold - gRoamScanHiRssiDelta),
STA should not trigger HI-RSSI roam scan.

Here default value of INI "gNeighborLookupThreshold" is 78 and
default value of INI: "gRoamScanHiRssiDelta" is 10.

Fix is to allow HI-RSSI roam trigger only if AP RSSI is worse
than gNeighborLookupThreshold - gRoamScanHiRssiDelta.

Change-Id: I7a0d2302a71656b5238bfeea8c2a6ebcd3716ab9
CRs-Fixed: 3128235
2022-03-06 05:04:39 -08:00
chunquan
f07969a044 qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Replace blacklist/whitelist with denylist/allowlist in
qcacld3.0. and replace blm with dlm.

Change-Id: I9ba61dde3b3ea008ca3777448d1f8dab83d33ec1
CRs-Fixed: 3091211
2022-03-05 07:10:49 -08:00
Srinivas Dasari
795af8a246 qcacld-3.0: Fetch MLO disconnecting vdev from RSO stop rsp ctx
Host maintains RSO state machine only for assoc vdev as it's
good enough to have only one state machine. Thus host sends RSO
stop request to firmware on assoc vdev though actual disconnect
started on link vdev. Firmware also sends response on the
same vdev. But disconnect has to be resumed for link vdev as
it's paused and waiting for RSO stop response. So, fetch link
vdev from assoc vdev and continue disconnect.

Change-Id: Ib2bc2610a03ba94408d6241d48756872c5ee2ad6
CRs-Fixed: 3135907
2022-03-04 21:05:28 -08:00
Amruta Kulkarni
4a6149f832 qcacld-3.0: Add check for MLO roaming api's
On 11be MLO disabled platforms,
- Add checks in mlo roaming api's for to avoid NULL access.
- Add empty inline function definiations to be used
when 11be MLO flag disabled.

Change-Id: Idc906164279e74530dcf8bdc670464be8ce8c57e
CRs-Fixed: 3141792
2022-03-02 17:33:13 -08:00
Deeksha Gupta
c73d3bfa93 qcacld-3.0: Avoid resetting twt_command_in_progress twice
In TWT component, avoid resetting twt_command_in_progress
twice in case of twt setup response.

Change-Id: I13f46530616bb9608208205051aba91bed7f0dda
CRs-Fixed: 3138102
2022-02-28 07:53:05 -08:00
Pragaspathi Thilagaraj
f9064a2c65 qcacld-3.0: Change the order of BTM req print
Currently roam scan print comes after BTM request print
in connectivity logging. The ideal order is BTM req print
followed by roam scan start.

Change the order of BTM request before scan start.

Change-Id: I63a8e67a43dbd70ed44eb8f18fd979557bf764d2
CRs-Fixed: 3138450
2022-02-25 18:11:29 -08:00
Qun Zhang
eed1953b12 qcacld-3.0: Update LFR2 self reassoc failure processing
Update LFR2 self reassoc failure processing:
1. remove lim_send_switch_chnl_params() from
lim_restore_pre_reassoc_state() when self reassoc failure
to avoid this race condition: one one hand host let FW do
restart, and on the other hand VDEV sm transition to stop
state. Otherwise VDEV sm cannot handle EV_START_RESP event
correcly.
2. register .mlme_vdev_sta_disconn_start callback with
cleanupTrigger eLIM_HOST_DISASSOC.
3. when self reassoc fail, notify reassoc failure reason
to CM SM so that CM SM can trigger CM_DISCONNECT_REQ, then
invoke .mlme_vdev_sta_disconn_start doing cleanup action.

Change-Id: Icb68202e9f72fcbe3e0e4d3e9006a65a73123692
CRs-Fixed: 3109987
2022-02-23 08:36:31 -08:00
Pragaspathi Thilagaraj
2a2b1d00c1 qcacld-3.0: Fix logging level for prints during roaming
Change the logging level of prints that occur during roaming
happens.

Change-Id: I54706d93a30441e48a0e3cb03d7373d2e5b50fee
CRs-Fixed: 3133890
2022-02-20 02:49:00 -08:00
Srinivas Dasari
db3c1a98e5 qcacld-3.0: Wait for RSO stop response from firmware
Firmware doesn't expect any vdev commands from host while RSO stop
is happening. It sends a response to the RSO_STOP command once
it's done with cleanup. Host needs to run a timer after sending
RSO stop command to firmware and wait for a maximum of 6 seconds
for the response. Host can stop the timer and allow the commands
to firmware in the below cases,
1. RSO_STOP response with success status
2. RSO_STOP response with HO_FAIL status followed by
   HO_FAIL event: Host needs to wait till HO_FAIL event is received

If firmware doesn't send any response in the 6 seconds wait, issue
a recovery to help to check the firmware state.

Also, set WMI_ROAM_SCAN_MODE_FLAG_REPORT_STATUS always when MLO is
supported while sending RSO_STOP to firmware. It's sent only
in case of wpa_supplicant disabled roaming currently.

Change-Id: I8182e60beb9288dba23cc72e978dc781c8ab1707
CRs-Fixed: 3106023
2022-02-18 23:21:06 -08:00
Amruta Kulkarni
921ba7c9f4 qcacld-3.0: Handling for RSO STOP with MLO
During mlo disconnect link vdev disconnect is processed
before assoc vdev.FW expects RSO stop before vdev stop/down
on any vdev.Changes made to handle sending RSO stop on assoc
vdev during disconnect.

Change-Id: I727cedffa4a11f991fd38aa8253c2176271f7b89
CRs-Fixed: 3126419
2022-02-11 02:57:15 -08:00
Srinivas Girigowda
7ea8a92863 qcacld-3.0: Add support for TWT Get_traffic_stats
Add support for TWT Get_traffic_stats command in TWT component.

Change-Id: I927ce90e1dd6b5cc047d99fcd7b54a16a34ca4ed
CRs-Fixed: 3085887
2022-02-11 00:23:23 -08:00
Srinivas Girigowda
22c05ef081 qcacld-3.0: Add support for TWT get_status
In TWT component, add support for TWT get_status command
i.e when host wants to query current status of TWT sessions.

Change-Id: Ib43009e5f6a90c589db25f78e1ca43563f2950fe
CRs-Fixed: 3085483
2022-02-11 00:23:14 -08:00
Srinivas Girigowda
8d529074a0 qcacld-3.0: Add TWT nudge support to componentization
In TWT component, add support for TWT nudge command
i.e when host wants to suspend the TWT session.

Change-Id: I176fdaf0f2ccc2d0656f9108484fc80b409268ef
CRs-Fixed: 3085999
2022-02-11 00:23:05 -08:00
Srinivas Girigowda
82b323d139 qcacld-3.0: Add TWT resume support to componentization
Add TWT resume support to componentization.

Change-Id: I3e6d81591e9a7739050445e4a67d81626febf68f
CRs-Fixed: 3085995
2022-02-11 00:22:55 -08:00
Srinivas Girigowda
0142156257 qcacld-3.0: Add TWT pause support to componentization
In TWT component, add support for TWT pause command
i.e when host wants to suspend the TWT session.

Change-Id: I8a60bb40fe9d37121d700f246b91e3211af66189
CRs-Fixed: 3085990
2022-02-11 00:22:45 -08:00
Srinivas Girigowda
d7e3efed33 qcacld-3.0: Add support for get twt capabilities
Add support for get twt capabilities.

Change-Id: I5ac2ac597b92fd683afe97604b4e7dcda518ec39
CRs-Fixed: 3085572
2022-02-11 00:22:35 -08:00
Srinivas Girigowda
297fb98ed9 qcacld-3.0: Add SAP twt teardown support to componentization
Add SAP twt teardown support to componentization.
i.e to terminate the TWT session.

Change-Id: Idc12c564f3fb078aee4ff11831008d06876047e6
CRs-Fixed: 3085562
2022-02-11 00:22:27 -08:00
Srinivas Girigowda
b4132f35eb qcacld-3.0: Add support for TWT concurrency
Add support for TWT concurrency.

Change-Id: I859c5764a6828e60554978104fd747ec5ac2a058
CRs-Fixed: 3085555
2022-02-11 00:22:12 -08:00
Srinivas Girigowda
96132d1c52 qcacld-3.0: Add TWT notify support to componentization
Add TWT notify support to componentization.

Change-Id: I44afb4a0d045916e9ca0f29924330de3a5d95859
CRs-Fixed: 3085549
2022-02-11 00:22:05 -08:00
Srinivas Girigowda
fa14a0ad6b qcacld-3.0: Add TWT sta teardown support to componentization
Add TWT sta teardown support to componentization.

Change-Id: I5a0f05105aad1aa92257af47f50913ae1e61730a
CRs-Fixed: 3085543
2022-02-11 00:21:58 -08:00
Srinivas Girigowda
5fd6f2b7d8 qcacld-3.0: Add TWT setup support to componentization
Add TWT setup support to TWT componentization
i.e to setup TWT session.

Change-Id: Ic79be278b264634d1d54759950167547d0daf1ef
CRs-Fixed: 3085483
2022-02-11 00:21:51 -08:00
Srinivas Girigowda
0737e8caec qcacld-3.0: TWT cfg params initialization
Initialize TWT psoc cfg params with the cfg.ini values.

Change-Id: I326239d4f3f146113871fb3700fa82260988d697
CRs-Fixed: 3085507
2022-02-11 00:21:22 -08:00
Srinivas Girigowda
38fe8b7acb qcacld-3.0: umac: Add TWT componentization public structs and files
Add TWT componentization public structs, files and skeleton code
i.e add new dispatcher APIs, target_if callbacks.

Change-Id: I21fd6f5c3e92f8ea725771c20cd6dfdb560b2bf3
CRs-Fixed: 3085430
2022-02-11 00:20:54 -08:00
Krupali Dhanvijay
aaf60192cf qcacld-3.0: Add support to configure 6G roam scan dwell time
Add ini support to configure 6GHz active and passive
scan dwell time and send this to firmware
to be used for LFR scans via WMI_ROAM_SCAN_MODE.

Based on these values, firmware will use host sent values
else use hardcoded values.

Currently firmware uses hardcoded values to configure 6Ghz
roam scan dwell time. With this change user can configure
it using INI.

Change-Id: I90e79ad59eef7f73faa0b9dfd2d38b65aca12285
CRs-Fixed: 3116861
2022-02-10 07:08:46 -08:00
Srinivas Dasari
d045b6f8d5 qcacld-3.0: Update roam complete to modules only for MLO sta vdev
MLO roam sync happens first for link vdevs and then for sta vdev.
Update roam_sync-complete data to other modules(if_mgr, osif,
TDLS, P2P, firmware,..) only for sta vdev. Skip the same for all
link vdevs.

Change-Id: Ib01c7cd8d9c0bd0e7b4b48914576410aea6baa5c
CRs-Fixed: 3104553
2022-01-31 17:38:47 -08:00
Srinivas Dasari
6d7dd83436 qcacld-3.0: Abort roaming on link as well for MLO
Currently, roaming is not aborted in failure cases on
the link vdev and it's aborted only on primary vdev.
It results in link vdev not being cleaned up when roaming
fails due to some reason.

Change-Id: I0eb4b1da06a295935ff95be38228a5cacf127a73
CRs-Fixed: 3096648
2022-01-31 12:55:06 -08:00
Srinivas Dasari
071e0d2559 qcacld-3.0: Send LINK_DOWN event to CM upon MLO to legacy roaming
Host driver creates two vdev as part of initial connection.
If the connected AP supports MLO, both(sta and link) of the vdevs
would be moved to UP state.
Firmware sends roam sync indication to host when it roams to a
new AP. The event carries new AP info and the new AP could be
legacy AP. If the current AP is MLO and new(roamed) AP is non-MLO
AP, move the link vdev state to INIT as it's in UP state.

Change-Id: Idd9638ea446306b0309e5127f08e3dbc1ec9edc2
CRs-Fixed: 3106038
2022-01-31 12:55:00 -08:00
Amruta Kulkarni
a0d98934c7 qcacld-3.0: Handle more than one ROAM_SYNC_FRAME event
FW can send more than one wmi_roam_sync_frame_event_id before
roam sync event,change done in host code to handle this scenario.

Change-Id: I1ab02ed3e984948b8e57a2f9a2000b9f9493629c
CRs-Fixed: 3116569
2022-01-28 20:53:50 -08:00
Jianmin Zhu
cd9d714bbb qcacld-3.0: Consider connected AP for roaming candidate
If reassoc MAC from user space is broadcast MAC as:
"wpa_cli DRIVER FASTREASSOC ff:ff:ff:ff:ff:ff 0",
user space invoked roaming candidate selection will be based on firmware
score algorithm, current connection will be kept if current AP has highest
score. It is requirement from customer which can avoid ping-pong roaming.

Change-Id: I8de3e2a26a6f346c900157aa823205f849d233f7
CRs-Fixed: 3106276
2022-01-20 15:27:11 -08:00
Amruta Kulkarni
586338bcff qcacld-3.0: MLO roaming handling
CM, PE and WMA changes for mlo roaming
- Roam start and roam sync propogation updates.
- Handling connected link bitmap.
- Link specific assoc response generation
- WMA changes to handle add/remove peer
for mlo roaming scenarios.

Change-Id: I365a26ebb761d93dadd33c9fb8248c28e9eda94b
CRs-Fixed: 3033766
2022-01-19 15:30:15 -08:00
Liangwei Dong
f01e9fec4b qcacld-3.0: Fix hw mode update failure by roam sync event
Update HW mode change tlv information to wma/policy mgr.
Losing the information will cause FW/host out of sync.

Change-Id: I1ba9931d10617664da653e85335fade1352c3600
CRs-Fixed: 3109789
2022-01-19 12:34:56 -08:00
Yu Wang
95310d4c81 qcacld-3.0: handle ML scenario for PCL setting
Handle ML scenario for PCL setting.

Change-Id: Ida632bff8709e2467649d094de4b4074ff0f15d7
CRs-Fixed: 3107517
2022-01-19 05:39:12 -08:00
chunquan
51509a327f qcacld-3.0: Replace blacklist/whitelist for denylist/allowlist
Replace blacklist/whitelist with denylist/allowlist for
blacklist manager component. and replace blm with dlm.

Change-Id: I8dec146d8cb3b61dc891b72bea44704b8ab733fe
CRs-Fixed: 3087575
2022-01-14 03:50:03 -08:00
Amruta Kulkarni
24f04ca536 qcacld-3.0: Add api's to handle MLO Roaming
- New api's added to handle mlo roaming scenarios.
- Read and store link addr from wmi.

Change-Id: I6a18802d27f72235dc69d2eedb05f3e563d1b0f4
CRs-Fixed: 2997105
2022-01-13 01:11:30 -08:00
Amruta Kulkarni
f99679197f qcacld-3.0: Enable RSO for ML connection
For MLO connection, roaming is enabled
after ML link is up.

Change-Id: Ib042a9593bef9f287b92f0b256c942f8133a7f71
CRs-Fixed: 3098637
2022-01-12 01:50:58 -08:00
Jianmin Zhu
07775e1204 qcacld-3.0: Fix memleak for roam_synch_frame_event
When wmi_roam_synch_frame_event receieved from firmware, memory is
malloced to save probe rsp/reassoc req/reassoc rsp once extract event,
when copied to vdev rso_cfg->roam_sync_frame_ind, memory is malloc again,
and original memory isn't freed, memory leak happens.

To fix it, assure memory is only malloced once to save
probe rsp/reassoc req/reassoc rsp when handle wmi_roam_synch_frame_event.

Change-Id: I6b31378bcf624547fca9fd858268252fd22f533d
CRs-Fixed: 3107576
2022-01-11 19:40:45 -08:00
Amruta Kulkarni
fd56223aff qcacld-3.0: MLO roaming RSO changes
For MLO Roaming,
- RSO offload commands will be sent
to FW only on assoc vdev.
- Add new state for link vdev, will be
used only during roam sync.
Link vdev RSO state change : DEINIT -> MLO_ROAM_SYNCH -> DEINIT.

Change-Id: Ifb89e23fc48356ec8f0bc6a045f2dd4d81038076
CRs-Fixed: 3098570
2022-01-10 17:06:47 -08:00