Commit Graph

585 Commits

Author SHA1 Message Date
Deeksha Gupta
de1338a8cf qcacld-3.0: Reset AP link info from MLO_MGR
In case of new candidate selection or another connect request,
reset the previous AP link info and later add new AP link info.

Change-Id: Id80ed2cb7b2a02af06492dedf9a9d07baf906cf4
CRs-Fixed: 3530705
2023-07-18 22:54:36 -07:00
Deeksha Gupta
4941611135 qcacld-3.0: Send partner link info during peer_assoc_cmd
Send partner link info during peer_assoc_cmd

Change-Id: I64b7b6c9aee8d436ec813ae2b0eac025c985d212
CRs-Fixed: 3530233
2023-07-17 10:38:38 -07:00
Jyoti Kumari
8b0e06658f qcacld-3.0: Store TWT SI and SP in twt peer private object
Store TWT SI and SP in twt peer private object. This info will be
use in LL_LT_SAP to decide CSA via GATT message or ECSA action
frame.

Change-Id: I163b38a46267a2f1453cdb91d90dc97d0e6265e4
CRs-Fixed: 3517009
2023-07-14 15:41:13 -07:00
Deeksha Gupta
fb6061d91f qcacld-3.0: Reset the vdev level T2LM info as default mapping
Currently, during disconnection vdev level T2LM established
mapping set as 0.

Add changes to reset it to default mapping T2LM mapping
instead to 0.

Change-Id: I4590045a65d3e715ceddcbf73252ec853abc7cb3
CRs-Fixed: 3560022
2023-07-14 15:41:08 -07:00
Jyoti Kumari
1c4333ac79 qcacld-3.0: Create new file in ll_sap component
Create new file in ll_sap component to add api's
related with ll_sap

Change-Id: Ic3829ecd1f00268dae9ddf138caeb4288a47fb3c
CRs-Fixed: 3550283
2023-07-14 01:11:24 -07:00
Jianmin Zhu
331bebf233 qcacld-3.0: Don't enable roam if MLO vdev is not up
When MLO sta disconnected, sta_ctx->wlan_connected_links is cleared,
mlo_check_if_all_vdev_up return true, RSO can be enabled on this stopped
vdev, F/W assert will happen for roam struct is absent.

To fix it, for MLO vdev, don't enable roam if current vdev is not up like
legacy vdev.

Change-Id: I32e1b50525edcc4e7f6b42078e4fda9f415c9841
CRs-Fixed: 3555349
2023-07-13 04:49:49 -07:00
Paul Zhang
fa3d782584 qcacld-3.0: Update the EHT CAP IE to firmware
When EPCS priority access flag changed, it needs to update
the EHT CAP IE to firmware for the probe request when offload
scan happens.

Change-Id: I37ed8edcbc05ec4e6fe5edec7cfe20de0d64b7bb
CRs-Fixed: 3552311
2023-07-13 04:49:38 -07:00
Paul Zhang
11a1a57d1d qcacld-3.0: Save EPCS Capability in psoc
Save EPCS Capability in psoc instead of vdev to avoid the value
lost when random MAC setting happends.

Change-Id: I35299da59156dc1197adaa3350b0d11255b76c2e
CRs-Fixed: 3551773
2023-07-12 21:59:36 -07:00
Vijay Patil
c9520ce773 qcacld-3.0: Add change to replace free connect request API
In current scenario mlo_free_connect_ies() and qdf_mem_free()
use to free up connect request and sub memory.
Similarly wlan_cm_free_connect_req_param() also free up the
connect request and its sub memory.

So replace mlo_free_connect_ies() and qdf_mem_free() with 
wlan_cm_free_connect_req(). Also replace mlo_free_connect_ies()
with wlan_cm_free_connect_req_param() to avoid code duplication.

Change-Id: I37a930c3b7e63eaa8b9df9433fdc25b25d562a3c
CRs-Fixed: 3554198
2023-07-12 07:48:34 -07:00
Liangwei Dong
11a102942b qcacld-3.0: Notify connection state change event
Notify connection state change event to policy mgr
to change force link mode accordingly.

Change-Id: I2da0f453ee1af67c95346f2dc23e9e757aa491b6
CRs-Fixed: 3525191
2023-07-11 12:48:56 -07:00
Liangwei Dong
15c38e2b3e qcacld-3.0: Handle nlink force mode by link id bitmap
Add APIs to handle force link active/inactive by link id
bitmap. For N-link mlo STA (N > 2), some link may have no
vdev attached, we have to use link id bitmap to do force
active/inactive.
If the service WMI_SERVICE_N_LINK_MLO_SUPPORT is not enabled,
vdev based handler will be invoked.

Change-Id: I1c48a7227185923a38f3e2b75f1274df9a186437
CRs-Fixed: 3525174
2023-07-10 15:02:39 -07:00
Paul Zhang
4910df0bb1 qcacld-3.0: Fix NULL pointer dereference issue
"mlo_vdev_get_by_link_id" may return NULL in failure case.
Add NULL check and release the vdev after process in
function: epcs_handle_rx_req and epcs_handle_rx_resp.

Change-Id: Ia1575b4fbcfde326d8e9b5c7b0562852ca23912b
CRs-Fixed: 3547906
2023-07-04 15:41:09 -07:00
Abhinav Kumar
4704ced888 qcacld-3.0: Update assoc channel width as per mlo vdev
The issue is host always uses assoc link channel width
to calculate the list of the channel(s) to trigger
wide band scan for both links.

In the case of N link MLO connection, the associated
channel and associated channel width may be different
for assoc link and non-assoc link(s).

Fix is to choose the proper associated channel width
and prepare the channel list for each link(s).

Change-Id: I2fce5d1153d396f1bfc9575572d90d2cfec0ac8a
CRs-Fixed: 3539444
2023-06-29 18:14:20 -07:00
Liangwei Dong
2958ab1b39 qcacld-3.0: Handle link id bitmap from set link state response
Convert link id bitmap to vdev bitmap and update policy mgr
connection table.
Record the current force link command state to mlo context.

Change-Id: I0b28222de10a9493a153ee00189b87e4275a4231
CRs-Fixed: 3515467
2023-06-28 05:04:46 -07:00
Krupali Dhanvijay
026c0f435f qcacld-3.0: Reset CPU frequency in HO failure
CPU min frequency is boosted to maximum once roam start is received.

Add API to reset CPU frequency in case of HO failure.

Change-Id: Ib59d4d69a68f311dbb01609e7f5f64c307fcedc2
CRs-Fixed: 3522942
2023-06-26 03:21:37 -07:00
Surya Prakash Sivaraj
8169b54f12 qcacld-3.0: Parse SSID IE properly during roam
The roam candidate frame event gives the beacon of
the roam candidate. The SSID IE check expects minimum
size of the SSID to be 2 bytes. Because of this, the
candidate with ssid size 2 or less is not cached to
the scan table.

Fix this by not considering the size of the SSID IE.

Change-Id: Ifbe36ac8cf0f9c75a3830a2826f5330fa300df5b
CRs-Fixed: 3512310
2023-06-22 12:49:01 -07:00
Surya Prakash Sivaraj
5f79c535ac qcacld-3.0: Enable RSO for SL open connection
Driver doesn't enable RSO currently for SL + Open auth cases.

Enable the RSO from connect complete path for open auth. Add changes
to enable the RSO only after all the ML links are up in case of
N-link MLO.

Change-Id: Ie3540493660e3605fe6739dc6d7706782b8a78ea
CRs-Fixed: 3509724
2023-06-22 06:06:28 -07:00
Jianmin Zhu
5ab6ec7f8b qcacld-3.0: Fix roam scan channel list trimmed after roaming
When roamed from mlo to single link, link vdev1 disconnected, assoc vdev0
RSO is disabled, after vdev1 disconnected, even vdev0 RSO is enabled again,
roam scan channel list is trimmed.

To fix it, when link vdev disconnect, just stop RSO, don't disable RSO,
roam scan channel list won't be trimmed.
Disable RSO only when assoc vdev disconnect.

Change-Id: Ie624cffa3acaebcd73abb7be54ce1016e88447f6
CRs-Fixed: 3522793
2023-06-20 09:58:27 -07:00
Vijay Patil
68badfb043 qcacld-3.0: Add fix to avoid memory leak in mlo_roam_copy_reassoc_rsp()
In current scenario during OWE roaming when HB failure occurs, it
should clean copied reassoc response and roaming info. But it is not
getting freed which leads to host driver crash while on idle shutdown.

In mlo_roam_copy_reassoc_rsp() memory is allocated for
sta_ctx->cpied_reassoc_rsp, sta_ctx->cpied_reassoc_rsp->roaming_info
and connect_ies->assoc_rsp.ptr but if memory allocation fails for
these it directly retuning without feeing previously allocated memory.

Add change to free the prevoiusly allocated memory if memory
sta_ctx->cpied_reassoc_rsp->roaming_info and connect_ies->assoc_rsp.ptr
fails to allocate memory which avoid the memory leak issue.

Change-Id: I7ca6ee526bf08c614ff25e4c3457db0dd58fc9aa
CRs-Fixed: 3507296
2023-06-20 06:38:51 -07:00
Ashish Kumar Dhanotiya
e59e1f0884 qcacld-3.0: Add feature capability support for ll_lt_sap
Currently there is no feature capability support for ll_lt_sap
and host driver and user space assumes that support for ll_lt_sap
is always present which not always true.
This may result in unexpected behavior if firmware does not
support ll_lt_sap.
To address this issue, add a feature capability to indicate
to userspace if host driver and firmware supports ll_lt_sap.

Change-Id: I7fbdb1996cab473f7a89761a35b6859fd2729c0a
CRs-Fixed: 3521091
2023-06-16 15:02:44 -07:00
Aditya Kodukula
7028b37955 qcacld-3.0: Fix typographical errors
Fix typographical errors spanned over various files in cld.

Change-Id: I82a7eec4335d617a43c89589418a21885074fde0
CRs-Fixed: 3529627
2023-06-15 21:23:48 -07:00
Jyoti Kumari
3eec9dc69b qcacld-3.0: Don't populate twt_res bit for non assoc link
In MLO STA case, even though twt_responder ini is disable but
still this bit is getting populated in he_cap for non assoc link.
Reason:
1. twt_res is getting set from populate_dot11f_twt_he_cap()
for assoc link. For non assoc link, it's getting set from
mac context.
2. populate_dot11f_twt_he_cap() api doesn't have the interseted
value of ini and firmware caps according to twt component api.

As part of fix,
1. twt_req and twt_res should have intersected value in
populate_dot11f_twt_he_cap()
2. Update twt_res from populate_dot11f_twt_he_cap() for non
assoc link also as it will update the intersection of ini and
fw caps

Change-Id: I6ef34723f879aead4517c28cf6cfad2fa11165fe
CRs-Fixed: 3524903
2023-06-15 21:23:32 -07:00
Paul Zhang
aa2dd85155 qcacld-3.0: Add logic enable EPCS by uplayer
EPCS feature is controlled by uplayer to enable or disable.

Change-Id: I25c4a48db92cecccfe0b605dfc76ac1575efb464
CRs-Fixed: 3521121
2023-06-15 16:31:13 -07:00
Rachit Kankane
5e32b65f93 qcacld-3.0: Channel width from peer phymode
Add MLME API to get channel width for STA / P2P-CLI mode
from peer phymode

Change-Id: Iffef01b5fe0ad603ae3b75a659144c3fdcc23a02
CRs-Fixed: 3529931
2023-06-14 20:25:41 -07:00
Pragaspathi Thilagaraj
a598c36737 qcacld-3.0: Cleanup redundant error logs
Change few repeating error logs to debug level.

Change-Id: Ie64d4a99e70dae6dd9548bfa90914075c73feb77
CRs-Fixed: 3509900
2023-06-11 14:18:11 -07:00
Surya Prakash Sivaraj
aaae25f8ab qcacld-3.0: Make ssid whitelisting per vdev
Whitelist SSIDs are configured per netdev.

Therefore, move the ssid white list configurations
from psoc level to per vdev level.

Change-Id: Ia555f0c15362099afaae562a2779f7c26c1f4fe5
CRs-Fixed: 3510816
2023-06-09 23:58:47 -07:00
Pragaspathi Thilagaraj
98481d3bd6 qcacld-3.0: Populate assoc link id in join request
Populate assoc link id in join request from scan entry self
link id

Also check if vdev is MLO vdev before copying partner info
to join req from connect request

Change-Id: I0ddff6e4b0b312e94e42977ea472ee94ac6e919e
CRs-Fixed: 3523640
2023-06-09 23:58:31 -07:00
Jianmin Zhu
fb57957fe3 qcacld-3.0: Fix FW assert for RSO disabled before stopped
During roaming sync, disconnect happens from osif for some reason,
RSO_STOP is dropped for reason
RREASON_DRIVER_DISABLED/REASON_ROAM_STOP_ALL,  RSO_DISABLE is sent to
F/W for different reason REASON_DISCONNECTED. RSO_DISABLE happened
without RSO_STOP before,  so F/W assert.

To fix it, for disconnect from osif, set RSO_STOP reason as
REASON_DISCONNECTED, same as RSO_DISABLE REASON_DISCONNECTED, then it can
be sent to F/W during roam sync.

Change-Id: Ie0c63bd735a231e61cca1eb7bbc6d785f2860f53
CRs-Fixed: 3520269
2023-06-09 13:49:28 -07:00
Surya Prakash Sivaraj
c1d792ec75 Revert "qcacld-3.0: Enable netdev queues before sending ROAM_SYNC_COMPLETE"
This reverts commit Ib05ca01892b6d8b62badcafb64bb8c16270ee9f8.

Change-Id: I2a464e1e321328ae01fa816164ca4c523d6e07d6
CRs-Fixed: 3520779
2023-06-08 20:46:17 -07:00
Pragaspathi Thilagaraj
15bc1d6db6 qcacld-3.0: Fill join request from cm vdev connect request
Currently driver fills join request from cm_vdev_connect request
and cm_vdev_connect request is filled from connect request.

Fill join request directly from cm vdev connect
request and update the vdev connect request from scan entry for
assoc vdev and for link vdev copy populate the connect request
directly from cm_connect request.

Change-Id: I408eb8044e96437558666a1948233a0df30bfd22
CRs-Fixed: 3516716
2023-06-08 05:08:50 -07:00
Paul Zhang
819d501a20 qcacld-3.0: Add WMM vendor IE support for EPCS
Add WMM vendor IE support for EPCS.

Change-Id: Ibc68b58df6844cddfb10ded1a4b611fb1f2af474
CRs-Fixed: 3517608
2023-06-07 07:00:35 -07:00
Paul Zhang
2d474a4947 qcacld-3.0: Add code to process EPCS logic
Add code logic to process EPCS (Emergency Preparedness
Communications Service).

CRs-Fixed: 3511102
Change-Id: I8ed0b98beede5d06b2a118bf8d26af41d9207c64
2023-06-07 04:31:01 -07:00
Rachit Kankane
29fa4e5ac8 qcacld-3.0: Set max supported BW for STA
Set MAX supported BW for STA so that the device can connect
to APs which are advertizing 20 MHz in beacons but increases
in association response and next beacon.

Change-Id: I8ed418382f696c7461235996c4e90201cafafcb3
CRs-Fixed: 3415718
2023-06-05 03:39:38 -07:00
Vijay Raj
f1e696de2b qcacld-3.0: Modify diag connectivity logging for P2P
In p2p mode, the connectivity logs were logged.

Modify diag connectivity logging in order to not log in
p2p mode

Change-Id: I540b29cb117e77aea4283e4fec51517827b15378
CRs-Fixed: 3515702
2023-06-03 18:17:54 -07:00
Sheenam Monga
f2c84fdaac qcacld-3.0: Clean up roam_scan_period_after_inactivity
Cleanup roam scan period after inactivity timer.

Change-Id: Idba15ef9c41fdfe339e24df4ec87a66277986ee3
CRs-Fixed: 3515188
2023-06-02 20:37:26 -07:00
abhinav kumar
966ceefe89 qcacld-3.0: Process get cu_req for 2 GHz band connection
Process GET_CU_FOR_EACH_SUB_BW request from the upper
layer in case DUT is connected with a channel width
of 40 MHz and the connected frequency is in the 2 GHz
band.

Change-Id: Idc748f83af72baed946340c61d5c6a0bba1baf00
CRs-Fixed: 3506871
2023-06-02 16:47:56 -07:00
Deeksha Gupta
1c29ae50af qcacld-3.0: Update assoc_link_id in case of single link MLO connection
Currently, in cm_vdev_join_req, driver does not update the assoc_link_id
when connection is SLO.

Fix is, driver should update the assoc_link_id in case of SLO.

Change-Id: I50e4834b77e87df34327f6825778fc460641afa9
CRs-Fixed: 3509965
2023-06-01 09:39:04 -07:00
Ashish Kumar Dhanotiya
2598f91cea qcacld-3.0: Add logging infra for LL_SAP component
Crrently there is no logging infra for LL_SAP component.
With this change add logging infra for LL_SAP component.

Change-Id: I66c43493523856efaf23c4f4e79c1e96d0536fba
CRs-Fixed: 3499749
2023-05-30 19:14:09 -07:00
Bing Sun
9e659f01b9 qcacld-3.0: Set link id correctly for roaming
When handle FW roam sync event, reset link id of every vdev in the MLO,
then set correct link id for the vdev according to roam offload sync
indication event. Otherwise link id may be invalid in vdev.

Change-Id: I91b36d154ab3115815211698b6c5237a3bfa1f5f
CRs-Fixed: 3512507
2023-05-30 16:56:10 -07:00
Ashish Kumar Dhanotiya
b1fac44abe qcacld-3.0: Create new component for low latency sap
This change creates a new component for low latency SAP
and also does the init and de-init of this new component.

Change-Id: I4a8192feb6edb30b1898ef30675cbc01235a8e42
CRs-Fixed: 3482510
2023-05-30 10:21:33 -07:00
Arun Kumar Khandavalli
cc42fce760 qcacld-3.0: Log AP link_id to the connect information log
Log the AP link_id as part of the connect information log which helps
in debugging.

Change-Id: I5244e6c1d2cec905005515078839c0feda721a29
CRs-Fixed: 3508511
2023-05-30 06:05:35 -07:00
Surya Prakash Sivaraj
723506a226 qcacld-3.0: Enable netdev queues before sending ROAM_SYNC_COMPLETE
Upon the completion of roam sync indication event, the
roam sync complete cmd is first sent to the firmware.

This is followed by the netdev queues enable. This
approach adds latency in the first downstream tx frame,
and the FT roaming KPI is not met due to this latency.

To fix this, if roam sync handling is successful, enable
the queues and then send roam sync complete to the firmware.

It's observed that the current change improves roaming
latency by 6 msec.

Change-Id: Ib05ca01892b6d8b62badcafb64bb8c16270ee9f8
CRs-Fixed: 3483751
2023-05-30 02:57:15 -07:00
Gangadhar Kavalastramath
c62db467f7 qcacld-3.0: Remove self reassoc code in LFR2
On reception of reassoc req from user space to the
connected AP, wlan driver proceeds with reassociation
without clearing the keys. This leads to encrypted EAPOL
frames in LFR2. To avoid this, trigger disconnect & delete
keys before proceeding with reassociation.

Change-Id: Ib287b5d43ae69a7696a28f0e59347c7376d581c3
CRs-Fixed: 3505422
2023-05-25 10:09:41 -07:00
Amruta Kulkarni
0e0878c654 qcacld-3.0: Parse T2LM IE in Association Response
Add support to parse t2lm ie from association response frame
and store in mlo dev context. Once all links are up
the t2lm configuration will be applied.

CRs-Fixed: 3449605
Change-Id: Icd1f3c9bbdfbe1c2a8bfe119d92d6e686e21a7fd
2023-05-24 21:39:49 -07:00
Srinivas Dasari
6c5a645cbe qcacld-3.0: Fetch freq from roam_sync ind for non-11BE platforms
Currently, mlo_roam_get_link_freq_from_mac_addr() returns 0 for
non-11BE platforms. Valid freq is present in roam_sync indication
and return the same.

Change-Id: I7156adadae9303257bf96e91e4cb8b5d11706104
CRs-Fixed: 3502610
2023-05-23 19:53:39 -07:00
Bing Sun
b1586c23fb qcacld-3.0: Do not release vdev reference if vdev is NULL
In wlan_cm_get_associated_ch_width, if vdev is NULL, which means
reference is not gotten. do not call wlan_objmgr_vdev_release_ref.
Otherwise there is QDF ASSERT.

Change-Id: Id1cc2be3869ad555ebeb1c91a4b5f75d499e70ac
CRs-Fixed: 3503877
2023-05-22 20:14:55 -07:00
Bing Sun
8fae636f18 qcacld-3.0: Fix OWE MLO roaming
When roaming from OWE SLO to OWE MLO, host considers it as SLO roaming,
although FW sends both assoc link and partner link information to host.

Currently host adds partner link to sta_ctx->wlan_connected_links in
mlo_roam_update_connected_links, since it already receives partner
link information from FW. Then RSO fails to translate to stop state in
cm_fw_roam_complete because partner link is not up.

To make RSO state translation work, host need add partner link to
sta_ctx->wlan_connected_links when partner link connection is
triggered, which is mlo_roam_prepare_and_send_link_connect_req.
Do not add partner link to sta_ctx->wlan_connected_links in
mlo_roam_update_connected_links.

When roaming from OWE MLO to OWE MLO, host triggers disconnection in
partner link, which should not enable roaming in connected STA.

Change-Id: I99938a0805d60287eb2714e5d271579ac2fb4aeb
CRs-Fixed: 3498822
2023-05-22 18:29:41 -07:00
abhinav kumar
5e17372c8c qcacld-3.0: Post disconnection DUT should connect in max BW
Scenarios are:
    1. Connect to AP in HE80/HE160
    2. Set the bandwidth to 20 MHz (SET_MAX_BANDWIDTH 1)
    3. Disconnect from AP
    4. Reconnect to AP.
    5. AP should be connected to the max bandwidth.

To fix this, host should update channel bandwidth to
the max supported bandwidth on disconnection.

Change-Id: I139d082ca4e4950d760f1da074dbcc021fb8a9e1
CRs-Fixed: 3491677
2023-05-18 09:36:26 -07:00
Amruta Kulkarni
282ef0220d qcacld-3.0: Fixes in populate T2LM frame and clear negotiation
1. While populating t2lm ie use dynamic memory allocation
instead of static and free after usage.

2. If AP rejects T2LM action req frame, sends status code
anything other than 0(success) or 134(preferred mapping),
clear ongoing negotiation.

Change-Id: I50fbf34f3e95bbeaf13c2e1a74374b22837dffa8
CRs-Fixed: 3496677
2023-05-16 09:15:50 -07:00
Srikanth Marepalli
ccc0cee97d qcacld-3.0: Send the 6 GHz channel in WMI_ROAM_CHAN_LIST
When the Intra band INI is enabled and the STA connected in 6 GHz
band the channel count and frequency are not sent in the
WMI_ROAM_CHAN_LIST command as the band is not defined or unknown.
As a result of this DUT is unable to trigger partial roam scan in
the current connected 6 GHz channel and does a full roam scan.

Add the 6 GHz band check in the Intra band enabled case.

Change-Id: I765c233d1e6bf71cab186041ebd7df2293be6f05
CRs-Fixed: 3469197
2023-05-14 13:37:24 -07:00