xref: /wlan-dirver/qca-wifi-host-cmn/umac/mlme/vdev_mgr/dispatcher/inc/wlan_vdev_mgr_tgt_if_tx_api.h (revision 2f4b444fb7e689b83a4ab0e7b3b38f0bf4def8e0)
1 /*
2  * Copyright (c) 2019, 2021 The Linux Foundation. All rights reserved.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for
5  * any purpose with or without fee is hereby granted, provided that the
6  * above copyright notice and this permission notice appear in all
7  * copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
10  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
11  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
12  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
13  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
14  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
15  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
16  * PERFORMANCE OF THIS SOFTWARE.
17  */
18 
19 /**
20  * DOC: vdev_mgr_iface_api.h
21  *
22  * API declarations required for following
23  * - get/set common mlme data structure fields
24  * - send WMI command using Tx Ops
25  */
26 
27 #ifndef __WLAN_VDEV_MGR_TX_OPS_API_H__
28 #define __WLAN_VDEV_MGR_TX_OPS_API_H__
29 
30 #include <wlan_objmgr_vdev_obj.h>
31 #include <wlan_vdev_mgr_tgt_if_tx_defs.h>
32 #include <include/wlan_vdev_mlme.h>
33 
34 /**
35  * tgt_vdev_mgr_create_send() – API to send create command
36  * @mlme_obj: pointer to vdev_mlme_obj
37  * @param: pointer to vdev_create_params
38  *
39  * Return: QDF_STATUS - Success or Failure
40  */
41 QDF_STATUS tgt_vdev_mgr_create_send(
42 				struct vdev_mlme_obj *mlme_obj,
43 				struct vdev_create_params *param);
44 
45 /**
46  * tgt_vdev_mgr_create_complete() – API to send wmi cfg corresponding
47  * to create command
48  * @mlme_obj: pointer to vdev_mlme_obj
49  *
50  * Return: QDF_STATUS - Success or Failure
51  */
52 QDF_STATUS tgt_vdev_mgr_create_complete(struct vdev_mlme_obj *mlme_obj);
53 
54 /**
55  * tgt_vdev_mgr_start_send() – API to send start command
56  * @mlme_obj: pointer to vdev_mlme_obj
57  * @param: pointer to vdev_start_params
58  *
59  * Return: QDF_STATUS - Success or Failure
60  */
61 QDF_STATUS tgt_vdev_mgr_start_send(
62 				struct vdev_mlme_obj *mlme_obj,
63 				struct vdev_start_params *param);
64 
65 /**
66  * tgt_vdev_mgr_delete_send() – API to send delete
67  * @mlme_obj: pointer to vdev_mlme_obj
68  * @param: pointer to vdev_delete_params
69  *
70  * Return: QDF_STATUS - Success or Failure
71  */
72 QDF_STATUS tgt_vdev_mgr_delete_send(
73 				struct vdev_mlme_obj *mlme_obj,
74 				struct vdev_delete_params *param);
75 
76 /**
77  * tgt_vdev_mgr_peer_flush_tids_send() – API to send peer flush tids in FW
78  * @mlme_obj: pointer to vdev_mlme_obj
79  * @param: pointer to peer_flush_params
80  *
81  * Return: QDF_STATUS - Success or Failure
82  */
83 QDF_STATUS tgt_vdev_mgr_peer_flush_tids_send(
84 				struct vdev_mlme_obj *mlme_obj,
85 				struct peer_flush_params *param);
86 
87 /**
88  * tgt_vdev_mgr_stop_send() – API to send stop command
89  * @mlme_obj: pointer to vdev_mlme_obj
90  * @param: pointer to vdev_stop_params
91  *
92  * Return: QDF_STATUS - Success or Failure
93  */
94 QDF_STATUS tgt_vdev_mgr_stop_send(
95 				struct vdev_mlme_obj *mlme_obj,
96 				struct vdev_stop_params *param);
97 
98 /**
99  * tgt_vdev_mgr_beacon_stop() – API to handle beacon buffer
100  * @mlme_obj: pointer to vdev_mlme_obj
101  *
102  * Return: QDF_STATUS - Success or Failure
103  */
104 QDF_STATUS tgt_vdev_mgr_beacon_stop(struct vdev_mlme_obj *mlme_obj);
105 
106 /**
107  * tgt_vdev_mgr_beacon_free() – API to free beacon buffer
108  * @mlme_obj: pointer to vdev_mlme_obj
109  *
110  * Return: QDF_STATUS - Success or Failure
111  */
112 QDF_STATUS tgt_vdev_mgr_beacon_free(struct vdev_mlme_obj *mlme_obj);
113 
114 /**
115  * tgt_vdev_mgr_up_send() – API to send up
116  * @mlme_obj: pointer to vdev_mlme_obj
117  * @param: pointer to vdev_up_params
118  *
119  * Return: QDF_STATUS - Success or Failure
120  */
121 QDF_STATUS tgt_vdev_mgr_up_send(
122 				struct vdev_mlme_obj *mlme_obj,
123 				struct vdev_up_params *param);
124 
125 /**
126  * tgt_vdev_mgr_down_send() – API to send down
127  * @mlme_obj: pointer to vdev_mlme_obj
128  * @param: pointer to vdev_down_params
129  *
130  * Return: QDF_STATUS - Success or Failure
131  */
132 QDF_STATUS tgt_vdev_mgr_down_send(
133 				struct vdev_mlme_obj *mlme_obj,
134 				struct vdev_down_params *param);
135 
136 /**
137  * tgt_vdev_mgr_set_neighbour_rx_cmd_send() – API to send neighbour rx
138  * @mlme_obj: pointer to vdev_mlme_obj
139  * @param: pointer to set_neighbour_rx_params
140  *
141  * Return: QDF_STATUS - Success or Failure
142  */
143 QDF_STATUS tgt_vdev_mgr_set_neighbour_rx_cmd_send(
144 				struct vdev_mlme_obj *mlme_obj,
145 				struct set_neighbour_rx_params *param);
146 
147 /**
148  * tgt_vdev_mgr_nac_rssi_send() – API to send NAC RSSI
149  * @mlme_obj: pointer to vdev_mlme_obj
150  * @param: pointer to vdev_scan_nac_rssi_params
151  *
152  * Return: QDF_STATUS - Success or Failure
153  */
154 QDF_STATUS tgt_vdev_mgr_nac_rssi_send(
155 				struct vdev_mlme_obj *mlme_obj,
156 				struct vdev_scan_nac_rssi_params *param);
157 
158 /**
159  * tgt_vdev_mgr_sifs_trigger_send() – API to send SIFS trigger
160  * @mlme_obj: pointer to vdev_mlme_obj
161  * @param: pointer to sifs_trigger_param
162  *
163  * Return: QDF_STATUS - Success or Failure
164  */
165 QDF_STATUS tgt_vdev_mgr_sifs_trigger_send(
166 				struct vdev_mlme_obj *mlme_obj,
167 				struct sifs_trigger_param *param);
168 
169 /**
170  * tgt_vdev_mgr_set_custom_aggr_size_send() – API to send custom aggr size
171  * @mlme_obj: pointer to vdev_mlme_obj
172  * @param: pointer to set_custom_aggr_size_params
173  *
174  * Return: QDF_STATUS - Success or Failure
175  */
176 QDF_STATUS tgt_vdev_mgr_set_custom_aggr_size_send(
177 				struct vdev_mlme_obj *mlme_obj,
178 				struct set_custom_aggr_size_params *param);
179 
180 /**
181  * tgt_vdev_mgr_config_ratemask_cmd_send() – API to configure ratemask
182  * @mlme_obj: pointer to vdev_mlme_obj
183  * @param: pointer to config_ratemask_params
184  *
185  * Return: QDF_STATUS - Success or Failure
186  */
187 QDF_STATUS tgt_vdev_mgr_config_ratemask_cmd_send(
188 				struct vdev_mlme_obj *mlme_obj,
189 				struct config_ratemask_params *param);
190 
191 /**
192  * tgt_vdev_mgr_sta_ps_param_send() – API to send sta power save configuration
193  * @mlme_obj: pointer to vdev_mlme_obj
194  * @param: pointer to sta_ps_params
195  *
196  * Return: QDF_STATUS - Success or Failure
197  */
198 QDF_STATUS tgt_vdev_mgr_sta_ps_param_send(
199 				struct vdev_mlme_obj *mlme_obj,
200 				struct sta_ps_params *param);
201 
202 /**
203  * tgt_vdev_mgr_beacon_cmd_send() – API to send beacon
204  * @mlme_obj: pointer to vdev_mlme_obj
205  * @param: pointer to beacon_params
206  *
207  * Return: QDF_STATUS - Success or Failure
208  */
209 QDF_STATUS tgt_vdev_mgr_beacon_cmd_send(
210 				struct vdev_mlme_obj *mlme_obj,
211 				struct beacon_params *param);
212 
213 /**
214  * tgt_vdev_mgr_beacon_tmpl_send() – API to send beacon template
215  * @mlme_obj: pointer to vdev_mlme_obj
216  * @param: pointer to beacon_tmpl_params
217  *
218  * Return: QDF_STATUS - Success or Failure
219  */
220 QDF_STATUS tgt_vdev_mgr_beacon_tmpl_send(
221 				struct vdev_mlme_obj *mlme_obj,
222 				struct beacon_tmpl_params *param);
223 
224 #if defined(WLAN_SUPPORT_FILS) || defined(CONFIG_BAND_6GHZ)
225 /**
226  * tgt_vdev_mgr_fils_enable_send()- API to send fils enable command
227  * @mlme_obj: pointer to vdev_mlme_obj
228  * @param: pointer to config_fils_params struct
229  *
230  * Return: QDF_STATUS - Success or Failure
231  */
232 QDF_STATUS tgt_vdev_mgr_fils_enable_send(
233 				struct vdev_mlme_obj *mlme_obj,
234 				struct config_fils_params *param);
235 #else
236 /**
237  * tgt_vdev_mgr_fils_enable_send()- API to send fils enable command
238  * @mlme_obj: pointer to vdev_mlme_obj
239  * @param: pointer to config_fils_params struct
240  *
241  * Return: QDF_STATUS - Success or Failure
242  */
243 static inline QDF_STATUS tgt_vdev_mgr_fils_enable_send(
244 				struct vdev_mlme_obj *mlme_obj,
245 				struct config_fils_params *param)
246 {
247 	return QDF_STATUS_SUCCESS;
248 }
249 #endif
250 
251 /**
252  * tgt_vdev_mgr_multiple_vdev_restart_send() – API to send multiple vdev
253  * restart
254  * @pdev: pointer to pdev
255  * @param: pointer to multiple_vdev_restart_params
256  *
257  * Return: QDF_STATUS - Success or Failure
258  */
259 QDF_STATUS tgt_vdev_mgr_multiple_vdev_restart_send(
260 				struct wlan_objmgr_pdev *pdev,
261 				struct multiple_vdev_restart_params *param);
262 
263 /**
264  * tgt_vdev_mgr_multiple_vdev_set_param() – API to send multiple vdev
265  * param
266  * @pdev: pointer to pdev
267  * @param: pointer to multiple_vdev_set_param
268  *
269  * Return: QDF_STATUS - Success or Failure
270  */
271 QDF_STATUS tgt_vdev_mgr_multiple_vdev_set_param(
272 				struct wlan_objmgr_pdev *pdev,
273 				struct multiple_vdev_set_param *param);
274 
275 /**
276  * tgt_vdev_mgr_set_tx_rx_decap_type() – API to send tx rx decap type
277  * @mlme_obj: pointer to vdev mlme obj
278  * @param_id: param id
279  * value: value to set for param id
280  *
281  * Return: QDF_STATUS - Success or Failure
282  */
283 QDF_STATUS tgt_vdev_mgr_set_tx_rx_decap_type(struct vdev_mlme_obj *mlme_obj,
284 					     enum wlan_mlme_cfg_id param_id,
285 					     uint32_t value);
286 
287 /**
288  * tgt_vdev_mgr_set_param_send() – API to send parameter cfg
289  * @mlme_obj: pointer to vdev_mlme_obj
290  * @param: pointer to vdev_set_params
291  *
292  * Return: QDF_STATUS - Success or Failure
293  */
294 QDF_STATUS tgt_vdev_mgr_set_param_send(
295 				struct vdev_mlme_obj *mlme_obj,
296 				struct vdev_set_params *param);
297 
298 /**
299  * tgt_vdev_mgr_bcn_miss_offload_send() – API to send beacon miss offload
300  * @mlme_obj: pointer to vdev_mlme_obj
301  *
302  * Return: QDF_STATUS - Success or Failure
303  */
304 QDF_STATUS tgt_vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj);
305 
306 /**
307  * tgt_vdev_mgr_peer_delete_all_send() – API to send peer delete all request
308  * @mlme_obj: pointer to vdev_mlme_obj
309  * @param: pointer to peer_delete_all_params
310  *
311  * Return: QDF_STATUS - Success or Failure
312  */
313 QDF_STATUS tgt_vdev_mgr_peer_delete_all_send(
314 				struct vdev_mlme_obj *mlme_obj,
315 				struct peer_delete_all_params *param);
316 
317 #endif /* __WLAN_VDEV_MGR_TX_OPS_API_H__ */
318