wmi_unified_roam_api.h 21 KB

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