Commit Graph

436 Commits

Author SHA1 Message Date
Amir Patel
dd839c2135 qcacmn: Fix compilation issues
Fix compilation issues when below macro are undefined
a) WLAN_PKT_CAPTURE_TX_2_0
b) WLAN_TX_PKT_CAPTURE_ENH_BE
c) BE_PKTLOG_SUPPORT
d) DP_RX_MOM_MEM_FRAG.

CRs-Fixed: 3571652
Change-Id: I066ace0b51fd628d31b2d7161765bf9d0c405549
2023-08-31 18:36:29 -07:00
Jeevan Kukkalli
d2a9cfa5ed qcacmn: Address asserts in rx monitor path
Remove unnecessary asserts in rx monitor path

Change-Id: Iafce86bc0c1938b0227e89e4032e36eedd9d8dc7
CRs-Fixed: 3591989
2023-08-31 18:36:08 -07:00
Amir Patel
32c2f949a6 qcacmn: Address asserts in monitor path
Address asserts in monitor path

CRs-Fixed: 3591470
Change-Id: I4a5fbda57e91da6579ca945ecfcb12488b4413f1
2023-08-31 18:35:58 -07:00
Jeevan Kukkalli
89339b7e3a qcacmn: Add check for invalid frame ctrl version
Add check for invalid frame control version while
handling raw frames with FCS errors

Change-Id: I443bb20c5516604ff3ba797570118b3b2123dbd5
CRs-Fixed: 3589137
2023-08-31 11:01:07 -07:00
Santosh Anbu
9bfc041802 qcacmn: Use lockless SRNG access for rxdma_mon_dst ring
Since rxdma mon dst srng processing interrupt is tied to single CPU core,
locking is not required to access the srng.

Hence move to lockless srng access.

Change-Id: I58ef7b4c92919bbccea5c86c266738799c0dac85
CRs-Fixed: 3592154
2023-08-28 05:43:53 -07:00
nobelj
7de7642831 qcacmn: Remove packet bandwidth offset from snr
Remove packet bandwidth offset from SNR. So that SNR derived from TLV
path and SNR derived from periodic stats looks same.

Change-Id: Iaed3e3321768bef16ac1ea164920dc35eea8f002
CRs-Fixed: 3585817
2023-08-26 05:24:51 -07:00
Venkateswara Naralasetty
c62ef80144 qcacmn: Change number of RXDMA_STATUS_RING allocations
Currently two RXDMA_STATUS rings are allocated for the station targets
irrespective of whether DBS supported or not. Only one RXDMA_STATUS_RING
being used for non-DBS targets like QCA6750 and WCN6450, hence change
the number of RXDMA_STATUS_RING allocations to 1 for non-DBS targets.

Change-Id: I4f14c8b5cee892979765f776b37d44e99ba2d558
CRs-Fixed: 3578733
2023-08-16 13:37:11 -07:00
Adwait Nayak
7ce350b5a0 qcacmn: Do not enable word compaction for pktlog
Recently, Word compaction is by default enabled as part
of all monitor mode realated features. Due to which, while
parsing the pktlog data, multiple TLV parsing errors are seen.
Hence, with this change word compaction is disabled if pktlog
is enabled.

Change-Id: I35153f74da2de5978b225ced7f8c1112f3aff3b2
CRs-Fixed: 3551975
2023-08-15 17:52:45 -07:00
nobelj
d26a05fafd qcacmn: Add fix to free buffer properly on error case
In rx monitor deliver, Buffer need to be free properly for any
failure after MPDU restitch.

Change-Id: I7d2f649e8266d91d50a429a92c07bc42d1d730eb
CRs-Fixed: 3580509
2023-08-08 06:11:04 -07:00
Jeevan Kukkalli
c92389fe5f qcacmn: Improve readability of monitor error messages
Improve readability of monitor filter update error messages.
This will help to avoid redundant error message printing from
caller.

Change-Id: I63dbc52be7a2f9537bf226fe0008c4efb51fe582
CRs-Fixed: 3576860
2023-08-08 00:01:41 -07:00
Amir Patel
8af70480b3 qcacmn: Fix compilation issues
Fix compilation issues when QCA_KMEM_CACHE_SUPPORT
is not defined

CRs-Fixed: 3577327
Change-Id: I0715e6d5702aab793823a0b42c1eea5322eadb74
2023-08-03 13:17:47 -07:00
Jeevan Kukkalli
2e35a8785e qcacmn: Fix lite mon deallocation
Lite monitor deallocation should happen before mon rings deinit.
Call lite monitor dealloc function before mon rings deinit

Change-Id: I9b93945ccc092ff524555e8a4aa9cd2e3877f70f
CRs-Fixed: 3578630
2023-08-03 10:04:02 -07:00
Jeevan Kukkalli
07824cbd75 qcacmn: Fix indentation
Fix indentation in status tlv processing function

Change-Id: Ie575c71ebdf3def30ec2a914cdca44442a6a9fa3
CRs-Fixed: 3575953
2023-08-01 20:29:53 -07:00
Amir Patel
dae2d5c316 qcacmn: Adjust mon ring fill level based on num_entries
Adjust mon ring fill level based on num_entries in ring

Change-Id: Iaa6fa2f1c3742a60b5980bbf153ddc7b03733168
CRs-Fixed: 3575947
2023-08-01 20:29:33 -07:00
Sushant Butta
8b9b8a9a16 qcacmn: Add check to validate length of packet buffer
Add check to validate length of the packet
buffer before adding to skb.

Change-Id: I78cf436c4bf6a00b1aa08ef82cb790c2b3478733
CRs-Fixed: 3553974
2023-07-25 15:21:59 -07:00
Srinivas Girigowda
afd51dc121 qcacmn: Add local packet capture type based filtering
For the control frames regenerated by the host driver based on the
TxMon TLV, add the local packet capture type based filtering.

Change-Id: If6b47368ce36524e1c84c51c298278ced671b915
CRs-Fixed: 3531895
2023-07-18 22:55:44 -07:00
aloksing
754c291a51 qcacmn: Do not update tx rate stats for fixed rate
Update rounded avg rate only for qos tid and if TX is
not at fixed rate.

CRs-Fixed: 3531181
Change-Id: I03a9a2b88b7859bd230672e6ac321d31a71defef
2023-07-17 22:37:23 -07:00
Jinwei Chen
6081fb19d6 qcacmn: Support dp monitor desc pool memory pre-allocation
Support dp monitor desc pool memory pre-allocation.

Change-Id: I7edd766a3f02be76c1e7342ac6a55c02b43474fa
CRs-Fixed: 3544435
2023-07-08 01:26:16 -07:00
Jinwei Chen
c8a4260394 qcacmn: Fix incorrect mon filter setting for RXDMA_BUF
For LPC mode, host only need to configure the filter for
monitor status ring, filter for STA RXDMA_BUF has been
configured during dp_soc init, do not touch filter of
RXDMA_BUF for LPC mode.

Change-Id: Ia64b0f608ce7c31517ef7174293bc52e6d4ab9b7
CRs-Fixed: 3531963
2023-06-30 20:28:35 -07:00
Jeevan Kukkalli
89792f7221 qcacmn: Add check for invalid mon rx header
Add check for invalid rx header before processing
TLVs.

Change-Id: I57d3ff6ccc45723eb9b1ef7f048a5ea5a3718e50
CRs-Fixed: 3527793
2023-06-23 04:37:01 -07:00
Sushant Butta
ade262ccac qcacmn: Fix tlv parsing for rx_evm details tlv
Fixed tlv parsing for rx_evm and rx_antenna
for QCN9224.

Change-Id: I9a24a0231289018e73c4dfa3c4f0dd1c79d6f84b
CRs-Fixed: 3485292
2023-06-23 01:39:05 -07:00
Balaji Pothunoori
4bc335300f qcacmn: Fix compilation errors
dp_htt_process_smu_ppdu_stats_tlv API is defined inside
QCA_ENHANCED_STATS_SUPPORT along with WLAN_FEATURE_PKT_CAPTURE_V2
protection but API is called with WLAN_FEATURE_PKT_CAPTURE_V2.

There is a compilation error
a. if WLAN_FEATURE_PKT_CAPTURE_V2 is defined and if
QCA_ENHANCED_STATS_SUPPORT is not set.
b. if REMOVE_PKT_LOG and WLAN_FEATURE_PKT_CAPTURE_V2 is set.

This change is to move dp_htt_process_smu_ppdu_stats_tlv
out of QCA_ENHANCED_STATS_SUPPORT and add WLAN_FEATURE_PKT_CAPTURE_V2
protection to avoid compilation errors.

Change-Id: I50093ede0530afa34f501210e5a53fa88e61d863
CRs-Fixed: 3528736
2023-06-20 06:39:09 -07:00
Jeevan Kukkalli
aa280d43e6 qcacmn: Handle duplicate pkt desc in wkk monitor path
Sometimes we receive duplicate packet buffer descriptors.
This results in corruption of descriptor freelist.
Add check to handle duplicate packet monitor descriptors.

Change-Id: I1dd33575fba78a7816063c40bf29ba41f9bcf226
CRs-Fixed: 3519326
2023-06-16 15:03:34 -07:00
Venkateswara Naralasetty
39ed82e609 qcacmn: qcacmn: Add Monitor 1.0 support for WCN6450
Currently in monitor mode, links are released to WBM through the
SW2WBM_RELEASE ring and WBM will feed the links back to RXDMA
through the WBM2RXDMA_LINK_RING.

WCN6450 uses SOFTUMAC architecture where WBM is not present.
Hence the WBM2RXDMA_LINK_RING is repurposed to SW2RXDMA_LINK_RING
where host will directly release the links to RXDMA using this ring.

Change-Id: I110f607e38c4c2ab10eb1bd7b1f5a7bce2f03692
CRs-Fixed: 3493368
2023-06-16 15:03:02 -07:00
Aditya Kodukula
58e80d75bd qcacmn: Fix typographical errors
Fix typographical errors spanned over various files in cmn.

Change-Id: I9fcf3b7f9bb7d7dd406e6576a60aa4eb783c9ceb
CRs-Fixed: 3529628
2023-06-14 22:02:33 -07:00
Shwetha G K
266f12b393 qcacmn: Fix invalid num_mu_users in CFR metadata
Changes to fix the invalid number of MU users reported
in CFR host metadata.

Change-Id: Ieed065d23881eb0714dec8476dd22e938ea1fa31
CRs-Fixed: 3523604
2023-06-09 23:59:13 -07:00
Kenvish Butani
8ab3e327e2 qcacmn: Fix the OOM issue seen in ol_stats disable path
currently in disable ol_stats path, if disable ol_stats
is triggered for any pdev, then due to MLO link stats we
disable ol_stats on all pdev's. if the pdev deinit is
already happened then we skip disabling it and dont send
h2t complete free nbuf message, creating OOM. Fix is to
remove the pdev deinit check and disable ol_stats only
for particular pdev and not pdev of MLO.

Change-Id: I6171c6f545ed823cdec211c6ac00b8e0ff93211a
CRs-Fixed: 3511913
2023-06-09 13:50:25 -07:00
Harsh Kumar Bijlani
e0e7eaeba6 qcacmn: Optimize Tx and Rx monitor stats update code
Optimize Tx and Rx monitor stats update code by replacing
multiple if checks with switch case statements

Change-Id: I07dd7784dccdfe0cf0e1ade822746d0c6f55cd95
CRs-Fixed: 3511037
2023-06-07 07:01:06 -07:00
aloksing
a0805fb4d0 qcacmn: Fix double free of frags
When decap type is invalid, freeing nbuf and while next monitor
buffer tlv picking last nbuf from queue. which has allocated frags
and valid data. expecting MPDU END TLV for previous mpdu
before monitor buffer tlv to allocate new nbuf.

Set rx_hdr_rcvd to false when we receive invalid decap type.

CRs-Fixed: 3503694
Change-Id: I97ede9e52df580769b78afc767ba9528914b3ea5
2023-06-05 03:40:10 -07:00
Mukul Dhiman
24fcc62ef2 qcacmn: Fix ol_stats enable if MLO is disabled for BE platforms.
On BE Platforms, currently if MLO is disabled, ol_stats does not
get enable on any soc. Fix is to enable ol_stats on particular
soc if MLO is disabled

Change-Id: I715f06776eda9539f68f440f86e3a403a6b14fa5
CRs-Fixed: 3508711
2023-06-02 16:50:02 -07:00
Jinwei Chen
5e84f6fe25 qcacmn: use right TLV tag header length for peach
In monitor mode, TLV tag header length should be 4 bytes for peach,
fix it.

Change-Id: I78beca168add8626c0fa99bfa407101ce4d36b30
CRs-Fixed: 3512227
2023-06-02 16:49:12 -07:00
Jeevan Kukkalli
958704d20e qcacmn: Make dp_rx_mon_append_nbuf function public
Function dp_rx_mon_append_nbuf is now accessed outside
the file where it is declared hence make it public

Change-Id: I6b596815a385ba367f70b9e5ea07c94520cca253
CRs-Fixed: 3488043
2023-05-29 12:54:57 -07:00
Yeshwanth Sriram Guntuka
4dc955351e qcacmn: Move prealloc DP descriptor types to QDF
Move prealloc DP descriptor types to QDF so that
the macros can be used in HIF layer.

Change-Id: I3de60876735e5aa37d80e9e698a86503b18574c1
CRs-Fixed: 3502615
2023-05-26 16:06:57 -07:00
aloksing
f5b6ab7666 qcacmn: Add check for sawf stats
Update deter stats only when sawf stats is enabled

CRs-Fixed: 3507349
Change-Id: I463750904cdec889274fb94ff1a0544545c1e0d0
2023-05-26 16:06:27 -07:00
Surabhi Vishnoi
d1895e091c qcacmn: Add support to parse HTT_PPDU_STATS_FOR_SMU_TLV
Currently NSS is required for packet capture mode to derive tx rate
and firmware sends NSS part of ppdu stats in new ppdu stats tlv
HTT_PPDU_STATS_FOR_SMU_TLV.
Add code to parse ppdu stats if feature is enabled via ini and
send the ppdu stats using wdi event to packet capture
component.

Change-Id: I5567007a91093dd342f37458760b3a61c040b778
CRs-Fixed: 3462436
2023-05-26 04:14:19 -07:00
Sushant Butta
c21470ebff qcacmn: Use monitor pkt tlvs and buffer size for monitor
Use monitor pkt tlvs size and monitor buffer size
instead of data pkt tlv size and data pkt buffer size
for York.

Change-Id: Ifc0d07ed96100ae79e81ac91bccd637e08d71e28
CRs-Fixed: 3494826
2023-05-22 00:10:31 -07:00
Santosh Anbu
4514cc3d43 qcacmn: Avoid resetting monitor buf ring size
Increasing the buf ring size for York is leading to memory corruption
issues.

Adding change to partially revert commit, specific for York alone.
I3099f6526aa11b353c8a5178de450d48f141a461

Change-Id: Ia9836bc982590fbeb14021dcc3b7bc7014d2fa36
CRs-Fixed: 3490257
2023-05-22 00:10:19 -07:00
Srinivas Girigowda
11edfc7c6d qcacmn: Do not apply lpc filter settings to HTT_RXDMA_HOST_BUF_RING
Local packet capture filter settings needs be to applied only to
HTT_RXDMA_MONITOR_STATUS_RING and not HTT_RXDMA_HOST_BUF_RING.

Change-Id: I2a2d2810407941310c88db551894806d0884d157
CRs-Fixed: 3501638
2023-05-20 04:03:47 -07:00
Srinivas Girigowda
c953dbb12d qcacmn: Avoid array out of bound access
Avoid array out of bound access by validating monitor channel band value.

Change-Id: I3b9c272e1fcf0d83a8d08884037af1eeed0a87ce
CRs-Fixed: 3501636
2023-05-20 04:03:37 -07:00
Srinivas Girigowda
6eaf41462a qcacmn: Add context to the logs
Logs without meaningful message or values serves no purpose in debugging.
Hence, add more context to the logs.

Change-Id: Ia463d239a9bf26f292a11bcc71cb1379374c45e4
CRs-Fixed: 3492593
2023-05-18 18:43:13 -07:00
Srinivas Girigowda
48cf24b446 qcacmn: Remove trailing newline from the DP Logs
Remove trailing newline from the DP Logs.

Change-Id: Iaf54e57fb44cf7c15d82bd5c0ffb3fc7c3d04a2b
CRs-Fixed: 3492501
2023-05-18 18:42:08 -07:00
Aniruddha Mishra
ba55e0f2a8 qcacmn: Add Tx TLV Recording support
Add Tx TLV recording support for monitor 2.0
Also add support to control Rx and Tx TLV
recording

Change-Id: I27a0d2c9ea8bdfacd46e6b7188b45b08ed47bbcd
CRs-Fixed: 3422787
2023-05-16 11:43:14 -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