mirror of
https://github.com/Telecominfraproject/wlan-ap.git
synced 2025-12-20 19:03:39 +00:00
41 lines
1.5 KiB
Diff
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) {
|