Commit Graph

3992 Commits

Author SHA1 Message Date
Rakesh Pillai
4bb252b2a3 qcacmn: Featurize wlan repeater handling in multipass
Currently the packet tx handling for AP-multipass
assumes wlan repeater to be present. For targets like
qca6490, kiwi etc, wlan repeaters are not supported in
the network topology.

Hence to skip unwanted tx packet copy in per-pkt path,
move the code to handle packet tx to waln repeater in
multipass mode under a feature macro.

Change-Id: I8bb3fbc4f3de76c3ae04978d12d369fad5d2553f
CRs-Fixed: 3491508
2023-05-14 05:07:40 -07:00
Rakesh Pillai
e01279c8cf qcacmn: Include enet.h for ETHERTYPE_VLAN_LEN macro definition
ETHERTYPE_VLAN_LEN is defined in enet.h, which is not being
included in dp_main.c, which can lead to compilation error
if the MULTIPASS feature is enabled.

Include the enet.h header file for ETHERTYPE_VLAN_LEN macro
definition

Change-Id: I589123a0e2161486a430c6e8d6ca18e5907252d4
CRs-Fixed: 3494435
2023-05-14 05:07:29 -07:00
Harsh Kumar Bijlani
ab46f235a0 qcacmn: Update rx_fast_flag for Rx protocol tag feature
Update rx_fast_flag for Rx protocol tag feature irrespective of
enhanced_stats_en flag.

Change-Id: Ibea2869cc182ad7d1683692d86b01de542cbddd0
CRs-Fixed: 3481654
2023-05-14 02:07:07 -07:00
Namita Nair
2613f207e0 Revert "qcacmn: WAR for opt_wifi_dp feature to disable IPA(1)"
This reverts Change-Id: I7aad275f4d86a2ffc239f1fe343de31ec2988fad.

Change-Id: I875e8d15430c3f0a0f4bf10d275b203b24023a64
CRs-Fixed: 3483264
2023-05-12 16:39:36 -07:00
Sai Rupesh Chevuru
1b317b0bf3 qcacmn: received packet matches with mld mac address drop it
In extap mode if the received packet matches with mld mac address drop it.
for non IP packets conversion might not be possible,
due to that MEC entry will not be updated, resulting loopback.

Change-Id: Ibec080b619e9b0a8068e1c90acbcc144d44d8f54
CRs-Fixed: 3485362
2023-05-12 13:18:47 -07:00
Karthik Kantamneni
3987bb28f6 qcacmn: Add support to get Rx contexts count for SOFTUMAC target
Add support to get number of Rx contexts for SOFTUMAC
based targets.

Change-Id: I71ee96e3230a198b82b0e633fbe67a8690097f74
CRs-Fixed: 3486660
2023-05-12 13:18:26 -07:00
Yeshwanth Sriram Guntuka
428903aa33 qcacmn: Add DP descriptor types for direct link
Add DP descriptor types for direct link datapath
related memory prealloc pool.

Change-Id: I8c8be42b0530de39293ad8e45f47e16f90ea7767
CRs-Fixed: 3490102
2023-05-10 14:45:50 -07:00
Srinivas Girigowda
08ea5c2b80 qcacmn: Add support for local packet capture running
Add support for local packet capture running.

Change-Id: Id954c57a32210c180a8e0f9107e2469f96491173
CRs-Fixed: 3415816
2023-05-10 11:51:09 -07:00
Srinivas Girigowda
13554f0cdc qcacmn: Add support for local packet capture stop
Add support for local packet capture stop.

Change-Id: Ib12574f5b418ea009ec35ef85e170bc8c592c86f
CRs-Fixed: 3415812
2023-05-10 11:50:54 -07:00
Srinivas Girigowda
d52311a2b1 qcacmn: Replace IEEE80211_* macros with with QDF_IEEE80211_* macros
IEEE80211_* macros are defined in WIN specific header file which is not
available on MCL side, Hence replace these macros with QDF_IEEE80211_*
macros available in common header file

Change-Id: Ic2caaebacd9edded23aebefab87cd82dbbb06974
CRs-Fixed: 3415721
2023-05-10 11:50:41 -07:00
Srinivas Girigowda
5d8e550bb7 qcacmn: Add support for local packet capture start
Add support for local packet capture start and relevant changes.

Change-Id: I709e41e0be09cf73e93694efc59bfefbf51fe359
CRs-Fixed: 3415788
2023-05-10 11:50:28 -07:00
Srinivas Girigowda
980d883f07 qcacmn: Introduce HAL API to get phy ppdu id size
Introduce HAL API to get phy ppdu id size.

Change-Id: I125eb344787060336919fb361af032fddeb34526
CRs-Fixed: 3454206
2023-05-10 11:50:15 -07:00
Srinivas Girigowda
9c855c06e2 qcacmn: Separate out the implementation for RX 2.0 and TX 2.0
Separate out the common function implementing both RX 2.0 and TX 2.0
functionality in to RX 2.0 and TX 2.0 separate functions.

Change-Id: I29337aca9851dce1888a492a9534992277f595b5
CRs-Fixed: 3427301
2023-05-10 11:50:01 -07:00
Srinivas Girigowda
0e83621a7c qcacmn: Implement mon_ops to support RX 1.0 and TX 2.0
Currently WIN supports RX/TX 2.0 but MCC needs to support RX 1.0 and
TX 2.0. Hence implement the mon_ops callbacks as array of callback
pointers. Index 0 for 1.0 and Index 1 for 2.0.

Change-Id: I777b47be3af86f0b762b3563ef56204809a9a7ee
CRs-Fixed: 3427297
2023-05-10 11:49:48 -07:00
Srinivas Girigowda
ce736a1d8d qcacmn: Rearrange the functions to appropriate files
Rearrange the functions to appropriate files based on TX and RX 2.0.

Change-Id: Ie8e562a7aecdc91257210b55a323dfe47e67878c
CRs-Fixed: 3427296
2023-05-10 11:49:36 -07:00
Srinivas Girigowda
9de0de3f01 qcacmn: Add support for local pkt capture cfg ini
Add support for local pkt capture cfg ini.

Change-Id: I7b7e50010d71482d97de46d87ed2c70c78e74cd2
CRs-Fixed: 3415783
2023-05-10 11:49:23 -07:00
Srinivas Girigowda
0419d28f6e qcacmn: Move TX 2.0 code under WLAN_PKT_CAPTURE_TX_2_0 macro
Move TX 2.0 specific code under WLAN_PKT_CAPTURE_TX_2_0 macro.

Change-Id: I20bb1e49a902ec085fbc3df6828fef94a7c577d6
CRs-Fixed: 3415780
2023-05-10 11:48:59 -07:00
Srinivas Girigowda
f5321447c2 qcacmn: Move RX 2.0 code under WLAN_PKT_CAPTURE_RX_2_0 macro
Move RX 2.0 specific code under WLAN_PKT_CAPTURE_RX_2_0 macro.

Change-Id: Ic07bde8868850b8889941fc9054ad988617b5296
CRs-Fixed: 3415779
2023-05-10 11:48:45 -07:00
Srinivas Girigowda
ec3b9bdbce qcacmn: Move cmn code under QCA_MONITOR_2_0_SUPPORT to TX/RX 2.0 macro
Currently QCA_MONITOR_2_0_SUPPORT macro is used for both TX and RX 2.0.
but on MCC side, only RX 1.0 is supported and as part of this feature
TX 2.0 need to be supported.
Enabling QCA_MONITOR_2_0_SUPPORT will enable both RX 2.0 and TX 2.0, but
to support RX 1.0 and TX 2.0, we need to separate out code under
QCA_MONITOR_2_0_SUPPORT to TX and RX 2.0 macro.

As part of this change, introduce separate macros for TX 2.0 and RX 2.0
and move the common code under both macros.

Change-Id: I7ef7e488800934291538a0bca9acd21e28901214
CRs-Fixed: 3415740
2023-05-10 11:48:32 -07:00
Pavankumar Nandeshwar
89f62ba1f3 qcacmn: Include DS tx desc usage in global desc limit check
Make sure the global tx desc usage limit is honored by
direct switch as well.

Change-Id: Ie84edb08a8bd6c6a18338caf21328245bd70a8bc
CRs-Fixed: 3486130
2023-05-09 11:05:42 -07:00
Biswajit Dash
d62608cb2a qcacmn: Hybrid mld netdev support
-Support to route IGMP packet to correct netdev coming from
 legacy and mld sta.
-Support to detect mld model based on ini setting

Change-Id: I10ea5af9a4315642b262c8404d7bebd88ee06ab1
CRs-Fixed: 3467808
2023-05-09 06:30:09 -07:00
Harsh Kumar Bijlani
2b2a9fc6c8 qcacmn: Fix double accounting of peer stats in DS mode
Fix double accounting of peer stats in DS mode

Change-Id: Ie58a24a125726868a2f0039842668506d02b2263
CRs-Fixed: 3488317
2023-05-08 14:25:40 -07:00
Pavankumar Nandeshwar
e8bf99b94f qcacmn: Honor Umac reset trigger atomically
Make sure the Umac reset state is updated when
the trigger is received only after checking
Umac reset in progress flag.

Change-Id: I2c6ac68bee5b69b1f083a109646cb6bf61d8cdd6
CRs-Fixed: 3487388
2023-05-08 09:56:40 -07:00
jinbao liu
98787f1dc0 qcacmn: Fix a RX MCS index issue in HT mode
Currently driver obtains RX MCS index from RX MSDU TLV END of a
data frame. According to the specification, the MCS index should
starts with 8 rather than 0 when NSS=2 in HT mode. However, the
original RX MCS index from HW starts with 0, thus SW needs to
get a final MCS index by adding an offset when NSS=2 in HT mode.

Change-Id: Iba5f9976958233fc283513caf0184e59774ab50a
CRs-Fixed: 3471953
2023-05-08 04:09:32 -07:00
Ripan Deuri
534c9c36a9 qcacmn: CDP op to update DL flow ref count in SAWF
CDP op to update DL flow ref count in SAWF.

Change-Id: If348c53f82361f03b7457bd485d99e42d3b3431a
CRs-Fixed: 3484316
2023-05-08 04:09:11 -07:00
Santosh Anbu
7cec0b5b10 qcacmn: Add host AST entries for WDS peers
Add change to support addition of host AST entries for WDS peers.

Change-Id: I81b936d7274784c9b178e32aa9ccfaf86f884f0f
CRs-Fixed: 3472985
2023-05-08 01:31:14 -07:00
Chaithanya Garrepalli
04643dcb9b qcacmn: Fix deadlock issue
Fix deadlock issue in dp_rx_wds_add_or_update_ast

Change-Id: If32eb881da92a48e14f513d6bcf89e5bb64d0198
CRs-Fixed: 3487767
2023-05-07 20:45:24 -07:00
Amit Mehta
2debf5d6e6 qcacmn: Add support to print per link stats
Add support to print per link stats

Change-Id: Ifd1c1b5c075401a1545bcaaf76e1c79706a86974
CRs-Fixed: 3442916
2023-05-07 18:10:59 -07:00
Chaithanya Garrepalli
6605c27dcc qcacmn: Handle ppe peer setup for QCA5332 platform
As ppe_ds is not supported on QCA5332 platform, in
case of MLO peer always setup ppe peer using primary
peer

Change-Id: Icd05b69c07c05fe2fc793f49fcf28b5d58bc8bb6
CRs-Fixed: 3480359
2023-05-07 13:25:09 -07:00
nobelj
ba2e146b5a qcacmn: Add fix to update msdu start bit and other bits in nbuf
Add fix to update msdu start bit and other bits in network buffer.

Here is the list of bits set in network buffer
	a. msdu start bit,
	b. msdu end bit,
	c. packet is MCBC and da bit is set
	d. da valid bit is set
	e. sa valid bit is set

Change-Id: I2abf346de36a7f5ac7f86b33615145bb02065dc2
CRs-Fixed: 3479230
2023-05-05 11:34:44 -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
Jeevan Kukkalli
794367b541 qcacmn: Return missing link and mon desc and free associated buffers
It is observed that in some corner cases msdu count received
in montior destination ring descriptor is unreliable as a
result some of the link descriptor and associated monitor buf
descs are not returned. This change return such missing link/buf
descriptors and free associated buffers.

Change-Id: Iaad476b8e7a0372122981fd29c1f6e4685137817
CRs-Fixed: 3483157
2023-05-04 04:35:03 -07:00
Amit Mehta
239bf915dd qcacmn: Add CDP API to get per link peer stats
Add new CDP API to get per link peer stats.

Change-Id: I5685699601b31341caa655c5fe16655fa3bcc2a4
CRs-Fixed: 3442913
2023-05-04 01:35:28 -07:00
Dhananjay Latkar
5e217e2980 qcacmn: Create a bitmask for enabled sawf parameters
This bitmask is used in RM app to detect and enable SLA support

Change-Id: I0dbf8b2b89aa810478821c3f3eba66024ff01422
CRs-Fixed: 3480807
2023-05-02 12:24:23 -07:00
Rakesh Pillai
cdab8dab71 qcacmn: Code movement to enable multipass support without WDS
Currently the code to support Multipass on SAP is
present along with the code to support WDS. Hence with
the code in its current state, we will not be able to
enable Multipass support without enabling WDS.

Move the multipass support code out of the WDS support
code, to be able to enable Multipass for chipsets which
do not use WDS.

Change-Id: Id17035f1ada9bde56ca2c61fd4688fa3454b0b11
CRs-Fixed: 3479991
2023-05-01 14:40:03 -07:00
Pavankumar Nandeshwar
a631906ba4 qcacmn: Free the tx descriptors borrowed by DS
Free the tx descriptors borrowed by direct switch
back to regulartx desc pools.

Change-Id: I2898e57ce5eff54c1787dbebd166482d9fbfc585
CRs-Fixed: 3444334
2023-04-29 07:18:53 -07:00
Kenvish Butani
e8753b5a36 qcacmn: Fix ref leaks for vdev and peer
Fix ref leaks for vdev and peer in DP

Change-Id: If75b7dd1d96d211c2360ef65052e19e783c9ea40
CRs-Fixed: 3469902
2023-04-29 07:18:41 -07:00
Sai Rupesh Chevuru
3a522a80e1 qcacmn: rearrange the code in dp_service_srngs
update the local ring mask after setting the service running flag
to avoid the concurrent access issues.

Change-Id: I209d22858f8ac7509b5337fdb1ebfe38699790e1
CRs-Fixed: 3461866
2023-04-29 03:16:48 -07:00
Ananya Gupta
3c19803152 qcacmn: Fix division by 0 in dp_get_kbps_to_mcs
For cases DP_11B_CCK_RATE, DP_11A_OFDM_RATE and
DP_11G_CCK_OFDM_RATE, variable num_mcs is not set and is
assigned 0 which is used as a divisor to get the MCS value.
To fix this, return 0 for above mentioned cases.

Change-Id: Ic1d2dce93a3aa55c323e1f75d30c5f9371822280
CRs-Fixed: 3479813
2023-04-29 01:37:58 -07:00
Amit Mehta
5cfdbdb306 qcacmn: Force flush monitor destination ring
In the monitor mode case if some entry status entries are
not received then after the next monitor interface up host tries
to process pending old destination ring entries. As host drops
1 destination entry after processing 16 status entries if the entry
is not present in the status ring. which in case there is a high
number of old entries in the destination ring will result in the
destination ring getting full.

To fix the issue force flush monitor destination ring
during vdev delete.

Change-Id: Ie23a57add7b5bd372ab66f801e29e55cfacb5d4d
CRs-Fixed: 3411943
2023-04-27 21:29:30 -07:00
Zhaoyang Liu
06503f8d9e qcacmn: fix function call too many arguments error
When FEATURE_RX_LINKSPEED_ROAM_TRIGGER is not defined,
function dp_rx_rates_stats_update declared without link_id argument,
this will get building error. Add the link_id parameter to fix too
many arguments of function call building error.

Change-Id: I311d520e106f2e6f9e2c11c76cc841840821ccae
CRs-Fixed: 3477778
2023-04-27 21:29:20 -07:00
Himanshu Batra
08147113aa qcacmn: Update airtime stats last_update_time after the loop
The airtime stats last_update_time is getting updated within the loop
causing higher AC values to go out of sync.

Update airtime stats last_update_time after the loop

Change-Id: Icdb33335284e0a92b90c72099c18b6bc7690275c
CRs-Fixed: 3476253
2023-04-27 13:56:47 -07:00
Devender Kumar
21a4b2ea24 qcacmn: Fix compilation issue when TX two pipe support is enable for IPA
When IPA_WDI3_TX_TWO_PIPES is enable and DP_MEMORY_OPT is disable,
compilation issue is seen.

Fix is to correct the syntax.

Change-Id: Ibd23555f1a8a782a937883510b1e56eb20581604
CRs-Fixed: 3471564
2023-04-27 07:29:28 -07:00
Harsh Kumar Bijlani
2be2bf6a69 qcacmn: Fix memory leaks in Rx monitor path
Fix the following 2 memory leaks in Rx monitor path:

1. When MPDU queue is empty and MON_BUF_ADDR_TLV is received,
   then free page fragment memory.

2. In case of small size packets, 1 MPDU can have more than
   2*QDF_NBUF_MAX_FRAGS fragments wherein each nbuf can have maximum of
   QDF_NBUF_MAX_FRAGS frags. In this case, add the frags to nbuf in the
   following way.

   parent_nbuf (QDF_NBUF_MAX_FRAGS frags attached)
	|
	| (fraglist)
	|
	----> tmp_nbuf1 (QDF_NBUF_MAX_FRAGS frags attached) ----> tmp_nbuf2
							    (next)

Change-Id: I54e8162bf0b9da8629a3c80d123421fbeaf8df11
CRs-Fixed: 3453676
2023-04-27 04:08:30 -07:00
Jinwei Chen
58b1c384df qcacmn: Fix skb memory leak in RX REO error path
If host receive REO error code 0 - NULL REO queue descriptor from
REO exception ring, it will be raw data and likely spread across
multiple msdu buffers for amsdu packets. in this case, only the
last msdu will contain the valid rx msdu length, but currently host
use msdu length from head skb (msdu length is 0), then the sub-skbs
followed after head skb will be leaked as following,
(1) dp_rx_sg_create() fail to add sub-skbs into frag_list of head_skb,
then sub-skbs still exist in head_skb->next.
(2) As peer_id is not valid, dp_rx_null_q_desc_handle()->
dp_rx_chain_msdus_be() will configure head_skb->next = NULL during
DP_RX_LIST_APPEND, then all sub-skbs get leaked.

Get msdu length from last skb and overwrite it in head_skb, then
dp_rx_sg_create() will process all skbs correctly.

Change-Id: I1953afb4e3b44450ff5e8269ef0f4f0c38e1d446
CRs-Fixed: 3476534
2023-04-27 04:08:20 -07:00
D Harilakshmi
82bd3d9009 Revert "qcacmn: Optimize DP Rx Error Handling (Part-2)"
This reverts Change-Id:	I760694073a06c1829f28e7e92cd1657560d8eb06

Change-Id: If1573653da912702bd343acfa42f9ae32a3f7844
CRs-Fixed: 3472220
2023-04-26 06:39:59 -07:00
Rakesh Pillai
8d8312ddf7 Revert "qcacmn: Code movement to enable multipass support without WDS"
This reverts commit Iaafa8dc4f16314d9e3e160fe01251c3684adbf67.

Change-Id: I3e6ec2b2c018c9fc6d0dcdbf9a580c93e23b0458
CRs-Fixed: 3478331
2023-04-26 04:58:36 -07:00
Kai Liu
6f3d208ec8 Revert "qcacmn: limit tx completion process count to napi quota"
This reverts Change-Id:	Ic24f131c90b90b0e118edffcab559ddf31779dcf

Change-Id: Ia683184f346ee13ad970679bef8bab211a84503d
CRs-Fixed: 3421368
2023-04-26 03:26:27 -07:00
Naveen Gurujala
744590c14b Revert "qcacmn: Add support for enabling TWO tx_pipe"
This reverts Change-Id: I71b414c2ead0c25df6009a21a59b4c0d553ce9fd

Change-Id: I2f0c43e03387811c91a24c61ae622191b1d12347
CRs-Fixed: 3356413
2023-04-25 12:08:36 -07:00
D Harilakshmi
2fa83cedbc Revert "qcacmn: Correct spelling errors"
This reverts Change-Id: Id33b5f250a0c44f475b3463f9a6a68f83b47b6cd

Change-Id: I54057d65091b445240a53f2d8d34cd73ca61d860
CRs-Fixed: 3462780
2023-04-25 12:08:25 -07:00