qcacmn: added MLO MCAST packet stats

added MLO MCAST packet stats in tx stats

Change-Id: I46ad1a94bf986d21a9b865d7531298e805abcda8
CRs-Fixed: 3582328
This commit is contained in:
KARTHIK KUMAR T
2023-08-08 11:06:16 +05:30
committed by Rahul Choudhary
parent 0ad05f4a1a
commit 39bb6afc38
5 changed files with 46 additions and 1 deletions

View File

@@ -1553,7 +1553,7 @@ struct protocol_trace_count {
* @wme_ac_type_bytes: Wireless Multimedia Type Bytes Count * @wme_ac_type_bytes: Wireless Multimedia Type Bytes Count
* @tx_ucast_total: Total tx unicast count * @tx_ucast_total: Total tx unicast count
* @tx_ucast_success: Total tx unicast success count * @tx_ucast_success: Total tx unicast success count
* @fragment_count: Fragment packet count * @fragment_count: Fragment packet count
*/ */
struct cdp_tx_stats { struct cdp_tx_stats {
struct cdp_pkt_info comp_pkt; struct cdp_pkt_info comp_pkt;
@@ -1933,6 +1933,9 @@ struct cdp_rx_stats {
* @cce_classified_raw:Number of raw packets classified by CCE * @cce_classified_raw:Number of raw packets classified by CCE
* @sniffer_rcvd: Number of packets received with ppdu cookie * @sniffer_rcvd: Number of packets received with ppdu cookie
* @tso_stats: * @tso_stats:
* @mlo_mcast: mlo mcast packet counters
* @mlo_mcast.send_pkt_count: MLO mcast send packet counter
* @mlo_mcast.fail_pkt_count: MLO mcast failed packet counter
*/ */
struct cdp_tx_ingress_stats { struct cdp_tx_ingress_stats {
struct cdp_pkt_info rcvd; struct cdp_pkt_info rcvd;
@@ -2001,6 +2004,12 @@ struct cdp_tx_ingress_stats {
uint32_t cce_classified_raw; uint32_t cce_classified_raw;
struct cdp_pkt_info sniffer_rcvd; struct cdp_pkt_info sniffer_rcvd;
struct cdp_tso_stats tso_stats; struct cdp_tso_stats tso_stats;
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MCAST_MLO)
struct {
uint32_t send_pkt_count;
uint32_t fail_pkt_count;
} mlo_mcast;
#endif
}; };
/** /**

View File

@@ -774,6 +774,7 @@ dp_tx_mlo_mcast_pkt_send(struct dp_vdev_be *be_vdev,
msdu_info.gsn = be_vdev->seq_num; msdu_info.gsn = be_vdev->seq_num;
be_ptnr_vdev->seq_num = be_vdev->seq_num; be_ptnr_vdev->seq_num = be_vdev->seq_num;
DP_STATS_INC(ptnr_vdev, tx_i.mlo_mcast.send_pkt_count, 1);
nbuf_clone = dp_tx_send_msdu_single( nbuf_clone = dp_tx_send_msdu_single(
ptnr_vdev, ptnr_vdev,
nbuf_clone, nbuf_clone,
@@ -781,6 +782,7 @@ dp_tx_mlo_mcast_pkt_send(struct dp_vdev_be *be_vdev,
DP_MLO_MCAST_REINJECT_PEER_ID, DP_MLO_MCAST_REINJECT_PEER_ID,
NULL); NULL);
if (qdf_unlikely(nbuf_clone)) { if (qdf_unlikely(nbuf_clone)) {
DP_STATS_INC(ptnr_vdev, tx_i.mlo_mcast.fail_pkt_count, 1);
dp_info("pkt send failed"); dp_info("pkt send failed");
qdf_nbuf_free(nbuf_clone); qdf_nbuf_free(nbuf_clone);
return; return;

View File

@@ -3178,6 +3178,28 @@ void dp_print_peer_stats(struct dp_peer *peer,
void void
dp_print_pdev_tx_stats(struct dp_pdev *pdev); dp_print_pdev_tx_stats(struct dp_pdev *pdev);
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MCAST_MLO)
/**
* dp_print_vdev_mlo_mcast_tx_stats(): Print vdev level mlo mcast tx stats
* @vdev: DP_VDEV Handle
*
* Return:void
*/
void
dp_print_vdev_mlo_mcast_tx_stats(struct dp_vdev *vdev);
#else
/**
* dp_print_vdev_mlo_mcast_tx_stats(): Print vdev level mlo mcast tx stats
* @vdev: DP_VDEV Handle
*
* Return:void
*/
static inline
void dp_print_vdev_mlo_mcast_tx_stats(struct dp_vdev *vdev)
{
}
#endif
/** /**
* dp_print_pdev_rx_stats(): Print Pdev level RX stats * dp_print_pdev_rx_stats(): Print Pdev level RX stats
* @pdev: DP_PDEV Handle * @pdev: DP_PDEV Handle

View File

@@ -6940,6 +6940,7 @@ dp_print_host_stats(struct dp_vdev *vdev,
dp_print_pdev_tx_stats(pdev); dp_print_pdev_tx_stats(pdev);
dp_print_soc_tx_stats(pdev->soc); dp_print_soc_tx_stats(pdev->soc);
dp_print_global_desc_count(); dp_print_global_desc_count();
dp_print_vdev_mlo_mcast_tx_stats(vdev);
break; break;
case TXRX_RX_HOST_STATS: case TXRX_RX_HOST_STATS:
dp_print_pdev_rx_stats(pdev); dp_print_pdev_rx_stats(pdev);

View File

@@ -8182,6 +8182,17 @@ dp_print_pdev_tx_stats(struct dp_pdev *pdev)
dp_monitor_print_pdev_tx_capture_stats(pdev); dp_monitor_print_pdev_tx_capture_stats(pdev);
} }
#if defined(WLAN_FEATURE_11BE_MLO) && defined(WLAN_MCAST_MLO)
void dp_print_vdev_mlo_mcast_tx_stats(struct dp_vdev *vdev)
{
DP_PRINT_STATS("MLO MCAST TX stats:");
DP_PRINT_STATS(" send packet count = %u",
vdev->stats.tx_i.mlo_mcast.send_pkt_count);
DP_PRINT_STATS(" failed packet count = %u",
vdev->stats.tx_i.mlo_mcast.fail_pkt_count);
}
#endif
#ifdef WLAN_SUPPORT_RX_FLOW_TAG #ifdef WLAN_SUPPORT_RX_FLOW_TAG
static inline void dp_rx_basic_fst_stats(struct dp_pdev *pdev) static inline void dp_rx_basic_fst_stats(struct dp_pdev *pdev)
{ {