wlan_mlme_cmn.h 34 KB

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