From f223bd29ee70940c6afb9589331b4aa2c0d3ba3d Mon Sep 17 00:00:00 2001 From: Amrit Sahai Date: Wed, 12 Jul 2023 17:22:19 +0530 Subject: [PATCH] qcacmn: Add support for to_stack at link level Add support for to_stack at link level Change-Id: I794a1bd8ef78a3af15f006ac3306b1c9b23e457d CRs-Fixed: 3571870 --- dp/inc/cdp_txrx_stats_struct.h | 2 ++ dp/wifi3.0/be/dp_be_rx.c | 9 +++++++++ dp/wifi3.0/dp_internal.h | 2 ++ dp/wifi3.0/dp_rx_err.c | 4 ++++ dp/wifi3.0/dp_stats.c | 4 ++-- dp/wifi3.0/dp_types.h | 2 ++ dp/wifi3.0/li/dp_li_rx.c | 4 ++++ 7 files changed, 25 insertions(+), 2 deletions(-) diff --git a/dp/inc/cdp_txrx_stats_struct.h b/dp/inc/cdp_txrx_stats_struct.h index a1b0fc8df6..86dc62d81f 100644 --- a/dp/inc/cdp_txrx_stats_struct.h +++ b/dp/inc/cdp_txrx_stats_struct.h @@ -1695,6 +1695,7 @@ struct cdp_tx_stats { * @nawds_mcast_drop: Total multicast packets * @mec_drop: Total MEC packets dropped * @ppeds_drop: Total DS packets dropped + * @rx_success: Total rx success count * @last_rx_ts: last timestamp in jiffies when RX happened * @intra_bss: Intra-bss statistics * @intra_bss.pkts: Intra BSS packets received @@ -1789,6 +1790,7 @@ struct cdp_rx_stats { uint32_t nawds_mcast_drop; struct cdp_pkt_info mec_drop; struct cdp_pkt_info ppeds_drop; + struct cdp_pkt_info rx_success; unsigned long last_rx_ts; struct { struct cdp_pkt_info pkts; diff --git a/dp/wifi3.0/be/dp_be_rx.c b/dp/wifi3.0/be/dp_be_rx.c index f1121d8722..333fd3eab9 100644 --- a/dp/wifi3.0/be/dp_be_rx.c +++ b/dp/wifi3.0/be/dp_be_rx.c @@ -833,6 +833,11 @@ done: DP_PEER_TO_STACK_INCC_PKT(txrx_peer, 1, QDF_NBUF_CB_RX_PKT_LEN(nbuf), enh_flag); + DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, + rx.rx_success, 1, + QDF_NBUF_CB_RX_PKT_LEN(nbuf), + link_id); + if (qdf_unlikely(txrx_peer->in_twt)) DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, rx.to_stack_twt, 1, @@ -2311,6 +2316,10 @@ dp_rx_null_q_desc_handle_be(struct dp_soc *soc, qdf_nbuf_t nbuf, qdf_nbuf_set_next(nbuf, NULL); DP_PEER_TO_STACK_INCC_PKT(txrx_peer, 1, qdf_nbuf_len(nbuf), enh_flag); + DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, + rx.rx_success, 1, + qdf_nbuf_len(nbuf), + link_id); /* * Update the protocol tag in SKB based on * CCE metadata diff --git a/dp/wifi3.0/dp_internal.h b/dp/wifi3.0/dp_internal.h index badd6cde73..bb10b088ed 100644 --- a/dp/wifi3.0/dp_internal.h +++ b/dp/wifi3.0/dp_internal.h @@ -1980,6 +1980,8 @@ void dp_update_vdev_stats_on_peer_unmap(struct dp_vdev *vdev, \ _tgtobj->rx.multicast.num += _srcobj->rx.multicast.num; \ _tgtobj->rx.multicast.bytes += _srcobj->rx.multicast.bytes; \ + _tgtobj->rx.rx_success.num += _srcobj->rx.rx_success.num;\ + _tgtobj->rx.rx_success.bytes += _srcobj->rx.rx_success.bytes;\ _tgtobj->rx.bcast.num += _srcobj->rx.bcast.num; \ _tgtobj->rx.bcast.bytes += _srcobj->rx.bcast.bytes; \ _tgtobj->rx.unicast.num += _srcobj->rx.unicast.num; \ diff --git a/dp/wifi3.0/dp_rx_err.c b/dp/wifi3.0/dp_rx_err.c index 4310e96451..6fb535d543 100644 --- a/dp/wifi3.0/dp_rx_err.c +++ b/dp/wifi3.0/dp_rx_err.c @@ -1703,6 +1703,10 @@ dp_rx_err_route_hdl(struct dp_soc *soc, qdf_nbuf_t nbuf, DP_PEER_TO_STACK_INCC_PKT(txrx_peer, 1, qdf_nbuf_len(nbuf), vdev->pdev->enhanced_stats_en); + DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, + rx.rx_success, 1, + qdf_nbuf_len(nbuf), + link_id); qdf_nbuf_set_exc_frame(nbuf, 1); qdf_nbuf_set_next(nbuf, NULL); diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c index 1f297b2e09..6dc8341f24 100644 --- a/dp/wifi3.0/dp_stats.c +++ b/dp/wifi3.0/dp_stats.c @@ -7503,9 +7503,9 @@ void dp_print_peer_stats(struct dp_peer *peer, DP_PRINT_STATS("Node Rx Stats:"); DP_PRINT_STATS("Packets Sent To Stack = %llu", - peer_stats->rx.to_stack.num); + peer_stats->rx.rx_success.num); DP_PRINT_STATS("Bytes Sent To Stack = %llu", - peer_stats->rx.to_stack.bytes); + peer_stats->rx.rx_success.bytes); for (i = 0; i < CDP_MAX_RX_RINGS; i++) { DP_PRINT_STATS("Ring Id = %d", i); DP_PRINT_STATS(" Packets Received = %llu", diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index a8492ff78b..6fbfa22b1c 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -4560,6 +4560,7 @@ struct dp_peer_extd_tx_stats { * @peer_unauth_rx_pkt_drop: Unauth rx packet drops * @policy_check_drop: policy check drops * @to_stack_twt: Total packets sent up the stack in TWT session + * @rx_success: Total RX success count * @protocol_trace_cnt: per-peer protocol counters * @mcast_3addr_drop: * @rx_total: total rx count @@ -4597,6 +4598,7 @@ struct dp_peer_per_pkt_rx_stats { uint32_t peer_unauth_rx_pkt_drop; uint32_t policy_check_drop; struct cdp_pkt_info to_stack_twt; + struct cdp_pkt_info rx_success; #ifdef VDEV_PEER_PROTOCOL_COUNT struct protocol_trace_count protocol_trace_cnt[CDP_TRACE_MAX]; #endif diff --git a/dp/wifi3.0/li/dp_li_rx.c b/dp/wifi3.0/li/dp_li_rx.c index 97ede1a50f..19dac4d42b 100644 --- a/dp/wifi3.0/li/dp_li_rx.c +++ b/dp/wifi3.0/li/dp_li_rx.c @@ -1578,6 +1578,10 @@ dp_rx_null_q_desc_handle_li(struct dp_soc *soc, qdf_nbuf_t nbuf, qdf_nbuf_set_next(nbuf, NULL); DP_PEER_TO_STACK_INCC_PKT(txrx_peer, 1, qdf_nbuf_len(nbuf), enh_flag); + + DP_PEER_PER_PKT_STATS_INC_PKT(txrx_peer, + rx.rx_success, 1, + qdf_nbuf_len(nbuf), 0); /* * Update the protocol tag in SKB based on * CCE metadata