xref: /wlan-dirver/qca-wifi-host-cmn/umac/mlme/include/wlan_mlme_cmn.h (revision 2b23d2e388c3e0ba9ac6113a9da98706fc6be2fd)
1 /*
2  * Copyright (c) 2019-2021 The Linux Foundation. All rights reserved.
3  * Copyright (c) 2021-2022 Qualcomm Innovation Center, Inc. All rights reserved.
4  *
5  * Permission to use, copy, modify, and/or distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 
18 /**
19  * DOC: Define Common MLME structure and APIs
20  */
21 #ifndef _WLAN_MLME_CMN_H_
22 #define _WLAN_MLME_CMN_H_
23 
24 #include <include/wlan_psoc_mlme.h>
25 #include <include/wlan_pdev_mlme.h>
26 #include <include/wlan_vdev_mlme.h>
27 #include "wlan_cm_public_struct.h"
28 #include "wlan_twt_public_structs.h"
29 
30 /**
31  * mlme_cm_ops: connection manager osif callbacks
32  * @mlme_cm_connect_complete_cb: Connect done callback
33  * @vdev: vdev pointer
34  * @rsp: connect response
35  *
36  * @mlme_cm_failed_candidate_cb: Callback to indicate failed candidate
37  * @vdev: vdev pointer
38  * @rsp: connect response
39  *
40  * @mlme_cm_update_id_and_src_cb: Callback to update connect id and
41  *                                source of the connect request
42  * @vdev: vdev pointer
43  * @Source: Source of the connect req
44  * @cm_id: connection manager id
45  *
46  * @mlme_cm_disconnect_complete_cb: Disconnect done callback
47  * @vdev: vdev pointer
48  * @rsp: Disconnect response
49  *
50  * @mlme_cm_disconnect_start_cb: Disconnect start callback
51  * @vdev: vdev pointer
52  *
53  * @mlme_cm_roam_sync_cb: Roam sync callback
54  * @vdev: vdev pointer
55  *
56  * @mlme_cm_pmksa_candidate_notify_cb: Roam pmksa candidate notify callback
57  * @vdev: vdev pointer
58  * @bssid: bssid
59  * @index: index
60  * @preauth: preauth flag
61  *
62  * @mlme_cm_roam_start_cb: Roam start callback
63  * @vdev: vdev pointer
64  *
65  * @mlme_cm_roam_abort_cb: Roam abort callback
66  * @vdev: vdev pointer
67  *
68  * @mlme_cm_roam_cmpl_cb: Roam sync complete cb
69  * @vdev: vdev pointer
70  *
71  * @mlme_cm_ft_preauth_cmpl_cb: Roam ft preauth complete cb
72  * @vdev: vdev pointer
73  * @rsp: preauth response pointer
74  *
75  * @mlme_cm_cckm_preauth_cmpl_cb: Roam cckm preauth complete cb
76  * @vdev: vdev pointer
77  * @rsp: preauth response pointer
78  *
79  * @mlme_cm_get_vendor_handoff_params_cb: get vendor handoff params cb
80  * @psoc: psoc pointer
81  * @rsp: vendor handoff response pointer
82  * @vendor_handoff_context: vendor handoff context
83  */
84 struct mlme_cm_ops {
85 	QDF_STATUS (*mlme_cm_connect_complete_cb)(
86 					struct wlan_objmgr_vdev *vdev,
87 					struct wlan_cm_connect_resp *rsp);
88 	QDF_STATUS (*mlme_cm_failed_candidate_cb)(
89 					struct wlan_objmgr_vdev *vdev,
90 					struct wlan_cm_connect_resp *rsp);
91 	QDF_STATUS (*mlme_cm_update_id_and_src_cb)(
92 					struct wlan_objmgr_vdev *vdev,
93 					enum wlan_cm_source source,
94 					wlan_cm_id cm_id);
95 	QDF_STATUS (*mlme_cm_disconnect_complete_cb)(
96 					struct wlan_objmgr_vdev *vdev,
97 					struct wlan_cm_discon_rsp *rsp);
98 	QDF_STATUS (*mlme_cm_disconnect_start_cb)(
99 					struct wlan_objmgr_vdev *vdev);
100 #ifdef CONN_MGR_ADV_FEATURE
101 	QDF_STATUS (*mlme_cm_roam_sync_cb)(struct wlan_objmgr_vdev *vdev);
102 	QDF_STATUS (*mlme_cm_pmksa_candidate_notify_cb)(
103 						struct wlan_objmgr_vdev *vdev,
104 						struct qdf_mac_addr *bssid,
105 						int index, bool preauth);
106 #endif
107 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
108 	QDF_STATUS (*mlme_cm_roam_start_cb)(struct wlan_objmgr_vdev *vdev);
109 	QDF_STATUS (*mlme_cm_roam_abort_cb)(struct wlan_objmgr_vdev *vdev);
110 	QDF_STATUS (*mlme_cm_roam_cmpl_cb)(struct wlan_objmgr_vdev *vdev);
111 #endif
112 #ifdef WLAN_FEATURE_PREAUTH_ENABLE
113 	QDF_STATUS (*mlme_cm_ft_preauth_cmpl_cb)(
114 					struct wlan_objmgr_vdev *vdev,
115 					struct wlan_preauth_rsp *rsp);
116 #ifdef FEATURE_WLAN_ESE
117 	QDF_STATUS (*mlme_cm_cckm_preauth_cmpl_cb)(
118 					struct wlan_objmgr_vdev *vdev,
119 					struct wlan_preauth_rsp *rsp);
120 #endif
121 #endif
122 #ifdef WLAN_VENDOR_HANDOFF_CONTROL
123 	QDF_STATUS (*mlme_cm_get_vendor_handoff_params_cb)(
124 				struct wlan_objmgr_psoc *psoc,
125 				void *vendor_handoff_context);
126 #endif
127 };
128 
129 /**
130  * struct mlme_vdev_mgr_ops - MLME VDEV mgr osif callbacks
131  * @mlme_vdev_mgr_set_mac_addr_response: Callback to indicate set MAC address
132  *                                       response to osif
133  */
134 struct mlme_vdev_mgr_ops {
135 #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
136 	QDF_STATUS (*mlme_vdev_mgr_set_mac_addr_response)(uint8_t vdev_id,
137 							  uint8_t resp_status);
138 #endif
139 };
140 
141 /**
142  * struct mlme_twt_ops: twt component osif callbacks
143  * @mlme_twt_enable_complete_cb: TWT enable complete callback
144  * @psoc: psoc pointer
145  * @event: response
146  * @context: context
147  *
148  * @mlme_twt_disable_complete_cb: TWT disable complete callback
149  * @psoc: psoc pointer
150  * @event: response
151  * @context: context
152  *
153  * @mlme_twt_ack_complete_cb: TWT ack complete callback
154  * @psoc: psoc pointer
155  * @event: response
156  * @context: context
157  *
158  * @mlme_twt_setup_complete_cb: TWT setup complete callback
159  * @psoc: psoc pointer
160  * @event: response
161  * @renego_fail: flag to indicate if renegotiation failure case
162  *
163  * @mlme_twt_teardown_complete_cb: TWT teardown complete callback
164  * @psoc: psoc pointer
165  * @event: response
166  *
167  * @mlme_twt_pause_complete_cb: TWT pause complete callback
168  * @psoc: psoc pointer
169  * @event: response
170  *
171  * @mlme_twt_resume_complete_cb: TWT resume complete callback
172  * @psoc: psoc pointer
173  * @event: response
174  *
175  * @mlme_twt_nudge_complete_cb: TWT nudge complete callback
176  * @psoc: psoc pointer
177  * @event: response
178  *
179  * @mlme_twt_notify_complete_cb: TWT notify complete callback
180  * @psoc: psoc pointer
181  * @event: response
182  */
183 struct mlme_twt_ops {
184 	QDF_STATUS (*mlme_twt_enable_complete_cb)(
185 			struct wlan_objmgr_psoc *psoc,
186 			struct twt_enable_complete_event_param *event,
187 			void *context);
188 
189 	QDF_STATUS (*mlme_twt_disable_complete_cb)(
190 			struct wlan_objmgr_psoc *psoc,
191 			struct twt_disable_complete_event_param *event,
192 			void *context);
193 
194 	QDF_STATUS (*mlme_twt_ack_complete_cb)(
195 			struct wlan_objmgr_psoc *psoc,
196 			struct twt_ack_complete_event_param *event,
197 			void *context);
198 
199 	QDF_STATUS (*mlme_twt_setup_complete_cb)(
200 			struct wlan_objmgr_psoc *psoc,
201 			struct twt_add_dialog_complete_event *event,
202 			bool renego_fail);
203 
204 	QDF_STATUS (*mlme_twt_teardown_complete_cb)(
205 			struct wlan_objmgr_psoc *psoc,
206 			struct twt_del_dialog_complete_event_param *event);
207 
208 	QDF_STATUS (*mlme_twt_pause_complete_cb)(
209 			struct wlan_objmgr_psoc *psoc,
210 			struct twt_pause_dialog_complete_event_param *event);
211 
212 	QDF_STATUS (*mlme_twt_resume_complete_cb)(
213 			struct wlan_objmgr_psoc *psoc,
214 			struct twt_resume_dialog_complete_event_param *event);
215 
216 	QDF_STATUS (*mlme_twt_nudge_complete_cb)(
217 			struct wlan_objmgr_psoc *psoc,
218 			struct twt_nudge_dialog_complete_event_param *event);
219 
220 	QDF_STATUS (*mlme_twt_notify_complete_cb)(
221 			struct wlan_objmgr_psoc *psoc,
222 			struct twt_notify_event_param *event);
223 
224 	QDF_STATUS (*mlme_twt_vdev_create_cb)(
225 			struct wlan_objmgr_vdev *vdev);
226 
227 	QDF_STATUS (*mlme_twt_vdev_destroy_cb)(
228 			struct wlan_objmgr_vdev *vdev);
229 };
230 
231 /**
232  * struct vdev_mlme_ext_ops - VDEV MLME legacy callbacks structure
233  * @mlme_psoc_ext_hdl_create:               callback to invoke creation of
234  *                                          legacy psoc object
235  * @mlme_psoc_ext_hdl_destroy:              callback to invoke destroy of legacy
236  *                                          psoc object
237  * @mlme_pdev_ext_hdl_create:               callback to invoke creation of
238  *                                          legacy pdev object
239  * @mlme_pdev_ext_hdl_destroy:              callback to invoke destroy of legacy
240  *                                          pdev object
241  * @mlme_vdev_ext_hdl_create:               callback to invoke creation of
242  *                                          legacy vdev object
243  * @mlme_vdev_ext_hdl_post_create:          callback to invoke post creation
244  *                                          actions of legacy vdev object
245  * @mlme_vdev_ext_hdl_destroy:              callback to invoke destroy of legacy
246  *                                          vdev object
247  * @mlme_vdev_start_fw_send:                callback to invoke vdev start
248  *                                          command
249  * @mlme_vdev_stop_fw_send:                 callback to invoke vdev stop command
250  * @mlme_vdev_down_fw_send:                 callback to invoke vdev down command
251  * @mlme_multivdev_restart_fw_send:         callback to invoke multivdev restart
252  *                                          command
253  * @mlme_vdev_enqueue_exp_cmd:              callback to enqueue exception
254  *                                          command
255  *                                          required by serialization
256  * @mlme_multi_vdev_restart_resp:           callback to process multivdev
257  *                                          restart response
258  * @mlme_cm_ext_hdl_create_cb:              callback to create ext cm context
259  * @mlme_cm_ext_hdl_destroy_cb:             callback to destroy ext cm context
260  * @mlme_cm_ext_connect_start_ind_cb:       callback to indicate connect start
261  * @mlme_cm_ext_bss_select_ind_cb:          callback to indicate candidate
262  *                                          select for connect
263  * @mlme_cm_ext_bss_peer_create_req_cb:     callback to bss peer create request
264  * @mlme_cm_ext_connect_req_cb:             callback for connect request to
265  *                                          VDEV/PEER SM
266  * @mlme_cm_ext_connect_complete_ind_cb:    callback to indicate connect
267  *                                          complete
268  * @mlme_cm_ext_disconnect_start_ind_cb :   callback to indicate disconnect
269  *                                          start
270  * @mlme_cm_ext_disconnect_req_cb:          callback to disconnect req to
271  *                                          VDEV/PEER SM
272  * @mlme_cm_ext_bss_peer_delete_req_cb:     callback to bss peer delete request
273  * @mlme_cm_ext_disconnect_complete_ind_cb: callback to indicate disconnect
274  *                                          complete
275  * @mlme_cm_ext_vdev_down_req_cb:           callback to send vdev down to FW
276  * @mlme_cm_ext_roam_start_ind_cb:          callback to indicate roam start
277  * @mlme_cm_ext_rso_stop_cb:                callback to send rso stop to FW
278  * @mlme_cm_ext_reassoc_req_cb:             callback for reassoc request to
279  *                                          VDEV/PEER SM
280  * @mlme_vdev_send_set_mac_addr:            callback to send set MAC address
281  *                                          request to FW
282  */
283 struct mlme_ext_ops {
284 	QDF_STATUS (*mlme_psoc_ext_hdl_create)(
285 				struct psoc_mlme_obj *psoc_mlme);
286 	QDF_STATUS (*mlme_psoc_ext_hdl_destroy)(
287 				struct psoc_mlme_obj *pdev_mlme);
288 	QDF_STATUS (*mlme_pdev_ext_hdl_create)(
289 				struct pdev_mlme_obj *pdev_mlme);
290 	QDF_STATUS (*mlme_pdev_ext_hdl_destroy)(
291 				struct pdev_mlme_obj *pdev_mlme);
292 	QDF_STATUS (*mlme_vdev_ext_hdl_create)(
293 				struct vdev_mlme_obj *vdev_mlme);
294 	QDF_STATUS (*mlme_vdev_ext_hdl_post_create)(
295 				struct vdev_mlme_obj *vdev_mlme);
296 	QDF_STATUS (*mlme_vdev_ext_hdl_destroy)(
297 				struct vdev_mlme_obj *vdev_mlme);
298 	QDF_STATUS (*mlme_vdev_start_fw_send)(
299 				struct wlan_objmgr_vdev *vdev, uint8_t restart);
300 	QDF_STATUS (*mlme_vdev_stop_fw_send)(struct wlan_objmgr_vdev *vdev);
301 	QDF_STATUS (*mlme_vdev_down_fw_send)(struct wlan_objmgr_vdev *vdev);
302 	QDF_STATUS (*mlme_multivdev_restart_fw_send)(
303 				struct wlan_objmgr_pdev *pdev);
304 	QDF_STATUS (*mlme_vdev_enqueue_exp_cmd)(
305 				struct vdev_mlme_obj *vdev_mlme,
306 				uint8_t cmd_type);
307 	QDF_STATUS (*mlme_vdev_ext_delete_rsp)(
308 					   struct wlan_objmgr_psoc *psoc,
309 					   struct vdev_delete_response *rsp);
310 	QDF_STATUS (*mlme_multi_vdev_restart_resp)(
311 				struct wlan_objmgr_psoc *psoc,
312 				struct multi_vdev_restart_resp *resp);
313 	QDF_STATUS (*mlme_cm_ext_hdl_create_cb)(struct wlan_objmgr_vdev *vdev,
314 						cm_ext_t **ext_cm_ptr);
315 	QDF_STATUS (*mlme_cm_ext_hdl_destroy_cb)(struct wlan_objmgr_vdev *vdev,
316 						 cm_ext_t *ext_cm_ptr);
317 	QDF_STATUS (*mlme_cm_ext_connect_start_ind_cb)(
318 				struct wlan_objmgr_vdev *vdev,
319 				struct wlan_cm_connect_req *req);
320 	QDF_STATUS (*mlme_cm_ext_bss_select_ind_cb)(
321 			struct wlan_objmgr_vdev *vdev,
322 			struct wlan_cm_vdev_connect_req *req);
323 	QDF_STATUS (*mlme_cm_ext_bss_peer_create_req_cb)(
324 				struct wlan_objmgr_vdev *vdev,
325 				struct qdf_mac_addr *peer_mac,
326 				struct qdf_mac_addr *mld_mac,
327 				bool is_assoc_link);
328 	QDF_STATUS (*mlme_cm_ext_connect_req_cb)(struct wlan_objmgr_vdev *vdev,
329 			struct wlan_cm_vdev_connect_req *req);
330 	QDF_STATUS (*mlme_cm_ext_connect_complete_ind_cb)(
331 				struct wlan_objmgr_vdev *vdev,
332 				struct wlan_cm_connect_resp *rsp);
333 	QDF_STATUS (*mlme_cm_ext_disconnect_start_ind_cb)(
334 				struct wlan_objmgr_vdev *vdev,
335 				struct wlan_cm_disconnect_req *req);
336 	QDF_STATUS (*mlme_cm_ext_disconnect_req_cb)
337 			(struct wlan_objmgr_vdev *vdev,
338 			struct wlan_cm_vdev_discon_req *req);
339 	QDF_STATUS (*mlme_cm_ext_bss_peer_delete_req_cb)(
340 			struct wlan_objmgr_vdev *vdev);
341 	QDF_STATUS (*mlme_cm_ext_disconnect_complete_ind_cb)(
342 				struct wlan_objmgr_vdev *vdev,
343 				struct wlan_cm_discon_rsp *rsp);
344 	QDF_STATUS (*mlme_cm_ext_vdev_down_req_cb)(
345 				struct wlan_objmgr_vdev *vdev);
346 	QDF_STATUS (*mlme_cm_ext_roam_start_ind_cb)(
347 				struct wlan_objmgr_vdev *vdev,
348 				struct wlan_cm_roam_req *req);
349 	QDF_STATUS (*mlme_cm_ext_rso_stop_cb)(struct wlan_objmgr_vdev *vdev);
350 	QDF_STATUS (*mlme_cm_ext_reassoc_req_cb)(
351 				struct wlan_objmgr_vdev *vdev,
352 				struct wlan_cm_vdev_reassoc_req *req);
353 #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
354 	QDF_STATUS (*mlme_vdev_send_set_mac_addr)(
355 						struct qdf_mac_addr mac_addr,
356 						struct qdf_mac_addr mld_addr,
357 						struct wlan_objmgr_vdev *vdev);
358 #endif
359 	QDF_STATUS (*mlme_ext_get_acs_inprogress)(
360 						struct wlan_objmgr_vdev *vdev,
361 						bool *is_acs_inprogress);
362 };
363 
364 /**
365  * struct mlme_external_tx_ops - MLME external callbacks structure
366  * @peer_ops:             callback to invoke peer mlme ops from external module
367  * @vdev_ops:             callback to invoke vdev mlme ops from external module
368  * @pdev_ops:             callback to invoke pdev mlme ops from external module
369  * @scan_db_iterate:      callback to invoke scan database iterate
370  */
371 enum wlan_mlme_peer_param;
372 enum wlan_mlme_vdev_param;
373 enum wlan_mlme_pdev_param;
374 struct mlme_external_tx_ops {
375 	QDF_STATUS (*peer_ops)(
376 		struct wlan_objmgr_peer *peer,
377 		enum wlan_mlme_peer_param type,
378 		void *data, void *ret);
379 	QDF_STATUS (*vdev_ops)(
380 		struct wlan_objmgr_vdev *vdev,
381 		enum wlan_mlme_vdev_param type,
382 		void *data, void *ret);
383 	QDF_STATUS (*pdev_ops)(
384 		struct wlan_objmgr_pdev *pdev,
385 		enum wlan_mlme_pdev_param type,
386 		void *data, void *ret);
387 	QDF_STATUS (*scan_db_iterate)(
388 		struct wlan_objmgr_pdev *pdev,
389 		scan_iterator_func handler, void *arg);
390 };
391 
392 /**
393  * mlme_psoc_ops_ext_hdl_create() - Alloc PSOC mlme ext handle
394  * @psoc_mlme:  PSOC MLME comp object
395  *
396  * API to allocate PSOC MLME ext handle
397  *
398  * Return: SUCCESS on successful allocation
399  *         Else FAILURE
400  */
401 QDF_STATUS mlme_psoc_ops_ext_hdl_create(struct psoc_mlme_obj *psoc_mlme);
402 
403 /**
404  * mlme_psoc_ops_ext_hdl_destroy() - Destroy PSOC mlme ext handle
405  * @psoc_mlme:  PSOC MLME comp object
406  *
407  * API to free psoc MLME ext handle
408  *
409  * Return: SUCCESS on successful free
410  *         Else FAILURE
411  */
412 QDF_STATUS mlme_psoc_ops_ext_hdl_destroy(struct psoc_mlme_obj *psoc_mlme);
413 
414 /**
415  * mlme_pdev_ops_ext_hdl_create - Alloc PDEV mlme ext handle
416  * @pdev_mlme_obj:  PDEV MLME comp object
417  *
418  * API to allocate PDEV MLME ext handle
419  *
420  * Return: SUCCESS on successful allocation
421  *         Else FAILURE
422  */
423 QDF_STATUS mlme_pdev_ops_ext_hdl_create(struct pdev_mlme_obj *pdev_mlme);
424 
425 /**
426  * mlme_pdev_ops_ext_hdl_destroy - Destroy PDEV mlme ext handle
427  * @pdev_mlme_obj:  PDEV MLME comp object
428  *
429  * API to free pdev MLME ext handle
430  *
431  * Return: SUCCESS on successful free
432  *         Else FAILURE
433  */
434 QDF_STATUS mlme_pdev_ops_ext_hdl_destroy(struct pdev_mlme_obj *pdev_mlme);
435 
436 /**
437  * mlme_vdev_ops_ext_hdl_create - Alloc VDEV mlme ext handle
438  * @vdev_mlme_obj:  VDEV MLME comp object
439  *
440  * API to allocate VDEV MLME ext handle
441  *
442  * Return: SUCCESS on successful allocation
443  *         Else FAILURE
444  */
445 QDF_STATUS mlme_vdev_ops_ext_hdl_create(struct vdev_mlme_obj *vdev_mlme);
446 
447 /**
448  * mlme_vdev_ops_ext_hdl_post_create - Perform post VDEV mlme ext handle alloc
449  *                                     operations
450  * @vdev_mlme_obj:  VDEV MLME comp object
451  *
452  * API to perform post vdev MLME ext handle allocation operations
453  *
454  * Return: SUCCESS on initialization successful
455  *         Else FAILURE
456  */
457 QDF_STATUS mlme_vdev_ops_ext_hdl_post_create(struct vdev_mlme_obj *vdev_mlme);
458 
459 /**
460  * mlme_vdev_ops_ext_hdl_destroy - Destroy VDEV mlme ext handle
461  * @vdev_mlme_obj:  VDEV MLME comp object
462  *
463  * API to free vdev MLME ext handle
464  *
465  * Return: SUCCESS on successful free
466  *         Else FAILURE
467  */
468 QDF_STATUS mlme_vdev_ops_ext_hdl_destroy(struct vdev_mlme_obj *vdev_mlme);
469 
470 /**
471  * mlme_vdev_enqueue_exp_ser_cmd - Enqueue exception serialization cmd
472  * @vdev_mlme_obj:  VDEV MLME comp object
473  * @cmd_type: Serialization command type
474  *
475  * API to enqueue the exception serialization command, used by
476  * mlme-serialization wrapper layer
477  *
478  * Return: SUCCESS on successful enqueuing the command
479  *         Else FAILURE
480  */
481 QDF_STATUS mlme_vdev_enqueue_exp_ser_cmd(struct vdev_mlme_obj *vdev_mlme,
482 					 uint8_t cmd_type);
483 
484 /**
485  * mlme_vdev_ops_start_fw_send - Send WMI START/RESTART commmand to FW
486  * @vdev:  VDEV object
487  *
488  * API to send WMI start/restart command to FW
489  *
490  * Return: SUCCESS on successful sending the command
491  *         Else FAILURE
492  */
493 QDF_STATUS mlme_vdev_ops_start_fw_send(struct wlan_objmgr_vdev *vdev,
494 				       uint8_t restart);
495 
496 /**
497  * mlme_vdev_ops_multivdev_restart_fw_cmd_send - Send WMI Multivdev restart
498  *                                              commmand to FW
499  * @pdev:  PDEV object
500  *
501  * API to send WMI multivdev restart command to FW
502  *
503  * Return: SUCCESS on successful sending the command
504  *         Else FAILURE
505  */
506 QDF_STATUS mlme_vdev_ops_multivdev_restart_fw_cmd_send(
507 						struct wlan_objmgr_pdev *pdev);
508 
509 /**
510  * mlme_vdev_ops_stop_fw_send - Send WMI STOP commmand to FW
511  * @vdev:  VDEV object
512  *
513  * API to send WMI stop command to FW
514  *
515  * Return: SUCCESS on successful sending the command
516  *         Else FAILURE
517  */
518 QDF_STATUS mlme_vdev_ops_stop_fw_send(struct wlan_objmgr_vdev *vdev);
519 
520 /**
521  * mlme_vdev_ops_down_fw_send - Send WMI Down commmand to FW
522  * @vdev:  VDEV object
523  *
524  * API to send WMI down command to FW
525  *
526  * Return: SUCCESS on successful sending the command
527  *         Else FAILURE
528  */
529 QDF_STATUS mlme_vdev_ops_down_fw_send(struct wlan_objmgr_vdev *vdev);
530 
531 /*
532  * mlme_vdev_ops_ext_hdl_multivdev_restart_resp() - Handler multivdev restart
533  * response event
534  * @psoc: PSOC object manager handle
535  * @resp: Restart response event
536  *
537  * Return: Success on successful handling of the response event,
538  *         Else failure
539  */
540 QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
541 		struct wlan_objmgr_psoc *psoc,
542 		struct multi_vdev_restart_resp *resp);
543 
544 /**
545  * mlme_set_ops_register_cb - Sets ops registration callback
546  * @ops_cb:  Function pointer
547  *
548  * API to set ops registration call back
549  *
550  * Return: void
551  */
552 typedef struct mlme_ext_ops *(*mlme_get_global_ops_cb)(void);
553 void mlme_set_ops_register_cb(mlme_get_global_ops_cb ops_cb);
554 
555 /**
556  * wlan_cmn_mlme_init - Initializes MLME component
557  *
558  * Registers callbacks with object manager for create/destroy
559  *
560  * Return: SUCCESS on successful registration
561  *         FAILURE, if registration fails
562  */
563 QDF_STATUS wlan_cmn_mlme_init(void);
564 
565 /**
566  * wlan_cmn_mlme_deinit - Uninitializes MLME component
567  *
568  * Unregisters callbacks with object manager for create/destroy
569  *
570  * Return: SUCCESS on successful registration
571  *         FAILURE, if registration fails
572  */
573 QDF_STATUS wlan_cmn_mlme_deinit(void);
574 
575 /**
576  * mlme_vdev_ops_ext_hdl_delete_rsp - Vdev Delete response ext handler
577  * @psoc: PSOC object
578  * @rsp: Vdev delete response received from the firmware
579  *
580  * API to invoke the legacy delete response handler for legacy cleanup
581  *
582  * Return: SUCCESS on successful deletion
583  *         FAILURE, if deletion fails
584  */
585 QDF_STATUS mlme_vdev_ops_ext_hdl_delete_rsp(struct wlan_objmgr_psoc *psoc,
586 					    struct vdev_delete_response *rsp);
587 
588 /**
589  * mlme_cm_ext_hdl_create() - Connection manager callback to create ext
590  * context
591  * @vdev: VDEV object
592  * @ext_cm_ptr: pointer to connection manager ext pointer
593  *
594  * Return: QDF_STATUS
595  */
596 QDF_STATUS mlme_cm_ext_hdl_create(struct wlan_objmgr_vdev *vdev,
597 				  cm_ext_t **ext_cm_ptr);
598 
599 /**
600  * mlme_cm_ext_hdl_destroy() - Connection manager callback to destroy ext
601  * context
602  * @vdev: VDEV object
603  * @ext_cm_ptr: connection manager ext pointer
604  *
605  * Return: QDF_STATUS
606  */
607 QDF_STATUS mlme_cm_ext_hdl_destroy(struct wlan_objmgr_vdev *vdev,
608 				   cm_ext_t *ext_cm_ptr);
609 
610 /**
611  * mlme_cm_connect_start_ind() - Connection manager ext Connect start indication
612  * @vdev: VDEV object
613  * @req: Connection manager connect request
614  *
615  * Return: QDF_STATUS
616  */
617 QDF_STATUS mlme_cm_connect_start_ind(struct wlan_objmgr_vdev *vdev,
618 				     struct wlan_cm_connect_req *req);
619 
620 /**
621  * mlme_cm_bss_select_ind() - Connection manager ext Connect candidate
622  * select indication, to do operations for the candidate
623  * @vdev: VDEV object
624  * @req: Vdev connect request
625  *
626  * Return: QDF_STATUS
627  */
628 QDF_STATUS mlme_cm_bss_select_ind(struct wlan_objmgr_vdev *vdev,
629 				  struct wlan_cm_vdev_connect_req *req);
630 
631 /**
632  * mlme_cm_bss_peer_create_req() - Connection manager ext bss peer create
633  * request
634  * @vdev: VDEV object
635  * @peer_mac: Peer mac address
636  * @mld_mac: mld mac address
637  * @is_assoc_link: assoc happens on this link or not
638  *
639  * Return: QDF_STATUS
640  */
641 QDF_STATUS mlme_cm_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
642 				       struct qdf_mac_addr *peer_mac,
643 				       struct qdf_mac_addr *mld_mac,
644 				       bool is_assoc_link);
645 
646 /**
647  * mlme_cm_connect_req() - Connection manager ext connect request to start vdev
648  * and peer assoc state machine
649  * @vdev: VDEV object
650  * @req: Vdev connect request
651  *
652  * Context: The req is on stack, so the API need to make a copy, if it want to
653  * use the req after return.
654  *
655  * Return: QDF_STATUS
656  */
657 QDF_STATUS mlme_cm_connect_req(struct wlan_objmgr_vdev *vdev,
658 			       struct wlan_cm_vdev_connect_req *req);
659 
660 /**
661  * mlme_cm_connect_complete_ind() - Connection manager ext connect complete
662  * indication
663  * @vdev: VDEV object
664  * @rsp: Connection manager connect response
665  *
666  * Return: QDF_STATUS
667  */
668 QDF_STATUS mlme_cm_connect_complete_ind(struct wlan_objmgr_vdev *vdev,
669 					struct wlan_cm_connect_resp *rsp);
670 
671 /**
672  * mlme_cm_roam_start_ind() - Connection manager ext Connect start indication
673  * @vdev: VDEV object
674  * @req: Connection manager roam request
675  *
676  * Return: QDF_STATUS
677  */
678 QDF_STATUS mlme_cm_roam_start_ind(struct wlan_objmgr_vdev *vdev,
679 				  struct wlan_cm_roam_req *req);
680 
681 /**
682  * mlme_cm_rso_stop_req() - Connection manager ext RSO stop request
683  * @vdev: VDEV object
684  *
685  * Return: QDF_STATUS
686  */
687 QDF_STATUS mlme_cm_rso_stop_req(struct wlan_objmgr_vdev *vdev);
688 
689 /**
690  * mlme_cm_reassoc_req() - Connection manager ext reassoc request
691  * @vdev: VDEV object
692  * @req: Vdev reassoc request
693  *
694  * Context: The req is on stack, so the API need to make a copy, if it want to
695  * use the req after return.
696  *
697  * Return: QDF_STATUS
698  */
699 QDF_STATUS mlme_cm_reassoc_req(struct wlan_objmgr_vdev *vdev,
700 			       struct wlan_cm_vdev_reassoc_req *req);
701 
702 /**
703  * mlme_cm_disconnect_start_ind() - Connection manager ext disconnect start
704  * indication
705  * @vdev: VDEV object
706  * @req: Connection manager disconnect request
707  *
708  * Return: QDF_STATUS
709  */
710 QDF_STATUS mlme_cm_disconnect_start_ind(struct wlan_objmgr_vdev *vdev,
711 					struct wlan_cm_disconnect_req *req);
712 
713 /**
714  * mlme_cm_disconnect_req() - Connection manager ext disconnect
715  * req to vdev and peer sm
716  * @vdev: VDEV object
717  * @req: vdev disconnect request
718  *
719  * Return: QDF_STATUS
720  */
721 QDF_STATUS mlme_cm_disconnect_req(struct wlan_objmgr_vdev *vdev,
722 				  struct wlan_cm_vdev_discon_req *req);
723 
724 /**
725  * mlme_cm_bss_peer_delete_req() - Connection manager ext bss peer delete
726  * request
727  * @vdev: VDEV object
728  *
729  * Return: QDF_STATUS
730  */
731 QDF_STATUS
732 mlme_cm_bss_peer_delete_req(struct wlan_objmgr_vdev *vdev);
733 
734 /**
735  * mlme_cm_disconnect_complete_ind() - Connection manager ext disconnect
736  * complete indication
737  * @vdev: VDEV object
738  * @rsp: Connection manager disconnect response
739  *
740  * Return: QDF_STATUS
741  */
742 QDF_STATUS mlme_cm_disconnect_complete_ind(struct wlan_objmgr_vdev *vdev,
743 					   struct wlan_cm_discon_rsp *rsp);
744 
745 /**
746  * mlme_cm_vdev_down() - Connection manager ext req to send vdev down to FW
747  * @vdev: VDEV object
748  *
749  * Return: QDF_STATUS
750  */
751 QDF_STATUS mlme_cm_vdev_down_req(struct wlan_objmgr_vdev *vdev);
752 
753 /**
754  * mlme_ext_hdl_get_acs_in_progress() - Check if ACS is in progress
755  * @vdev: VDEV object
756  * @acs_in_progress: ACS in progress flag
757  *
758  * Return: QDF_STATUS
759  */
760 QDF_STATUS mlme_ext_hdl_get_acs_in_progress(struct wlan_objmgr_vdev *vdev,
761 					    bool *acs_in_progress);
762 /**
763  * mlme_cm_osif_connect_complete() - Connect complete resp to osif
764  * @vdev: vdev pointer
765  * @rsp: Connect response
766  *
767  * Return: QDF_STATUS
768  */
769 QDF_STATUS mlme_cm_osif_connect_complete(struct wlan_objmgr_vdev *vdev,
770 					 struct wlan_cm_connect_resp *rsp);
771 
772 /**
773  * mlme_cm_osif_failed_candidate_ind() - Failed Candidate indication to osif
774  * @vdev: vdev pointer
775  * @rsp: Connect response
776  *
777  * Return: QDF_STATUS
778  */
779 QDF_STATUS
780 mlme_cm_osif_failed_candidate_ind(struct wlan_objmgr_vdev *vdev,
781 				  struct wlan_cm_connect_resp *rsp);
782 
783 /**
784  * mlme_cm_osif_update_id_and_src() - Update connection id and source to osif
785  * @vdev: vdev pointer
786  * @source: source of request
787  * @cm_id: connection manager id
788  *
789  * Return: QDF_STATUS
790  */
791 QDF_STATUS mlme_cm_osif_update_id_and_src(struct wlan_objmgr_vdev *vdev,
792 					  enum wlan_cm_source source,
793 					  wlan_cm_id cm_id);
794 
795 /**
796  * mlme_cm_osif_disconnect_complete() - Disconnect complete osif response
797  * @vdev: vdev pointer
798  * @cm_conn_rsp: Connect response
799  *
800  * Return: QDF_STATUS
801  */
802 QDF_STATUS
803 mlme_cm_osif_disconnect_complete(struct wlan_objmgr_vdev *vdev,
804 				 struct wlan_cm_discon_rsp *rsp);
805 
806 /**
807  * mlme_cm_osif_disconnect_start_ind() - osif Disconnect start indication
808  * @vdev: vdev pointer
809  * @cm_conn_rsp: Connect response
810  *
811  * Return: QDF_STATUS
812  */
813 QDF_STATUS mlme_cm_osif_disconnect_start_ind(struct wlan_objmgr_vdev *vdev);
814 
815 #ifdef WLAN_VENDOR_HANDOFF_CONTROL
816 /**
817  * mlme_cm_osif_get_vendor_handoff_params() - osif get vendor handoff params
818  * indication
819  * @psoc: psoc pointer
820  * @vendor_handoff_context: vendor handoff context
821  *
822  * Return: QDF_STATUS
823  */
824 QDF_STATUS mlme_cm_osif_get_vendor_handoff_params(struct wlan_objmgr_psoc *psoc,
825 						  void *vendor_handoff_context);
826 #endif
827 
828 #ifdef CONN_MGR_ADV_FEATURE
829 /**
830  * mlme_cm_osif_roam_sync_ind() - osif Roam sync indication
831  * @vdev: vdev pointer
832  *
833  * Return: QDF_STATUS
834  */
835 QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev);
836 
837 /**
838  * mlme_cm_osif_pmksa_candidate_notify() - osif roam pmksa candidate notify
839  * @vdev: vdev pointer
840  * @bssid: bssid
841  * @index: index
842  * @preauth: preauth flag
843  *
844  * Return: QDF_STATUS
845  */
846 QDF_STATUS mlme_cm_osif_pmksa_candidate_notify(struct wlan_objmgr_vdev *vdev,
847 					       struct qdf_mac_addr *bssid,
848 					       int index, bool preauth);
849 #else
850 static inline
851 QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev)
852 {
853 	return QDF_STATUS_SUCCESS;
854 }
855 #endif
856 
857 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
858 /**
859  * mlme_cm_osif_roam_start_ind() - osif Roam start indication
860  * @vdev: vdev pointer
861  *
862  * Return: QDF_STATUS
863  */
864 QDF_STATUS mlme_cm_osif_roam_start_ind(struct wlan_objmgr_vdev *vdev);
865 
866 /**
867  * mlme_cm_osif_roam_abort_ind() - osif Roam abort indication
868  * @vdev: vdev pointer
869  *
870  * Return: QDF_STATUS
871  */
872 QDF_STATUS mlme_cm_osif_roam_abort_ind(struct wlan_objmgr_vdev *vdev);
873 
874 /**
875  * mlme_cm_osif_roam_complete() - osif Roam sync complete callback
876  * @vdev: vdev pointer
877  *
878  * Return: QDF_STATUS
879  */
880 QDF_STATUS mlme_cm_osif_roam_complete(struct wlan_objmgr_vdev *vdev);
881 #endif
882 
883 #ifdef WLAN_FEATURE_PREAUTH_ENABLE
884 /**
885  * mlme_cm_osif_ft_preauth_complete() - osif roam ft preauth complete callback
886  * @vdev: vdev pointer
887  * @rsp: preauth response pointer
888  *
889  * Return: QDF_STATUS
890  */
891 QDF_STATUS
892 mlme_cm_osif_ft_preauth_complete(struct wlan_objmgr_vdev *vdev,
893 				 struct wlan_preauth_rsp *rsp);
894 #ifdef FEATURE_WLAN_ESE
895 /**
896  * mlme_cm_osif_cckm_preauth_complete() - osif cckm preauth complete callback
897  * @vdev: vdev pointer
898  * @rsp: preauth response pointer
899  *
900  * Return: QDF_STATUS
901  */
902 QDF_STATUS
903 mlme_cm_osif_cckm_preauth_complete(struct wlan_objmgr_vdev *vdev,
904 				   struct wlan_preauth_rsp *rsp);
905 #else
906 static inline QDF_STATUS
907 mlme_cm_osif_cckm_preauth_complete(struct wlan_objmgr_vdev *vdev,
908 				   struct wlan_preauth_rsp *rsp)
909 {
910 	return QDF_STATUS_SUCCESS;
911 }
912 #endif /* FEATURE_WLAN_ESE */
913 #endif /* WLAN_FEATURE_PREAUTH_ENABLE */
914 
915 /**
916  * typedef osif_cm_get_global_ops_cb() - Callback to get connection manager
917  * global ops
918  */
919 typedef struct mlme_cm_ops *(*osif_cm_get_global_ops_cb)(void);
920 
921 /**
922  * typedef osif_twt_get_global_ops_cb() - Callback to get twt global ops
923  */
924 typedef struct mlme_twt_ops *(*osif_twt_get_global_ops_cb)(void);
925 
926 /**
927  * mlme_set_osif_cm_cb() - Sets ops registration callback
928  * @cm_osif_ops:  Function pointer
929  *
930  * API to set ops registration call back
931  *
932  * Return: void
933  */
934 void mlme_set_osif_cm_cb(osif_cm_get_global_ops_cb cm_osif_ops);
935 
936 /**
937  * typedef osif_vdev_mgr_get_global_ops_cb() - Callback to get vdev manager
938  * global ops
939  */
940 typedef struct mlme_vdev_mgr_ops *(*osif_vdev_mgr_get_global_ops_cb)(void);
941 
942 /**
943  * mlme_set_osif_vdev_mgr_cb() - Sets ops registration callback
944  * @mlme_vdev_mgr_osif_ops:  Function pointer
945  *
946  * API to set ops registration call back
947  *
948  * Return: void
949  */
950 void mlme_set_osif_vdev_mgr_cb(
951 		osif_vdev_mgr_get_global_ops_cb mlme_vdev_mgr_osif_ops);
952 
953 /**
954  * mlme_set_osif_twt_cb() - Sets twt ops registration callback
955  * @twt_osif_ops:  Function pointer
956  *
957  * API to set twt ops registration call back
958  *
959  * Return: void
960  */
961 void mlme_set_osif_twt_cb(osif_twt_get_global_ops_cb twt_osif_ops);
962 
963 /**
964  * mlme_max_chan_switch_is_set() - Get if max chan switch IE is enabled
965  * @vdev: Object manager vdev pointer
966  *
967  * Return: True if max chan switch is enabled else false
968  */
969 bool mlme_max_chan_switch_is_set(struct wlan_objmgr_psoc *psoc);
970 
971 #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
972 /**
973  * mlme_vdev_ops_send_set_mac_address() - Send set MAC address request to FW
974  * @mac_addr: VDEV MAC address
975  * @mld_addr: VDEV MLD address
976  * @vdev: vdev pointer
977  *
978  * API to send set MAC address request command to FW
979  *
980  * Return: QDF_STATUS
981  */
982 QDF_STATUS mlme_vdev_ops_send_set_mac_address(struct qdf_mac_addr mac_addr,
983 					      struct qdf_mac_addr mld_addr,
984 					      struct wlan_objmgr_vdev *vdev);
985 
986 /**
987  * mlme_vdev_mgr_notify_set_mac_addr_response() - Notify set MAC address
988  *                                                response
989  * @vdev_id: VDEV ID
990  * @resp_status: FW response for the set MAC address operation
991  *
992  * API to notify set MAC address to osif
993  *
994  * Return: None
995  */
996 void mlme_vdev_mgr_notify_set_mac_addr_response(uint8_t vdev_id,
997 						uint8_t resp_status);
998 #endif
999 
1000 #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
1001 /**
1002  * mlme_twt_osif_enable_complete_ind() - enable complete resp to osif
1003  * @psoc: psoc pointer
1004  * @event: enable complete response
1005  *
1006  * Return: QDF_STATUS
1007  */
1008 QDF_STATUS
1009 mlme_twt_osif_enable_complete_ind(struct wlan_objmgr_psoc *psoc,
1010 				  struct twt_enable_complete_event_param *event,
1011 				  void *context);
1012 
1013 /**
1014  * mlme_twt_osif_disable_complete_ind() - disable complete resp to osif
1015  * @psoc: psoc pointer
1016  * @event: disable complete response
1017  *
1018  * Return: QDF_STATUS
1019  */
1020 QDF_STATUS
1021 mlme_twt_osif_disable_complete_ind(struct wlan_objmgr_psoc *psoc,
1022 				 struct twt_disable_complete_event_param *event,
1023 				 void *context);
1024 
1025 /**
1026  * mlme_twt_osif_ack_complete_ind() - ack complete resp to osif
1027  * @psoc: psoc pointer
1028  * @event: ack complete response
1029  *
1030  * Return: QDF_STATUS
1031  */
1032 QDF_STATUS
1033 mlme_twt_osif_ack_complete_ind(struct wlan_objmgr_psoc *psoc,
1034 			       struct twt_ack_complete_event_param *event,
1035 			       void *context);
1036 
1037 /**
1038  * mlme_twt_osif_setup_complete_ind() - setup complete resp to osif
1039  * @psoc: psoc pointer
1040  * @event: setup complete response
1041  * @renego_fail: flag to indicate if renegotiation failure case
1042  *
1043  * Return: QDF_STATUS
1044  */
1045 QDF_STATUS
1046 mlme_twt_osif_setup_complete_ind(struct wlan_objmgr_psoc *psoc,
1047 				 struct twt_add_dialog_complete_event *event,
1048 				 bool renego_fail);
1049 
1050 /**
1051  * mlme_twt_osif_teardown_complete_ind() - teardown complete resp to osif
1052  * @psoc: psoc pointer
1053  * @event: teardown complete response
1054  *
1055  * Return: QDF_STATUS
1056  */
1057 QDF_STATUS
1058 mlme_twt_osif_teardown_complete_ind(struct wlan_objmgr_psoc *psoc,
1059 			     struct twt_del_dialog_complete_event_param *event);
1060 
1061 /**
1062  * mlme_twt_osif_pause_complete_ind() - pause complete resp to osif
1063  * @psoc: psoc pointer
1064  * @event: pause complete response
1065  *
1066  * Return: QDF_STATUS
1067  */
1068 QDF_STATUS
1069 mlme_twt_osif_pause_complete_ind(struct wlan_objmgr_psoc *psoc,
1070 			   struct twt_pause_dialog_complete_event_param *event);
1071 
1072 /**
1073  * mlme_twt_osif_resume_complete_ind() - resume complete resp to osif
1074  * @psoc: psoc pointer
1075  * @event: resume complete response
1076  *
1077  * Return: QDF_STATUS
1078  */
1079 QDF_STATUS
1080 mlme_twt_osif_resume_complete_ind(struct wlan_objmgr_psoc *psoc,
1081 			  struct twt_resume_dialog_complete_event_param *event);
1082 
1083 /**
1084  * mlme_twt_osif_nudge_complete_ind() - nudge complete resp to osif
1085  * @psoc: psoc pointer
1086  * @event: nudge complete response
1087  *
1088  * Return: QDF_STATUS
1089  */
1090 QDF_STATUS
1091 mlme_twt_osif_nudge_complete_ind(struct wlan_objmgr_psoc *psoc,
1092 			   struct twt_nudge_dialog_complete_event_param *event);
1093 
1094 /**
1095  * mlme_twt_osif_notify_complete_ind() - notify complete resp to osif
1096  * @psoc: psoc pointer
1097  * @event: notify complete response
1098  *
1099  * Return: QDF_STATUS
1100  */
1101 QDF_STATUS
1102 mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
1103 				  struct twt_notify_event_param *event);
1104 
1105 /**
1106  * mlme_twt_vdev_create_notification() - vdev create notification to osif
1107  * @vdev: vdev pointer
1108  *
1109  * Return: QDF_STATUS
1110  */
1111 QDF_STATUS
1112 mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev);
1113 
1114 /**
1115  * mlme_twt_vdev_destroy_notification() - vdev destroy notification to osif
1116  * @vdev: vdev pointer
1117  *
1118  * Return: QDF_STATUS
1119  */
1120 QDF_STATUS
1121 mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev);
1122 #else
1123 static inline QDF_STATUS
1124 mlme_twt_osif_enable_complete_ind(struct wlan_objmgr_psoc *psoc,
1125 				  struct twt_enable_complete_event_param *event,
1126 				  void *context)
1127 {
1128 	return QDF_STATUS_SUCCESS;
1129 }
1130 
1131 static inline QDF_STATUS
1132 mlme_twt_osif_disable_complete_ind(struct wlan_objmgr_psoc *psoc,
1133 				 struct twt_disable_complete_event_param *event,
1134 				 void *context)
1135 {
1136 	return QDF_STATUS_SUCCESS;
1137 }
1138 
1139 static inline QDF_STATUS
1140 mlme_twt_osif_ack_complete_ind(struct wlan_objmgr_psoc *psoc,
1141 			       struct twt_ack_complete_event_param *event,
1142 			       void *context)
1143 {
1144 	return QDF_STATUS_SUCCESS;
1145 }
1146 
1147 static inline QDF_STATUS
1148 mlme_twt_osif_setup_complete_ind(struct wlan_objmgr_psoc *psoc,
1149 				 struct twt_add_dialog_complete_event *event,
1150 				 bool renego_fail)
1151 {
1152 	return QDF_STATUS_SUCCESS;
1153 }
1154 
1155 static inline QDF_STATUS
1156 mlme_twt_osif_teardown_complete_ind(struct wlan_objmgr_psoc *psoc,
1157 			      struct twt_del_dialog_complete_event_param *event)
1158 {
1159 	return QDF_STATUS_SUCCESS;
1160 }
1161 
1162 static inline QDF_STATUS
1163 mlme_twt_osif_pause_complete_ind(struct wlan_objmgr_psoc *psoc,
1164 			    struct twt_pause_dialog_complete_event_param *event)
1165 {
1166 	return QDF_STATUS_SUCCESS;
1167 }
1168 
1169 static inline QDF_STATUS
1170 mlme_twt_osif_resume_complete_ind(struct wlan_objmgr_psoc *psoc,
1171 			   struct twt_resume_dialog_complete_event_param *event)
1172 {
1173 	return QDF_STATUS_SUCCESS;
1174 }
1175 
1176 static inline QDF_STATUS
1177 mlme_twt_osif_nudge_complete_ind(struct wlan_objmgr_psoc *psoc,
1178 			    struct twt_nudge_dialog_complete_event_param *event)
1179 {
1180 	return QDF_STATUS_SUCCESS;
1181 }
1182 
1183 static inline QDF_STATUS
1184 mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
1185 				  struct twt_notify_event_param *event)
1186 {
1187 	return QDF_STATUS_SUCCESS;
1188 }
1189 
1190 static inline QDF_STATUS
1191 mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev)
1192 {
1193 	return QDF_STATUS_SUCCESS;
1194 }
1195 
1196 static inline QDF_STATUS
1197 mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev)
1198 {
1199 	return QDF_STATUS_SUCCESS;
1200 }
1201 
1202 #endif /* WLAN_SUPPORT_TWT && WLAN_TWT_CONV_SUPPORTED */
1203 
1204 #endif
1205