Commit Graph

29783 Commits

Author SHA1 Message Date
Liangwei Dong
b4ccaf9196 qcacld-3.0: All STA concurrency with STA + CLI SCC
If STA (or ML STA link) + P2P CLI is SCC or MCC on 5 GHz, allow
second STA (or ML STA link) coming up on SBS channel or 2 GHz band.

Change-Id: If0b0b6787b1b6f3058a62c031d7f782ae9d23b4c
CRs-Fixed: 3577200
2023-08-02 17:58:37 -07:00
Rahul Choudhary
cc769c13c5 Release 5.2.1.75X
Release 5.2.1.75X

Change-Id: If7fb95a89c915d77096096b920121f08f3ed06cf
CRs-Fixed: 774533
2023-08-02 04:53:54 -07:00
Vinod Kumar Pirla
5a000144a7 qcacld-3.0: Handle link switch start notify in HDD
Once VDEV ops using DSC lock are completed, move the deflink
pointer in adapter to non-transitioning link so that all userspace
requests happen on the non-transitioning link while the other
link is in link switch operation.

Change-Id: Idfdd488e47e7d4ba013c9ed1e61def86ede8db90
CRs-Fixed: 3568098
2023-08-02 04:53:54 -07:00
Rakesh Pillai
dd66925398 qcacld-3.0: Register link switch notifier from DP component
Register MLO link switch notifier from DP component.

Change-Id: Ib03ff9b16d3c8cd02acfbf9f1340c77aae9599cc
CRs-Fixed: 3521310
2023-08-02 04:53:48 -07:00
Vinod Kumar Pirla
3bd14a8b57 qcacld-3.0: Enhancements for link switch connect
Do not call flow pool map as during link switch disconnect
flow pool is not unmapped and this can lead to re-map and
allocates unnecessary memory.

In the peer MLO capabilities set the link switch bit to
notify FW, that peer create is due to link switch.

Change-Id: I1d24b33673157eb3a57dcac513434031b4e13a0e
CRs-Fixed: 3557837
2023-08-02 04:53:43 -07:00
Vinod Kumar Pirla
5a3f3cca79 qcacld-3.0: Update HDD VDEV mapping on link switch
Once link switch set MAC address response is received,
HDD is notified. Update the active bitmap in adapter and
move VDEV information from existing link to new link.
No need to call VDEV attach/detach as part of set MAC addr
due to link switch and also call DP callback to update
DP link mac address.

Save the new link info mapping on VDEV map address update,
use the mapping on dynamic MAC address update to restore to
proper link info, so that new connection will start correct
with VDEV-MAC address mapping.

Change-Id: I625c74d9cf42a4a78f23dcc419b4151717c203ae
CRs-Fixed: 3557829
2023-08-02 04:53:37 -07:00
Vinod Kumar Pirla
863127e879 qcacld-3.0: Enhancements for link switch disconnect
For link switch disconnect do not send the deauth/disassoc frame
OTA and avoid flow pool unmap as to avoid flushing the memory
allocated for the packets sent OTA for which status is not yet
received.

Once the status is received DP flushes them via the
non-transitioning link.

Change-Id: If2ec024f19730f6ebebf0428f912bfa8dbbddea9
CRs-Fixed: 3557779
2023-08-02 04:53:31 -07:00
Rahul Choudhary
b60b772f0d Release 5.2.1.75W
Release 5.2.1.75W

Change-Id: Id25d37f7bf62fc0b61507b38176fad2d930a4409
CRs-Fixed: 774533
2023-08-02 00:43:34 -07:00
Vinod Kumar Pirla
b542872b8b qcacld-3.0: Send peer authorized to FW for partner VDEV
In hdd_change_peer_state() vdev_id is taken from deflink
of adapter so peer authorized event is not sent to FW
for the partner VDEV.

Change the argument of hdd_change_peer_state() to take
link info pointer instead of adapter to get the proper
VDEV to send the peer authorized event to FW.

Change-Id: Id5940dc12a39e7d2a8e7469be9a138eb40024cb5
CRs-Fixed: 3568364
2023-08-02 00:43:34 -07:00
Aditya Kodukula
d041bf5d7f qcacld-3.0: Validate MLO peer stats before caching
When WMI_LINK_STATS_ALL_PEER event is received for MLO connection,
the stats are cached and sent to userspace via vendor command.
But in case of MLO+TDLS connection, host receives one
WMI_LINK_STATS_ALL_PEER event for all the MLO peers and one for the
TDLS peer. In such cases, host is caching the latest event only.

In the function wlan_hdd_send_mlo_ll_iface_stats, memory for
interface stats is allocated based on number of peers, which
is obtained from the caching peer stats. Instead of MLO peers, if
TDLS peer stats are cached, then it causes a memory corruption in
wlan_hdd_send_mlo_ll_iface_stats.

So, to avoid this issue, validate and cache MLO peer stats when
WMI_LINK_STATS_ALL_PEER is received.

Change-Id: Icd67ec96ed9994fc9a1c56fdb30a9f6eeb2e4d21
CRs-Fixed: 3577633
2023-08-02 00:43:29 -07:00
Rahul Choudhary
31bba8d0b6 Release 5.2.1.75V
Release 5.2.1.75V

Change-Id: I7f280dc4038172cd6e71c0fc7aaf9f2f837d8397
CRs-Fixed: 774533
2023-08-01 20:28:43 -07:00
Vinod Kumar Pirla
67b4f2f152 qcacld-3.0: Always initialize num VDEV create in adapter
To identify number of VDEVs to create post mode change,
'num_links_on_create' field in adapter is initialized on
open adapter. However this field is not set to desired
value incase of 11be capability is not present.

This can lead to resetting active links bitmap in adapter
to zero. This bitmap is extensively used for numerous VDEV
related iteration/search operations including VDEV create.

In n-link changes, hdd_adapter_disable_all_links() API is
modified to restore bitmap of active links which might change
as part of link switch.
In stop adapter, this API is called without check for eht_cap
and resulting in zero active link bitmap.

Irrespective of 11be capability fill the 'num_links_on_create'
to approripate value so that further usage of this field will
not have undesirable results.

Change-Id: I6dddc8bb57b012dc480e05653db50f6cafb26ccf
CRs-Fixed: 3575089
2023-08-01 20:28:42 -07:00
Deeksha Gupta
a2e4ae849a qcacld-3.0: Fixing ML Partner Info Sequence Issue in Assoc Response Parsing
Currently, driver fills the session->ml_partner_info based
on the ML partner info present in the received assoc response
frame. However, it is possible that the AP may send a
different ML partner info sequence in the assoc resp frame,
leading to incorrect info send during PEER_ASSOC_CMDID.

For instance, when establishing a 3-link connection, the STA
selects 6 GHz as the assoc link and 5 GHz + 2.4 GHz as partner links.
The STA expects the same partner sequence (5 GHz and 2.4 GHz)
in the assoc resp frame. However, the AP can send a different
sequence (2.4 GHz + 5 GHz).

To fix this issue, modifies the parsing of the ML partner info duing
assoc response frame. Instead of relying on the ML partner info
from the assoc response frame, updates the session->ml_partner_info
based on the partner sequence present in the the mlo_mgr context.
This ensure that the ML partner info sequence is correct and matches
the expected sequence during the association.

Change-Id: I93236afae4c7915fb2c9bd6ad209feae1312126f
CRs-Fixed: 3530714
2023-08-01 20:28:36 -07:00
Rahul Gusain
b55bf34e18 qcacld-3.0: NDP wakelock in failure cases
Currently, wma_add_sta status is not considered while voting for
link up in case of NDI. But if wma_add_sta fails to add a peer,
this link vote leads to stale link vote up.
To fix this, consider the return status of wma_add_sta for
link vote up.

Change-Id: I71581f1caccf784567c7ba6f263b5d1658067aa9
CRs-Fixed: 3569182
2023-08-01 20:28:31 -07:00
Aravind Kishore Sukla
c3ce65c825 qcacld-3.0: Downgrade connection to HE mode
STA is not able to connect to 11be non-WPA3 mode AP.

STA need to decide whether to connect in EHT or not at
the time of connection to AP based on security configuration.

Change-Id: I823decc17af21f80969c09742c6136d4215b87f6
CRs-Fixed: 3558758
2023-08-01 20:28:26 -07:00
Srinivas Girigowda
25fd32eab3 qcacld-3.0: Allow connected monitor and legacy STA connection
If the connected monitor is configured and then legacy STA is trying to
associate to Access point, check is enforced to reject the connection
request if STA + Monitor concurrency is in place.

Legacy STA + monitor mode is not allowed, whereas Legacy STA +
connected monitor should be allowed.

Hence, Fix this issue by checking for STA + Monitor mode concurrency
only if local_packet_capture (Connected monitor) is not enabled.

Change-Id: Ia4fc74ab2ec91e6d66ebba23614268173da1e7bb
CRs-Fixed: 3574577
2023-08-01 20:28:21 -07:00
Will Huang
a7b05b29c4 qcacld-3.0: Populate API for SAP to help check unsafe channel
Populate policy_mgr_restrict_sap_on_unsafe_chan() to check whether need
check coex unsafe channel when SAP start on fixed channel, only
restriction_mask from user space configure set SAP bit requires to check
unsafe channel when SAP start on fixed channel. If ACS enable, SAP should
check unsafe channel unless above restriction_mask from user space
configure not set SAP bit.

This change is to change back behavior which changed by Change-Id
I4ccf887655066da6d6b50715f631dde6edfda598, and adjust Change-Id
Ie3947058d8854823a718b833ec788c5c8a14b903 after this change.

Change-Id: If8d26fa7cfdd4ffa44dd2009b4d6939f3d4c49b2
CRs-Fixed: 3525515
2023-08-01 20:28:15 -07:00
Rahul Choudhary
716e6eda86 Release 5.2.1.75U
Release 5.2.1.75U

Change-Id: Id94d7cc0706e2ca6ed149796f688a4792bb3fd74
CRs-Fixed: 774533
2023-08-01 09:37:38 -07:00
SACHIN AHUJA
3aef654312 qcacld-3.0: Don't send the wext event during interface down
Currently driver sends the wext event on interface down. Kernel
internally generates the  IFF UP event on receiving this wext
event and send to the userspace.
Userspace application takes the wrong decision based on this
spurious IFF UP event.

To avoid this issue, avoid sending the WEXT event to kernel
on IFF down.

Change-Id: I3ce0de50b3c41fe45d8d1a0d0ea47af73595cdda
CRs-Fixed: 3558158
2023-08-01 09:37:38 -07:00
Srinivas Girigowda
be5651b42e qcacld-3.0: Introduce wlan_dp_is_local_pkt_capture_enabled()
Introduce wlan_dp_is_local_pkt_capture_enabled API.

Change-Id: I608c927301bf145bf8fd2e222c047ca20c58a72b
CRs-Fixed: 3576511
2023-08-01 09:37:31 -07:00
Rahul Choudhary
e5d35ade60 Release 5.2.1.75T
Release 5.2.1.75T

Change-Id: I717438423c0b099c780675db9de949c448bbd3c9
CRs-Fixed: 774533
2023-07-31 23:55:14 -07:00
Liangwei Dong
f6f6362013 qcacld-3.0: Handle standby link for ML STA concurrency
In 3 Port concurrency, if standby link is MCC with existing legacy
interface then force inactive the link to avoid link switching
to it.

Change-Id: I3373715940eab949542528cce66d87a0646e1e5a
CRs-Fixed: 3572695
2023-07-31 23:55:13 -07:00
Surya Prakash Sivaraj
496290a384 qcacld-3.0: Trigger STA deletion after deauth is transmitted
In case of STA kickout on SAP interface, host driver sends
deauth frame and initiates peer delete without waiting for
ACK or tx completion status of the deauth frame. In the
firmware, the deauth frame seems to get flushed, if peer
delete is being queued. To fix this, send peer delete only
if the deauth tx completion status is received.

Changes involved are:
1. To handle the sta deletion from the deauth tx complete path:
	- Get the vdev id and peer address from the mgmt desc params
	  to initiate the deletion.
2. To handle the sta deletion from deauth tx completion timeout:
	- Mark a flag in sta entry if STA kickout deauth is in progress.
	- Add changes to get vdev id upon deauth ack timer expiry.
	- Trigger deletion for all the STAs for which has STA kickout
          is in progress, since the timer is not started per peer.
          Therefore, upon the expiry of the deauth ack timer, initiate
          all the STA deletion.
Change-Id: I44a802237723866b05a986ed760a065ac4697044
CRs-Fixed: 3556353
2023-07-31 23:55:07 -07:00
Liangwei Dong
340f1ba9c9 qcacld-3.0: Handle dynamic force inactive num
With force link inactive cmd rsp, FW will always send a current
active/inactive link bitmap. Host will select one link from current
inactive bitmap, and update the policy mgr table. But FW can
still switch the active/inactive between the links in force num bitmap.
When SAP coming up on same MAC and MCC with the dynamic inactive link,
host will send force inactive the link to FW. Then FW will not try
to active the link even in dynamic mode.

Change-Id: Ib4e438ca4c8e6945b3d7db42cd92d0393fcc1fc9
CRs-Fixed: 3564737
2023-07-31 23:55:00 -07:00
Rahul Choudhary
9bd9eabc7d Release 5.2.1.75S
Release 5.2.1.75S

Change-Id: Iead4fd5ac52dac3ca8b6fc487fc2f829ee0631ab
CRs-Fixed: 774533
2023-07-31 19:37:29 -07:00
Vinod Kumar Pirla
073e5ee38c qcacld-3.0: Update HDD link info with connected BSS info
Notify OSIF/HDD on successful connection to ML-BSS with all
links information part of association.

In each link's corresponding link info struct in HDD adapter,
update basic information of that link which contain following:
   a) IEEE link id.
   b) Link BSSID.
   c) Self link address.
   c) Current VDEV ID for that link.

As VDEV is not present for the standby link, we will use
self MAC address to identify the initial placeholder of that
link info to update IEEE link ID and BSSID.

Reset the IEEE link ID on disconnect/start adapter so that
stale values are not matched during search.

Don't reset connection info's BSSID if it is due to link switch.

Change-Id: I291f87072a2064bcee092819fbfb00a3803b9376
CRs-Fixed: 3557623
2023-07-31 19:37:29 -07:00
Rakesh Pillai
2461d6dc54 qcacld-3.0: Move fisa aggregation control flags to dp_intf
Currently the FISA aggregation control flags, based on GRO
settings, are part of dp_vdev.

Move these FISA aggregation control flags to dp_intf,
since these controls are on an interface level, and not
on a per link level.

Change-Id: I93d0e215f8954376a96967cce6d533bd4be2d3a6
CRs-Fixed: 3574036
2023-07-31 19:37:23 -07:00
Rahul Choudhary
a77096792e Release 5.2.1.75R
Release 5.2.1.75R

Change-Id: I136bc3caedf83d9506595a8de0ae6c513299ae41
CRs-Fixed: 774533
2023-07-31 15:50:57 -07:00
Liangwei Dong
a5f9f2fa98 qcacld-3.0: Fix AP not start on SCC channel in AP-AP-AP-AP
In 4 AP case: 2 AP on 2412, 1 AP on 5805. The 4th AP is starting
on 5180, but the current PCL PM_SCC_ON_5_5G_SCC_ON_24G contains 5180
and force SCC not happen.
Fix by change PCL to contain SCC channel only - PM_SCC_ON_5_SCC_ON_24.

Change-Id: I69923fa5b84c2178f0179fcc54d5f5aa6d77d016
CRs-Fixed: 3556240
2023-07-31 15:50:56 -07:00
Rahul Choudhary
b53b27f806 Release 5.2.1.75Q
Release 5.2.1.75Q

Change-Id: Id93ea7a67031108b36ae043c116645283aa91944
CRs-Fixed: 774533
2023-07-31 12:20:05 -07:00
Mohammed Ahmed
243b2afbf2 qcacld-3.0: Enable DDK build system
Will allow DDK to be enabled and generate required
symlinks for DDK build.

Change-Id: Iadba338b1b74fa0be187ac17b22e1c2ed89f4a4d
CRs-Fixed: 3533892
2023-07-31 12:20:05 -07:00
Mohammed Ahmed
588192efbd qcacld-3.0: Add grep functionality bazel
Current wlan bazel implementation does not
support grep of source code.
Fix this by adding grep functionality.

Change-Id: I0649577424fbd095524d9c1083c3515c682723e2
CRs-Fixed: 3572350
2023-07-31 12:19:59 -07:00
Mohammed Ahmed
b4834eb736 qcacld-3.0: Additional bazel build fixes
Currently code is running into compilation
issues when building with bazel.

Change-Id: I458de9b971955bb64c06dd2541dd5d20c2c3d16c
CRs-Fixed: 3546637
2023-07-31 12:19:54 -07:00
Rahul Choudhary
abd2d3cbf2 Release 5.2.1.75P
Release 5.2.1.75P

Change-Id: I786bdd40cf54492685050ca36a90652c981773ef
CRs-Fixed: 774533
2023-07-31 05:42:48 -07:00
Vinod Kumar Myadam
9d6b62d993 qcacld-3.0: Hold wake lock for OEM data command
For OEM data command, if there runtime suspend before the response
comes back, the response will not come to host and host will timeout.

To fix this issue, acquire the RTPM wakelock for OEM data command
till the response comes to host.

Change-Id: Ibb52d2b1e24e1e478cf4fb7c8c0d59438e0bbba8
CRs-Fixed: 3571769
2023-07-31 05:42:47 -07:00
Vijay Raj
f3efa80466 qcacld-3.0: Add support for new twt status for twt setup request
Add support for new twt status
HOST_ADD_TWT_STATUS_LINK_SWITCH_IN_PROGRESS and
HOST_ADD_TWT_STATUS_UNSUPPORTED_MODE_MLMR in the twt
ack event

Change-Id: Ica3a66983ea25f2c797827baa16daa4fcddcd099
CRs-Fixed: 3570318
2023-07-31 05:42:41 -07:00
Rahul Choudhary
8591f2d873 Release 5.2.1.75O
Release 5.2.1.75O

Change-Id: I585d69ac1cc5c65bf4143b1fcfe7c77542ad752b
CRs-Fixed: 774533
2023-07-31 02:12:09 -07:00
Aasir Rasheed
048cd25b14 qcacld-3.0: Send keys after peer assoc
Addressed issue with STA MLO connections,
ensuring that link keys are not sent to the
firmware before completion of the link
vdev connection.

Change-Id: I3d6291cc00f3387cff1fc154f9c57373fd356fa3
CRs-Fixed: 3575097
2023-07-31 02:12:08 -07:00
Rahul Choudhary
d04483d364 Release 5.2.1.75N
Release 5.2.1.75N

Change-Id: Ibb65334cb2004f1828c05e03af5a8ba741cdfc00
CRs-Fixed: 774533
2023-07-30 22:44:55 -07:00
Aasir Rasheed
4d6b1664a9 qcacld-3.0: Update roam scan freq list for partner link
Currently, host driver updates only assoc link channel to
firmware through roam_scan_chan list. Firmware may issue
an additional scan if it finds partner link channels in
the RNR info but not present in the roam scan channel list.

To avoid additional scan, send all link channels to the firmware.

Change-Id: Icfd9dac77f98a208b35d47060aab7cf2c5e4c885
CRs-Fixed: 3536183
2023-07-30 22:44:55 -07:00
jingxiang ge
1c1828f5d8 qcacld-3.0: Extract aux device capability
Extract aux device capability and store it in wma/hdd/mlme.

current only 1 aux supported so only save info
for aux0.

Change-Id: Ib19bad6cf3c0bda5a31ea4993a2f7e587b2043e2
CRs-Fixed: 3549751
2023-07-30 22:44:50 -07:00
Rahul Choudhary
16acdd350d Release 5.2.1.75M
Release 5.2.1.75M

Change-Id: I6a7a4ef419feb438f229935de1df5bec54fb75bb
CRs-Fixed: 774533
2023-07-30 19:07:23 -07:00
Ananya Gupta
354552db23 qcacld-3.0: Vote PCIe link when Direct link server is up
Support only D0 wow when direct link is up when XPAN feature
is up in WHC or P2P modes.

Change-Id: Ifbae57e4e1c8701950e7cecc095830a374603034
CRs-Fixed: 3559061
2023-07-30 19:07:23 -07:00
Rakesh Pillai
d03053c1c7 qcacld-3.0: Handle MLO link switch case for FISA flow flush to stack
When FISA aggregated flow is flushed to n/w stack, there
is a vdev_id comparison between the flow and the head skb.
If this vdev_id check fails, the packets are dropped.

In case of MLO link switch during the FISA flow aggregation,
the packets might be received on different vdev (belonging to
the same MLD). Hence the vdev_id comparison will fail when
there is a MLO link switch in between the flow aggregation.

Since both the vdevs belong to the same MLD, add a MLD addr
validation to mitigate the above mentioned issue.

Change-Id: I0328dccff3f08da87f55758b469d773b9ea1169b
CRs-Fixed: 3568987
2023-07-30 19:07:17 -07:00
Aravind Kishore Sukla
48a3511147 qcacld-3.0: Convert pcie_config INI related variable to unsigned
Based on requirement for pcie_config INI, convert corresponding
INI boolean variable to unsigned variable.

Change-Id: Ia0045c35a36bafe77e457b95f72fa1db86d2f0d3
CRs-Fixed: 3571497
2023-07-30 19:07:12 -07:00
Rahul Choudhary
5765a6ae4f Release 5.2.1.75L
Release 5.2.1.75L

Change-Id: I64c80f5d2859a4c2bed63924a04ab45d6d3ba1b6
CRs-Fixed: 774533
2023-07-30 15:08:24 -07:00
Aditya Kodukula
27c56a4ae7 qcacld-3.0: Fix potential memory leak in mlo peer stats
Currently in the function wlan_hdd_send_ll_stats_req, memory is
allocated to store mlo peer stats when WMI_LINK_STATS_ALL_PEER
stats event is received and freed after sending them to userspace.

But, if multiple WMI_LINK_STATS_ALL_PEER stats events are received then,
only the latest allocated memory is freed leading to a potential memory
leak. To avoid this issue, add a sanity check before allocating memory.

Change-Id: I0470a7b1951a4d134c752a63ee915490be4e066c
CRs-Fixed: 3574762
2023-07-29 12:39:53 -07:00
Rahul Choudhary
ef9583a9e1 Release 5.2.1.75K
Release 5.2.1.75K

Change-Id: I444666e592fa30c6c32b77a1de0f47f05e2f749c
CRs-Fixed: 774533
2023-07-28 23:42:41 -07:00
Jianmin Zhu
263d0d2296 qcacld-3.0: Fix tdls vdev ref issue for race condition
When wpa_supplicant sent tdls mgmt frame during sta disconnecting for NUD
failure, scheduler thread clear MLO flag of vdev0, in
wlan_key_get_link_vdev, wlan_vdev_mlme_is_mlo_vdev(vdev0) return true,
in wlan_key_put_link_vdev, wlan_vdev_mlme_is_mlo_vdev(vdev0) return false,
WLAN_OSIF_TDLS_ID vdev ref count is released in both
wlan_key_get_link_vdev and wlan_key_put_link_vdev, while WLAN_MLO_MGR_ID
vdev ref count isn't released, assert will happen.

To fix it, add check in os_if, if vdev not up, reject tdls frame to
avoid such race condition issue.

Change-Id: I90e60c95888cc63e57d0bd0b75c570d8d677cbaa
CRs-Fixed: 3572133
2023-07-28 23:42:41 -07:00
Rahul Choudhary
9618136de3 Release 5.2.1.75J
Release 5.2.1.75J

Change-Id: I325d733a124289a58c18e44feafee4b01a4b8726
CRs-Fixed: 774533
2023-07-28 15:36:51 -07:00