diff --git a/dp/wifi3.0/dp_rx.c b/dp/wifi3.0/dp_rx.c index 87d8d529d6b9..d183cc0413c8 100644 --- a/dp/wifi3.0/dp_rx.c +++ b/dp/wifi3.0/dp_rx.c @@ -1371,6 +1371,7 @@ static inline void dp_rx_cksum_offload(struct dp_pdev *pdev, * @rx_tlv_hdr: pointer to the start of RX TLV headers. * @peer: pointer to the peer object. * @ring_id: reo dest ring number on which pkt is reaped. + * @tid_stats: per tid rx stats. * * update all the per msdu stats for that nbuf. * Return: void @@ -1379,7 +1380,8 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc, qdf_nbuf_t nbuf, uint8_t *rx_tlv_hdr, struct dp_peer *peer, - uint8_t ring_id) + uint8_t ring_id, + struct cdp_tid_rx_stats *tid_stats) { bool is_ampdu, is_not_amsdu; uint16_t peer_id; @@ -1398,13 +1400,15 @@ static void dp_rx_msdu_stats_update(struct dp_soc *soc, DP_STATS_INCC(peer, rx.non_amsdu_cnt, 1, is_not_amsdu); DP_STATS_INCC(peer, rx.amsdu_cnt, 1, !is_not_amsdu); + tid_stats->msdu_cnt++; if (qdf_unlikely(hal_rx_msdu_end_da_is_mcbc_get(rx_tlv_hdr) && (vdev->rx_decap_type == htt_cmn_pkt_type_ethernet))) { eh = (qdf_ether_header_t *)qdf_nbuf_data(nbuf); DP_STATS_INC_PKT(peer, rx.multicast, 1, msdu_len); + tid_stats->mcast_msdu_cnt++; if (QDF_IS_ADDR_BROADCAST(eh->ether_dhost)) { DP_STATS_INC_PKT(peer, rx.bcast, 1, msdu_len); - + tid_stats->bcast_msdu_cnt++; } } @@ -1878,13 +1882,6 @@ done: continue; } - tid_stats->msdu_cnt++; - if (qdf_unlikely(hal_rx_msdu_end_da_is_mcbc_get(rx_tlv_hdr))) { - tid_stats->mcast_msdu_cnt++; - if (qdf_nbuf_is_bcast_pkt(nbuf)) - tid_stats->bcast_msdu_cnt++; - } - peer_mdata = hal_rx_mpdu_peer_meta_data_get(rx_tlv_hdr); peer_id = DP_PEER_METADATA_PEER_ID_GET(peer_mdata); peer = dp_peer_find_by_id(soc, peer_id); @@ -2035,7 +2032,8 @@ done: FL("rxhash: flow id toeplitz: 0x%x"), hal_rx_msdu_start_toeplitz_get(rx_tlv_hdr)); - dp_rx_msdu_stats_update(soc, nbuf, rx_tlv_hdr, peer, ring_id); + dp_rx_msdu_stats_update(soc, nbuf, rx_tlv_hdr, peer, + ring_id, tid_stats); if (qdf_unlikely(vdev->mesh_vdev)) { if (dp_rx_filter_mesh_packets(vdev, nbuf, rx_tlv_hdr)