Jelajahi Sumber

qcacmn: Expose APIs to print mgmt Rx REO stats

Expose APIs to print management Rx reorder related stats.

CRs-Fixed: 3111702
Change-Id: I5577d52f686662d2aa86550f245520ca1516b8a8
Edayilliam Jayadev 3 tahun lalu
induk
melakukan
f67a6e56e9

+ 74 - 18
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo.c

@@ -3988,28 +3988,16 @@ mgmt_rx_reo_sim_stop(void)
 				sim_context->host_mgmt_frame_handler[link_id]);
 	}
 
-	status = mgmt_rx_reo_print_ingress_frame_stats(reo_context);
+	status = mgmt_rx_reo_print_ingress_frame_debug_info();
 	if (QDF_IS_STATUS_ERROR(status)) {
-		mgmt_rx_reo_err("Failed to print ingress frame stats");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	status = mgmt_rx_reo_print_egress_frame_stats(reo_context);
-	if (QDF_IS_STATUS_ERROR(status)) {
-		mgmt_rx_reo_err("Failed to print egress frame stats");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	status = mgmt_rx_reo_print_ingress_frame_info(reo_context);
-	if (QDF_IS_STATUS_ERROR(status)) {
-		mgmt_rx_reo_err("Failed to print ingress frame info");
-		return QDF_STATUS_E_FAILURE;
+		mgmt_rx_reo_err("Failed to print ingress frame debug info");
+		return status;
 	}
 
-	status = mgmt_rx_reo_print_egress_frame_info(reo_context);
+	status = mgmt_rx_reo_print_egress_frame_debug_info();
 	if (QDF_IS_STATUS_ERROR(status)) {
-		mgmt_rx_reo_err("Failed to print egress frame info");
-		return QDF_STATUS_E_FAILURE;
+		mgmt_rx_reo_err("Failed to print egress frame debug info");
+		return status;
 	}
 
 	master_frame_list = &sim_context->master_frame_list;
@@ -4410,3 +4398,71 @@ mgmt_rx_reo_is_simulation_in_progress(void)
 
 	return reo_context->simulation_in_progress;
 }
+
+#ifdef WLAN_MGMT_RX_REO_DEBUG_SUPPORT
+QDF_STATUS
+mgmt_rx_reo_print_ingress_frame_debug_info(void)
+{
+	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_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);
+	if (QDF_IS_STATUS_ERROR(status)) {
+		mgmt_rx_reo_err("Failed to print ingress frame info");
+		return status;
+	}
+
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+mgmt_rx_reo_print_egress_frame_debug_info(void)
+{
+	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_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);
+	if (QDF_IS_STATUS_ERROR(status)) {
+		mgmt_rx_reo_err("Failed to print egress frame info");
+		return status;
+	}
+
+	return QDF_STATUS_SUCCESS;
+}
+#else
+QDF_STATUS
+mgmt_rx_reo_print_ingress_frame_debug_info(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+QDF_STATUS
+mgmt_rx_reo_print_egress_frame_debug_info(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif /* WLAN_MGMT_RX_REO_DEBUG_SUPPORT */

+ 24 - 0
umac/cmn_services/mgmt_txrx/core/src/wlan_mgmt_txrx_rx_reo_i.h

@@ -734,6 +734,30 @@ mgmt_rx_reo_deinit_context(void);
 bool
 mgmt_rx_reo_is_simulation_in_progress(void);
 
+/**
+ * mgmt_rx_reo_print_ingress_frame_debug_info() - Helper API to print
+ * stats related to incoming management frames
+ *
+ * This API prints stats related to management frames entering management
+ * Rx reorder module.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+mgmt_rx_reo_print_ingress_frame_debug_info(void);
+
+/**
+ * mgmt_rx_reo_print_egress_frame_debug_info() - Helper API to print
+ * stats related to outgoing management frames
+ *
+ * This API prints stats related to management frames exiting management
+ * Rx reorder module.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+mgmt_rx_reo_print_egress_frame_debug_info(void);
+
 #ifdef WLAN_MGMT_RX_REO_SIM_SUPPORT
 /**
  * mgmt_rx_reo_sim_start() - Helper API to start management Rx reorder

+ 25 - 0
umac/cmn_services/mgmt_txrx/dispatcher/src/wlan_mgmt_txrx_rx_reo_utils_api.c

@@ -243,3 +243,28 @@ wlan_mgmt_rx_reo_is_simulation_in_progress(void)
 {
 	return mgmt_rx_reo_is_simulation_in_progress();
 }
+
+QDF_STATUS
+wlan_mgmt_rx_reo_print_ingress_frame_debug_info(void)
+{
+	return mgmt_rx_reo_print_ingress_frame_debug_info();
+}
+
+qdf_export_symbol(wlan_mgmt_rx_reo_print_ingress_frame_debug_info);
+
+QDF_STATUS
+wlan_mgmt_rx_reo_print_egress_frame_debug_info(void)
+{
+	return mgmt_rx_reo_print_egress_frame_debug_info();
+}
+
+qdf_export_symbol(wlan_mgmt_rx_reo_print_egress_frame_debug_info);
+
+QDF_STATUS
+wlan_mgmt_rx_reo_set_mlo_link_info(uint8_t num_mlo_links,
+				   uint16_t valid_link_bitmap)
+{
+	return mgmt_rx_reo_set_mlo_link_info(num_mlo_links, valid_link_bitmap);
+}
+
+qdf_export_symbol(wlan_mgmt_rx_reo_set_mlo_link_info);