Commit Graph

3321 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
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
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
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
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
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
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
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
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
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
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
Pragaspathi Thilagaraj
24a4afc38a qcacld-3.0: Fix invalid DFS channel check for TDLS off-channel
While populating peer channel list to firmware, the channel
is checked if the state is CHANNEL_STATE_DFS. But for indoor
channels also this state CHANNEL_STATE_DFS is set. So the
indoor channels are removed from tdls peer supported channels
in tdls_extract_peer_state_param().

Use wlan_reg_is_dfs_for_freq() API to check if the given peer
frequency is DFS or not.

Change-Id: Ia16e55f8d00ba2686187a2b08c67a1e4a63a3d4d
CRs-Fixed: 3565520
2023-07-28 15:36:36 -07:00
Asutosh Mohapatra
4a58eb1c4f qcacld-3.0: Do SAP CSA if bonded channels are disabled
Currently if STA+SAP SCC on a 6 GHz channel is present and
host received SET_FCC_CHANNEL 0 command then host disables
all 6 GHz channels except for STA connected channel. If
SAP's bandwidth is greater than 20 MHz then kernel sends
stop_ap as SAP bonded channels are disabled.

To address this issue, do CSA to a non 6 GHz frequency.

Change-Id: I89edf3c862c5b02f0eb5865428bdbb0d43d07f85
CRs-Fixed: 3563476
2023-07-27 22:24:14 -07:00
Deeksha Gupta
bbece0a981 qcacld-3.0: Add support to Dynamic TDLS enable
Add support to dynamic enabling the TDLS.

Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_ENABLE

Change-Id: I3b9164ba04a4d9c23d7f580020966c222f8bd359
CRs-Fixed: 3562148
2023-07-27 22:24:09 -07:00
Deeksha Gupta
167488b437 qcacld-3.0: Add support to send TDLS avail and no. connected peer
Add support to send whether currently TDLS is available or not.

Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS
Vendor attr: QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_AVAILABLE

Also add support to get the TDLS number of active sessions
using below vendor attr.

Vendor subcmd: QCA_NL80211_VENDOR_SUBCMD_TDLS_GET_STATUS
Vendor attr: QCA_WLAN_VENDOR_ATTR_TDLS_GET_STATUS_NUM_SESSIONS

Change-Id: Ie9ad09de9593559c4d57599a9af58a95af99e60f
CRs-Fixed: 3554429
2023-07-27 22:23:58 -07:00
Jianmin Zhu
9e0d78bf29 qcacld-3.0: Add OUI config to send SMPS frame along with OMN for IoT AP
Add gActionOUISendSMPSFrameWithOMN to send SMPS frame along with OMN for
specified IoT APs.

Change-Id: Ida35779d11f9c6d6340afdbebeb788520fa7afdc
CRs-Fixed: 3568463
2023-07-27 04:49:35 -07:00
Rakesh Pillai
273eee3139 qcacld-3.0: Add support to reset def_link during dynamic mac addr update
Dynamic mac address update is a special case, where the
(sta)connection can change without the vdevs corresponding
to an interface. The tx/rx happens on the def_link of the
dp_intf, which does not get reset in case of dynamic mac
addr update. Due to this, all the tx of packets might be
attempted on an invalid dp_link, leading to drop of all
the packets queued for TX.

Add support to reset the def_link of an interface during
dynamic mac address update.

Change-Id: I1e87c083f39b56525f69c225117bcce538931dbb
CRs-Fixed: 3570440
2023-07-27 04:49:26 -07:00
Rakesh Pillai
f09727ebc7 qcacld-3.0: Fix incorrect arg passing to stats (ol_txrx_ops)
dp_tx_rx_collect_connectivity_stats_info expects dp_link
handle as an argument. Currently many of the direct callers
of this function is passing dp_intf as an argument to this func.

Fix this by passing dp_link as an argument to the function
dp_tx_rx_collect_connectivity_stats_info.

Change-Id: Icfedc1cc721de4ad0b536967dc32a6af53b86e9e
CRs-Fixed: 3571037
2023-07-26 21:24:24 -07:00
Chunquan Luo
babe235645 qcacld-3.0: Fixed BTM roam update to userspace
Since driver support special roaming and common roaming,
support common BTM roaming update to userspace, and we
can fetch the info by vendor_cmd_tool.

Change-Id: I753ded47d650ae4c9c579265485f081c16581c25
CRs-Fixed: 3568450
2023-07-26 10:52:14 -07:00
Vijay Raj
936a1452d8 qcacld-3.0: Add individual TWT support for 11be
During VDEV creation, vdev parameter "DISABLE_2G_TWT"
is populated in accordance to the value of ini
"enable_twt_24ghz" in order to indicate FW
to support TWT for 2.4GHz band.

Change-Id: I610bbaad3c5d12a8303939488ed2d7486dda404f
CRs-Fixed: 3560288
2023-07-25 22:29:24 -07:00
Rakesh Pillai
a074f04323 qcacld-3.0: Select tx_dp_link in datapath component
Currently datapath uses the vdev provided by UMAC for
tx of any packet. With the single-netdev-multi-vdev
model, there are chances that the vdev, in MLO case,
selected for packet TX in UMAC may not be the def_link
which datapath expects to use for tx/rx.

Hence, to mitigate, this issue, datapath will not use
the vdev provided by UMAC, but instead select a dp_link,
inside the dp_component, for tx/rx

Change-Id: I5ff4a79365b3426e1bcc6d4cac31a44058ee18db
CRs-Fixed: 3568989
2023-07-25 22:29:19 -07:00
Rakesh Pillai
8f9d742ef5 qcacld-3.0: Cleanup datapath component code
Code cleanup in datapath component.

Change-Id: I03585bd319e835a28de37ae98fb8edafbc1820ee
CRs-Fixed: 3568991
2023-07-25 15:21:35 -07:00
Rakesh Pillai
cd187812d3 qcacld-3.0: Fix incorrect typecast in txrx_ops handlers
Currently the opaque context passed to txrx_ops handlers
is incorrectly typecasted to dp_intf. The context being passed
is dp_link handle. This leads to unwanted memory access.

Fix this by correctly typecasting the context passed to
all the txrx_ops handlers as dp_link handle.

Change-Id: I587b12056625bb68e86ecb54118bb2f6bfa62bd9
CRs-Fixed: 3569531
2023-07-25 15:21:30 -07:00
Rakesh Pillai
854bd8cafb qcacld-3.0: Fix incorrect arg passed in dp_rx_pkt_thread_enqueue_cbk
Currently dp_rx_pkt_thread_enqueue_cbk passed dp_intf to
dp_rx_packet_cbk, though it expects the caller to pass
dp_link context. This leads to an invalid memory access
due to incorrect typecasting.

Fix this by passing the correct dp_link context to
dp_rx_packet_cbk.

Change-Id: If37fd18d49a6d5464e01c07160a1be612e564ffb
CRs-Fixed: 3568233
2023-07-24 15:50:42 -07:00
Jianmin Zhu
dbbd250f26 qcacld-3.0: Fix assert for MLO AP channel switch
When MLO AP start, lim_create_peer_idxpool_legacy isn't called, so
gpLimPeerIdxpool in pe session keeps NULL. When AP do channel switch,
MLO concurrency check failed for current AP not ignored, AP MLO flag is
cleared. When Ref sta disconnect, access gpLimPeerIdxpool to free peer
id, assert happens.

To fix it, when AP restart, ignore current AP when check MLO concurrency.

Change-Id: I3625dcd4f8c1a5020588311706faa1eb70ae8e9d
CRs-Fixed: 3548564
2023-07-24 05:09:56 -07:00
Aasir Rasheed
dccc97079b qcacld-3.0: Add pairwise key for all the link
Currently, we are storing all the keys based on vdev
object. However, with n link mlo there is a need to
add all the keys based on psoc level.

This change is to add pairwise key based on psoc level.

Change-Id: Ib2b53f800eeec0694514239a5d87052accadbc33
CRs-Fixed: 3565190
2023-07-21 16:49:29 -07:00
Rakesh Pillai
2b1f8b6f81 qcacld-3.0: Avoid dereference of dp_link before NULL check
Fix issue by removing the dereference of dp_link
before NULL check.

Change-Id: I2e5987a2ec5652acabd8402b4c0c65106d37135d
CRs-Fixed: 3566033
2023-07-21 10:23:17 -07:00
Amit Mehta
2a87c33052 qcacld-3.0: Free dp_txrx_handle in dp_rx_refill_thread_init fail case
Currently in dp_txrx_init during dp_rx_refill_thread_init fail case
dp_txrx_handle is not freed which results in memory leak issue.

To fix the issue free dp_txrx_handle in dp_rx_refill_thread_init
fail case

Change-Id: I0804154519707d5d558940cccaa699f639ae6704
CRs-Fixed: 3563740
2023-07-21 01:16:07 -07:00
Sheenam Monga
136e98f779 qcacld-3.0: Update master channel list from set wifi config
Initially, if hotspot starts in world mode, it can come up in
2.4 GHz only. Later, the correct regulatory domain gets configured
in the host driver.
Even if this new reg domain supports higher bands and better channels,
the SAP will not be able to move since the ACS list configured
initially is for world mode(only 2.4 GHz channels).

To fix this, after the initial ACS userspace will configure the
ACS channels as per the band preference. Upon new country change,
the host driver will use this updated list to switch to a higher/
better band.

Change-Id: I60524e60798df656b86cbd883a31b00ccd210bc6
CRs-Fixed: 3453679
2023-07-21 01:15:57 -07:00
Shailendra Singh
16eaca8093 qcacld-3.0: Set user configured listen interval before going to sleep
Before the host triggers sleep mode, it configures listen
interval while setting power save parameters to firmware.
If user configured listen interval is present in host,
that configured listen interval is set while setting
power save params.

Change-Id: I158a547f95bca4750b5180840113c03a89ced17c
CRs-Fixed: 3528793
2023-07-20 19:18:46 -07:00
Paul Zhang
39dcbc8810 qcacld-3.0: Add logic to control WIFI standard per vdev
With these APIs, vdev connection is effected by the
WIFI standard version. For example, if wifi_std is
wifi6, then the connection will not use 11be feature.

Change-Id: I8f762f9cf16d876d5cf2847561b61c11a23e97b5
CRs-Fixed: 3554305
2023-07-20 19:18:40 -07:00
Rakesh Pillai
315a53eaa9 qcacld-3.0: Add ucfg API to update link mac addr
After moving to the single-netdev-multiple-vdev model,
the dp_link mac address needs to be updated as a part
of dynamic mac address update.

Add an ucfg API to update link mac address.

Change-Id: I96d3230f958c15cb576c881c02e60bd3a4fb0379
CRs-Fixed: 3563523
2023-07-20 13:39:04 -07:00
Rakesh Pillai
ecfe8c6f75 qcacld-3.0: Add API to find next def_link candidate
Add API to find the candidate for next default link.
This is used when the current default link is being
re-purposed or destroyed.

Change-Id: I98afd3ef2ac21d14ee6056f6329fbcf9a612959a
CRs-Fixed: 3519643
2023-07-20 13:38:58 -07:00
Rakesh Pillai
09e724c396 qcacld-3.0: Replace intf_id with link_id
Replace the usage of dp_intf->intf_id with
link_id from dp_link.

Change-Id: I1885ce300a0373172659ae8c38cb2ca54dda1a9c
CRs-Fixed: 3518898
2023-07-20 13:38:52 -07:00
Rakesh Pillai
1e093bec44 qcacld-3.0: Use dp_link in txrx path
Use dp_link in the core TX/RX path instead
of currently used dp_intf.

Change-Id: Id32a4053094fae844d190043d57f85a8e9659339
CRs-Fixed: 3518897
2023-07-20 13:38:46 -07:00
Rakesh Pillai
a3161f8f5b qcacld-3.0: Move vdev and vdev_lock to dp_link
Move the vdev and vdev_lock to dp_link, since
dp_link corresponds to objmgr vdev now.

Change-Id: Id1ef27911c4eaa3434fc2719a8f5951f00d31116
CRs-Fixed: 3518896
2023-07-20 13:38:40 -07:00
Rakesh Pillai
96ff75c0cd qcacld-3.0: Fix dp_get_vdev_priv_obj to return dp_link
Currently objmgr_vdev returns dp_intf, which is
now changed to dp_link.

Change-Id: Ib2be45cb821fb2d9ab9e32bcf485a74509e4040e
CRs-Fixed: 3518895
2023-07-20 13:38:34 -07:00
Rakesh Pillai
21052cf452 qcacld-3.0: Add dp_link data structure
Currently dp_intf is create on adapter level,
but corresponds to vdev. ML connection can have
multiple links for same adapter.

Hence introduce a new data structure dp_link,
which corresponds to the vdev, whereas dp_intf
now corresponds only to adapter/netdev.

Change-Id: Ia2bba89f425b64b4e404f6866a54fe0f6e05ad6d
CRs-Fixed: 3518894
2023-07-20 13:38:28 -07:00
Paul Zhang
7f78965c87 qcacld-3.0: Add API to restore or clear user set link num
Add API to restore or clear user set link num when SSR or
interface down happens.

Change-Id: I955937817481740dc3dd75b51d669ed36b5f74d2
CRs-Fixed: 3531260
2023-07-20 01:11:24 -07:00
Karthik Kantamneni
638da26c32 qcacld-3.0: Add support to program dynamic FISA aggregation size
Currently FISA max aggregation count is fixed 16, but some
platforms can support different max aggregation count.

So while sending HTT FISA config if F.W is capable of programming
dynamic msdu aggregation sizes, then select max aggregation count
based on target type and send it to F.W.

Change-Id: Ic5212536024a3ceb0b2c4ad111172870f1825969
CRs-Fixed: 3542509
2023-07-19 12:11:02 -07:00
Aditya Kodukula
b1969a2405 qcacld-3.0: Fix improper arguments for QDF_MAC_ADDR_REF
Currently in driver while using QDF_MAC_ADDR_FMT to print mac
address, the mac address reference provided to QDF_MAC_ADDR_REF is
incorrect in some cases. Fix all such instances.

Change-Id: Ib5d84b01542ebf04ee7d23fb65305036651a6a45
CRs-Fixed: 3556409
2023-07-18 22:54:49 -07:00
Vijay Raj
a6753114c3 qcacld-3.0: Validate vdev in target_if_nan_set_vdev_feature_config
In the api target_if_nan_set_vdev_feature_config (),
vdev is not validated before sending vdev set param cmd
to FW which results in crash for invalid vdev.

Validate vdev in the api target_if_nan_set_vdev_feature_config()
before sending vdev set param cmd.

Change-Id: I70ee56ae3c78f466c3757671c95b449925bb9fd2
CRs-Fixed: 3546457
2023-07-18 22:54:42 -07:00
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
Jianmin Zhu
5ae9465946 qcacld-3.0: Allow SAP for PM_STA_P2P_GO_MCC_24_5
When STA 5GL + SAP 5GH in SBS mode, P2P Go start on 2 GHz, STA and
P2P Go are MCC in same MAC 0, so PCL index is PM_STA_P2P_GO_MCC_24_5_1x1,
when try to switch SAP channel to avoid MCC, PCL got is none, so SAP
failed to restart and stopped.

To fix it, for 2 ports like PM_STA_P2P_GO_MCC_24_5_1x1, when start/restart
SAP, change PCL to PM_SCC_ON_5_SCC_ON_24, allow it SCC with STA or P2P Go.

Change-Id: I7f05c1f430c6fd89a5055781604588366870e4f0
CRs-Fixed: 3561049
2023-07-18 09:50:35 -07:00
Aditya Kodukula
32694d5ca9 qcacld-3.0: Use QDF_MAC_ADDR_FMT to print mac address
Currently in driver, %pM is used to print mac address.
Replace all instances of it with QDF_MAC_ADDR_FMT.

Change-Id: Ibd575675804ab6545ed32fde2ec2b08caf837d83
CRs-Fixed: 3555007
2023-07-17 22:37:02 -07:00
Aditya Kodukula
5156c641ee qcacld-3.0: Replace QDF_FULL_MAC_FMT with QDF_MAC_ADDR_FMT
Currently in driver, two macros are defined to specify the
mac address printing format. Since both macros achieve
the same result, replace all instances of QDF_FULL_MAC_FMT
with QDF_MAC_ADDR_FMT.

Change-Id: I88b04fbaeba061a6272427e0daafcc132f53bb1e
CRs-Fixed: 3559489
2023-07-17 22:36:57 -07:00