diff --git a/dp/wifi3.0/dp_txrx_me.c b/dp/wifi3.0/dp_txrx_me.c index 8513ac362d..215e6cb40f 100644 --- a/dp/wifi3.0/dp_txrx_me.c +++ b/dp/wifi3.0/dp_txrx_me.c @@ -268,6 +268,7 @@ static void dp_tx_me_mem_free(struct dp_pdev *pdev, * @newmac: Table of the clients to which packets have to be sent * @new_mac_cnt: No of clients * @tid: desired tid + * @is_igmp: flag to indicate if packet is igmp * * return: no of converted packets */ @@ -275,7 +276,8 @@ uint16_t dp_tx_me_send_convert_ucast(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, qdf_nbuf_t nbuf, uint8_t newmac[][QDF_MAC_ADDR_SIZE], - uint8_t new_mac_cnt, uint8_t tid) + uint8_t new_mac_cnt, uint8_t tid, + bool is_igmp) { struct dp_soc *soc = cdp_soc_t_to_dp_soc(soc_hdl); struct dp_pdev *pdev; @@ -442,7 +444,13 @@ dp_tx_me_send_convert_ucast(struct cdp_soc_t *soc_hdl, uint8_t vdev_id, msdu_info.tid = tid; } - DP_STATS_INC(vdev, tx_i.mcast_en.ucast, new_mac_cnt); + if (is_igmp) { + DP_STATS_INC(vdev, tx_i.igmp_mcast_en.igmp_ucast_converted, + new_mac_cnt); + } else { + DP_STATS_INC(vdev, tx_i.mcast_en.ucast, new_mac_cnt); + } + dp_tx_send_msdu_multiple(vdev, nbuf, &msdu_info); while (seg_info_head->next) { diff --git a/dp/wifi3.0/dp_txrx_me.h b/dp/wifi3.0/dp_txrx_me.h index 6d1bb74b92..c801de7de1 100644 --- a/dp/wifi3.0/dp_txrx_me.h +++ b/dp/wifi3.0/dp_txrx_me.h @@ -21,7 +21,8 @@ uint16_t dp_tx_me_send_convert_ucast(struct cdp_soc_t *soc, uint8_t vdev_id, qdf_nbuf_t nbuf, uint8_t newmac[][QDF_MAC_ADDR_SIZE], - uint8_t new_mac_cnt, uint8_t tid); + uint8_t new_mac_cnt, uint8_t tid, + bool is_igmp); void dp_tx_me_alloc_descriptor(struct cdp_soc_t *soc, uint8_t pdev_id); void dp_tx_me_free_descriptor(struct cdp_soc_t *soc, uint8_t pdev_id); void dp_tx_me_exit(struct dp_pdev *pdev);