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