wlan-ap-Telecominfraproject/feeds/ipq95xx/mac80211/patches/qca/728-ath12k-drop-the-non-transmitted-failure-tx-frames.patch
John Crispin 144c5d00f4 ipq95xx/mac80211: update to ATH12.3-CS
Signed-off-by: John Crispin <john@phrozen.org>
2024-02-28 18:56:21 +01:00

41 lines
1.5 KiB
Diff

From 63f7d32eed37e56c5de7b0140b81f70388d15d69 Mon Sep 17 00:00:00 2001
From: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
Date: Tue, 13 Jun 2023 11:43:25 +0530
Subject: [PATCH] ath12k: drop the non transmitted failure tx frames
In mesh node traffic, internal fw tx failures are reported as a
transmitted failure to mesh metric calculation and hence mesh link is
broken.
Fix the issue by dropping the internal fw tx failures at driver which
prevents false failure averaging of mesh metric calculation.
Signed-off-by: Karthikeyan Kathirvel <quic_kathirve@quicinc.com>
---
drivers/net/wireless/ath/ath12k/dp_tx.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
--- a/drivers/net/wireless/ath/ath12k/dp_tx.c
+++ b/drivers/net/wireless/ath/ath12k/dp_tx.c
@@ -915,6 +915,20 @@ static void ath12k_dp_tx_complete_msdu(s
(info->flags & IEEE80211_TX_CTL_NO_ACK))
info->flags |= IEEE80211_TX_STAT_NOACK_TRANSMITTED;
+ if (ts.status != HAL_WBM_TQM_REL_REASON_FRAME_ACKED) {
+ switch (ts.status) {
+ case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_MPDU:
+ case HAL_WBM_TQM_REL_REASON_DROP_THRESHOLD:
+ case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_AGED_FRAMES:
+ case HAL_WBM_TQM_REL_REASON_CMD_REMOVE_TX:
+ dev_kfree_skb_any(msdu);
+ return;
+ default:
+ //TODO: Remove this print and add as a stats
+ ath12k_dbg(ab, ATH12K_DBG_DP_TX, "tx frame is not acked status %d\n", ts.status);
+ }
+ }
+
if (unlikely(ath12k_debugfs_is_extd_tx_stats_enabled(ar)) ||
ab->hw_params->single_pdev_only) {
if (ts.flags & HAL_TX_STATUS_FLAGS_FIRST_MSDU) {