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
commit 4e10e7c5ae
3 changed files with 10 additions and 1 deletions

View file

@ -1024,6 +1024,8 @@ struct cdp_tx_stats {
uint32_t num_ppdu_cookie_valid;
uint32_t no_ack_count[QDF_PROTO_SUBTYPE_MAX];
struct cdp_pkt_info tx_success_twt;
/* mpdu retry count in case of successful transmission */
uint32_t mpdu_success_with_retries;
};
/* struct cdp_rx_stats - rx Level Stats

View file

@ -871,6 +871,8 @@ static inline void dp_update_vdev_stats(struct dp_soc *soc,
tgtobj->tx.dropped.fw_reason3 +=
srcobj->stats.tx.dropped.fw_reason3;
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;
if (srcobj->stats.rx.rssi != 0)
tgtobj->rx.rssi = srcobj->stats.rx.rssi;

View file

@ -58,6 +58,8 @@
/* invalid peer id for reinject*/
#define DP_INVALID_PEER 0XFFFE
#define DP_RETRY_COUNT 7
/*mapping between hal encrypt type and cdp_sec_type*/
#define MAX_CDP_SEC_TYPE 12
static const uint8_t sec_type_map[MAX_CDP_SEC_TYPE] = {
@ -4113,12 +4115,15 @@ 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.ldpc, 1, ts->ldpc);
DP_STATS_INCC(peer, tx.retries, 1, ts->transmit_cnt > 1);
#if defined(FEATURE_PERPKT_INFO) && WDI_EVENT_ENABLE
dp_wdi_event_handler(WDI_EVENT_UPDATE_DP_STATS, pdev->soc,
&peer->stats, ts->peer_id,
UPDATE_PEER_STATS, pdev->pdev_id);
#endif
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