Ver Fonte

qcacmn: Populate rate index in user specific rx ppdu indication

Populate rate index in user specific rx ppdu indication.
Also correct the computation of total retries in rx ppdu indication.

Change-Id: I07c55260def9d2f1490729b6390bca3d98085c63
CRs-Fixed: 3156428
Harsh Kumar Bijlani há 3 anos atrás
pai
commit
e70d9e3eed
2 ficheiros alterados com 6 adições e 0 exclusões
  1. 2 0
      dp/inc/cdp_txrx_cmn_struct.h
  2. 4 0
      dp/wifi3.0/monitor/dp_rx_mon.c

+ 2 - 0
dp/inc/cdp_txrx_cmn_struct.h

@@ -2286,6 +2286,7 @@ struct cdp_tx_completion_msdu {
  * @mpdu_fcs_ok_bitmap - MPDU with fcs ok bitmap
  * @retries - number of retries
  * @rx_ratekpbs - rx rate in kbps
+ * @rix - rate index
  * @mpdu_retries - retries of mpdu in rx
  */
 struct cdp_rx_stats_ppdu_user {
@@ -2324,6 +2325,7 @@ struct cdp_rx_stats_ppdu_user {
 	uint32_t mpdu_err_byte_count;
 	uint32_t retries;
 	uint32_t rx_ratekbps;
+	uint32_t rix;
 	uint32_t mpdu_retries;
 };
 

+ 4 - 0
dp/wifi3.0/monitor/dp_rx_mon.c

@@ -449,6 +449,7 @@ dp_rx_populate_cdp_indication_ppdu_user(struct dp_pdev *pdev,
 		rx_stats_peruser->retries =
 			CDP_FC_IS_RETRY_SET(rx_stats_peruser->frame_control) ?
 			rx_stats_peruser->mpdu_cnt_fcs_ok : 0;
+		cdp_rx_ppdu->retries += rx_stats_peruser->retries;
 
 		if (rx_stats_peruser->mpdu_cnt_fcs_ok > 1)
 			rx_stats_peruser->is_ampdu = 1;
@@ -615,6 +616,7 @@ dp_rx_populate_cdp_indication_ppdu(struct dp_pdev *pdev,
 
 	cdp_rx_ppdu->num_mpdu = 0;
 	cdp_rx_ppdu->num_msdu = 0;
+	cdp_rx_ppdu->retries = 0;
 
 	dp_rx_populate_cdp_indication_ppdu_user(pdev, ppdu_info, cdp_rx_ppdu);
 
@@ -687,6 +689,7 @@ static inline void dp_rx_rate_stats_update(struct dp_peer *peer,
 
 	if (!ratekbps) {
 		ppdu->rix = 0;
+		ppdu_user->rix = 0;
 		ppdu->rx_ratekbps = 0;
 		ppdu->rx_ratecode = 0;
 		ppdu_user->rx_ratekbps = 0;
@@ -698,6 +701,7 @@ static inline void dp_rx_rate_stats_update(struct dp_peer *peer,
 	mon_peer->stats.rx.preamble_info = ppdu->u.preamble;
 
 	ppdu->rix = rix;
+	ppdu_user->rix = rix;
 	DP_STATS_UPD(mon_peer, rx.last_rx_rate, ratekbps);
 	mon_peer->stats.rx.avg_rx_rate =
 		dp_ath_rate_lpf(mon_peer->stats.rx.avg_rx_rate, ratekbps);