Commit Graph

100 Commits

Author SHA1 Message Date
Rakesh Pillai
ab914e6f3e qcacmn: Handle stale entry in tx completion ring
Currently SW writes a magic number in the tx completion
ring descriptor after reaping from the ring. This magic
number is used to determine, if the HP of the srng has been
updated without the contents of the ring descriptor has been
written.

There were cases of such stale entries observed and as a SW
workaround, add a logic to wait for a specific timeout for
the contents of the ring descriptor to be updated before
moving on to process subsequent ring entries.

Change-Id: I17c0dc0ac55ca81dee3c0825ce934d60ccb1a720
CRs-Fixed: 3648443
2023-11-03 10:09:13 -07:00
Himanshu Batra
7dbcea96f9 qcacmn: MLO 3 link simultaneous tx transmission
MLO 3 link simultaneous tx transmission.

Change-Id: I1f92e49a5ea634f99e354dd02737c74bae20c483
CRs-Fixed: 3634563
2023-10-25 09:39:58 -07:00
Chaithanya Garrepalli
c88f3c2d9a qcacmn: Fix overflow issue with hlos_tid_override set
In dp_tx_fast_send_be() fix issue while updating
hlos_tid_override bit in TX descriptor

Change-Id: I470d5140585ad3abefcb1345b52dc0caa3cf6fe4
CRs-Fixed: 3631006
2023-10-11 02:13:08 -07:00
Varsha Mishra
a4a989e5b7 qcacmn: Fix nbuf leak in tx datapath
Free nbuf_clone before returning from dp_tx_mlo_mcast_multipass_send.
Since this API is allocating nbuf_clone, it has the responsibility
of freeing it.

Change-Id: I7a1334a1d941ec352533e788a65596a1b12ae08a
CRs-Fixed: 3628989
2023-10-10 19:37:26 -07:00
Harsh Kumar Bijlani
8616350ebe qcacmn: Change order of SAWF enabled conditional check
Legacy SCS uses skb mark field to specify the priority i.e TID.
This feature is to be supported independent of SAWF framework.
Therefore change the order of SAWF enabled conditional check.

Change-Id: I445f697395c8140b3b9fd7f877dfa8d057f0eaa8
CRs-Fixed: 3630722
2023-10-04 22:03:15 -07:00
Aman Mehta
3768768424 qcacmn: Update tx ingress stats with xmit field
Update tx ingress stats with xmit field

Change-Id: I86ad9c59f49213e2968751bfc488eb2bdd95baa5
CRs-Fixed: 3561679
2023-09-27 22:13:14 -07:00
Neha Bisht
29b42e6ee2 qcacmn: Add hlos_tid_override feature in fast_path for be
Add hlos_tid_override feature in fast_path for be

Change-Id: Ib9d0015993b9c84e047e12cb47dd92eebb84508e
CRs-Fixed: 3613823
2023-09-17 02:36:39 -07:00
Sushant Butta
37c16635b1 qcacmn: Set fast_tx flag when ol_stats are disabled
Set fast_tx when ol_stats are disabled in
ultra_fastpath to avoid Tx completion overhead.
And also includes following fixes:
cdp support to get jitter stats
cdp support to set/get vow stats
cdp support to get Sojourn Stats

Change-Id: I8bdb176edbdf210b4dedfaa117f058f57bd17241
CRs-Fixed: 3604215
2023-09-16 07:45:49 -07:00
Tiger Yu
dbfc30e61b qcacmn: Add pdev checking when processing the htt completion messages
Add pdev checking when processing the htt completion messages to avoid
NULL pointer dereference both in the dp_tx_process_htt_completion and
dp_tx_comp_handler.

Change-Id: I9e8129cfa297d4f2e180550c50ad8a4f1be20ee0
CRs-Fixed: 3583893
2023-09-04 06:21:55 -07:00
nobelj
beede07860 qcacmn: Add fix to populate transmit count
Add fix to populate transmit count for exception frame

Change-Id: I3fa77783169b86779b8a3d6cc0152de8f58cbadf
CRs-Fixed: 3583259
2023-09-03 10:42:18 -07:00
Neha Bisht
5e70737f80 qcacmn: Handle special descriptor cases for global tx pool
Handle special descriptor cases for global tx desc pool

Change-Id: I33253b726b1b8a2e7438b3bc1dddcac43ad8fb25
CRs-Fixed: 3592887
2023-08-30 13:40:05 -07:00
Neha Bisht
82e9711f5b qcacmn: Move Tx desc pool to global context level
Move Tx descriptor pool to global context level.

Change-Id: Iff13a41f3bebbaa93e559c38842a596d47f4e534
CRs-Fixed: 3534184
2023-08-30 13:39:55 -07:00
Kenvish Butani
59bc72aa0f qcacmn: Use MLO Device Context for finding MLO Partner vdev's
Use vdev list present in MLO device context structure to find
MLO Partner vdev.

Change-Id: I6660ab91b27474dbe80562cc763417f07a7a2776
CRs-Fixed: 3583614
2023-08-30 01:38:35 -07:00
Pavankumar Nandeshwar
ad866ad37f qcacmn: Avoid asserts in dp related to HW interactions
Avoid asserts in data path which related to HW interactions
and instead use work arounds.

Change-Id: I86089d21c5be23784f8a077b085f3f3b8a2308e4
CRs-Fixed: 3564940
2023-08-23 10:33:18 -07:00
Kenvish Butani
e617b8791c qcacmn: Add Mcast Seq num in MLO dev ctx
Move multicast sequence number field from
dp_vdev_be to MLO device context struct.

Change-Id: I28c3a9f4480a5da5b622f9dd2a070ac25b9b6e5b
CRs-Fixed: 3586918
2023-08-16 13:36:38 -07:00
KARTHIK KUMAR T
39bb6afc38 qcacmn: added MLO MCAST packet stats
added MLO MCAST packet stats in tx stats

Change-Id: I46ad1a94bf986d21a9b865d7531298e805abcda8
CRs-Fixed: 3582328
2023-08-16 13:36:26 -07:00
Nandha Kishore Easwaran
15812b8137 qcacmn: Optimize tx completion processing in fast path
Optimize tx completion processing in fastpath by adding the list of
tx descs to the free list directly instead of individually accessing
each descriptor and adding it to free list. This gives advantages of
not taking descriptor pool lock for each descriptor and rather takes
the lock only once when appending the whole list of descs to the
free list.

Also removed unused member shinfo_addr from tx_desc structure. Removal
of this member enables increase of flags type from u16 to u32 without
increasing the size of tx_desc structure. These changes improved peak
KPI by 2% in SFE mode.

Change-Id: I995de9cc08c866ad6e1cd1efc76ac2a35d40fb7c
CRs-Fixed: 3584578
2023-08-15 15:09:54 -07:00
Amit Mehta
8a052c3b88 qcacmn: Get correct peer id in htt tx completion
Currently in htt tx completion for MLO connection
host is not converting peer id into ml peer id.

Due to wrong peer_id host is not able to find txrx_peer
due to which stats are not getting updated.

To fix the issue in case of MLO connection convert
received peer_id into MLO peer_id.

Change-Id: I2e90104053d59a319d46a2628c4e9cdcb32832a0
CRs-Fixed: 3574182
2023-07-28 23:43:08 -07:00
Sai Rupesh Chevuru
a7af205870 qcacmn: populate the bridge vap in partner list
populate the bridge vap in partner list

Change-Id: Ie7c0ebc3b796f2b57e7837577079dcd1d4faac45
CRs-Fixed: 3550201
2023-07-14 10:07:31 -07:00
Nanda Krishnan
baf49c9f89 qcacmn: Tracking the ring util stats
Added serviceability changes to track ppe2tcl
and wbm2rel ring util stats

Change-Id: Ia154ae4914c47f010921eaed10b8a4dde50884bf
CRs-Fixed: 3537655
2023-06-27 21:48:54 -07:00
Pavankumar Nandeshwar
5981600c3a qcacmn: Account for global tx desc count during pool flush
Make sure global tx desc count is decremented during
tx desc pool flush

Change-Id: I5ba21cd9a4b1dbd3dbaf55e56a5852fe7703e36c
CRs-Fixed: 3501063
2023-05-23 06:59:50 -07:00
Sai Rupesh Chevuru
cdbbebd6f8 qcacmn: handling of mcast in proxy arp along with MLO MCAST
handling multicast packets in the case of proxy arp
along with MLO MCAST.

1. stamp the host inspected bit for GSN based packets.
2. trigger dp_tx_proxy_arp from the reinject handler.

Change-Id: I8aea1e4fd4e61f4cc6a5dd6d8b5151c1a9bf2fac
CRs-Fixed: 3465975
2023-05-04 13:49:48 -07:00
Sreeramya Soratkal
73d7e4d15a qcacmn: Derive TID from DSCP in case of legacy SCS
With the convergence of SCS and SAWF, do not override the TID
for legacy SCS case. Retain the value obtained using DSCP in
this case.

CRs-Fixed: 3460620
Change-Id: I19502d09f5f37376bac08eb05fcf770c71331e1c
2023-04-18 22:02:50 -07:00
Chaithanya Garrepalli
e61eaa37e2 qcacmn: in fast xmit API memcpy 7 words for AP mode also
As we are using index_look_up_overwrite field in TX
descriptor with WDS_EXT need to reset this field in
FAST TX API even in AP mode

Change-Id: I6027a2d99be715973af5f8091755f0a4a9256010
CRs-Fixed: 3450922
2023-04-09 23:13:26 -07:00
Jinwei Chen
401521fc7c qcacmn: Add DP API to evaluate if TX ILP needs to be enabled
Add DP API to evaluate if TX ILP needs to be enabled,
it is only enabled if following two conditions are met,
(1) INI for TX ILP is enabled
(2) htt msdu index to qtype mapping table index 3 value is
HTT_MSDU_QTYPE_LATENCY_TOLERANT

Change-Id: I4d0c1103941b8b12b8441762dc6b45d28ee1df21
CRs-Fixed: 3447096
2023-04-05 18:26:51 -07:00
Harsh Kumar Bijlani
af094fe095 qcacmn: Add support to get stats for MLD interface
Add support to get stats for MLD interface in single netdev model

Change-Id: I223a5c003191147970be57b92e99f1df3c66b339
CRs-Fixed: 3444443
2023-04-03 01:36:11 -07:00
syed touqeer pasha
c928ef0e59 qcacmn: Add support for extended statistics with DS
Add support to handle the extended Tx completion
statistics during direct switch mode.

Change-Id: If1b6906d5d2b3156ead8ef039524f47e763cb543
CRs-Fixed: 3431840
2023-03-20 04:49:25 -07:00
Manikanta Pubbisetty
6758a546bc qcacmn: Add TX descriptor changes for WCN6450
WCN6450 is a chip based on Rhine architecture. Unlike LI/BE targets,
chipsets based on Rhine (RH) do not have host facing UMAC HW blocks.
Their corresponding SRNG interfaces are also removed. The functionality
of these UMAC HW blocks is replaced with a software implementation in
the firmware. Communication between the driver and firmware will happen
over copy engine (CE).

Although there are no host facing UMAC HW blocks, the CE hardware used
in WCN6450 expects the host driver to use the TX descriptor (HW) format
of LI targets during TX packet enqueue. Therefore it is required to
create a new pool of TX descriptors (HW) pool for WCN6450 that is used
during TX.

The logic to create/free/init/deinit these descriptors is specific
to WCN6450/Rhine, therefore it is implemented in architecture specific
Rhine code.

Introduce new APIs in struct dp_arch_ops {} to allocate and free
arch specific TX descriptors. These ops will be no-op for LI/BE
architectures.

Also for Rhine targets, allocate/free other TX descriptors like TX EXT &
TSO descriptors as part of the arch APIs.

Change-Id: I452ac69143395881ab8580355a0f75571dc3e929
CRs-Fixed: 3381711
2023-03-16 09:30:15 -07:00
Harsh Kumar Bijlani
ef49de7005 qcacmn: Consider TID from skb mark even when tid_override is enabled
Consider TID from skb mark when tid_override is enabled along
with SAWF.

Change-Id: I2d1b55017f7c1de6fa3305aa903b8a97edca501c
CRs-Fixed: 3421733
2023-03-06 11:42:22 -08:00
Sai Rupesh Chevuru
10826afad5 qcacmn: Adding NAWDS support along with WDS-EXT
Adding NAWDS support along with WDS-EXT

Change-Id: I19d277fa575750d3194afc9ec9af3180a8c936ad
CRs-Fixed: 3406151
2023-02-24 07:04:50 -08:00
Pavankumar Nandeshwar
0a7d729a98 qcacmn: Reuse the tx descriptors in direct switch
Reuse the tx descriptors released in tx completions
without releasing the associated skbs to reduce
the cpu utilization in direct switch mode.

Change-Id: I4ab3ac58977a626344877b8a818a4dbc4864aaf3
CRs-Fixed: 3393968
2023-02-18 20:50:25 -08:00
Jeff Johnson
afe5a28707 qcacmn: Fix dp/wifi3.0/be documentation
The kernel-doc script identified a large number of documentation
issues in dp/wifi3.0/be, so fix those issues. In addition, there are a
number of instances where public functions have their implementation
documented instead of having their interface documented, so move that
documentation.

Change-Id: I15c8570aa1832ed053fa38f536fa36b2ca0aa56b
CRs-Fixed: 3373157
2023-02-11 02:23:47 -08:00
Nanda Krishnan
d30d545aee qcacmn: Counters to track when wifi firmware drops in Tx path
Incremented an counter when wifi FW drops the packet in DS mode
with reason as FW2WBM_TX_STATUS_DROP and we can dump it
via 260 output

Change-Id: Ieb52b0af6dca66732f34cc7f1cfba5c467e9507f
CRs-Fixed: 3383509
2023-02-05 18:57:43 -08:00
KARTHIK KUMAR T
7ae4979be0 qcacmn: Add mcast enhance flow for single dev
Add mcast enhancement for single dev/bonding feature

Change-Id: I8bc0c3c78e3eb8c6679e00442d607615bab38f96
CRs-Fixed: 3350461
2023-02-05 04:33:10 -08:00
Jinwei Chen
b4f81eace0 qcacmn: Set TX flow queue for TCP ack
If TX data is TCP ACK, configure TX flow index 3 in
SW2TCL data cmd ring descriptor.

Change-Id: Ibd08b13ba8f0481aa11cd9c3dc54a49cd73674fb
CRs-Fixed: 3368303
2023-01-30 01:34:05 -08:00
Amit Mehta
877eaf11ea qcacmn: Fix HTT HAL Tx status mapping
Currently HTT_TX_FW2WBM_TX_STATUS_DROP and HTT_TX_FW2WBM_TX_STATUS_TTL
are mapped to HAL_TX_TQM_RR_REM_CMD_REM which results in the wrong Tx
status print in case HTT_TX_FW2WBM_TX_STATUS_TTL where No ack is received.

So to fix the status log issue map HTT_TX_FW2WBM_TX_STATUS_DROP to
HAL_TX_TQM_RR_REM_CMD_REM and HTT_TX_FW2WBM_TX_STATUS_TTL to
HAL_TX_TQM_RR_REM_CMD_TX to log correct Tx Fail Status.

Change-Id: If125313f6b831ce5ca0f7eec9e8e3f1a03229f16
CRs-Fixed: 3362679
2023-01-02 10:53:33 -08:00
jinbaoliu
5a1cd48520 qcacmn: Fix TX stastics failed to take TSO segment into account
Currently, we record TX musdu number and packet length, which falls into
three categories: from stack, from host and successfully transmitted. In
TSO mode, the msdu from stack will be divided into several fragments and
each of the fragment will be transmitted as an individual msdu. This change
will take TSO into account when it comes to the 3 forms of TX statstics.

Change-Id: Ie11cb7541b4e109609bf3104739a5e19f51dcc13
CRs-Fixed: 3361412
2022-12-28 06:15:15 -08:00
Sreeramya Soratkal
d148f093d2 qcacmn: Handle allocation of descriptors to special packets
Special frames like EAPOL should not be dropped as it would cause
failure in connection. To prevent the dropping of higher priority
special frames, reserve a set of descriptors from the tx descriptor
pool.

Check the regular soc or pdev limit for the allocating tx descriptors
for the regular packets and use the reserved set of descriptors
only for the special packets.

CRs-Fixed: 3331359
Change-Id: I15532fb5e325ba6ad997090008bda8c52707a05b
2022-12-27 17:07:26 -08:00
KARTHIK KUMAR T
a2625b18ab qcacmn: Get ast_idx from dp peer structure
Get the ast_idx from dp peer structure to
set search index in HW tx descriptor

Change-Id: Icc7e70d8bb739348403663a1fe647849c57d277a
CRs-Fixed: 3346449
2022-12-27 14:27:45 -08:00
Pavankumar Nandeshwar
c811b9d544 qcacmn: PPE-DS feature naming convention update
1. Change the names of parameters and functions related
   to direct switch feature from ppe to ppeds
2. Remove the unused ppe_release_ring

Change-Id: I5a95b1273e338f354903af98158578ac65758a8a
CRs-Fixed: 3345097
2022-12-18 01:11:58 -08:00
Kenvish Butani
069ca18f58 qcacmn: MLO Mcast Support for ML-Reconfig
1.Add check in Tx completion path to handle
mcast packets from all ML partner vdevs
2.Handle cases where a ML mcast vdev can be
deleted and started as NON-ML vdev and
viceversa by adding reset ML mcast conf.
3.Optimized Register configurations for Mcast
at Init/Delete and Start/Stop AP

Change-Id: Iab8a5a081e2e0377509574d362754d32c5b83df2
CRs-Fixed: 3350350
2022-12-07 23:45:21 -08:00
Jinwei Chen
1bf08f3566 qcacmn: Add TX completion ring desc sanity check
Suspect HW update WBM2SW ring HP, but the ring entry contents are
not updated accordingly which then host will fetch one stale ring entry,
this makes other TX packet are freed unexpectedlly.

Add change to detect this situation earlier, if HW cookie conversion is
done, then invalidate 2nd dword for upper 32bits of VA, so next time when
reap this ring entry contents to know if this desc is updated by
HW or not. if HW cookie conversion is not done, then compare the PA in
buff_addr_info with PA in current TX desc to check.

Change-Id: I351eb4f860216fc618ff28736d4832fcec45dcc5
CRs-Fixed: 3345935
2022-12-07 09:47:10 -08:00
Neha Bisht
5d0b7ea33f qcacmn: Create a list of skbs to be freed at once
Create a list of skbs to be freed at once in dp tx completion path

Change-Id: I42129b4306206f7224ceabc87d07e2a87b8fcab6
CRs-Fixed: 3274945
2022-11-25 12:35:45 -08:00
Pavankumar Nandeshwar
ab2bd061c2 qcacmn: Enable wbm2sw_release ring for ppe2tcl ring
Enable wbm2sw_release ring for ppe2tcl ring to
handle tx completions

Change-Id: I38e81bb46e376e3f059f321454aa4d241e6aadb7
CRs-Fixed: 3309444
2022-11-23 02:15:55 -08:00
Neha Bisht
bd144caad7 qcacmn: Set fast_recycled flag in fast xmit path
Set fast_recycled flag for packets in fast xmit path

Change-Id: I6388beb5d187d000c300898d1d1480e6654836eb
CRs-Fixed: 3306873
2022-11-07 13:11:32 -08:00
syed touqeer pasha
e44617cc32 qcacmn: Extract TID from the SAWF MSDUQ
Extract TID from the SAWF MSDUQ

Change-Id: Iaa3e396644898eef32c4474a85421150e301eff5
CRs-Fixed: 3315716
2022-11-07 13:10:38 -08:00
Jeff Johnson
ebfbc0d927 qcacmn: dp: Fix misspellings
Fix misspellings in dp/...

Change-Id: I6ef7a19ee03104ae38a8a77e229b90aa80329592
CRs-Fixed: 3304682
2022-10-07 22:42:22 -07:00
Karthik Kantamneni
276f3b27ac qcacmn: Add rind id info in TX HW descriptor history
Add ring id info in TX HW descriptor event history,
this helps to map history event to corresponding HW TX
ring in multi TX queue enabled case.

Change-Id: I82dcece76b1342f4086d489ba489da7c20ea6cad
CRs-Fixed: 3294177
2022-09-19 17:50:41 -07:00
Tallapragada Kalyan
3366de83ac qcacmn: Add fast TX support for STA mode
Add fast TX support for STA mode too

Change-Id: I416076bf7faa2d48fa4d2749f4b08cee2767e279
CRs-Fixed: 3289179
2022-09-18 05:00:47 -07:00
Jia Ding
79a9d0dc1d qcacmn: Set up TX bank profile for IPA
bank id is newly added in TX descriptor for BE chipsets. As such,
with IPA Offload enabled, IPA needs the bank id information to do
offload WLAN TX.

From WLAN perspective, bank id is designed to be used on a per-vdev
role basis. E.g. STA vdev and SAP vdev have separate and different
bank profiles.

However from IPA perspective, bank id needs to be on a per TX ring
basis, because IPA GSI FW is not able to identify STA or SAP vdev
role on a per-packet basis.

Hence initialize last HOST owned bank id profile for IPA usage.

Change-Id: I0cf71b638f5999905069aff0551d8ebeb5477e17
CRs-Fixed: 3289558
2022-09-14 23:43:33 -07:00