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
wmi_extract_roam_synch_key_event(wmi_unified_t wmi_handle,uint8_t * event,uint32_t len,struct wlan_crypto_key_entry ** keys,uint8_t * num_keys,struct qdf_mac_addr * mld_addr)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
wmi_unified_roam_mlo_config_cmd(wmi_unified_t wmi_handle,struct wlan_roam_mlo_config * req)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