Commit-Graf

3328 Incheckningar

Upphovsman SHA1 Meddelande Datum
Pragaspathi Thilagaraj
bd699c287b qcacld-3.0: Modify mlo supported bands based on roam_band_bitmap
roam_band_bitmap is updated based on the vendor command from
userspace, when NCHO band configuration is received.
Update the MLO support_link_band sent to firmware as part of the
RSO commands to intersect the user configured roam_band_bitmap
value.
This will restrict the firmware to advertise only those bands
sent in the WMI_ROAM_MLO_CONFIG_CMDID command, and firmware
will advertise only links corresponding to the configured
bands in the reassociation request.

WMI_ROAM_MLO_CONFIG_CMDID will be sent when
QCA_ATTR_ROAM_CONTROL_BAND_MASK attribute is received in roaming
subcmd: QCA_WLAN_VENDOR_ROAMING_SUBCMD_CONTROL_SET as part of
NCHO set band, since RSO stop, followed by start is sent during
set band to update PCL to firmware

Change-Id: Iba34411956bdb09502623bac9a51fb4663c632a8
CRs-Fixed: 3580693
2023-08-07 05:06:46 -07:00
Bing Sun
fb4305e446 qcacld-3.0: add roam trigger bitmap sysfs functionality
Add support to configure roam_trigger_bitmap.

Change-Id: I1a7329910e5276469fa7cf0711d412cc8850d98b
CRs-Fixed: 3563225
2023-08-06 22:46:47 -07:00
Bing Sun
25f5c0058e qcacld-3.0: add wds mode sysfs functionality
Add support to configure wds_mode.

Change-Id: I19b7c797083a75d2aebf53d574484def5a4ec9e1
CRs-Fixed: 3563193
2023-08-06 22:46:42 -07:00
Liangwei Dong
20b3165adb qcacld-3.0: Add link removal flag in link info
At present, the link removal flag is in vdev object, but vdev may
repurpose to other link, the link removal flag has to be in link
info struct.
Add link removal flag in link info data struct and remove
it from vdev struct.

Change-Id: I6116e89f2bb065979f4e405ef0fac386abebcf17
CRs-Fixed: 3572836
2023-08-04 06:53:18 -07:00
Liangwei Dong
444ee71217 qcacld-3.0: Convert vdev based to link based for set link
Convert vdev based to link based for set link.

Change-Id: I467573e7156094c4d3abb168ec5698d20f39649e
CRs-Fixed: 3569810
2023-08-04 06:53:13 -07:00
Liangwei Dong
675a0cf799 qcacld-3.0: Don't force inactive link if no left active vdev
If no active vdev links are left after force inactive for concurrency,
then do not send the force command. Add standby link check for this.
Add handle special 3 Ports case to force inactive potential MCC ML STA
link.

Change-Id: If35c19b554bd1a4725c3498f9228e0273a031b6c
CRs-Fixed: 3572829
2023-08-04 06:53:06 -07:00
abhinav kumar
8d585706ca qcacld-3.0: Update bss rate flags as per BW update
Supplicant sends SET_MAX_BANDWIDTH driver command to update
connected channel width dynamically.

Host should update connected bss rate flags so that host
can send proper cp stats as per updated channel bandwidth.

Change-Id: I676635b108f91f4fd8471fbe66352aa471dd9a9f
CRs-Fixed: 3519930
2023-08-03 19:39:28 -07:00
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