Explorar o código

qcacmn: Add stats to count mpdu dropped due to ppdu id mismatch

During frequent channel changes in corner case we observe
that mpdu ppdu id does not match dest ring curring ppdu id.
Such mpdus are dropped. Add stats to count such dropped mpdus.

Change-Id: If52e81f4e718ce0d7f83a41f4f0121394525b9df
CRs-Fixed: 3144784
Jeevan Kukkalli %!s(int64=3) %!d(string=hai) anos
pai
achega
660a0d7e2c
Modificáronse 2 ficheiros con 5 adicións e 0 borrados
  1. 3 0
      dp/inc/cdp_txrx_mon_struct.h
  2. 2 0
      dp/wifi3.0/monitor/dp_mon.c

+ 3 - 0
dp/inc/cdp_txrx_mon_struct.h

@@ -411,6 +411,8 @@ enum cdp_mon_phyrx_abort_reason_code {
  * @dest_ppdu_drop: Number of ppdu dropped from monitor destination ring
  * @mon_link_desc_invalid: msdu link desc invalid count
  * @mon_rx_desc_invalid: rx_desc invalid count
+ * @mpdu_ppdu_id_mismatch_drop: mpdu's ppdu id did not match destination
+ *  ring ppdu id
  * @rx_undecoded_count: Received undecoded frame count
  * @rx_undecoded_error: Rx undecoded errors
  */
@@ -444,6 +446,7 @@ struct cdp_pdev_mon_stats {
 	uint32_t mon_link_desc_invalid;
 	uint32_t mon_rx_desc_invalid;
 	uint32_t mon_nbuf_sanity_err;
+	uint32_t mpdu_ppdu_id_mismatch_drop;
 #ifdef QCA_UNDECODED_METADATA_SUPPORT
 	uint32_t rx_undecoded_count;
 	uint32_t rx_undecoded_error[CDP_PHYRX_ERR_MAX];

+ 2 - 0
dp/wifi3.0/monitor/dp_mon.c

@@ -870,6 +870,8 @@ dp_print_pdev_rx_mon_stats(struct dp_pdev *pdev)
 		       rx_mon_stats->status_ppdu_drop);
 	DP_PRINT_STATS("ppdus dropped frm dest ring = %d",
 		       rx_mon_stats->dest_ppdu_drop);
+	DP_PRINT_STATS("mpdu_ppdu_id_mismatch_drop = %u",
+		       rx_mon_stats->mpdu_ppdu_id_mismatch_drop);
 	stat_ring_ppdu_ids =
 		(uint32_t *)qdf_mem_malloc(sizeof(uint32_t) * MAX_PPDU_ID_HIST);
 	dest_ring_ppdu_ids =