From 87686d9a2f7b95ca9eaf4508950b7d1f84b0070a Mon Sep 17 00:00:00 2001 From: Venkata Sharath Chandra Manchala Date: Mon, 27 Mar 2017 11:40:26 -0700 Subject: [PATCH] qcacmn: Fix for ampdu aggregation in host statistics Ampdu count is populated in pdev but zeroed before printing. Fix it to be populated in peer and aggregated in pdev before printing Change-Id: I51d8f1968a87c0b9dbf53928acd1bbef45acc7ec CRs-Fixed: 2025785 --- dp/wifi3.0/dp_main.c | 3 ++- dp/wifi3.0/dp_rx.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dp/wifi3.0/dp_main.c b/dp/wifi3.0/dp_main.c index 719781240b95..efee06539348 100644 --- a/dp/wifi3.0/dp_main.c +++ b/dp/wifi3.0/dp_main.c @@ -2140,6 +2140,7 @@ void dp_aggregate_vdev_stats(struct dp_vdev *vdev) DP_STATS_AGGR(vdev, peer, rx.err.mic_err); DP_STATS_AGGR(vdev, peer, rx.err.decrypt_err); DP_STATS_AGGR(vdev, peer, rx.non_ampdu_cnt); + DP_STATS_AGGR(vdev, peer, rx.ampdu_cnt); DP_STATS_AGGR(vdev, peer, rx.non_amsdu_cnt); DP_STATS_AGGR(vdev, peer, rx.amsdu_cnt); DP_STATS_AGGR_PKT(vdev, peer, rx.to_stack); @@ -2526,7 +2527,7 @@ dp_print_rx_rates(struct dp_vdev *vdev) pdev->stats.rx.reception_type[2], pdev->stats.rx.reception_type[3]); DP_TRACE(NONE, "Aggregation:\n"); - DP_TRACE(NONE, "Number of Msdu's Part of Ampdu = %d", + DP_TRACE(NONE, "Number of Msdu's Part of Ampdus = %d", pdev->stats.rx.ampdu_cnt); DP_TRACE(NONE, "Number of Msdu's With No Mpdu Level Aggregation : %d", pdev->stats.rx.non_ampdu_cnt); diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index f0847b67fb38..364a1cbac551 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -617,8 +617,8 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota) ampdu_flag = (mpdu_desc_info.mpdu_flags & HAL_MPDU_F_AMPDU_FLAG); - DP_STATS_INCC(vdev->pdev, rx.ampdu_cnt, 1, ampdu_flag); - DP_STATS_INCC(vdev->pdev, rx.non_ampdu_cnt, 1, !(ampdu_flag)); + DP_STATS_INCC(peer, rx.ampdu_cnt, 1, ampdu_flag); + DP_STATS_INCC(peer, rx.non_ampdu_cnt, 1, !(ampdu_flag)); hal_rx_msdu_desc_info_get(ring_desc, &msdu_desc_info); amsdu_flag = ((msdu_desc_info.msdu_flags & @@ -626,9 +626,9 @@ dp_rx_process(struct dp_soc *soc, void *hal_ring, uint32_t quota) (msdu_desc_info.msdu_flags & HAL_MSDU_F_LAST_MSDU_IN_MPDU)); - DP_STATS_INCC(vdev->pdev, rx.non_amsdu_cnt, 1, + DP_STATS_INCC(peer, rx.non_amsdu_cnt, 1, amsdu_flag); - DP_STATS_INCC(vdev->pdev, rx.amsdu_cnt, 1, + DP_STATS_INCC(peer, rx.amsdu_cnt, 1, !(amsdu_flag)); qdf_nbuf_queue_add(&vdev->rxq, rx_desc->nbuf);