From b9b4ef40c2fa84080c1c4d32699f244596441797 Mon Sep 17 00:00:00 2001 From: Edayilliam Jayadev Date: Fri, 13 May 2022 08:38:46 +0530 Subject: [PATCH] qcacmn: Add management Rx REO debug APIs Add debug APIs in management Rx REO module. CRs-Fixed: 3194240 Change-Id: I022d47f4c3db276404f859cda57ce3640805ebdb --- .../core/src/wlan_mgmt_txrx_rx_reo.c | 102 +++++++++++++----- .../core/src/wlan_mgmt_txrx_rx_reo_i.h | 32 +++++- .../inc/wlan_mgmt_txrx_rx_reo_utils_api.h | 32 +++++- .../src/wlan_mgmt_txrx_rx_reo_utils_api.c | 22 ++-- 4 files changed, 144 insertions(+), 44 deletions(-) diff --git a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c index 789af353dd..020464f02c 100644 --- a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c +++ b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c @@ -1276,7 +1276,7 @@ mgmt_rx_reo_list_display(struct mgmt_rx_reo_list *reo_list) #ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT /** - * mgmt_rx_reo_print_egress_frame_stats() - API to print the stats + * mgmt_rx_reo_debug_print_egress_frame_stats() - API to print the stats * related to frames going out of the reorder module * @reo_ctx: Pointer to reorder context * @@ -1286,7 +1286,7 @@ mgmt_rx_reo_list_display(struct mgmt_rx_reo_list *reo_list) * Return: QDF_STATUS */ static QDF_STATUS -mgmt_rx_reo_print_egress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_egress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) { struct reo_egress_frame_stats *stats; uint8_t link_id; @@ -1499,8 +1499,8 @@ mgmt_rx_reo_log_egress_frame_after_delivery( } /** - * mgmt_rx_reo_print_egress_frame_info() - Print the debug information about the - * latest frames leaving the reorder module + * mgmt_rx_reo_debug_print_egress_frame_info() - Print the debug information + * about the latest frames leaving the reorder module * @reo_ctx: management rx reorder context * @num_frames: Number of frames for which the debug information is to be * printed. If @num_frames is 0, then debug information about all the frames @@ -1509,8 +1509,8 @@ mgmt_rx_reo_log_egress_frame_after_delivery( * Return: QDF_STATUS of operation */ static QDF_STATUS -mgmt_rx_reo_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx, - uint16_t num_frames) +mgmt_rx_reo_debug_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx, + uint16_t num_frames) { struct reo_egress_debug_info *egress_frame_debug_info; int start_index; @@ -1683,7 +1683,7 @@ mgmt_rx_reo_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx, } #else /** - * mgmt_rx_reo_print_egress_frame_stats() - API to print the stats + * mgmt_rx_reo_debug_print_egress_frame_stats() - API to print the stats * related to frames going out of the reorder module * @reo_ctx: Pointer to reorder context * @@ -1693,7 +1693,7 @@ mgmt_rx_reo_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx, * Return: QDF_STATUS */ static QDF_STATUS -mgmt_rx_reo_print_egress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_egress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) { return QDF_STATUS_SUCCESS; } @@ -1734,14 +1734,14 @@ mgmt_rx_reo_log_egress_frame_after_delivery( } /** - * mgmt_rx_reo_print_egress_frame_info() - Print debug information about the - * latest frames leaving the reorder module + * mgmt_rx_reo_debug_print_egress_frame_info() - Print debug information about + * the latest frames leaving the reorder module * @reo_ctx: management rx reorder context * * Return: QDF_STATUS of operation */ static QDF_STATUS -mgmt_rx_reo_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_egress_frame_info(struct mgmt_rx_reo_context *reo_ctx) { return QDF_STATUS_SUCCESS; } @@ -2489,7 +2489,7 @@ wlan_mgmt_rx_reo_update_host_snapshot(struct wlan_objmgr_pdev *pdev, #ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT /** - * mgmt_rx_reo_print_ingress_frame_stats() - API to print the stats + * mgmt_rx_reo_debug_print_ingress_frame_stats() - API to print the stats * related to frames going into the reorder module * @reo_ctx: Pointer to reorder context * @@ -2499,7 +2499,7 @@ wlan_mgmt_rx_reo_update_host_snapshot(struct wlan_objmgr_pdev *pdev, * Return: QDF_STATUS */ static QDF_STATUS -mgmt_rx_reo_print_ingress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_ingress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) { struct reo_ingress_frame_stats *stats; uint8_t link_id; @@ -2731,8 +2731,8 @@ mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx, } /** - * mgmt_rx_reo_print_ingress_frame_info() - Print the debug information about - * the latest frames entered the reorder module + * mgmt_rx_reo_debug_print_ingress_frame_info() - Print the debug information + * about the latest frames entered the reorder module * @reo_ctx: management rx reorder context * @num_frames: Number of frames for which the debug information is to be * printed. If @num_frames is 0, then debug information about all the frames @@ -2741,8 +2741,8 @@ mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx, * Return: QDF_STATUS of operation */ static QDF_STATUS -mgmt_rx_reo_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx, - uint16_t num_frames) +mgmt_rx_reo_debug_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx, + uint16_t num_frames) { struct reo_ingress_debug_info *ingress_frame_debug_info; int start_index; @@ -2931,7 +2931,7 @@ mgmt_rx_reo_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx, } #else /** - * mgmt_rx_reo_print_ingress_frame_stats() - API to print the stats + * mgmt_rx_reo_debug_print_ingress_frame_stats() - API to print the stats * related to frames going into the reorder module * @reo_ctx: Pointer to reorder context * @@ -2941,7 +2941,7 @@ mgmt_rx_reo_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx, * Return: QDF_STATUS */ static QDF_STATUS -mgmt_rx_reo_print_ingress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_ingress_frame_stats(struct mgmt_rx_reo_context *reo_ctx) { return QDF_STATUS_SUCCESS; } @@ -2965,14 +2965,14 @@ mgmt_rx_reo_log_ingress_frame(struct mgmt_rx_reo_context *reo_ctx, } /** - * mgmt_rx_reo_print_ingress_frame_info() - Print debug information about + * mgmt_rx_reo_debug_print_ingress_frame_info() - Print debug information about * the latest frames entering the reorder module * @reo_ctx: management rx reorder context * * Return: QDF_STATUS of operation */ static QDF_STATUS -mgmt_rx_reo_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx) +mgmt_rx_reo_debug_print_ingress_frame_info(struct mgmt_rx_reo_context *reo_ctx) { return QDF_STATUS_SUCCESS; } @@ -5016,7 +5016,7 @@ mgmt_rx_reo_is_simulation_in_progress(void) #ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT QDF_STATUS -mgmt_rx_reo_print_ingress_frame_debug_info(void) +mgmt_rx_reo_print_ingress_frame_stats(void) { struct mgmt_rx_reo_context *reo_context; QDF_STATUS status; @@ -5027,13 +5027,29 @@ mgmt_rx_reo_print_ingress_frame_debug_info(void) return QDF_STATUS_E_NULL_VALUE; } - status = mgmt_rx_reo_print_ingress_frame_stats(reo_context); + status = mgmt_rx_reo_debug_print_ingress_frame_stats(reo_context); if (QDF_IS_STATUS_ERROR(status)) { mgmt_rx_reo_err("Failed to print ingress frame stats"); return status; } - status = mgmt_rx_reo_print_ingress_frame_info(reo_context, 0); + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +mgmt_rx_reo_print_ingress_frame_info(uint16_t num_frames) +{ + struct mgmt_rx_reo_context *reo_context; + QDF_STATUS status; + + reo_context = mgmt_rx_reo_get_context(); + if (!reo_context) { + mgmt_rx_reo_err("reo context is null"); + return QDF_STATUS_E_NULL_VALUE; + } + + status = mgmt_rx_reo_debug_print_ingress_frame_info(reo_context, + num_frames); if (QDF_IS_STATUS_ERROR(status)) { mgmt_rx_reo_err("Failed to print ingress frame info"); return status; @@ -5043,7 +5059,7 @@ mgmt_rx_reo_print_ingress_frame_debug_info(void) } QDF_STATUS -mgmt_rx_reo_print_egress_frame_debug_info(void) +mgmt_rx_reo_print_egress_frame_stats(void) { struct mgmt_rx_reo_context *reo_context; QDF_STATUS status; @@ -5054,13 +5070,29 @@ mgmt_rx_reo_print_egress_frame_debug_info(void) return QDF_STATUS_E_NULL_VALUE; } - status = mgmt_rx_reo_print_egress_frame_stats(reo_context); + status = mgmt_rx_reo_debug_print_egress_frame_stats(reo_context); if (QDF_IS_STATUS_ERROR(status)) { mgmt_rx_reo_err("Failed to print egress frame stats"); return status; } - status = mgmt_rx_reo_print_egress_frame_info(reo_context, 0); + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +mgmt_rx_reo_print_egress_frame_info(uint16_t num_frames) +{ + struct mgmt_rx_reo_context *reo_context; + QDF_STATUS status; + + reo_context = mgmt_rx_reo_get_context(); + if (!reo_context) { + mgmt_rx_reo_err("reo context is null"); + return QDF_STATUS_E_NULL_VALUE; + } + + status = mgmt_rx_reo_debug_print_egress_frame_info(reo_context, + num_frames); if (QDF_IS_STATUS_ERROR(status)) { mgmt_rx_reo_err("Failed to print egress frame info"); return status; @@ -5070,13 +5102,25 @@ mgmt_rx_reo_print_egress_frame_debug_info(void) } #else QDF_STATUS -mgmt_rx_reo_print_ingress_frame_debug_info(void) +mgmt_rx_reo_print_ingress_frame_stats(void) { return QDF_STATUS_SUCCESS; } QDF_STATUS -mgmt_rx_reo_print_egress_frame_debug_info(void) +mgmt_rx_reo_print_ingress_frame_info(uint16_t num_frames) +{ + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +mgmt_rx_reo_print_egress_frame_stats(void) +{ + return QDF_STATUS_SUCCESS; +} + +QDF_STATUS +mgmt_rx_reo_print_egress_frame_info(uint16_t num_frames) { return QDF_STATUS_SUCCESS; } diff --git a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h index 3186466a97..c4c266ccbe 100644 --- a/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h +++ b/umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h @@ -865,7 +865,7 @@ bool mgmt_rx_reo_is_simulation_in_progress(void); /** - * mgmt_rx_reo_print_ingress_frame_debug_info() - Helper API to print + * mgmt_rx_reo_print_ingress_frame_stats() - Helper API to print * stats related to incoming management frames * * This API prints stats related to management frames entering management @@ -874,10 +874,22 @@ mgmt_rx_reo_is_simulation_in_progress(void); * Return: QDF_STATUS */ QDF_STATUS -mgmt_rx_reo_print_ingress_frame_debug_info(void); +mgmt_rx_reo_print_ingress_frame_stats(void); /** - * mgmt_rx_reo_print_egress_frame_debug_info() - Helper API to print + * mgmt_rx_reo_print_ingress_frame_info() - Print the debug information + * about the latest frames entered the reorder module + * @num_frames: Number of frames for which the debug information is to be + * printed. If @num_frames is 0, then debug information about all the frames + * in the ring buffer will be printed. + * + * Return: QDF_STATUS of operation + */ +QDF_STATUS +mgmt_rx_reo_print_ingress_frame_info(uint16_t num_frames); + +/** + * mgmt_rx_reo_print_egress_frame_stats() - Helper API to print * stats related to outgoing management frames * * This API prints stats related to management frames exiting management @@ -886,7 +898,19 @@ mgmt_rx_reo_print_ingress_frame_debug_info(void); * Return: QDF_STATUS */ QDF_STATUS -mgmt_rx_reo_print_egress_frame_debug_info(void); +mgmt_rx_reo_print_egress_frame_stats(void); + +/** + * mgmt_rx_reo_print_egress_frame_info() - Print the debug information + * about the latest frames leaving the reorder module + * @num_frames: Number of frames for which the debug information is to be + * printed. If @num_frames is 0, then debug information about all the frames + * in the ring buffer will be printed. + * + * Return: QDF_STATUS of operation + */ +QDF_STATUS +mgmt_rx_reo_print_egress_frame_info(uint16_t num_frames); #ifdef WLAN_MGMT_RX_REO_SIM_SUPPORT /** diff --git a/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_rx_reo_utils_api.h b/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_rx_reo_utils_api.h index 9245ea939f..2b19a3e964 100644 --- a/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_rx_reo_utils_api.h +++ b/umac/cmn_services/mgmt_txrx/dispatcher/inc/wlan_mgmt_txrx_rx_reo_utils_api.h @@ -306,7 +306,7 @@ bool wlan_mgmt_rx_reo_is_simulation_in_progress(void); /** - * wlan_mgmt_rx_reo_print_ingress_frame_debug_info() - Helper API to print + * wlan_mgmt_rx_reo_print_ingress_frame_stats() - Helper API to print * stats related to incoming management frames * * This API prints stats related to management frames entering management @@ -315,10 +315,22 @@ wlan_mgmt_rx_reo_is_simulation_in_progress(void); * Return: QDF_STATUS */ QDF_STATUS -wlan_mgmt_rx_reo_print_ingress_frame_debug_info(void); +wlan_mgmt_rx_reo_print_ingress_frame_stats(void); /** - * wlan_mgmt_rx_reo_print_egress_frame_debug_info() - Helper API to print + * wlan_mgmt_rx_reo_print_ingress_frame_info() - Print the debug information + * about the latest frames entered the reorder module + * @num_frames: Number of frames for which the debug information is to be + * printed. If @num_frames is 0, then debug information about all the frames + * in the ring buffer will be printed. + * + * Return: QDF_STATUS of operation + */ +QDF_STATUS +wlan_mgmt_rx_reo_print_ingress_frame_info(uint16_t num_frames); + +/** + * wlan_mgmt_rx_reo_print_egress_frame_stats() - Helper API to print * stats related to outgoing management frames * * This API prints stats related to management frames exiting management @@ -327,7 +339,19 @@ wlan_mgmt_rx_reo_print_ingress_frame_debug_info(void); * Return: QDF_STATUS */ QDF_STATUS -wlan_mgmt_rx_reo_print_egress_frame_debug_info(void); +wlan_mgmt_rx_reo_print_egress_frame_stats(void); + +/** + * wlan_mgmt_rx_reo_print_egress_frame_info() - Print the debug information + * about the latest frames leaving the reorder module + * @num_frames: Number of frames for which the debug information is to be + * printed. If @num_frames is 0, then debug information about all the frames + * in the ring buffer will be printed. + * + * Return: QDF_STATUS of operation + */ +QDF_STATUS +wlan_mgmt_rx_reo_print_egress_frame_info(uint16_t num_frames); #else static inline QDF_STATUS wlan_mgmt_rx_reo_validate_mlo_link_info(struct wlan_objmgr_psoc *psoc) diff --git a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_rx_reo_utils_api.c b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_rx_reo_utils_api.c index 0969a52fd7..fef7b2a755 100644 --- a/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_rx_reo_utils_api.c +++ b/umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_rx_reo_utils_api.c @@ -275,17 +275,25 @@ wlan_mgmt_rx_reo_is_simulation_in_progress(void) } QDF_STATUS -wlan_mgmt_rx_reo_print_ingress_frame_debug_info(void) +wlan_mgmt_rx_reo_print_ingress_frame_stats(void) { - return mgmt_rx_reo_print_ingress_frame_debug_info(); + return mgmt_rx_reo_print_ingress_frame_stats(); } -qdf_export_symbol(wlan_mgmt_rx_reo_print_ingress_frame_debug_info); - QDF_STATUS -wlan_mgmt_rx_reo_print_egress_frame_debug_info(void) +wlan_mgmt_rx_reo_print_ingress_frame_info(uint16_t num_frames) { - return mgmt_rx_reo_print_egress_frame_debug_info(); + return mgmt_rx_reo_print_ingress_frame_info(num_frames); } -qdf_export_symbol(wlan_mgmt_rx_reo_print_egress_frame_debug_info); +QDF_STATUS +wlan_mgmt_rx_reo_print_egress_frame_stats(void) +{ + return mgmt_rx_reo_print_egress_frame_stats(); +} + +QDF_STATUS +wlan_mgmt_rx_reo_print_egress_frame_info(uint16_t num_frames) +{ + return mgmt_rx_reo_print_egress_frame_info(num_frames); +}