diff --git a/dp/wifi3.0/dp_stats.c b/dp/wifi3.0/dp_stats.c index cc68641112bb..819bca6f33f8 100644 --- a/dp/wifi3.0/dp_stats.c +++ b/dp/wifi3.0/dp_stats.c @@ -5131,6 +5131,45 @@ static void dp_print_nss(char *nss, uint32_t *pnss, uint32_t ss_count) } } +/** + * dp_print_jitter_stats(): Print per-tid jitter stats + * @peer: DP peer object + * @pdev: DP pdev object + * + * Return: void + */ +#ifdef WLAN_PEER_JITTER +static void dp_print_jitter_stats(struct dp_peer *peer, struct dp_pdev *pdev) +{ + uint8_t tid = 0; + + if (pdev && !wlan_cfg_get_dp_pdev_nss_enabled(pdev->wlan_cfg_ctx)) + return; + + DP_PRINT_STATS("Per TID Tx HW Enqueue-Comp Jitter Stats:\n"); + for (tid = 0; tid < qdf_min(CDP_DATA_TID_MAX, DP_MAX_TIDS); tid++) { + struct dp_rx_tid *rx_tid = &peer->rx_tid[tid]; + + DP_PRINT_STATS("Node tid = %d\n" + "Average Jiiter : %u (us)\n" + "Average Delay : %u (us)\n" + "Total Average error count : %llu\n" + "Total Success Count : %llu\n" + "Total Drop : %llu\n", + rx_tid->tid, + rx_tid->tx_avg_jitter, + rx_tid->tx_avg_delay, + rx_tid->tx_avg_err, + rx_tid->tx_total_success, + rx_tid->tx_drop); + } +} +#else +static void dp_print_jitter_stats(struct dp_peer *peer, struct dp_pdev *pdev) +{ +} +#endif /* WLAN_PEER_JITTER */ + void dp_print_peer_stats(struct dp_peer *peer) { uint8_t i; @@ -5280,6 +5319,8 @@ void dp_print_peer_stats(struct dp_peer *peer) DP_PRINT_STATS(" Data transmitted in last sec: %d", peer->stats.tx.tx_data_rate); + dp_print_jitter_stats(peer, pdev); + DP_PRINT_STATS("Node Rx Stats:"); DP_PRINT_STATS("Packets Sent To Stack = %d", peer->stats.rx.to_stack.num); diff --git a/dp/wifi3.0/dp_types.h b/dp/wifi3.0/dp_types.h index 40a216cce9bb..0adbc768c11e 100644 --- a/dp/wifi3.0/dp_types.h +++ b/dp/wifi3.0/dp_types.h @@ -600,6 +600,14 @@ struct dp_rx_tid { /* Delba reason code for retries */ uint8_t delba_rcode; +#ifdef WLAN_PEER_JITTER + /* Tx Jitter stats */ + uint32_t tx_avg_jitter; + uint32_t tx_avg_delay; + uint64_t tx_avg_err; + uint64_t tx_total_success; + uint64_t tx_drop; +#endif /* WLAN_PEER_JITTER */ }; /**