xref: /wlan-dirver/qca-wifi-host-cmn/wmi/src/wmi_unified_cp_stats_api.c (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 /**
17  * DOC: Implement API's specific to cp stats component.
18  */
19 
20 #include "wmi_unified_priv.h"
21 #include "wmi_unified_param.h"
22 #include "wmi_unified_cp_stats_api.h"
23 
24 #ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS
25 QDF_STATUS
26 wmi_unified_infra_cp_stats_request_send(wmi_unified_t wmi_handle,
27 					struct infra_cp_stats_cmd_info *param)
28 {
29 	if (wmi_handle->ops->send_infra_cp_stats_request_cmd)
30 		return wmi_handle->ops->send_infra_cp_stats_request_cmd(
31 								wmi_handle,
32 								param);
33 
34 	return QDF_STATUS_E_FAILURE;
35 }
36 
37 QDF_STATUS
38 wmi_unified_extract_infra_cp_stats(wmi_unified_t wmi_handle,
39 				   void *evt_buf, uint32_t evt_buf_len,
40 				   struct infra_cp_stats_event *params)
41 {
42 	if (wmi_handle->ops->extract_infra_cp_stats)
43 		return wmi_handle->ops->extract_infra_cp_stats(wmi_handle,
44 								   evt_buf,
45 								   evt_buf_len,
46 								   params);
47 
48 	return QDF_STATUS_E_FAILURE;
49 }
50 
51 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */
52 
53 QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle,
54 					  uint8_t macaddr[QDF_MAC_ADDR_SIZE],
55 					  struct stats_request_params *param)
56 {
57 	if (wmi_handle->ops->send_stats_request_cmd)
58 		return wmi_handle->ops->send_stats_request_cmd(wmi_handle,
59 				   macaddr, param);
60 
61 	return QDF_STATUS_E_FAILURE;
62 }
63 
64 #ifdef WLAN_FEATURE_BIG_DATA_STATS
65 QDF_STATUS
66 wmi_unified_big_data_stats_request_send(wmi_unified_t wmi_handle,
67 					struct stats_request_params *param)
68 {
69 	if (wmi_handle->ops->send_big_data_stats_request_cmd)
70 		return wmi_handle->ops->send_big_data_stats_request_cmd(
71 								wmi_handle,
72 								param);
73 
74 	return QDF_STATUS_E_FAILURE;
75 }
76 #endif
77 
78 QDF_STATUS
79 wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf,
80 			wmi_host_stats_event *stats_param)
81 {
82 	if (wmi_handle->ops->extract_all_stats_count)
83 		return wmi_handle->ops->extract_all_stats_count(wmi_handle,
84 			evt_buf, stats_param);
85 
86 	return QDF_STATUS_E_FAILURE;
87 }
88 
89 QDF_STATUS
90 wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
91 		       uint32_t index, wmi_host_pdev_stats *pdev_stats)
92 {
93 	if (wmi_handle->ops->extract_pdev_stats)
94 		return wmi_handle->ops->extract_pdev_stats(wmi_handle,
95 			evt_buf, index, pdev_stats);
96 
97 	return QDF_STATUS_E_FAILURE;
98 }
99 
100 QDF_STATUS
101 wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
102 		       uint32_t index, wmi_host_vdev_stats *vdev_stats)
103 {
104 	if (wmi_handle->ops->extract_vdev_stats)
105 		return wmi_handle->ops->extract_vdev_stats(wmi_handle,
106 			evt_buf, index, vdev_stats);
107 
108 	return QDF_STATUS_E_FAILURE;
109 }
110 
111 QDF_STATUS
112 wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf,
113 		       uint32_t index, wmi_host_peer_stats *peer_stats)
114 {
115 	if (wmi_handle->ops->extract_peer_stats)
116 		return wmi_handle->ops->extract_peer_stats(wmi_handle,
117 			evt_buf, index, peer_stats);
118 
119 	return QDF_STATUS_E_FAILURE;
120 }
121 
122 QDF_STATUS
123 wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
124 			    uint32_t index,
125 			    wmi_host_peer_extd_stats *peer_extd_stats)
126 {
127 	if (wmi_handle->ops->extract_peer_extd_stats)
128 		return wmi_handle->ops->extract_peer_extd_stats(wmi_handle,
129 			evt_buf, index, peer_extd_stats);
130 
131 	return QDF_STATUS_E_FAILURE;
132 }
133