فهرست منبع

qcacmn: Do not update tx rate stats for fixed rate

Update rounded avg rate only for qos tid and if TX is
not at fixed rate.

CRs-Fixed: 3531181
Change-Id: I03a9a2b88b7859bd230672e6ac321d31a71defef
aloksing 2 سال پیش
والد
کامیت
754c291a51
2فایلهای تغییر یافته به همراه9 افزوده شده و 2 حذف شده
  1. 3 1
      dp/inc/cdp_txrx_cmn_struct.h
  2. 6 1
      dp/wifi3.0/monitor/dp_mon.c

+ 3 - 1
dp/inc/cdp_txrx_cmn_struct.h

@@ -2150,6 +2150,7 @@ struct cdp_delayed_tx_completion_ppdu_user {
  * @mpdu_bytes: accumulated bytes per mpdu for mem limit feature
  * @punc_mode: puncutured mode to indicate punctured bw
  * @punc_pattern_bitmap: bitmap indicating punctured pattern
+ * @fixed_rate_used: flag to indicate fixed rate TX
  * @mprot_type: medium protection type
  * @msduq_bitmap: msduq bitmap
  * @rts_success: rts success
@@ -2257,7 +2258,8 @@ struct cdp_tx_completion_ppdu_user {
 	uint16_t phy_tx_time_us;
 	uint32_t mpdu_bytes;
 	uint8_t punc_mode;
-	uint16_t punc_pattern_bitmap;
+	uint32_t punc_pattern_bitmap:16,
+		fixed_rate_used:1;
 	uint32_t msduq_bitmap;
 	uint8_t mprot_type:3,
 		rts_success:1,

+ 6 - 1
dp/wifi3.0/monitor/dp_mon.c

@@ -3327,7 +3327,9 @@ dp_tx_stats_update(struct dp_pdev *pdev, struct dp_peer *peer,
 	if (mon_ops && mon_ops->mon_tx_stats_update)
 		mon_ops->mon_tx_stats_update(mon_peer, ppdu);
 
-	dp_tx_rate_stats_update(peer, ppdu);
+	if (!ppdu->fixed_rate_used)
+		dp_tx_rate_stats_update(peer, ppdu);
+
 	dp_pdev_telemetry_stats_update(pdev, ppdu);
 
 	dp_peer_stats_notify(pdev, peer);
@@ -3676,6 +3678,8 @@ dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
 	uint32_t tlv_type = HTT_STATS_TLV_TAG_GET(*tag_buf);
 	uint8_t bw, ru_format;
 	uint16_t ru_size;
+	htt_ppdu_stats_user_rate_tlv *stats_buf =
+		(htt_ppdu_stats_user_rate_tlv *)tag_buf;
 
 	ppdu_desc =
 		(struct cdp_tx_completion_ppdu *)qdf_nbuf_data(ppdu_info->nbuf);
@@ -3763,6 +3767,7 @@ dp_process_ppdu_stats_user_rate_tlv(struct dp_pdev *pdev,
 	tag_buf += 2;
 	ppdu_user_desc->punc_pattern_bitmap =
 		HTT_PPDU_STATS_USER_RATE_TLV_PUNC_PATTERN_BITMAP_GET(*tag_buf);
+	ppdu_user_desc->fixed_rate_used = stats_buf->is_min_rate;
 }
 
 /**