Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4e10e7c5 authored by Amit Mehta's avatar Amit Mehta Committed by Madan Koyyalamudi
Browse files

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
parent 0ed270bc
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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
+2 −0
Original line number Diff line number Diff line
@@ -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;
+6 −1
Original line number Diff line number Diff line
@@ -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