wlan_mlme_cmn.h 36 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204
  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. * DOC: Define Common MLME structure and APIs
  19. */
  20. #ifndef _WLAN_MLME_CMN_H_
  21. #define _WLAN_MLME_CMN_H_
  22. #include <include/wlan_psoc_mlme.h>
  23. #include <include/wlan_pdev_mlme.h>
  24. #include <include/wlan_vdev_mlme.h>
  25. #include "wlan_cm_public_struct.h"
  26. #include "wlan_twt_public_structs.h"
  27. /**
  28. * mlme_cm_ops: connection manager osif callbacks
  29. * @mlme_cm_connect_complete_cb: Connect done callback
  30. * @vdev: vdev pointer
  31. * @rsp: connect response
  32. *
  33. * @mlme_cm_failed_candidate_cb: Callback to indicate failed candidate
  34. * @vdev: vdev pointer
  35. * @rsp: connect response
  36. *
  37. * @mlme_cm_update_id_and_src_cb: Callback to update connect id and
  38. * source of the connect request
  39. * @vdev: vdev pointer
  40. * @Source: Source of the connect req
  41. * @cm_id: connection manager id
  42. *
  43. * @mlme_cm_disconnect_complete_cb: Disconnect done callback
  44. * @vdev: vdev pointer
  45. * @rsp: Disconnect response
  46. *
  47. * @mlme_cm_disconnect_start_cb: Disconnect start callback
  48. * @vdev: vdev pointer
  49. *
  50. * @mlme_cm_roam_sync_cb: Roam sync callback
  51. * @vdev: vdev pointer
  52. *
  53. * @mlme_cm_pmksa_candidate_notify_cb: Roam pmksa candidate notify callback
  54. * @vdev: vdev pointer
  55. * @bssid: bssid
  56. * @index: index
  57. * @preauth: preauth flag
  58. *
  59. * @mlme_cm_roam_start_cb: Roam start callback
  60. * @vdev: vdev pointer
  61. *
  62. * @mlme_cm_roam_abort_cb: Roam abort callback
  63. * @vdev: vdev pointer
  64. *
  65. * @mlme_cm_roam_cmpl_cb: Roam sync complete cb
  66. * @vdev: vdev pointer
  67. *
  68. * @mlme_cm_ft_preauth_cmpl_cb: Roam ft preauth complete cb
  69. * @vdev: vdev pointer
  70. * @rsp: preauth response pointer
  71. *
  72. * @mlme_cm_cckm_preauth_cmpl_cb: Roam cckm preauth complete cb
  73. * @vdev: vdev pointer
  74. * @rsp: preauth response pointer
  75. *
  76. * @mlme_cm_get_vendor_handoff_params_cb: get vendor handoff params cb
  77. * @psoc: psoc pointer
  78. * @rsp: vendor handoff response pointer
  79. * @vendor_handoff_context: vendor handoff context
  80. */
  81. struct mlme_cm_ops {
  82. QDF_STATUS (*mlme_cm_connect_complete_cb)(
  83. struct wlan_objmgr_vdev *vdev,
  84. struct wlan_cm_connect_resp *rsp);
  85. QDF_STATUS (*mlme_cm_failed_candidate_cb)(
  86. struct wlan_objmgr_vdev *vdev,
  87. struct wlan_cm_connect_resp *rsp);
  88. QDF_STATUS (*mlme_cm_update_id_and_src_cb)(
  89. struct wlan_objmgr_vdev *vdev,
  90. enum wlan_cm_source source,
  91. wlan_cm_id cm_id);
  92. QDF_STATUS (*mlme_cm_disconnect_complete_cb)(
  93. struct wlan_objmgr_vdev *vdev,
  94. struct wlan_cm_discon_rsp *rsp);
  95. QDF_STATUS (*mlme_cm_disconnect_start_cb)(
  96. struct wlan_objmgr_vdev *vdev);
  97. #ifdef CONN_MGR_ADV_FEATURE
  98. QDF_STATUS (*mlme_cm_roam_sync_cb)(struct wlan_objmgr_vdev *vdev);
  99. QDF_STATUS (*mlme_cm_pmksa_candidate_notify_cb)(
  100. struct wlan_objmgr_vdev *vdev,
  101. struct qdf_mac_addr *bssid,
  102. int index, bool preauth);
  103. #endif
  104. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  105. QDF_STATUS (*mlme_cm_roam_start_cb)(struct wlan_objmgr_vdev *vdev);
  106. QDF_STATUS (*mlme_cm_roam_abort_cb)(struct wlan_objmgr_vdev *vdev);
  107. QDF_STATUS (*mlme_cm_roam_cmpl_cb)(struct wlan_objmgr_vdev *vdev);
  108. #endif
  109. #ifdef WLAN_FEATURE_PREAUTH_ENABLE
  110. QDF_STATUS (*mlme_cm_ft_preauth_cmpl_cb)(
  111. struct wlan_objmgr_vdev *vdev,
  112. struct wlan_preauth_rsp *rsp);
  113. #ifdef FEATURE_WLAN_ESE
  114. QDF_STATUS (*mlme_cm_cckm_preauth_cmpl_cb)(
  115. struct wlan_objmgr_vdev *vdev,
  116. struct wlan_preauth_rsp *rsp);
  117. #endif
  118. #endif
  119. #ifdef WLAN_VENDOR_HANDOFF_CONTROL
  120. QDF_STATUS (*mlme_cm_get_vendor_handoff_params_cb)(
  121. struct wlan_objmgr_psoc *psoc,
  122. void *vendor_handoff_context);
  123. #endif
  124. };
  125. /**
  126. * struct mlme_vdev_mgr_ops - MLME VDEV mgr osif callbacks
  127. * @mlme_vdev_mgr_set_mac_addr_response: Callback to indicate set MAC address
  128. * response to osif
  129. */
  130. struct mlme_vdev_mgr_ops {
  131. #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
  132. QDF_STATUS (*mlme_vdev_mgr_set_mac_addr_response)(uint8_t vdev_id,
  133. uint8_t resp_status);
  134. #endif
  135. };
  136. /**
  137. * struct mlme_twt_ops: twt component osif callbacks
  138. * @mlme_twt_enable_complete_cb: TWT enable complete callback
  139. * @psoc: psoc pointer
  140. * @event: response
  141. * @context: context
  142. *
  143. * @mlme_twt_disable_complete_cb: TWT disable complete callback
  144. * @psoc: psoc pointer
  145. * @event: response
  146. * @context: context
  147. *
  148. * @mlme_twt_ack_complete_cb: TWT ack complete callback
  149. * @psoc: psoc pointer
  150. * @event: response
  151. * @context: context
  152. *
  153. * @mlme_twt_setup_complete_cb: TWT setup complete callback
  154. * @psoc: psoc pointer
  155. * @event: response
  156. * @renego_fail: flag to indicate if renegotiation failure case
  157. *
  158. * @mlme_twt_teardown_complete_cb: TWT teardown complete callback
  159. * @psoc: psoc pointer
  160. * @event: response
  161. *
  162. * @mlme_twt_pause_complete_cb: TWT pause complete callback
  163. * @psoc: psoc pointer
  164. * @event: response
  165. *
  166. * @mlme_twt_resume_complete_cb: TWT resume complete callback
  167. * @psoc: psoc pointer
  168. * @event: response
  169. *
  170. * @mlme_twt_nudge_complete_cb: TWT nudge complete callback
  171. * @psoc: psoc pointer
  172. * @event: response
  173. *
  174. * @mlme_twt_notify_complete_cb: TWT notify complete callback
  175. * @psoc: psoc pointer
  176. * @event: response
  177. */
  178. struct mlme_twt_ops {
  179. QDF_STATUS (*mlme_twt_enable_complete_cb)(
  180. struct wlan_objmgr_psoc *psoc,
  181. struct twt_enable_complete_event_param *event,
  182. void *context);
  183. QDF_STATUS (*mlme_twt_disable_complete_cb)(
  184. struct wlan_objmgr_psoc *psoc,
  185. struct twt_disable_complete_event_param *event,
  186. void *context);
  187. QDF_STATUS (*mlme_twt_ack_complete_cb)(
  188. struct wlan_objmgr_psoc *psoc,
  189. struct twt_ack_complete_event_param *event,
  190. void *context);
  191. QDF_STATUS (*mlme_twt_setup_complete_cb)(
  192. struct wlan_objmgr_psoc *psoc,
  193. struct twt_add_dialog_complete_event *event,
  194. bool renego_fail);
  195. QDF_STATUS (*mlme_twt_teardown_complete_cb)(
  196. struct wlan_objmgr_psoc *psoc,
  197. struct twt_del_dialog_complete_event_param *event);
  198. QDF_STATUS (*mlme_twt_pause_complete_cb)(
  199. struct wlan_objmgr_psoc *psoc,
  200. struct twt_pause_dialog_complete_event_param *event);
  201. QDF_STATUS (*mlme_twt_resume_complete_cb)(
  202. struct wlan_objmgr_psoc *psoc,
  203. struct twt_resume_dialog_complete_event_param *event);
  204. QDF_STATUS (*mlme_twt_nudge_complete_cb)(
  205. struct wlan_objmgr_psoc *psoc,
  206. struct twt_nudge_dialog_complete_event_param *event);
  207. QDF_STATUS (*mlme_twt_notify_complete_cb)(
  208. struct wlan_objmgr_psoc *psoc,
  209. struct twt_notify_event_param *event);
  210. QDF_STATUS (*mlme_twt_vdev_create_cb)(
  211. struct wlan_objmgr_vdev *vdev);
  212. QDF_STATUS (*mlme_twt_vdev_destroy_cb)(
  213. struct wlan_objmgr_vdev *vdev);
  214. };
  215. /**
  216. * struct vdev_mlme_ext_ops - VDEV MLME legacy callbacks structure
  217. * @mlme_psoc_ext_hdl_create: callback to invoke creation of
  218. * legacy psoc object
  219. * @mlme_psoc_ext_hdl_destroy: callback to invoke destroy of legacy
  220. * psoc object
  221. * @mlme_pdev_ext_hdl_create: callback to invoke creation of
  222. * legacy pdev object
  223. * @mlme_pdev_ext_hdl_destroy: callback to invoke destroy of legacy
  224. * pdev object
  225. * @mlme_vdev_ext_hdl_create: callback to invoke creation of
  226. * legacy vdev object
  227. * @mlme_vdev_ext_hdl_post_create: callback to invoke post creation
  228. * actions of legacy vdev object
  229. * @mlme_vdev_ext_hdl_destroy: callback to invoke destroy of legacy
  230. * vdev object
  231. * @mlme_vdev_start_fw_send: callback to invoke vdev start
  232. * command
  233. * @mlme_vdev_stop_fw_send: callback to invoke vdev stop command
  234. * @mlme_vdev_down_fw_send: callback to invoke vdev down command
  235. * @mlme_multivdev_restart_fw_send: callback to invoke multivdev restart
  236. * command
  237. * @mlme_vdev_enqueue_exp_cmd: callback to enqueue exception
  238. * command
  239. * required by serialization
  240. * @mlme_multi_vdev_restart_resp: callback to process multivdev
  241. * restart response
  242. * @mlme_cm_ext_hdl_create_cb: callback to create ext cm context
  243. * @mlme_cm_ext_hdl_destroy_cb: callback to destroy ext cm context
  244. * @mlme_cm_ext_connect_start_ind_cb: callback to indicate connect start
  245. * @mlme_cm_ext_bss_select_ind_cb: callback to indicate candidate
  246. * select for connect
  247. * @mlme_cm_ext_bss_peer_create_req_cb: callback to bss peer create request
  248. * @mlme_cm_ext_connect_req_cb: callback for connect request to
  249. * VDEV/PEER SM
  250. * @mlme_cm_ext_connect_complete_ind_cb: callback to indicate connect
  251. * complete
  252. * @mlme_cm_ext_disconnect_start_ind_cb : callback to indicate disconnect
  253. * start
  254. * @mlme_cm_ext_disconnect_req_cb: callback to disconnect req to
  255. * VDEV/PEER SM
  256. * @mlme_cm_ext_bss_peer_delete_req_cb: callback to bss peer delete request
  257. * @mlme_cm_ext_disconnect_complete_ind_cb: callback to indicate disconnect
  258. * complete
  259. * @mlme_cm_ext_vdev_down_req_cb: callback to send vdev down to FW
  260. * @mlme_cm_ext_roam_start_ind_cb: callback to indicate roam start
  261. * @mlme_cm_ext_rso_stop_cb: callback to send rso stop to FW
  262. * @mlme_cm_ext_reassoc_req_cb: callback for reassoc request to
  263. * VDEV/PEER SM
  264. * @mlme_vdev_send_set_mac_addr: callback to send set MAC address
  265. * request to FW
  266. */
  267. struct mlme_ext_ops {
  268. QDF_STATUS (*mlme_psoc_ext_hdl_create)(
  269. struct psoc_mlme_obj *psoc_mlme);
  270. QDF_STATUS (*mlme_psoc_ext_hdl_destroy)(
  271. struct psoc_mlme_obj *pdev_mlme);
  272. QDF_STATUS (*mlme_pdev_ext_hdl_create)(
  273. struct pdev_mlme_obj *pdev_mlme);
  274. QDF_STATUS (*mlme_pdev_ext_hdl_destroy)(
  275. struct pdev_mlme_obj *pdev_mlme);
  276. QDF_STATUS (*mlme_vdev_ext_hdl_create)(
  277. struct vdev_mlme_obj *vdev_mlme);
  278. QDF_STATUS (*mlme_vdev_ext_hdl_post_create)(
  279. struct vdev_mlme_obj *vdev_mlme);
  280. QDF_STATUS (*mlme_vdev_ext_hdl_destroy)(
  281. struct vdev_mlme_obj *vdev_mlme);
  282. QDF_STATUS (*mlme_vdev_start_fw_send)(
  283. struct wlan_objmgr_vdev *vdev, uint8_t restart);
  284. QDF_STATUS (*mlme_vdev_stop_fw_send)(struct wlan_objmgr_vdev *vdev);
  285. QDF_STATUS (*mlme_vdev_down_fw_send)(struct wlan_objmgr_vdev *vdev);
  286. QDF_STATUS (*mlme_multivdev_restart_fw_send)(
  287. struct wlan_objmgr_pdev *pdev);
  288. QDF_STATUS (*mlme_vdev_enqueue_exp_cmd)(
  289. struct vdev_mlme_obj *vdev_mlme,
  290. uint8_t cmd_type);
  291. QDF_STATUS (*mlme_vdev_ext_delete_rsp)(
  292. struct wlan_objmgr_psoc *psoc,
  293. struct vdev_delete_response *rsp);
  294. QDF_STATUS (*mlme_multi_vdev_restart_resp)(
  295. struct wlan_objmgr_psoc *psoc,
  296. struct multi_vdev_restart_resp *resp);
  297. QDF_STATUS (*mlme_cm_ext_hdl_create_cb)(struct wlan_objmgr_vdev *vdev,
  298. cm_ext_t **ext_cm_ptr);
  299. QDF_STATUS (*mlme_cm_ext_hdl_destroy_cb)(struct wlan_objmgr_vdev *vdev,
  300. cm_ext_t *ext_cm_ptr);
  301. QDF_STATUS (*mlme_cm_ext_connect_start_ind_cb)(
  302. struct wlan_objmgr_vdev *vdev,
  303. struct wlan_cm_connect_req *req);
  304. QDF_STATUS (*mlme_cm_ext_bss_select_ind_cb)(
  305. struct wlan_objmgr_vdev *vdev,
  306. struct wlan_cm_vdev_connect_req *req);
  307. QDF_STATUS (*mlme_cm_ext_bss_peer_create_req_cb)(
  308. struct wlan_objmgr_vdev *vdev,
  309. struct qdf_mac_addr *peer_mac,
  310. struct qdf_mac_addr *mld_mac,
  311. bool is_assoc_link);
  312. QDF_STATUS (*mlme_cm_ext_connect_req_cb)(struct wlan_objmgr_vdev *vdev,
  313. struct wlan_cm_vdev_connect_req *req);
  314. QDF_STATUS (*mlme_cm_ext_connect_complete_ind_cb)(
  315. struct wlan_objmgr_vdev *vdev,
  316. struct wlan_cm_connect_resp *rsp);
  317. QDF_STATUS (*mlme_cm_ext_disconnect_start_ind_cb)(
  318. struct wlan_objmgr_vdev *vdev,
  319. struct wlan_cm_disconnect_req *req);
  320. QDF_STATUS (*mlme_cm_ext_disconnect_req_cb)
  321. (struct wlan_objmgr_vdev *vdev,
  322. struct wlan_cm_vdev_discon_req *req);
  323. QDF_STATUS (*mlme_cm_ext_bss_peer_delete_req_cb)(
  324. struct wlan_objmgr_vdev *vdev);
  325. QDF_STATUS (*mlme_cm_ext_disconnect_complete_ind_cb)(
  326. struct wlan_objmgr_vdev *vdev,
  327. struct wlan_cm_discon_rsp *rsp);
  328. QDF_STATUS (*mlme_cm_ext_vdev_down_req_cb)(
  329. struct wlan_objmgr_vdev *vdev);
  330. QDF_STATUS (*mlme_cm_ext_roam_start_ind_cb)(
  331. struct wlan_objmgr_vdev *vdev,
  332. struct wlan_cm_roam_req *req);
  333. QDF_STATUS (*mlme_cm_ext_rso_stop_cb)(struct wlan_objmgr_vdev *vdev);
  334. QDF_STATUS (*mlme_cm_ext_reassoc_req_cb)(
  335. struct wlan_objmgr_vdev *vdev,
  336. struct wlan_cm_vdev_reassoc_req *req);
  337. #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
  338. QDF_STATUS (*mlme_vdev_send_set_mac_addr)(
  339. struct qdf_mac_addr mac_addr,
  340. struct qdf_mac_addr mld_addr,
  341. struct wlan_objmgr_vdev *vdev);
  342. #endif
  343. QDF_STATUS (*mlme_ext_get_acs_inprogress)(
  344. struct wlan_objmgr_vdev *vdev,
  345. bool *is_acs_inprogress);
  346. };
  347. /**
  348. * struct mlme_external_tx_ops - MLME external callbacks structure
  349. * @peer_ops: callback to invoke peer mlme ops from external module
  350. * @vdev_ops: callback to invoke vdev mlme ops from external module
  351. * @pdev_ops: callback to invoke pdev mlme ops from external module
  352. * @scan_db_iterate: callback to invoke scan database iterate
  353. */
  354. enum wlan_mlme_peer_param;
  355. enum wlan_mlme_vdev_param;
  356. enum wlan_mlme_pdev_param;
  357. struct mlme_external_tx_ops {
  358. QDF_STATUS (*peer_ops)(
  359. struct wlan_objmgr_peer *peer,
  360. enum wlan_mlme_peer_param type,
  361. void *data, void *ret);
  362. QDF_STATUS (*vdev_ops)(
  363. struct wlan_objmgr_vdev *vdev,
  364. enum wlan_mlme_vdev_param type,
  365. void *data, void *ret);
  366. QDF_STATUS (*pdev_ops)(
  367. struct wlan_objmgr_pdev *pdev,
  368. enum wlan_mlme_pdev_param type,
  369. void *data, void *ret);
  370. QDF_STATUS (*scan_db_iterate)(
  371. struct wlan_objmgr_pdev *pdev,
  372. scan_iterator_func handler, void *arg);
  373. };
  374. /**
  375. * mlme_psoc_ops_ext_hdl_create() - Alloc PSOC mlme ext handle
  376. * @psoc_mlme: PSOC MLME comp object
  377. *
  378. * API to allocate PSOC MLME ext handle
  379. *
  380. * Return: SUCCESS on successful allocation
  381. * Else FAILURE
  382. */
  383. QDF_STATUS mlme_psoc_ops_ext_hdl_create(struct psoc_mlme_obj *psoc_mlme);
  384. /**
  385. * mlme_psoc_ops_ext_hdl_destroy() - Destroy PSOC mlme ext handle
  386. * @psoc_mlme: PSOC MLME comp object
  387. *
  388. * API to free psoc MLME ext handle
  389. *
  390. * Return: SUCCESS on successful free
  391. * Else FAILURE
  392. */
  393. QDF_STATUS mlme_psoc_ops_ext_hdl_destroy(struct psoc_mlme_obj *psoc_mlme);
  394. /**
  395. * mlme_pdev_ops_ext_hdl_create - Alloc PDEV mlme ext handle
  396. * @pdev_mlme_obj: PDEV MLME comp object
  397. *
  398. * API to allocate PDEV MLME ext handle
  399. *
  400. * Return: SUCCESS on successful allocation
  401. * Else FAILURE
  402. */
  403. QDF_STATUS mlme_pdev_ops_ext_hdl_create(struct pdev_mlme_obj *pdev_mlme);
  404. /**
  405. * mlme_pdev_ops_ext_hdl_destroy - Destroy PDEV mlme ext handle
  406. * @pdev_mlme_obj: PDEV MLME comp object
  407. *
  408. * API to free pdev MLME ext handle
  409. *
  410. * Return: SUCCESS on successful free
  411. * Else FAILURE
  412. */
  413. QDF_STATUS mlme_pdev_ops_ext_hdl_destroy(struct pdev_mlme_obj *pdev_mlme);
  414. /**
  415. * mlme_vdev_ops_ext_hdl_create - Alloc VDEV mlme ext handle
  416. * @vdev_mlme_obj: VDEV MLME comp object
  417. *
  418. * API to allocate VDEV MLME ext handle
  419. *
  420. * Return: SUCCESS on successful allocation
  421. * Else FAILURE
  422. */
  423. QDF_STATUS mlme_vdev_ops_ext_hdl_create(struct vdev_mlme_obj *vdev_mlme);
  424. /**
  425. * mlme_vdev_ops_ext_hdl_post_create - Perform post VDEV mlme ext handle alloc
  426. * operations
  427. * @vdev_mlme_obj: VDEV MLME comp object
  428. *
  429. * API to perform post vdev MLME ext handle allocation operations
  430. *
  431. * Return: SUCCESS on initialization successful
  432. * Else FAILURE
  433. */
  434. QDF_STATUS mlme_vdev_ops_ext_hdl_post_create(struct vdev_mlme_obj *vdev_mlme);
  435. /**
  436. * mlme_vdev_ops_ext_hdl_destroy - Destroy VDEV mlme ext handle
  437. * @vdev_mlme_obj: VDEV MLME comp object
  438. *
  439. * API to free vdev MLME ext handle
  440. *
  441. * Return: SUCCESS on successful free
  442. * Else FAILURE
  443. */
  444. QDF_STATUS mlme_vdev_ops_ext_hdl_destroy(struct vdev_mlme_obj *vdev_mlme);
  445. /**
  446. * mlme_vdev_enqueue_exp_ser_cmd - Enqueue exception serialization cmd
  447. * @vdev_mlme_obj: VDEV MLME comp object
  448. * @cmd_type: Serialization command type
  449. *
  450. * API to enqueue the exception serialization command, used by
  451. * mlme-serialization wrapper layer
  452. *
  453. * Return: SUCCESS on successful enqueuing the command
  454. * Else FAILURE
  455. */
  456. QDF_STATUS mlme_vdev_enqueue_exp_ser_cmd(struct vdev_mlme_obj *vdev_mlme,
  457. uint8_t cmd_type);
  458. /**
  459. * mlme_vdev_ops_start_fw_send - Send WMI START/RESTART commmand to FW
  460. * @vdev: VDEV object
  461. *
  462. * API to send WMI start/restart command to FW
  463. *
  464. * Return: SUCCESS on successful sending the command
  465. * Else FAILURE
  466. */
  467. QDF_STATUS mlme_vdev_ops_start_fw_send(struct wlan_objmgr_vdev *vdev,
  468. uint8_t restart);
  469. /**
  470. * mlme_vdev_ops_multivdev_restart_fw_cmd_send - Send WMI Multivdev restart
  471. * commmand to FW
  472. * @pdev: PDEV object
  473. *
  474. * API to send WMI multivdev restart command to FW
  475. *
  476. * Return: SUCCESS on successful sending the command
  477. * Else FAILURE
  478. */
  479. QDF_STATUS mlme_vdev_ops_multivdev_restart_fw_cmd_send(
  480. struct wlan_objmgr_pdev *pdev);
  481. /**
  482. * mlme_vdev_ops_stop_fw_send - Send WMI STOP commmand to FW
  483. * @vdev: VDEV object
  484. *
  485. * API to send WMI stop command to FW
  486. *
  487. * Return: SUCCESS on successful sending the command
  488. * Else FAILURE
  489. */
  490. QDF_STATUS mlme_vdev_ops_stop_fw_send(struct wlan_objmgr_vdev *vdev);
  491. /**
  492. * mlme_vdev_ops_down_fw_send - Send WMI Down commmand to FW
  493. * @vdev: VDEV object
  494. *
  495. * API to send WMI down command to FW
  496. *
  497. * Return: SUCCESS on successful sending the command
  498. * Else FAILURE
  499. */
  500. QDF_STATUS mlme_vdev_ops_down_fw_send(struct wlan_objmgr_vdev *vdev);
  501. /*
  502. * mlme_vdev_ops_ext_hdl_multivdev_restart_resp() - Handler multivdev restart
  503. * response event
  504. * @psoc: PSOC object manager handle
  505. * @resp: Restart response event
  506. *
  507. * Return: Success on successful handling of the response event,
  508. * Else failure
  509. */
  510. QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
  511. struct wlan_objmgr_psoc *psoc,
  512. struct multi_vdev_restart_resp *resp);
  513. /**
  514. * mlme_set_ops_register_cb - Sets ops registration callback
  515. * @ops_cb: Function pointer
  516. *
  517. * API to set ops registration call back
  518. *
  519. * Return: void
  520. */
  521. typedef struct mlme_ext_ops *(*mlme_get_global_ops_cb)(void);
  522. void mlme_set_ops_register_cb(mlme_get_global_ops_cb ops_cb);
  523. /**
  524. * wlan_cmn_mlme_init - Initializes MLME component
  525. *
  526. * Registers callbacks with object manager for create/destroy
  527. *
  528. * Return: SUCCESS on successful registration
  529. * FAILURE, if registration fails
  530. */
  531. QDF_STATUS wlan_cmn_mlme_init(void);
  532. /**
  533. * wlan_cmn_mlme_deinit - Uninitializes MLME component
  534. *
  535. * Unregisters callbacks with object manager for create/destroy
  536. *
  537. * Return: SUCCESS on successful registration
  538. * FAILURE, if registration fails
  539. */
  540. QDF_STATUS wlan_cmn_mlme_deinit(void);
  541. /**
  542. * mlme_vdev_ops_ext_hdl_delete_rsp - Vdev Delete response ext handler
  543. * @psoc: PSOC object
  544. * @rsp: Vdev delete response received from the firmware
  545. *
  546. * API to invoke the legacy delete response handler for legacy cleanup
  547. *
  548. * Return: SUCCESS on successful deletion
  549. * FAILURE, if deletion fails
  550. */
  551. QDF_STATUS mlme_vdev_ops_ext_hdl_delete_rsp(struct wlan_objmgr_psoc *psoc,
  552. struct vdev_delete_response *rsp);
  553. /**
  554. * mlme_cm_ext_hdl_create() - Connection manager callback to create ext
  555. * context
  556. * @vdev: VDEV object
  557. * @ext_cm_ptr: pointer to connection manager ext pointer
  558. *
  559. * Return: QDF_STATUS
  560. */
  561. QDF_STATUS mlme_cm_ext_hdl_create(struct wlan_objmgr_vdev *vdev,
  562. cm_ext_t **ext_cm_ptr);
  563. /**
  564. * mlme_cm_ext_hdl_destroy() - Connection manager callback to destroy ext
  565. * context
  566. * @vdev: VDEV object
  567. * @ext_cm_ptr: connection manager ext pointer
  568. *
  569. * Return: QDF_STATUS
  570. */
  571. QDF_STATUS mlme_cm_ext_hdl_destroy(struct wlan_objmgr_vdev *vdev,
  572. cm_ext_t *ext_cm_ptr);
  573. /**
  574. * mlme_cm_connect_start_ind() - Connection manager ext Connect start indication
  575. * @vdev: VDEV object
  576. * @req: Connection manager connect request
  577. *
  578. * Return: QDF_STATUS
  579. */
  580. QDF_STATUS mlme_cm_connect_start_ind(struct wlan_objmgr_vdev *vdev,
  581. struct wlan_cm_connect_req *req);
  582. /**
  583. * mlme_cm_bss_select_ind() - Connection manager ext Connect candidate
  584. * select indication, to do operations for the candidate
  585. * @vdev: VDEV object
  586. * @req: Vdev connect request
  587. *
  588. * Return: QDF_STATUS
  589. */
  590. QDF_STATUS mlme_cm_bss_select_ind(struct wlan_objmgr_vdev *vdev,
  591. struct wlan_cm_vdev_connect_req *req);
  592. /**
  593. * mlme_cm_bss_peer_create_req() - Connection manager ext bss peer create
  594. * request
  595. * @vdev: VDEV object
  596. * @peer_mac: Peer mac address
  597. * @mld_mac: mld mac address
  598. * @is_assoc_link: assoc happens on this link or not
  599. *
  600. * Return: QDF_STATUS
  601. */
  602. QDF_STATUS mlme_cm_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
  603. struct qdf_mac_addr *peer_mac,
  604. struct qdf_mac_addr *mld_mac,
  605. bool is_assoc_link);
  606. /**
  607. * mlme_cm_connect_req() - Connection manager ext connect request to start vdev
  608. * and peer assoc state machine
  609. * @vdev: VDEV object
  610. * @req: Vdev connect request
  611. *
  612. * Context: The req is on stack, so the API need to make a copy, if it want to
  613. * use the req after return.
  614. *
  615. * Return: QDF_STATUS
  616. */
  617. QDF_STATUS mlme_cm_connect_req(struct wlan_objmgr_vdev *vdev,
  618. struct wlan_cm_vdev_connect_req *req);
  619. /**
  620. * mlme_cm_connect_complete_ind() - Connection manager ext connect complete
  621. * indication
  622. * @vdev: VDEV object
  623. * @rsp: Connection manager connect response
  624. *
  625. * Return: QDF_STATUS
  626. */
  627. QDF_STATUS mlme_cm_connect_complete_ind(struct wlan_objmgr_vdev *vdev,
  628. struct wlan_cm_connect_resp *rsp);
  629. /**
  630. * mlme_cm_roam_start_ind() - Connection manager ext Connect start indication
  631. * @vdev: VDEV object
  632. * @req: Connection manager roam request
  633. *
  634. * Return: QDF_STATUS
  635. */
  636. QDF_STATUS mlme_cm_roam_start_ind(struct wlan_objmgr_vdev *vdev,
  637. struct wlan_cm_roam_req *req);
  638. /**
  639. * mlme_cm_rso_stop_req() - Connection manager ext RSO stop request
  640. * @vdev: VDEV object
  641. *
  642. * Return: QDF_STATUS
  643. */
  644. QDF_STATUS mlme_cm_rso_stop_req(struct wlan_objmgr_vdev *vdev);
  645. /**
  646. * mlme_cm_reassoc_req() - Connection manager ext reassoc request
  647. * @vdev: VDEV object
  648. * @req: Vdev reassoc request
  649. *
  650. * Context: The req is on stack, so the API need to make a copy, if it want to
  651. * use the req after return.
  652. *
  653. * Return: QDF_STATUS
  654. */
  655. QDF_STATUS mlme_cm_reassoc_req(struct wlan_objmgr_vdev *vdev,
  656. struct wlan_cm_vdev_reassoc_req *req);
  657. /**
  658. * mlme_cm_disconnect_start_ind() - Connection manager ext disconnect start
  659. * indication
  660. * @vdev: VDEV object
  661. * @req: Connection manager disconnect request
  662. *
  663. * Return: QDF_STATUS
  664. */
  665. QDF_STATUS mlme_cm_disconnect_start_ind(struct wlan_objmgr_vdev *vdev,
  666. struct wlan_cm_disconnect_req *req);
  667. /**
  668. * mlme_cm_disconnect_req() - Connection manager ext disconnect
  669. * req to vdev and peer sm
  670. * @vdev: VDEV object
  671. * @req: vdev disconnect request
  672. *
  673. * Return: QDF_STATUS
  674. */
  675. QDF_STATUS mlme_cm_disconnect_req(struct wlan_objmgr_vdev *vdev,
  676. struct wlan_cm_vdev_discon_req *req);
  677. /**
  678. * mlme_cm_bss_peer_delete_req() - Connection manager ext bss peer delete
  679. * request
  680. * @vdev: VDEV object
  681. *
  682. * Return: QDF_STATUS
  683. */
  684. QDF_STATUS
  685. mlme_cm_bss_peer_delete_req(struct wlan_objmgr_vdev *vdev);
  686. /**
  687. * mlme_cm_disconnect_complete_ind() - Connection manager ext disconnect
  688. * complete indication
  689. * @vdev: VDEV object
  690. * @rsp: Connection manager disconnect response
  691. *
  692. * Return: QDF_STATUS
  693. */
  694. QDF_STATUS mlme_cm_disconnect_complete_ind(struct wlan_objmgr_vdev *vdev,
  695. struct wlan_cm_discon_rsp *rsp);
  696. /**
  697. * mlme_cm_vdev_down() - Connection manager ext req to send vdev down to FW
  698. * @vdev: VDEV object
  699. *
  700. * Return: QDF_STATUS
  701. */
  702. QDF_STATUS mlme_cm_vdev_down_req(struct wlan_objmgr_vdev *vdev);
  703. /**
  704. * mlme_ext_hdl_get_acs_in_progress() - Check if ACS is in progress
  705. * @vdev: VDEV object
  706. * @acs_in_progress: ACS in progress flag
  707. *
  708. * Return: QDF_STATUS
  709. */
  710. QDF_STATUS mlme_ext_hdl_get_acs_in_progress(struct wlan_objmgr_vdev *vdev,
  711. bool *acs_in_progress);
  712. /**
  713. * mlme_cm_osif_connect_complete() - Connect complete resp to osif
  714. * @vdev: vdev pointer
  715. * @rsp: Connect response
  716. *
  717. * Return: QDF_STATUS
  718. */
  719. QDF_STATUS mlme_cm_osif_connect_complete(struct wlan_objmgr_vdev *vdev,
  720. struct wlan_cm_connect_resp *rsp);
  721. /**
  722. * mlme_cm_osif_failed_candidate_ind() - Failed Candidate indication to osif
  723. * @vdev: vdev pointer
  724. * @rsp: Connect response
  725. *
  726. * Return: QDF_STATUS
  727. */
  728. QDF_STATUS
  729. mlme_cm_osif_failed_candidate_ind(struct wlan_objmgr_vdev *vdev,
  730. struct wlan_cm_connect_resp *rsp);
  731. /**
  732. * mlme_cm_osif_update_id_and_src() - Update connection id and source to osif
  733. * @vdev: vdev pointer
  734. * @source: source of request
  735. * @cm_id: connection manager id
  736. *
  737. * Return: QDF_STATUS
  738. */
  739. QDF_STATUS mlme_cm_osif_update_id_and_src(struct wlan_objmgr_vdev *vdev,
  740. enum wlan_cm_source source,
  741. wlan_cm_id cm_id);
  742. /**
  743. * mlme_cm_osif_disconnect_complete() - Disconnect complete osif response
  744. * @vdev: vdev pointer
  745. * @cm_conn_rsp: Connect response
  746. *
  747. * Return: QDF_STATUS
  748. */
  749. QDF_STATUS
  750. mlme_cm_osif_disconnect_complete(struct wlan_objmgr_vdev *vdev,
  751. struct wlan_cm_discon_rsp *rsp);
  752. /**
  753. * mlme_cm_osif_disconnect_start_ind() - osif Disconnect start indication
  754. * @vdev: vdev pointer
  755. * @cm_conn_rsp: Connect response
  756. *
  757. * Return: QDF_STATUS
  758. */
  759. QDF_STATUS mlme_cm_osif_disconnect_start_ind(struct wlan_objmgr_vdev *vdev);
  760. #ifdef WLAN_VENDOR_HANDOFF_CONTROL
  761. /**
  762. * mlme_cm_osif_get_vendor_handoff_params() - osif get vendor handoff params
  763. * indication
  764. * @psoc: psoc pointer
  765. * @vendor_handoff_context: vendor handoff context
  766. *
  767. * Return: QDF_STATUS
  768. */
  769. QDF_STATUS mlme_cm_osif_get_vendor_handoff_params(struct wlan_objmgr_psoc *psoc,
  770. void *vendor_handoff_context);
  771. #endif
  772. #ifdef CONN_MGR_ADV_FEATURE
  773. /**
  774. * mlme_cm_osif_roam_sync_ind() - osif Roam sync indication
  775. * @vdev: vdev pointer
  776. *
  777. * Return: QDF_STATUS
  778. */
  779. QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev);
  780. /**
  781. * mlme_cm_osif_pmksa_candidate_notify() - osif roam pmksa candidate notify
  782. * @vdev: vdev pointer
  783. * @bssid: bssid
  784. * @index: index
  785. * @preauth: preauth flag
  786. *
  787. * Return: QDF_STATUS
  788. */
  789. QDF_STATUS mlme_cm_osif_pmksa_candidate_notify(struct wlan_objmgr_vdev *vdev,
  790. struct qdf_mac_addr *bssid,
  791. int index, bool preauth);
  792. #else
  793. static inline
  794. QDF_STATUS mlme_cm_osif_roam_sync_ind(struct wlan_objmgr_vdev *vdev)
  795. {
  796. return QDF_STATUS_SUCCESS;
  797. }
  798. #endif
  799. #ifdef WLAN_FEATURE_ROAM_OFFLOAD
  800. /**
  801. * mlme_cm_osif_roam_start_ind() - osif Roam start indication
  802. * @vdev: vdev pointer
  803. *
  804. * Return: QDF_STATUS
  805. */
  806. QDF_STATUS mlme_cm_osif_roam_start_ind(struct wlan_objmgr_vdev *vdev);
  807. /**
  808. * mlme_cm_osif_roam_abort_ind() - osif Roam abort indication
  809. * @vdev: vdev pointer
  810. *
  811. * Return: QDF_STATUS
  812. */
  813. QDF_STATUS mlme_cm_osif_roam_abort_ind(struct wlan_objmgr_vdev *vdev);
  814. /**
  815. * mlme_cm_osif_roam_complete() - osif Roam sync complete callback
  816. * @vdev: vdev pointer
  817. *
  818. * Return: QDF_STATUS
  819. */
  820. QDF_STATUS mlme_cm_osif_roam_complete(struct wlan_objmgr_vdev *vdev);
  821. #endif
  822. #ifdef WLAN_FEATURE_PREAUTH_ENABLE
  823. /**
  824. * mlme_cm_osif_ft_preauth_complete() - osif roam ft preauth complete callback
  825. * @vdev: vdev pointer
  826. * @rsp: preauth response pointer
  827. *
  828. * Return: QDF_STATUS
  829. */
  830. QDF_STATUS
  831. mlme_cm_osif_ft_preauth_complete(struct wlan_objmgr_vdev *vdev,
  832. struct wlan_preauth_rsp *rsp);
  833. #ifdef FEATURE_WLAN_ESE
  834. /**
  835. * mlme_cm_osif_cckm_preauth_complete() - osif cckm preauth complete callback
  836. * @vdev: vdev pointer
  837. * @rsp: preauth response pointer
  838. *
  839. * Return: QDF_STATUS
  840. */
  841. QDF_STATUS
  842. mlme_cm_osif_cckm_preauth_complete(struct wlan_objmgr_vdev *vdev,
  843. struct wlan_preauth_rsp *rsp);
  844. #else
  845. static inline QDF_STATUS
  846. mlme_cm_osif_cckm_preauth_complete(struct wlan_objmgr_vdev *vdev,
  847. struct wlan_preauth_rsp *rsp)
  848. {
  849. return QDF_STATUS_SUCCESS;
  850. }
  851. #endif /* FEATURE_WLAN_ESE */
  852. #endif /* WLAN_FEATURE_PREAUTH_ENABLE */
  853. /**
  854. * typedef osif_cm_get_global_ops_cb() - Callback to get connection manager
  855. * global ops
  856. */
  857. typedef struct mlme_cm_ops *(*osif_cm_get_global_ops_cb)(void);
  858. /**
  859. * typedef osif_twt_get_global_ops_cb() - Callback to get twt global ops
  860. */
  861. typedef struct mlme_twt_ops *(*osif_twt_get_global_ops_cb)(void);
  862. /**
  863. * mlme_set_osif_cm_cb() - Sets ops registration callback
  864. * @cm_osif_ops: Function pointer
  865. *
  866. * API to set ops registration call back
  867. *
  868. * Return: void
  869. */
  870. void mlme_set_osif_cm_cb(osif_cm_get_global_ops_cb cm_osif_ops);
  871. /**
  872. * typedef osif_vdev_mgr_get_global_ops_cb() - Callback to get vdev manager
  873. * global ops
  874. */
  875. typedef struct mlme_vdev_mgr_ops *(*osif_vdev_mgr_get_global_ops_cb)(void);
  876. /**
  877. * mlme_set_osif_vdev_mgr_cb() - Sets ops registration callback
  878. * @mlme_vdev_mgr_osif_ops: Function pointer
  879. *
  880. * API to set ops registration call back
  881. *
  882. * Return: void
  883. */
  884. void mlme_set_osif_vdev_mgr_cb(
  885. osif_vdev_mgr_get_global_ops_cb mlme_vdev_mgr_osif_ops);
  886. /**
  887. * mlme_set_osif_twt_cb() - Sets twt ops registration callback
  888. * @twt_osif_ops: Function pointer
  889. *
  890. * API to set twt ops registration call back
  891. *
  892. * Return: void
  893. */
  894. void mlme_set_osif_twt_cb(osif_twt_get_global_ops_cb twt_osif_ops);
  895. /**
  896. * mlme_max_chan_switch_is_set() - Get if max chan switch IE is enabled
  897. * @vdev: Object manager vdev pointer
  898. *
  899. * Return: True if max chan switch is enabled else false
  900. */
  901. bool mlme_max_chan_switch_is_set(struct wlan_objmgr_psoc *psoc);
  902. #ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
  903. /**
  904. * mlme_vdev_ops_send_set_mac_address() - Send set MAC address request to FW
  905. * @mac_addr: VDEV MAC address
  906. * @mld_addr: VDEV MLD address
  907. * @vdev: vdev pointer
  908. *
  909. * API to send set MAC address request command to FW
  910. *
  911. * Return: QDF_STATUS
  912. */
  913. QDF_STATUS mlme_vdev_ops_send_set_mac_address(struct qdf_mac_addr mac_addr,
  914. struct qdf_mac_addr mld_addr,
  915. struct wlan_objmgr_vdev *vdev);
  916. /**
  917. * mlme_vdev_mgr_notify_set_mac_addr_response() - Notify set MAC address
  918. * response
  919. * @vdev_id: VDEV ID
  920. * @resp_status: FW response for the set MAC address operation
  921. *
  922. * API to notify set MAC address to osif
  923. *
  924. * Return: None
  925. */
  926. void mlme_vdev_mgr_notify_set_mac_addr_response(uint8_t vdev_id,
  927. uint8_t resp_status);
  928. #endif
  929. #if defined(WLAN_SUPPORT_TWT) && defined(WLAN_TWT_CONV_SUPPORTED)
  930. /**
  931. * mlme_twt_osif_enable_complete_ind() - enable complete resp to osif
  932. * @psoc: psoc pointer
  933. * @event: enable complete response
  934. *
  935. * Return: QDF_STATUS
  936. */
  937. QDF_STATUS
  938. mlme_twt_osif_enable_complete_ind(struct wlan_objmgr_psoc *psoc,
  939. struct twt_enable_complete_event_param *event,
  940. void *context);
  941. /**
  942. * mlme_twt_osif_disable_complete_ind() - disable complete resp to osif
  943. * @psoc: psoc pointer
  944. * @event: disable complete response
  945. *
  946. * Return: QDF_STATUS
  947. */
  948. QDF_STATUS
  949. mlme_twt_osif_disable_complete_ind(struct wlan_objmgr_psoc *psoc,
  950. struct twt_disable_complete_event_param *event,
  951. void *context);
  952. /**
  953. * mlme_twt_osif_ack_complete_ind() - ack complete resp to osif
  954. * @psoc: psoc pointer
  955. * @event: ack complete response
  956. *
  957. * Return: QDF_STATUS
  958. */
  959. QDF_STATUS
  960. mlme_twt_osif_ack_complete_ind(struct wlan_objmgr_psoc *psoc,
  961. struct twt_ack_complete_event_param *event,
  962. void *context);
  963. /**
  964. * mlme_twt_osif_setup_complete_ind() - setup complete resp to osif
  965. * @psoc: psoc pointer
  966. * @event: setup complete response
  967. * @renego_fail: flag to indicate if renegotiation failure case
  968. *
  969. * Return: QDF_STATUS
  970. */
  971. QDF_STATUS
  972. mlme_twt_osif_setup_complete_ind(struct wlan_objmgr_psoc *psoc,
  973. struct twt_add_dialog_complete_event *event,
  974. bool renego_fail);
  975. /**
  976. * mlme_twt_osif_teardown_complete_ind() - teardown complete resp to osif
  977. * @psoc: psoc pointer
  978. * @event: teardown complete response
  979. *
  980. * Return: QDF_STATUS
  981. */
  982. QDF_STATUS
  983. mlme_twt_osif_teardown_complete_ind(struct wlan_objmgr_psoc *psoc,
  984. struct twt_del_dialog_complete_event_param *event);
  985. /**
  986. * mlme_twt_osif_pause_complete_ind() - pause complete resp to osif
  987. * @psoc: psoc pointer
  988. * @event: pause complete response
  989. *
  990. * Return: QDF_STATUS
  991. */
  992. QDF_STATUS
  993. mlme_twt_osif_pause_complete_ind(struct wlan_objmgr_psoc *psoc,
  994. struct twt_pause_dialog_complete_event_param *event);
  995. /**
  996. * mlme_twt_osif_resume_complete_ind() - resume complete resp to osif
  997. * @psoc: psoc pointer
  998. * @event: resume complete response
  999. *
  1000. * Return: QDF_STATUS
  1001. */
  1002. QDF_STATUS
  1003. mlme_twt_osif_resume_complete_ind(struct wlan_objmgr_psoc *psoc,
  1004. struct twt_resume_dialog_complete_event_param *event);
  1005. /**
  1006. * mlme_twt_osif_nudge_complete_ind() - nudge complete resp to osif
  1007. * @psoc: psoc pointer
  1008. * @event: nudge complete response
  1009. *
  1010. * Return: QDF_STATUS
  1011. */
  1012. QDF_STATUS
  1013. mlme_twt_osif_nudge_complete_ind(struct wlan_objmgr_psoc *psoc,
  1014. struct twt_nudge_dialog_complete_event_param *event);
  1015. /**
  1016. * mlme_twt_osif_notify_complete_ind() - notify complete resp to osif
  1017. * @psoc: psoc pointer
  1018. * @event: notify complete response
  1019. *
  1020. * Return: QDF_STATUS
  1021. */
  1022. QDF_STATUS
  1023. mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
  1024. struct twt_notify_event_param *event);
  1025. /**
  1026. * mlme_twt_vdev_create_notification() - vdev create notification to osif
  1027. * @vdev: vdev pointer
  1028. *
  1029. * Return: QDF_STATUS
  1030. */
  1031. QDF_STATUS
  1032. mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev);
  1033. /**
  1034. * mlme_twt_vdev_destroy_notification() - vdev destroy notification to osif
  1035. * @vdev: vdev pointer
  1036. *
  1037. * Return: QDF_STATUS
  1038. */
  1039. QDF_STATUS
  1040. mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev);
  1041. #else
  1042. static inline QDF_STATUS
  1043. mlme_twt_osif_enable_complete_ind(struct wlan_objmgr_psoc *psoc,
  1044. struct twt_enable_complete_event_param *event,
  1045. void *context)
  1046. {
  1047. return QDF_STATUS_SUCCESS;
  1048. }
  1049. static inline QDF_STATUS
  1050. mlme_twt_osif_disable_complete_ind(struct wlan_objmgr_psoc *psoc,
  1051. struct twt_disable_complete_event_param *event,
  1052. void *context)
  1053. {
  1054. return QDF_STATUS_SUCCESS;
  1055. }
  1056. static inline QDF_STATUS
  1057. mlme_twt_osif_ack_complete_ind(struct wlan_objmgr_psoc *psoc,
  1058. struct twt_ack_complete_event_param *event,
  1059. void *context)
  1060. {
  1061. return QDF_STATUS_SUCCESS;
  1062. }
  1063. static inline QDF_STATUS
  1064. mlme_twt_osif_setup_complete_ind(struct wlan_objmgr_psoc *psoc,
  1065. struct twt_add_dialog_complete_event *event,
  1066. bool renego_fail)
  1067. {
  1068. return QDF_STATUS_SUCCESS;
  1069. }
  1070. static inline QDF_STATUS
  1071. mlme_twt_osif_teardown_complete_ind(struct wlan_objmgr_psoc *psoc,
  1072. struct twt_del_dialog_complete_event_param *event)
  1073. {
  1074. return QDF_STATUS_SUCCESS;
  1075. }
  1076. static inline QDF_STATUS
  1077. mlme_twt_osif_pause_complete_ind(struct wlan_objmgr_psoc *psoc,
  1078. struct twt_pause_dialog_complete_event_param *event)
  1079. {
  1080. return QDF_STATUS_SUCCESS;
  1081. }
  1082. static inline QDF_STATUS
  1083. mlme_twt_osif_resume_complete_ind(struct wlan_objmgr_psoc *psoc,
  1084. struct twt_resume_dialog_complete_event_param *event)
  1085. {
  1086. return QDF_STATUS_SUCCESS;
  1087. }
  1088. static inline QDF_STATUS
  1089. mlme_twt_osif_nudge_complete_ind(struct wlan_objmgr_psoc *psoc,
  1090. struct twt_nudge_dialog_complete_event_param *event)
  1091. {
  1092. return QDF_STATUS_SUCCESS;
  1093. }
  1094. static inline QDF_STATUS
  1095. mlme_twt_osif_notify_complete_ind(struct wlan_objmgr_psoc *psoc,
  1096. struct twt_notify_event_param *event)
  1097. {
  1098. return QDF_STATUS_SUCCESS;
  1099. }
  1100. static inline QDF_STATUS
  1101. mlme_twt_vdev_create_notification(struct wlan_objmgr_vdev *vdev)
  1102. {
  1103. return QDF_STATUS_SUCCESS;
  1104. }
  1105. static inline QDF_STATUS
  1106. mlme_twt_vdev_destroy_notification(struct wlan_objmgr_vdev *vdev)
  1107. {
  1108. return QDF_STATUS_SUCCESS;
  1109. }
  1110. #endif /* WLAN_SUPPORT_TWT && WLAN_TWT_CONV_SUPPORTED */
  1111. #endif