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