qcacmn: Update MPDU retries in case of successful transmission

In case of successful transmission If MPDU tx
is retried more than the threshold then
increment MPDU retry count by transmit_cnt / threshold

Change-Id: Idbc7e2d0579ff68e272132fe4ffe9f951c4aacf5
CRs-Fixed: 3058464
This commit is contained in:
Amit Mehta
2021-10-15 15:11:58 +05:30
committed by Madan Koyyalamudi
parent 70ade22606
commit 9cf3f44770
3 changed files with 10 additions and 0 deletions

View File

@@ -1120,6 +1120,8 @@ struct cdp_tx_stats {
bw_info:4, bw_info:4,
gi_info:4, gi_info:4,
preamble_info:4; preamble_info:4;
/* mpdu retry count in case of successful transmission */
uint32_t mpdu_success_with_retries;
}; };
/* struct cdp_rx_stats - rx Level Stats /* struct cdp_rx_stats - rx Level Stats

View File

@@ -1377,6 +1377,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc,
tgtobj->tx.dropped.fw_reason3 += tgtobj->tx.dropped.fw_reason3 +=
srcobj->stats.tx.dropped.fw_reason3; srcobj->stats.tx.dropped.fw_reason3;
tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out; tgtobj->tx.dropped.age_out += srcobj->stats.tx.dropped.age_out;
tgtobj->tx.mpdu_success_with_retries +=
srcobj->stats.tx.mpdu_success_with_retries;
tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err; tgtobj->rx.err.mic_err += srcobj->stats.rx.err.mic_err;
if (srcobj->stats.rx.snr != 0) if (srcobj->stats.rx.snr != 0)
tgtobj->rx.snr = srcobj->stats.rx.snr; tgtobj->rx.snr = srcobj->stats.rx.snr;

View File

@@ -62,6 +62,8 @@
/* invalid peer id for reinject*/ /* invalid peer id for reinject*/
#define DP_INVALID_PEER 0XFFFE #define DP_INVALID_PEER 0XFFFE
#define DP_RETRY_COUNT 7
/*mapping between hal encrypt type and cdp_sec_type*/ /*mapping between hal encrypt type and cdp_sec_type*/
uint8_t sec_type_map[MAX_CDP_SEC_TYPE] = {HAL_TX_ENCRYPT_TYPE_NO_CIPHER, uint8_t sec_type_map[MAX_CDP_SEC_TYPE] = {HAL_TX_ENCRYPT_TYPE_NO_CIPHER,
HAL_TX_ENCRYPT_TYPE_WEP_128, HAL_TX_ENCRYPT_TYPE_WEP_128,
@@ -3731,6 +3733,10 @@ dp_tx_update_peer_stats(struct dp_tx_desc_s *tx_desc,
DP_STATS_INCC(peer, tx.stbc, 1, ts->stbc); DP_STATS_INCC(peer, tx.stbc, 1, ts->stbc);
DP_STATS_INCC(peer, tx.ldpc, 1, ts->ldpc); DP_STATS_INCC(peer, tx.ldpc, 1, ts->ldpc);
DP_STATS_INCC(peer, tx.retries, 1, ts->transmit_cnt > 1); DP_STATS_INCC(peer, tx.retries, 1, ts->transmit_cnt > 1);
if (ts->first_msdu)
DP_STATS_INCC(peer, tx.mpdu_success_with_retries,
qdf_do_div(ts->transmit_cnt, DP_RETRY_COUNT),
ts->transmit_cnt > DP_RETRY_COUNT);
} }
#ifdef QCA_LL_TX_FLOW_CONTROL_V2 #ifdef QCA_LL_TX_FLOW_CONTROL_V2