Commit Graph

222 Commits

Author SHA1 Message Date
Jyoti Kumari
25f4f0840f qcacld-3.0: Send PCL list to fw after STA connects in open mode
In open mode, driver sends PCL list to firmware as part of STA
connection completes. To send the PCL list, driver checks whether
active session increases or not. But in current scenario, first
STA connection complete happens and then active session increases
which results no PCL list to firmware.

As part of fix, first increase the active session and then do STA
connection completes so that PCL list will be send to firmware
after successful STA connection in open mode.

Change-Id: Ie920aad7d1d693f04e5b4c13806ec09078ffd8c9
CRs-Fixed: 3042257
2021-09-30 03:09:59 -07:00
Pragaspathi Thilagaraj
7e90b8b5f5 qcacld-3.0: Fix missing attributes in connectivity logging events
Fix few missing attribute in below connectivity events:
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_EAP_RESPONSE
QCA_WLAN_VENDOR_DIAG_EVENT_TYPE_ROAM_SCORE_CURR_AP

Also send the roam candidate info properly to userspace.

Change-Id: Ia9c4f095316adf8f40294f1e119cad648749bb72
CRs-Fixed: 3037650
2021-09-28 21:11:51 -07:00
Bapiraju Alla
b4cc340c47 qcacld-3.0: Update call to get ml partner info as per new api change
As per new API changes, util_scan_get_ml_partner_info is modified to
pass the output pointer to ml partner info structure. Update caller
accordingly

Change-Id: I4da4a52a857eb147fe74f783136da71252e04444
CRs-Fixed: 3043820
2021-09-28 03:43:05 -07:00
Utkarsh Bhatnagar
b133ed84cb qcacld-3.0: Fill Current MAC Frequency Range
During wma_pdev_hw_mode_transition_evt_handler()
get the freq range from mac_freq_mapping[] present in
 wmi_pdev_hw_mode_transition_event_fixed_param and  pass
till policy_mgr_hw_mode_transition_cb() and update
cur_mac_freq_range[MAX_MAC] from it. if no freq range
provided (legacy chipsets) then use
freq_range_caps[MODE_HW_MAX][MAX_MAC] to fill the
range depending on the new HW mode.

Change-Id: I145d48052ce37724b0f697c19a1041f5a908cb54
CRs-Fixed: 3044976
2021-09-27 20:09:50 -07:00
Amruta Kulkarni
9285ff8c5d qcacld-3.0: Send RSO stop in STA + STA roaming
In STA+STA roaming case, when primary interface is changed
and roaming is enabled on other interface rso stop will be sent.
But the roam scan mode is not set to 0.
So add check for primary interface change to reset roam scan mode
before sending RSO stop to FW.

Change-Id: Ia880b58a57b3d9b74f3c4e100d4724aac46b67cd
CRs-Fixed: 3042416
2021-09-26 13:56:37 -07:00
Surya Prakash Sivaraj
75277ed0ab qcacld-3.0: Send SSID in join req for OWE transition mode
STA connection with OWE transition mode SSID fails due to join
failure timeout. Since, it is OWE transition mode, STA needs probe
response for join success.

The scan table entry of the candidate BSSID is sent in the join request.
This entry is used to create session and to send probe request to AP.
In case of OWE transition mode, the beacon carries wildcard SSID.
Therefore, the scan table entry also has wildcard ssid. Also,
during the candidate selection, scm_ignore_ssid_check_for_owe check
allows even entries with wildcard SSIDs to be selected as candiates
for OWE transition mode.

The join request with Wildcard SSID in the scan entry is used by LIM
to create session, as well as to send probe request.Therefore,
the AP doesn't respond to the probe request with wildcard ssid
leading to join failure timeout.

This change adds ssid from connect request to the cm_vdev_join_req,
which can be used by LIM to create session and to send probe request
whenever the SSID in scan entry is wildcard.

Change-Id: I02e19e16f2620b5568fbff82ff29d394ab9ee00d
CRs-Fixed: 3041073
2021-09-24 02:14:10 -07:00
abhinav kumar
9bb838865c qcacld-3.0: Send roam scan info to userspace
Host receives WMI_ROAM_STATS_EVENTID event
from fw whenever roam scan trigger happens.
Send roam scan details and candidate AP details
to userspace.

Change-Id: I92a35d7b15951321107db14ae588d66e82a8174e
CRs-Fixed: 3031391
2021-09-22 03:15:38 -07:00
Pragaspathi Thilagaraj
db383df8c9 qcacld-3.0: Add support to parse roam frame info TLV
Add support to parse roam frame info TLV.
Add changes to send the BTM request logging event.

Change-Id: I24fab5fc0ec204fce74cf822742b5a44b0e7774f
CRs-Fixed: 3013489
2021-09-22 03:15:32 -07:00
abhinav kumar
aff41cb30e qcacld-3.0: Send rso config to fw as per setband
When band is changed from dual-band to single band
(2G only):
1. host need to remove IDLE & BTC trigger bits from
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
2. Send WMI_ROAM_IDLE_CONFIG_CMDID with enable=0

When band is changed from single band (2G only) to
dual-band:
1. host need to add IDLE & BTC trigger bits from
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
2. Send WMI_ROAM_IDLE_CONFIG_CMDID with enable=1
and with default configurations.

To configure the above value in FW, send an RSO
update to FW whenever host receives set band command
from the upper layer.

Change-Id: I5a78deee713ff8514640d1867098e4045b77a231
CRs-Fixed: 3033081
2021-09-20 16:59:23 -07:00
Srinivas Dasari
2640226147 qcacld-3.0: memset reject_ap_info properly before usage
Currently, reject_ap_info is used at many places and memset is
not done before filling it. memset the buffer to avoid reading
garbage values.
Also, modify the current initialization of ap_info in
cm_add_bssid_to_reject_list to memset.

Change-Id: Ic0fabc1733c4ea63dccb2e45b2a2dc37791e594d
CRs-Fixed: 3040299
2021-09-20 16:50:37 +05:30
Srinivas Dasari
f1e2971dd9 qcacld-3.0: Don't repost ROAM event to scheduler thread
Currently, the ROAM event is posted to scheduler thread when it's
received from firmware. This is done to avoid processing the
complete event in IRQ context as the same callback gets called
from IRQ context for WOW events(WOW_REASON_LOW_RSSI and
WOW_REASON_HO_FAIL). Posting the ROAM event to scheduler
thread may introduce some additional delay in processing it back
as there would be a context switch.
If this ROAM event carries ROAM_START which is followed by a
ROAM_SYNC event, there is chance to process the ROAM_SYNC
before ROAM_START as ROAM_SYNC would be processed in the same
context whereas ROAM_START needs a context switch. This results
into an invalid connection manager state after processing
ROAM_START event, which results a connection failure.
Same is applicable for ROAM_PMKID_REQ_EVENT and
ROAM_VDEV_DISCONNECT_EVENT. Avoid reposting the same to scheduler
thread.

Change-Id: Ic4fc1b3baf12e4ceee9a0975ebfee77fb88ab6f0
CRs-Fixed: 3033657
2021-09-19 04:50:33 -07:00
Pragaspathi Thilagaraj
612fe2eca2 qcacld-3.0: Add infrastructure for connect/roam logging
Add new files for connect/roam logging. Add changes to
initialize the logging buffer.
Make changes to support enqueue/dequeue log.
Define enums for MAIN_TAG, Sub TAG, category.
Add structure definitions for logging buffer.

Change-Id: I1d283fcf464da90d4f5533214d480ddda156ec27
CRs-Fixed: 3013486
2021-09-17 13:47:47 -07:00
abhinav kumar
ef572ecce3 qcacld-3.0: Mem leak in wlan_cm_dual_sta_roam_update_connect_channels
Fix possible memory leak while updating dual sta connect channel list
in wlan_cm_dual_sta_roam_update_connect_channels.

Change-Id: I39dc05e485a0f00189978a38fa927a6ec4bd0086
CRs-Fixed: 3035192
2021-09-13 17:03:03 -07:00
abhinav kumar
2041221268 qcacld-3.0: Print allowed channels for the 2nd STA vdev conn
Print channel list which is allowed for connection for the
second STA when dual sta roaming in is enabled in
wlan_cm_dual_sta_roam_update_connect_channels to enhance
debug log.

Change-Id: I4e16f101b60dc9d34d6193adcfe72ec173c5467a
CRs-Fixed: 3000235
2021-09-11 00:45:37 -07:00
abhinav kumar
04389c608d qcacld-3.0: Allow roaming between same OWE profile AP's
Currently, firmware can roam between owe security SSID's
even though open SSID is different for both of the AP's.
This commit adds support to restrict roaming between the
same OWE profile AP's which means if the device needs to
roam then target AP's open SSID and owe SSID should match
with current AP.

Change-Id: Ib59127a90cab9ee6626b018d581edbf76ad89856
CRs-Fixed: 3025667
2021-09-10 22:28:38 -07:00
abhinav kumar
3173789d99 qcacld-3.0: Add new BT Coex roam trigger reason
Send additional roam trigger TLV for BTC in
WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID
command, to support a new roaming trigger
"WMI_ROAM_TRIGGER_REASON_BTC".

Change-Id: Ib767bd6bcf005c187b0fb58986ad287fe8753c1b
CRs-Fixed: 3009788
2021-09-10 20:09:34 -07:00
abhinav kumar
939ba8556a qcacld-3.0: Add BTC as a new roam trigger reason in host
To support BTC roaming, add a definition of BTC roam trigger
reason in ini roam_triggers. It goes to fw via roam_enable
trigger command (WMI_ROAM_ENABLE_DISABLE_TRIGGER_REASON_CMDID)

Change-Id: I231a72ed98a74fb1b5ced12da7c3932af12d485d
CRs-Fixed: 3009787
2021-09-10 20:09:28 -07:00
Liangwei Dong
e059b9f5ec qcacld-3.0: Abort MLME connect timers upon NB disconnect request
When the connect request is pending on MLME and NB disconnect comes,
driver will wait for previous connect finish to process the disconnect
request. This delay the disconnect and may cause framework ANR.
Add code to fire the timeout event of active timers in various MLME
state. This will abort the connect request and get disconnect done fast.

Change-Id: I19cc03108c966c8f1efc0a554dfc59123dfe37f1
CRs-Fixed: 3026311
2021-09-03 08:45:01 -07:00
Pragaspathi Thilagaraj
cf2423e163 qcacld-3.0: Disable PER roam for phymode less than 11NA_HT20
The PER default low rate thresholds configured is 20Mbps. This
will cause PER roam scan always after the 25 secs PER monitor
window since the 11b rates are lower than 20Mbps.

So disable PER roam when the connection/roaming to peer is with
cckm/OFDM rates to avoid frequent roam scans.

Change-Id: Iaae469804547c0f0682b66de3609b5cda4b4b577
CRs-Fixed: 2984973
2021-09-01 11:45:15 -07:00
abhinav kumar
5a8305cdd5 qcacld-3.0: Send roam band value to userspace
OEM-SS sends ROAMBAND attribute via the vendor command
QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET to host to
get current roam band value in the host.

Fix is to process ROAMBAND attribute and send roam band
value to upper layer.

Change-Id: I56b208d00b40d4d3e6d3658d23fa1073f6fe1146
CRs-Fixed: 3009753
2021-08-31 17:03:09 -07:00
abhinav kumar
8d3a1d9e82 qcacld-3.0: Filter roam scan channel list as per roam band
Filter roam scan channel list or frequency list as per the
band received from upper layer via attribute
QCA_WLAN_VENDOR_ATTR_SETBAND_MASK and
QCA_WLAN_VENDOR_ATTR_ROAMBAND_MASK.

Change-Id: I4820bfc487949d8445f215a4779dd671925d001f
CRs-Fixed: 3009758
2021-08-31 17:03:03 -07:00
abhinav kumar
5823512803 qcacld-3.0: Set PCL List as per roam band to fw for connected STA
Whenever host Receives vendor command for SETROAMBAND, Host should
set PCL list as per roam band to fw so that FW can use updated pcl
list for further roaming.

Change-Id: I2f48833801b75f25aaf37ea479867b19477ceecb
CRs-Fixed: 3009751
2021-08-31 14:44:31 -07:00
abhinav kumar
0697018d60 qcacld-3.0: Process the BAND_MASK attribute
Process the BAND_MASK attribute which comes to the
host via the QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET
vendor command. Save the value of this band mask into
the RSO configuration structure.

Change-Id: I57ecc10912a38207ef478b38cf3add3c584dd2f4
CRs-Fixed: 3009749
2021-08-31 14:44:25 -07:00
Bing Sun
7f0fb64100 qcacld-3.0: Fix issue when getting rnr
When getting rnr IE information, instead of getting rnr pointer through
input parameter,  we can just return rnr pointer.

Change-Id: I7215451d34164d40d6404d0a426f1cc30a143e15
CRs-Fixed: 3025191
2021-08-31 12:23:13 -07:00
Liangwei Dong
c5da5facf2 qcacld-3.0: Revert "clear pmkid cache when ap off"
This change removes the "delete pmksa on BMISS" logic in commit
I5d8ec9e9d4f8a44178b113d370799fe2bc0373fb.
Will handle the issue in new commit by OUI checking of AP.

Change-Id: I871999f8c473afdc75b774210044fc059fcd07b0
CRs-Fixed: 3021068
2021-08-31 12:23:08 -07:00
Srinivas Dasari
3aeaeefe07 qcacld-3.0: wma to target_if migration of roam pmkid request evt
Currently, wmi_roam_pmkid_request_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: I3fad4e4d7ceeb85c632723e161809bf980d5375f
CRs-Fixed: 3014248
2021-08-28 00:29:22 -07:00
Vijay Patil
23999e417d qcacld-3.0: wma to target_if migration of roam_auth_offload_event
Currently, wmi_roam_auth_offload_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: I128db23077d423c5e5ecf27636bc3af35cbbc58f
CRs-Fixed: 3010419
2021-08-28 00:29:16 -07:00
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