xref: /wlan-dirver/qca-wifi-host-cmn/wmi/inc/wmi_unified_cp_stats_api.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2013-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 #ifndef _WMI_UNIFIED_CP_STATS_API_H_
21 #define _WMI_UNIFIED_CP_STATS_API_H_
22 
23 #ifdef QCA_SUPPORT_MC_CP_STATS
24 #include <wmi_unified_mc_cp_stats_api.h>
25 #endif
26 
27 #ifdef WLAN_SUPPORT_INFRA_CTRL_PATH_STATS
28 /**
29  * wmi_unified_infra_cp_stats_request_send() - WMI request infra_cp_stats
30  * function
31  * @wmi_handle: wmi handle
32  * @param: pointer to hold infra_cp_stats request parameters
33  *
34  * Return: QDF_STATUS_SUCCESS on Success, other QDF_STATUS error
35  *         codes on failure
36  */
37 QDF_STATUS
38 wmi_unified_infra_cp_stats_request_send(
39 				wmi_unified_t wmi_handle,
40 				struct infra_cp_stats_cmd_info *param);
41 
42 /**
43  * wmi_unified_extract_infra_cp_stats() - extract various infra cp statistics
44  * @wmi_handle: wmi handle
45  * @evt_buf: event buffer
46  * @evt_buf_len: length of event buffer
47  * @params: pointer to store the extracted event info
48  *
49  * This function extracts the infra cp statistics from the event
50  *
51  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
52  */
53 QDF_STATUS
54 wmi_unified_extract_infra_cp_stats(wmi_unified_t wmi_handle,
55 				   void *evt_buf, uint32_t evt_buf_len,
56 				   struct infra_cp_stats_event *params);
57 
58 QDF_STATUS wmi_stats_handler(void *buff, int32_t len,
59 			     struct infra_cp_stats_event *params);
60 
61 QDF_STATUS
62 extract_infra_cp_stats_tlv(wmi_unified_t wmi_handle, void *evt_buf,
63 			   uint32_t evt_buf_len,
64 			   struct infra_cp_stats_event *params);
65 #endif /* WLAN_SUPPORT_INFRA_CTRL_PATH_STATS */
66 
67 /**
68  * wmi_unified_stats_request_send() - WMI request stats function
69  * @wmi_handle: handle to WMI
70  * @macaddr: MAC address
71  * @param: pointer to hold stats request parameter
72  *
73  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
74  */
75 QDF_STATUS wmi_unified_stats_request_send(wmi_unified_t wmi_handle,
76 					  uint8_t macaddr[QDF_MAC_ADDR_SIZE],
77 					  struct stats_request_params *param);
78 
79 #ifdef WLAN_FEATURE_BIG_DATA_STATS
80 /**
81  * wmi_unified_big_data_stats_request_send() - WMI request big data stats
82  * function
83  * @wmi_handle: handle to WMI
84  * @param: pointer to hold stats request parameter
85  *
86  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
87  */
88 QDF_STATUS
89 wmi_unified_big_data_stats_request_send(wmi_unified_t wmi_handle,
90 					struct stats_request_params *param);
91 #endif
92 
93 /**
94  * wmi_extract_stats_param() - extract all stats count from event
95  * @wmi_handle: wmi handle
96  * @evt_buf: pointer to event buffer
97  * @stats_param: Pointer to hold stats count
98  *
99  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
100  */
101 QDF_STATUS
102 wmi_extract_stats_param(wmi_unified_t wmi_handle, void *evt_buf,
103 			wmi_host_stats_event *stats_param);
104 
105 /**
106  * wmi_extract_pdev_stats() - extract pdev stats from event
107  * @wmi_handle: wmi handle
108  * @evt_buf: pointer to event buffer
109  * @index: Index into pdev stats
110  * @pdev_stats: Pointer to hold pdev stats
111  *
112  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
113  */
114 QDF_STATUS
115 wmi_extract_pdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
116 		       uint32_t index, wmi_host_pdev_stats *pdev_stats);
117 
118 /**
119  * wmi_extract_vdev_stats() - extract vdev stats from event
120  * @wmi_handle: wmi handle
121  * @evt_buf: pointer to event buffer
122  * @index: Index into vdev stats
123  * @vdev_stats: Pointer to hold vdev stats
124  *
125  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
126  */
127 QDF_STATUS
128 wmi_extract_vdev_stats(wmi_unified_t wmi_handle, void *evt_buf,
129 		       uint32_t index, wmi_host_vdev_stats *vdev_stats);
130 
131 /**
132  * wmi_extract_peer_stats() - extract peer stats from event
133  * @wmi_handle: wmi handle
134  * @evt_buf: pointer to event buffer
135  * @index: Index into peer stats
136  * @peer_stats: Pointer to hold peer stats
137  *
138  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
139  */
140 QDF_STATUS
141 wmi_extract_peer_stats(wmi_unified_t wmi_handle, void *evt_buf,
142 		       uint32_t index, wmi_host_peer_stats *peer_stats);
143 
144 /**
145  * wmi_extract_peer_extd_stats() - extract extended peer stats from event
146  * @wmi_handle: wmi handle
147  * @evt_buf: pointer to event buffer
148  * @index: Index into extended peer stats
149  * @peer_extd_stats: Pointer to hold extended peer stats
150  *
151  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
152  */
153 QDF_STATUS
154 wmi_extract_peer_extd_stats(wmi_unified_t wmi_handle, void *evt_buf,
155 			    uint32_t index,
156 			    wmi_host_peer_extd_stats *peer_extd_stats);
157 #endif /* _WMI_UNIFIED_CP_STATS_API_H_ */
158