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