1 /* 2 * Copyright (c) 2013-2021, The Linux Foundation. All rights reserved. 3 * Copyright (c) 2021-2023 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: Implement API's specific to ROAMING component. 20 */ 21 22 #ifndef _WMI_UNIFIED_ROAM_API_H_ 23 #define _WMI_UNIFIED_ROAM_API_H_ 24 25 #include <wmi_unified_roam_param.h> 26 #include "wlan_cm_roam_public_struct.h" 27 #include "wlan_crypto_def_i.h" 28 29 #ifdef FEATURE_LFR_SUBNET_DETECTION 30 /** 31 * wmi_unified_set_gateway_params_cmd() - set gateway parameters 32 * @wmi_handle: wmi handle 33 * @req: gateway parameter update request structure 34 * 35 * This function reads the incoming @req and fill in the destination 36 * WMI structure and sends down the gateway configs down to the firmware 37 * 38 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures; 39 * error number otherwise 40 */ 41 QDF_STATUS 42 wmi_unified_set_gateway_params_cmd(wmi_unified_t wmi_handle, 43 struct gateway_update_req_param *req); 44 #endif 45 46 #ifdef FEATURE_RSSI_MONITOR 47 /** 48 * wmi_unified_set_rssi_monitoring_cmd() - set rssi monitoring 49 * @wmi_handle: wmi handle 50 * @req: rssi monitoring request structure 51 * 52 * This function reads the incoming @req and fill in the destination 53 * WMI structure and send down the rssi monitoring configs down to the firmware 54 * 55 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failures; 56 * error number otherwise 57 */ 58 QDF_STATUS 59 wmi_unified_set_rssi_monitoring_cmd(wmi_unified_t wmi_handle, 60 struct rssi_monitor_param *req); 61 #endif 62 63 /** 64 * wmi_unified_roam_scan_offload_rssi_thresh_cmd() - set roam scan rssi 65 * parameters 66 * @wmi_handle: wmi handle 67 * @roam_req: roam rssi related parameters 68 * 69 * This function reads the incoming @roam_req and fill in the destination 70 * WMI structure and send down the roam scan rssi configs down to the firmware 71 * 72 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 73 */ 74 QDF_STATUS wmi_unified_roam_scan_offload_rssi_thresh_cmd( 75 wmi_unified_t wmi_handle, 76 struct wlan_roam_offload_scan_rssi_params *roam_req); 77 78 /** 79 * wmi_unified_roam_scan_offload_scan_period() - set roam offload scan period 80 * @wmi_handle: wmi handle 81 * @param: pointer to roam scan period params to be sent to fw 82 * 83 * Send WMI_ROAM_SCAN_PERIOD parameters to fw. 84 * 85 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 86 */ 87 QDF_STATUS wmi_unified_roam_scan_offload_scan_period( 88 wmi_unified_t wmi_handle, struct wlan_roam_scan_period_params *param); 89 90 /** 91 * wmi_unified_roam_mawc_params_cmd() - configure roaming MAWC parameters 92 * @wmi_handle: wmi handle 93 * @params: Parameters to be configured 94 * 95 * Pass the MAWC(Motion Aided wireless connectivity) related roaming 96 * parameters from the host to the target 97 * 98 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 99 */ 100 QDF_STATUS 101 wmi_unified_roam_mawc_params_cmd(wmi_unified_t wmi_handle, 102 struct wlan_roam_mawc_params *params); 103 104 #ifdef WLAN_VENDOR_HANDOFF_CONTROL 105 /** 106 * wmi_extract_roam_vendor_control_param_event() - extract vendor handoff param 107 * event coming from fw 108 * @wmi_handle: wmi handle 109 * @event: vendor handoff param event pointer 110 * @len: event len 111 * @data: vendor handoff related parameters 112 * 113 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 114 */ 115 116 QDF_STATUS 117 wmi_extract_roam_vendor_control_param_event(wmi_unified_t wmi_handle, 118 uint8_t *event, uint32_t len, 119 struct roam_vendor_handoff_params **data); 120 121 #endif 122 123 #if defined(WLAN_FEATURE_ROAM_OFFLOAD) && defined(WLAN_FEATURE_11BE_MLO) 124 /** 125 * wmi_extract_roam_synch_key_event() - extract roam synch key event 126 * @wmi_handle: wmi handle 127 * @event: roam synch key event buffer pointer 128 * @len: event len 129 * @keys: destination buffer to copy keys 130 * @num_keys: Number of keys 131 * @mld_addr: MLD address pointer 132 * 133 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 134 */ 135 QDF_STATUS 136 wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle, uint8_t *event, 137 uint32_t len, 138 struct wlan_crypto_key_entry **keys, 139 uint8_t *num_keys, 140 struct qdf_mac_addr *mld_addr); 141 #else 142 static inline QDF_STATUS 143 wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle, uint8_t *event, 144 uint32_t len, 145 struct wlan_crypto_key_entry **keys, 146 uint8_t *num_keys, 147 struct qdf_mac_addr *mld_addr) 148 { 149 return QDF_STATUS_E_NOSUPPORT; 150 } 151 #endif 152 153 /** 154 * wmi_unified_roam_scan_filter_cmd() - send roam scan allowlist, 155 * denylist and preferred list 156 * @wmi_handle: wmi handle 157 * @roam_req: roam scan lists related parameters 158 * 159 * This function reads the incoming @roam_req and fill in the destination 160 * WMI structure and send down the different roam scan lists down to the fw 161 * 162 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 163 */ 164 QDF_STATUS 165 wmi_unified_roam_scan_filter_cmd(wmi_unified_t wmi_handle, 166 struct roam_scan_filter_params *roam_req); 167 168 #ifdef FEATURE_WLAN_ESE 169 /** 170 * wmi_unified_plm_stop_cmd() - plm stop request 171 * @wmi_handle: wmi handle 172 * @plm: plm request parameters 173 * 174 * This function request FW to stop PLM. 175 * 176 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 177 */ 178 QDF_STATUS wmi_unified_plm_stop_cmd(wmi_unified_t wmi_handle, 179 const struct plm_req_params *plm); 180 181 /** 182 * wmi_unified_plm_start_cmd() - plm start request 183 * @wmi_handle: wmi handle 184 * @plm: plm request parameters 185 * 186 * This function request FW to start PLM. 187 * 188 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 189 */ 190 QDF_STATUS wmi_unified_plm_start_cmd(wmi_unified_t wmi_handle, 191 const struct plm_req_params *plm); 192 #endif /* FEATURE_WLAN_ESE */ 193 194 #if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD) 195 /** 196 * wmi_extract_roam_event - Extract roam event 197 * @wmi_handle: WMI handle 198 * @event: Event data received from firmware 199 * @data_len: Event data length received from firmware 200 * @roam_event: Extract the event and fill in roam_event 201 * 202 * Return: QDF_STATUS 203 */ 204 QDF_STATUS 205 wmi_extract_roam_event(wmi_unified_t wmi_handle, uint8_t *event, 206 uint32_t data_len, 207 struct roam_offload_roam_event *roam_event); 208 #endif /* WLAN_FEATURE_HOST_ROAM || WLAN_FEATURE_ROAM_OFFLOAD */ 209 210 #ifdef WLAN_FEATURE_ROAM_OFFLOAD 211 /* wmi_unified_set_ric_req_cmd() - set ric request element 212 * @wmi_handle: wmi handle 213 * @msg: message 214 * @is_add_ts: is addts required 215 * 216 * This function sets ric request element for 11r roaming. 217 * 218 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 219 */ 220 QDF_STATUS wmi_unified_set_ric_req_cmd(wmi_unified_t wmi_handle, void *msg, 221 uint8_t is_add_ts); 222 223 /** 224 * wmi_unified_roam_synch_complete_cmd() - roam synch complete command to fw. 225 * @wmi_handle: wmi handle 226 * @vdev_id: vdev id 227 * 228 * This function sends roam synch complete event to fw. 229 * 230 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 231 */ 232 QDF_STATUS wmi_unified_roam_synch_complete_cmd(wmi_unified_t wmi_handle, 233 uint8_t vdev_id); 234 235 /** 236 * wmi_unified_roam_invoke_cmd() - send roam invoke command to fw. 237 * @wmi_handle: wmi handle 238 * @roaminvoke: roam invoke command 239 * 240 * Send roam invoke command to fw for fastreassoc. 241 * 242 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 243 */ 244 QDF_STATUS 245 wmi_unified_roam_invoke_cmd(wmi_unified_t wmi_handle, 246 struct roam_invoke_req *roaminvoke); 247 248 /** 249 * wmi_unified_set_roam_triggers() - send roam trigger bitmap 250 * @wmi_handle: wmi handle 251 * @triggers: Roam trigger bitmap params as defined @roam_control_trigger_reason 252 * 253 * This function passes the roam trigger bitmap to fw 254 * 255 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 256 */ 257 QDF_STATUS wmi_unified_set_roam_triggers(wmi_unified_t wmi_handle, 258 struct wlan_roam_triggers *triggers); 259 260 /** 261 * wmi_unified_send_disconnect_roam_params() - Send disconnect roam trigger 262 * parameters to firmware 263 * @wmi_handle: wmi handle 264 * @req: pointer to wlan_roam_disconnect_params 265 * 266 * Return: QDF_STATUS 267 */ 268 QDF_STATUS 269 wmi_unified_send_disconnect_roam_params(wmi_unified_t wmi_handle, 270 struct wlan_roam_disconnect_params *req); 271 272 #ifdef WLAN_VENDOR_HANDOFF_CONTROL 273 /** 274 * wmi_unified_roam_vendor_handoff_req_cmd() - Send vendor handoff request 275 * command to fw 276 * @wmi_handle: wmi handle 277 * @vdev_id: vdev id 278 * @param_id: Vendor Control Param ID from enum 279 * WMI_ROAM_GET_VENDOR_CONTROL_PARAM_ID 280 * 281 * Return: QDF_STATUS 282 */ 283 QDF_STATUS wmi_unified_roam_vendor_handoff_req_cmd(wmi_unified_t wmi_handle, 284 uint8_t vdev_id, 285 uint32_t param_id); 286 #endif 287 288 /** 289 * wmi_unified_send_idle_roam_params() - Send idle roam trigger params to fw 290 * @wmi_handle: wmi handle 291 * @req: pointer to wlan_roam_idle_params 292 * 293 * Return: QDF_STATUS 294 */ 295 QDF_STATUS 296 wmi_unified_send_idle_roam_params(wmi_unified_t wmi_handle, 297 struct wlan_roam_idle_params *req); 298 299 /** 300 * wmi_unified_send_roam_preauth_status() - Send roam preauthentication status 301 * to target. 302 * @wmi_handle: wmi handle 303 * @param: Roam auth status params 304 * 305 * This function passes preauth status of WPA3 SAE auth to firmware. It is 306 * called when external_auth_status event is received from userspace. 307 * 308 * Return: QDF_STATUS 309 */ 310 QDF_STATUS 311 wmi_unified_send_roam_preauth_status(wmi_unified_t wmi_handle, 312 struct wmi_roam_auth_status_params *param); 313 314 /** 315 * wmi_unified_vdev_set_pcl_cmd - Send Vdev PCL command to fw 316 * @wmi_handle: WMI handle 317 * @params: Set VDEV pcl parameters 318 * 319 * Return: QDF_STATUS 320 */ 321 QDF_STATUS wmi_unified_vdev_set_pcl_cmd(wmi_unified_t wmi_handle, 322 struct set_pcl_cmd_params *params); 323 324 /** 325 * wmi_extract_roam_sync_event - Extract roam sync event 326 * @wmi_handle: WMI handle 327 * @evt_buf: Event buffer 328 * @len: evt buffer data len 329 * @sync_ind: roam sync ptr 330 * 331 * This api will allocate memory for roam sync info, extract 332 * the information sent by FW and pass to CM.The memory will be 333 * freed by target_if_cm_roam_sync_event. 334 * 335 * Return: QDF_STATUS 336 */ 337 QDF_STATUS 338 wmi_extract_roam_sync_event(wmi_unified_t wmi_handle, void *evt_buf, 339 uint32_t len, 340 struct roam_offload_synch_ind **sync_ind); 341 342 /** 343 * wmi_extract_roam_sync_frame_event - Extract roam sync frame event 344 * @wmi_handle: WMI handle 345 * @event: Event buffer 346 * @len: evt buffer data len 347 * @frame_ptr: roam sync frame ptr 348 * 349 * Return: QDF_STATUS 350 */ 351 QDF_STATUS 352 wmi_extract_roam_sync_frame_event(wmi_unified_t wmi_handle, void *event, 353 uint32_t len, 354 struct roam_synch_frame_ind *frame_ptr); 355 356 /** 357 * wmi_extract_btm_denylist_event - Extract btm denylist event 358 * @wmi_handle: WMI handle 359 * @event: Event data received from firmware 360 * @data_len: Event data length received from firmware 361 * @dst_list: Extract the event and fill in dst_list 362 * 363 * Return: QDF_STATUS 364 */ 365 QDF_STATUS 366 wmi_extract_btm_denylist_event(wmi_unified_t wmi_handle, 367 uint8_t *event, uint32_t data_len, 368 struct roam_denylist_event **dst_list); 369 370 /** 371 * wmi_extract_vdev_disconnect_event - Extract disconnect event data 372 * @wmi_handle: WMI handle 373 * @event: Event data received from firmware 374 * @data_len: Event data length received from firmware 375 * @data: Extract the event and fill in data 376 * 377 * Return: QDF_STATUS 378 */ 379 QDF_STATUS 380 wmi_extract_vdev_disconnect_event(wmi_unified_t wmi_handle, 381 uint8_t *event, uint32_t data_len, 382 struct vdev_disconnect_event_data *data); 383 384 /** 385 * wmi_extract_roam_scan_chan_list - Extract roam scan chan list 386 * @wmi_handle: WMI handle 387 * @event: Event data received from firmware 388 * @data_len: Event data length received from firmware 389 * @data: Extract the event and fill in data 390 * 391 * Return: QDF_STATUS 392 */ 393 QDF_STATUS 394 wmi_extract_roam_scan_chan_list(wmi_unified_t wmi_handle, 395 uint8_t *event, uint32_t data_len, 396 struct cm_roam_scan_ch_resp **data); 397 398 /** 399 * wmi_unified_extract_roam_btm_response() - Extract BTM response 400 * @wmi: wmi handle 401 * @evt_buf: Pointer to the event buffer 402 * @dst: Pointer to destination structure to fill data 403 * @idx: TLV id 404 * 405 * Return: QDF_STATUS 406 */ 407 QDF_STATUS 408 wmi_unified_extract_roam_btm_response(wmi_unified_t wmi, void *evt_buf, 409 struct roam_btm_response_data *dst, 410 uint8_t idx); 411 412 /** 413 * wmi_unified_extract_roam_initial_info() - Extract initial info 414 * @wmi: wmi handle 415 * @evt_buf: Pointer to the event buffer 416 * @dst: Pointer to destination structure to fill data 417 * @idx: TLV id 418 * 419 * Return: QDF_STATUS 420 */ 421 QDF_STATUS 422 wmi_unified_extract_roam_initial_info(wmi_unified_t wmi, void *evt_buf, 423 struct roam_initial_data *dst, 424 uint8_t idx); 425 426 /** 427 * wmi_unified_extract_roam_msg_info() - Extract roam msg info 428 * @wmi: wmi handle 429 * @evt_buf: Pointer to the event buffer 430 * @dst: Pointer to destination structure to fill data 431 * @idx: TLV id 432 * 433 * Return: QDF_STATUS 434 */ 435 QDF_STATUS 436 wmi_unified_extract_roam_msg_info(wmi_unified_t wmi, void *evt_buf, 437 struct roam_msg_info *dst, uint8_t idx); 438 439 /** 440 * wmi_extract_roam_stats_event - Extract roam stats event 441 * @wmi_handle: WMI handle 442 * @event: Event data received from firmware 443 * @data_len: Event data length received from firmware 444 * @stats_info: Extract the event and fill in stats_info 445 * 446 * Return: QDF_STATUS 447 */ 448 QDF_STATUS 449 wmi_extract_roam_stats_event(wmi_unified_t wmi_handle, 450 uint8_t *event, uint32_t data_len, 451 struct roam_stats_event **stats_info); 452 453 /** 454 * wmi_unified_extract_roam_extract_frame_info() - Extract the roam frame 455 * info TLV from roam stats event 456 * @wmi: wmi handle 457 * @evt_buf: Pointer to the event buffer 458 * @dst: Pointer to destination structure to fill data 459 * @idx: Index of the TLV to read 460 * @num_frames: Number of TLV to read 461 * 462 * Return: QDF_STATUS 463 */ 464 QDF_STATUS 465 wmi_unified_extract_roam_extract_frame_info(wmi_unified_t wmi, void *evt_buf, 466 struct roam_frame_stats *dst, 467 uint8_t idx, uint8_t num_frames); 468 469 /** 470 * wmi_extract_auth_offload_event - Extract auth offload event 471 * @wmi_handle: WMI handle 472 * @event: Event data received from firmware 473 * @data_len: Event data length received from firmware 474 * @auth_event: Extract the event and fill in auth_event 475 * 476 * Return: QDF_STATUS 477 */ 478 QDF_STATUS 479 wmi_extract_auth_offload_event(wmi_unified_t wmi_handle, 480 uint8_t *event, uint32_t data_len, 481 struct auth_offload_event *auth_event); 482 483 /** 484 * wmi_extract_roam_pmkid_request - Extract roam pmkid list 485 * @wmi_handle: WMI handle 486 * @event: Event data received from firmware 487 * @data_len: Event data length received from firmware 488 * @data: Extract the event and fill in data 489 * 490 * Return: QDF_STATUS 491 */ 492 QDF_STATUS 493 wmi_extract_roam_pmkid_request(wmi_unified_t wmi_handle, 494 uint8_t *event, uint32_t data_len, 495 struct roam_pmkid_req_event **data); 496 497 /** 498 * wmi_extract_roam_candidate_frame_event() - Extract the roam candidate 499 * scan entry and update the scan db 500 * @wmi_handle: wmi handle 501 * @event: Event data received from firmware 502 * @len: Event data length received from firmware 503 * @data: Extract the event and fill in data 504 */ 505 QDF_STATUS 506 wmi_extract_roam_candidate_frame_event(wmi_unified_t wmi_handle, uint8_t *event, 507 uint32_t len, 508 struct roam_scan_candidate_frame *data); 509 #endif /* WLAN_FEATURE_ROAM_OFFLOAD */ 510 511 #ifdef WLAN_FEATURE_11BE_MLO 512 QDF_STATUS 513 wmi_unified_roam_mlo_config_cmd(wmi_unified_t wmi_handle, 514 struct wlan_roam_mlo_config *req); 515 #else 516 static inline QDF_STATUS 517 wmi_unified_roam_mlo_config_cmd(wmi_unified_t wmi_handle, 518 struct wlan_roam_mlo_config *req) 519 { 520 return QDF_STATUS_SUCCESS; 521 } 522 #endif 523 524 /** 525 * wmi_unified_roam_scan_offload_mode_cmd() - set roam scan parameters 526 * @wmi_handle: wmi handle 527 * @rso_cfg: roam scan offload parameters 528 * 529 * This function reads the incoming @rso_cfg and fill in the destination 530 * WMI structure and send down the roam scan configs down to the firmware 531 * 532 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 533 */ 534 QDF_STATUS wmi_unified_roam_scan_offload_mode_cmd( 535 wmi_unified_t wmi_handle, 536 struct wlan_roam_scan_offload_params *rso_cfg); 537 538 /** 539 * wmi_unified_send_roam_scan_offload_ap_cmd() - set roam ap profile in fw 540 * @wmi_handle: wmi handle 541 * @ap_profile: ap profile params 542 * 543 * Send WMI_ROAM_AP_PROFILE to firmware 544 * 545 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 546 */ 547 QDF_STATUS wmi_unified_send_roam_scan_offload_ap_cmd( 548 wmi_unified_t wmi_handle, 549 struct ap_profile_params *ap_profile); 550 551 /** 552 * wmi_unified_roam_scan_offload_cmd() - set roam offload command 553 * @wmi_handle: wmi handle 554 * @command: command 555 * @vdev_id: vdev id 556 * 557 * This function set roam offload command to fw. 558 * 559 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 560 */ 561 QDF_STATUS wmi_unified_roam_scan_offload_cmd(wmi_unified_t wmi_handle, 562 uint32_t command, 563 uint32_t vdev_id); 564 565 /** 566 * wmi_unified_roam_scan_offload_chan_list_cmd - Roam scan offload channel 567 * list command 568 * @wmi_handle: wmi handle 569 * @rso_ch_info: roam scan offload channel info 570 * 571 * Return: QDF_STATUS 572 */ 573 QDF_STATUS 574 wmi_unified_roam_scan_offload_chan_list_cmd(wmi_unified_t wmi_handle, 575 struct wlan_roam_scan_channel_list *rso_ch_info); 576 577 /** 578 * wmi_unified_roam_scan_offload_rssi_change_cmd() - set roam offload RSSI 579 * threshold 580 * @wmi_handle: wmi handle 581 * @params: RSSI change params 582 * 583 * Send WMI_ROAM_SCAN_RSSI_CHANGE_THRESHOLD parameters to fw. 584 * 585 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 586 */ 587 QDF_STATUS 588 wmi_unified_roam_scan_offload_rssi_change_cmd( 589 wmi_unified_t wmi_handle, 590 struct wlan_roam_rssi_change_params *params); 591 592 /** 593 * wmi_unified_set_per_roam_config() - set PER roam config in FW 594 * @wmi_handle: wmi handle 595 * @req_buf: per roam config request buffer 596 * 597 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 598 */ 599 QDF_STATUS 600 wmi_unified_set_per_roam_config(wmi_unified_t wmi_handle, 601 struct wlan_per_roam_config_req *req_buf); 602 603 /** 604 * wmi_unified_send_limit_off_chan_cmd() - send wmi cmd of limit off channel 605 * configuration params 606 * @wmi_handle: wmi handler 607 * @wmi_param: pointer to wmi_limit_off_chan_param 608 * 609 * Return: QDF_STATUS_SUCCESS on success and QDF failure reason code on failure 610 */ 611 QDF_STATUS wmi_unified_send_limit_off_chan_cmd( 612 wmi_unified_t wmi_handle, 613 struct wmi_limit_off_chan_param *wmi_param); 614 615 #ifdef WLAN_FEATURE_FILS_SK 616 /* 617 * wmi_unified_roam_send_hlp_cmd() -send HLP command info 618 * @wmi_handle: wma handle 619 * @req_buf: Pointer to HLP params 620 * 621 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 622 */ 623 QDF_STATUS wmi_unified_roam_send_hlp_cmd(wmi_unified_t wmi_handle, 624 struct hlp_params *req_buf); 625 #endif /* WLAN_FEATURE_FILS_SK */ 626 627 /** 628 * wmi_unified_send_btm_config() - Send BTM config to fw 629 * @wmi_handle: wmi handle 630 * @params: pointer to wlan_roam_btm_config 631 * 632 * Return: QDF_STATUS 633 */ 634 QDF_STATUS wmi_unified_send_btm_config(wmi_unified_t wmi_handle, 635 struct wlan_roam_btm_config *params); 636 637 /** 638 * wmi_unified_send_bss_load_config() - Send bss load trigger params to fw 639 * @wmi_handle: wmi handle 640 * @params: pointer to wlan_roam_bss_load_config 641 * 642 * Return: QDF_STATUS 643 */ 644 QDF_STATUS wmi_unified_send_bss_load_config( 645 wmi_unified_t wmi_handle, 646 struct wlan_roam_bss_load_config *params); 647 648 /** 649 * wmi_unified_offload_11k_cmd() - send 11k offload command 650 * @wmi_handle: wmi handle 651 * @params: 11k offload params 652 * 653 * This function passes the 11k offload command params to FW 654 * 655 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 656 */ 657 QDF_STATUS 658 wmi_unified_offload_11k_cmd(wmi_unified_t wmi_handle, 659 struct wlan_roam_11k_offload_params *params); 660 /** 661 * wmi_unified_invoke_neighbor_report_cmd() - send invoke neighbor report cmd 662 * @wmi_handle: wmi handle 663 * @params: invoke neighbor report params 664 * 665 * This function passes the invoke neighbor report command to fw 666 * 667 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 668 */ 669 QDF_STATUS wmi_unified_invoke_neighbor_report_cmd( 670 wmi_unified_t wmi_handle, 671 struct wmi_invoke_neighbor_report_params *params); 672 673 /** 674 * wmi_unified_get_roam_scan_ch_list() - send roam scan channel list get cmd 675 * @wmi_handle: wmi handle 676 * @vdev_id: vdev id 677 * 678 * This function sends roam scan channel list get command to firmware. 679 * 680 * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure 681 */ 682 QDF_STATUS wmi_unified_get_roam_scan_ch_list(wmi_unified_t wmi_handle, 683 uint8_t vdev_id); 684 685 #endif /* _WMI_UNIFIED_ROAM_API_H_ */ 686