wlan_mlme_cmn.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. /*
  2. * Copyright (c) 2019-2020 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for any
  5. * purpose with or without fee is hereby granted, provided that the above
  6. * copyright notice and this permission notice appear in all copies.
  7. *
  8. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  9. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  10. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  11. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  12. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  13. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  14. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  15. */
  16. /**
  17. * DOC: Define Common MLME structure and APIs
  18. */
  19. #ifndef _WLAN_MLME_CMN_H_
  20. #define _WLAN_MLME_CMN_H_
  21. #include <include/wlan_psoc_mlme.h>
  22. #include <include/wlan_pdev_mlme.h>
  23. #include <include/wlan_vdev_mlme.h>
  24. #ifdef FEATURE_CM_ENABLE
  25. #include "wlan_cm_public_struct.h"
  26. #endif
  27. #ifdef FEATURE_CM_ENABLE
  28. /**
  29. * mlme_cm_ops: connection manager osif callbacks
  30. * @mlme_cm_connect_complete_cb: Connect done callback
  31. * @vdev: vdev pointer
  32. * @rsp: connect response
  33. *
  34. * @mlme_cm_failed_candidate_cb: Callback to indicate failed candidate
  35. * @vdev: vdev pointer
  36. * @rsp: connect response
  37. *
  38. * @mlme_cm_update_id_and_src_cb: Callback to update connect id and
  39. * source of the connect request
  40. * @vdev: vdev pointer
  41. * @Source: Source of the connect req
  42. * @cm_id: connection manager id
  43. *
  44. * @mlme_cm_disconnect_complete_cb: Disconnect done callback
  45. * @vdev: vdev pointer
  46. * @rsp: Disconnect response
  47. *
  48. * @mlme_cm_disconnect_start_cb: Disconnect start callback
  49. * @vdev: vdev pointer
  50. */
  51. struct mlme_cm_ops {
  52. QDF_STATUS (*mlme_cm_connect_complete_cb)(
  53. struct wlan_objmgr_vdev *vdev,
  54. struct wlan_cm_connect_resp *rsp);
  55. QDF_STATUS (*mlme_cm_failed_candidate_cb)(
  56. struct wlan_objmgr_vdev *vdev,
  57. struct wlan_cm_connect_resp *rsp);
  58. QDF_STATUS (*mlme_cm_update_id_and_src_cb)(
  59. struct wlan_objmgr_vdev *vdev,
  60. enum wlan_cm_source source,
  61. wlan_cm_id cm_id);
  62. QDF_STATUS (*mlme_cm_disconnect_complete_cb)(
  63. struct wlan_objmgr_vdev *vdev,
  64. struct wlan_cm_discon_rsp *rsp);
  65. QDF_STATUS (*mlme_cm_disconnect_start_cb)(
  66. struct wlan_objmgr_vdev *vdev);
  67. };
  68. #endif
  69. /**
  70. * struct vdev_mlme_ext_ops - VDEV MLME legacy callbacks structure
  71. * @mlme_psoc_ext_hdl_create: callback to invoke creation of
  72. * legacy psoc object
  73. * @mlme_psoc_ext_hdl_destroy: callback to invoke destroy of legacy
  74. * psoc object
  75. * @mlme_pdev_ext_hdl_create: callback to invoke creation of
  76. * legacy pdev object
  77. * @mlme_pdev_ext_hdl_destroy: callback to invoke destroy of legacy
  78. * pdev object
  79. * @mlme_vdev_ext_hdl_create: callback to invoke creation of
  80. * legacy vdev object
  81. * @mlme_vdev_ext_hdl_post_create: callback to invoke post creation
  82. * actions of legacy vdev object
  83. * @mlme_vdev_ext_hdl_destroy: callback to invoke destroy of legacy
  84. * vdev object
  85. * @mlme_vdev_start_fw_send: callback to invoke vdev start
  86. * command
  87. * @mlme_vdev_stop_fw_send: callback to invoke vdev stop command
  88. * @mlme_vdev_down_fw_send: callback to invoke vdev down command
  89. * @mlme_multivdev_restart_fw_send: callback to invoke multivdev restart
  90. * command
  91. * @mlme_vdev_enqueue_exp_cmd: callback to enqueue exception
  92. * command
  93. * required by serialization
  94. * @mlme_multi_vdev_restart_resp: callback to process multivdev
  95. * restart response
  96. * @mlme_cm_ext_connect_start_ind_cb: callback to indicate connect start
  97. * @mlme_cm_ext_bss_select_ind_cb: callback to indicate candidate
  98. * select for connect
  99. * @mlme_cm_ext_bss_peer_create_req_cb: callback to bss peer create request
  100. * @mlme_cm_ext_connect_req_cb: callback for connect request to
  101. * VDEV/PEER SM
  102. * @mlme_cm_ext_connect_complete_ind_cb: callback to indicate connect
  103. * complete
  104. * @mlme_cm_ext_disconnect_start_ind_cb : callback to indicate disconnect
  105. * start
  106. * @mlme_cm_ext_disconnect_req_cb: callback to disconnect req to
  107. * VDEV/PEER SM
  108. * @mlme_cm_ext_bss_peer_delete_req_cb: callback to bss peer delete request
  109. * @mlme_cm_ext_disconnect_complete_ind_cb: callback to indicate disconnect
  110. * complete
  111. * @mlme_cm_ext_vdev_down_req_cb: callback to send vdev down to FW
  112. */
  113. struct mlme_ext_ops {
  114. QDF_STATUS (*mlme_psoc_ext_hdl_create)(
  115. struct psoc_mlme_obj *psoc_mlme);
  116. QDF_STATUS (*mlme_psoc_ext_hdl_destroy)(
  117. struct psoc_mlme_obj *pdev_mlme);
  118. QDF_STATUS (*mlme_pdev_ext_hdl_create)(
  119. struct pdev_mlme_obj *pdev_mlme);
  120. QDF_STATUS (*mlme_pdev_ext_hdl_destroy)(
  121. struct pdev_mlme_obj *pdev_mlme);
  122. QDF_STATUS (*mlme_vdev_ext_hdl_create)(
  123. struct vdev_mlme_obj *vdev_mlme);
  124. QDF_STATUS (*mlme_vdev_ext_hdl_post_create)(
  125. struct vdev_mlme_obj *vdev_mlme);
  126. QDF_STATUS (*mlme_vdev_ext_hdl_destroy)(
  127. struct vdev_mlme_obj *vdev_mlme);
  128. QDF_STATUS (*mlme_vdev_start_fw_send)(
  129. struct wlan_objmgr_vdev *vdev, uint8_t restart);
  130. QDF_STATUS (*mlme_vdev_stop_fw_send)(struct wlan_objmgr_vdev *vdev);
  131. QDF_STATUS (*mlme_vdev_down_fw_send)(struct wlan_objmgr_vdev *vdev);
  132. QDF_STATUS (*mlme_multivdev_restart_fw_send)(
  133. struct wlan_objmgr_pdev *pdev);
  134. QDF_STATUS (*mlme_vdev_enqueue_exp_cmd)(
  135. struct vdev_mlme_obj *vdev_mlme,
  136. uint8_t cmd_type);
  137. QDF_STATUS (*mlme_vdev_ext_delete_rsp)(
  138. struct wlan_objmgr_psoc *psoc,
  139. struct vdev_delete_response *rsp);
  140. QDF_STATUS (*mlme_multi_vdev_restart_resp)(
  141. struct wlan_objmgr_psoc *psoc,
  142. struct multi_vdev_restart_resp *resp);
  143. #ifdef FEATURE_CM_ENABLE
  144. QDF_STATUS (*mlme_cm_ext_connect_start_ind_cb)(
  145. struct wlan_objmgr_vdev *vdev,
  146. struct wlan_cm_connect_req *req);
  147. QDF_STATUS (*mlme_cm_ext_bss_select_ind_cb)(
  148. struct wlan_objmgr_vdev *vdev,
  149. struct wlan_cm_vdev_connect_req *req);
  150. QDF_STATUS (*mlme_cm_ext_bss_peer_create_req_cb)(
  151. struct wlan_objmgr_vdev *vdev,
  152. struct qdf_mac_addr *peer_mac);
  153. QDF_STATUS (*mlme_cm_ext_connect_req_cb)(struct wlan_objmgr_vdev *vdev,
  154. struct wlan_cm_vdev_connect_req *req);
  155. QDF_STATUS (*mlme_cm_ext_connect_complete_ind_cb)(
  156. struct wlan_objmgr_vdev *vdev,
  157. struct wlan_cm_connect_resp *rsp);
  158. QDF_STATUS (*mlme_cm_ext_disconnect_start_ind_cb)(
  159. struct wlan_objmgr_vdev *vdev,
  160. struct wlan_cm_disconnect_req *req);
  161. QDF_STATUS (*mlme_cm_ext_disconnect_req_cb)
  162. (struct wlan_objmgr_vdev *vdev,
  163. struct wlan_cm_vdev_discon_req *req);
  164. QDF_STATUS (*mlme_cm_ext_bss_peer_delete_req_cb)(
  165. struct wlan_objmgr_vdev *vdev);
  166. QDF_STATUS (*mlme_cm_ext_disconnect_complete_ind_cb)(
  167. struct wlan_objmgr_vdev *vdev,
  168. struct wlan_cm_discon_rsp *rsp);
  169. QDF_STATUS (*mlme_cm_ext_vdev_down_req_cb)(
  170. struct wlan_objmgr_vdev *vdev);
  171. #endif
  172. };
  173. /**
  174. * mlme_psoc_ops_ext_hdl_create() - Alloc PSOC mlme ext handle
  175. * @psoc_mlme: PSOC MLME comp object
  176. *
  177. * API to allocate PSOC MLME ext handle
  178. *
  179. * Return: SUCCESS on successful allocation
  180. * Else FAILURE
  181. */
  182. QDF_STATUS mlme_psoc_ops_ext_hdl_create(struct psoc_mlme_obj *psoc_mlme);
  183. /**
  184. * mlme_psoc_ops_ext_hdl_destroy() - Destroy PSOC mlme ext handle
  185. * @psoc_mlme: PSOC MLME comp object
  186. *
  187. * API to free psoc MLME ext handle
  188. *
  189. * Return: SUCCESS on successful free
  190. * Else FAILURE
  191. */
  192. QDF_STATUS mlme_psoc_ops_ext_hdl_destroy(struct psoc_mlme_obj *psoc_mlme);
  193. /**
  194. * mlme_pdev_ops_ext_hdl_create - Alloc PDEV mlme ext handle
  195. * @pdev_mlme_obj: PDEV MLME comp object
  196. *
  197. * API to allocate PDEV MLME ext handle
  198. *
  199. * Return: SUCCESS on successful allocation
  200. * Else FAILURE
  201. */
  202. QDF_STATUS mlme_pdev_ops_ext_hdl_create(struct pdev_mlme_obj *pdev_mlme);
  203. /**
  204. * mlme_pdev_ops_ext_hdl_destroy - Destroy PDEV mlme ext handle
  205. * @pdev_mlme_obj: PDEV MLME comp object
  206. *
  207. * API to free pdev MLME ext handle
  208. *
  209. * Return: SUCCESS on successful free
  210. * Else FAILURE
  211. */
  212. QDF_STATUS mlme_pdev_ops_ext_hdl_destroy(struct pdev_mlme_obj *pdev_mlme);
  213. /**
  214. * mlme_vdev_ops_ext_hdl_create - Alloc VDEV mlme ext handle
  215. * @vdev_mlme_obj: VDEV MLME comp object
  216. *
  217. * API to allocate VDEV MLME ext handle
  218. *
  219. * Return: SUCCESS on successful allocation
  220. * Else FAILURE
  221. */
  222. QDF_STATUS mlme_vdev_ops_ext_hdl_create(struct vdev_mlme_obj *vdev_mlme);
  223. /**
  224. * mlme_vdev_ops_ext_hdl_post_create - Perform post VDEV mlme ext handle alloc
  225. * operations
  226. * @vdev_mlme_obj: VDEV MLME comp object
  227. *
  228. * API to perform post vdev MLME ext handle allocation operations
  229. *
  230. * Return: SUCCESS on initialization successful
  231. * Else FAILURE
  232. */
  233. QDF_STATUS mlme_vdev_ops_ext_hdl_post_create(struct vdev_mlme_obj *vdev_mlme);
  234. /**
  235. * mlme_vdev_ops_ext_hdl_destroy - Destroy VDEV mlme ext handle
  236. * @vdev_mlme_obj: VDEV MLME comp object
  237. *
  238. * API to free vdev MLME ext handle
  239. *
  240. * Return: SUCCESS on successful free
  241. * Else FAILURE
  242. */
  243. QDF_STATUS mlme_vdev_ops_ext_hdl_destroy(struct vdev_mlme_obj *vdev_mlme);
  244. /**
  245. * mlme_vdev_enqueue_exp_ser_cmd - Enqueue exception serialization cmd
  246. * @vdev_mlme_obj: VDEV MLME comp object
  247. * @cmd_type: Serialization command type
  248. *
  249. * API to enqueue the exception serialization command, used by
  250. * mlme-serialization wrapper layer
  251. *
  252. * Return: SUCCESS on successful enqueuing the command
  253. * Else FAILURE
  254. */
  255. QDF_STATUS mlme_vdev_enqueue_exp_ser_cmd(struct vdev_mlme_obj *vdev_mlme,
  256. uint8_t cmd_type);
  257. /**
  258. * mlme_vdev_ops_start_fw_send - Send WMI START/RESTART commmand to FW
  259. * @vdev: VDEV object
  260. *
  261. * API to send WMI start/restart command to FW
  262. *
  263. * Return: SUCCESS on successful sending the command
  264. * Else FAILURE
  265. */
  266. QDF_STATUS mlme_vdev_ops_start_fw_send(struct wlan_objmgr_vdev *vdev,
  267. uint8_t restart);
  268. /**
  269. * mlme_vdev_ops_multivdev_restart_fw_cmd_send - Send WMI Multivdev restart
  270. * commmand to FW
  271. * @pdev: PDEV object
  272. *
  273. * API to send WMI multivdev restart command to FW
  274. *
  275. * Return: SUCCESS on successful sending the command
  276. * Else FAILURE
  277. */
  278. QDF_STATUS mlme_vdev_ops_multivdev_restart_fw_cmd_send(
  279. struct wlan_objmgr_pdev *pdev);
  280. /**
  281. * mlme_vdev_ops_stop_fw_send - Send WMI STOP commmand to FW
  282. * @vdev: VDEV object
  283. *
  284. * API to send WMI stop command to FW
  285. *
  286. * Return: SUCCESS on successful sending the command
  287. * Else FAILURE
  288. */
  289. QDF_STATUS mlme_vdev_ops_stop_fw_send(struct wlan_objmgr_vdev *vdev);
  290. /**
  291. * mlme_vdev_ops_down_fw_send - Send WMI Down commmand to FW
  292. * @vdev: VDEV object
  293. *
  294. * API to send WMI down command to FW
  295. *
  296. * Return: SUCCESS on successful sending the command
  297. * Else FAILURE
  298. */
  299. QDF_STATUS mlme_vdev_ops_down_fw_send(struct wlan_objmgr_vdev *vdev);
  300. /*
  301. * mlme_vdev_ops_ext_hdl_multivdev_restart_resp() - Handler multivdev restart
  302. * response event
  303. * @psoc: PSOC object manager handle
  304. * @resp: Restart response event
  305. *
  306. * Return: Success on successful handling of the response event,
  307. * Else failure
  308. */
  309. QDF_STATUS mlme_vdev_ops_ext_hdl_multivdev_restart_resp(
  310. struct wlan_objmgr_psoc *psoc,
  311. struct multi_vdev_restart_resp *resp);
  312. /**
  313. * mlme_set_ops_register_cb - Sets ops registration callback
  314. * @ops_cb: Function pointer
  315. *
  316. * API to set ops registration call back
  317. *
  318. * Return: void
  319. */
  320. typedef struct mlme_ext_ops *(*mlme_get_global_ops_cb)(void);
  321. void mlme_set_ops_register_cb(mlme_get_global_ops_cb ops_cb);
  322. /**
  323. * wlan_cmn_mlme_init - Initializes MLME component
  324. *
  325. * Registers callbacks with object manager for create/destroy
  326. *
  327. * Return: SUCCESS on successful registration
  328. * FAILURE, if registration fails
  329. */
  330. QDF_STATUS wlan_cmn_mlme_init(void);
  331. /**
  332. * wlan_cmn_mlme_deinit - Uninitializes MLME component
  333. *
  334. * Unregisters callbacks with object manager for create/destroy
  335. *
  336. * Return: SUCCESS on successful registration
  337. * FAILURE, if registration fails
  338. */
  339. QDF_STATUS wlan_cmn_mlme_deinit(void);
  340. /**
  341. * mlme_vdev_ops_ext_hdl_delete_rsp - Vdev Delete response ext handler
  342. * @psoc: PSOC object
  343. * @rsp: Vdev delete response received from the firmware
  344. *
  345. * API to invoke the legacy delete response handler for legacy cleanup
  346. *
  347. * Return: SUCCESS on successful deletion
  348. * FAILURE, if deletion fails
  349. */
  350. QDF_STATUS mlme_vdev_ops_ext_hdl_delete_rsp(struct wlan_objmgr_psoc *psoc,
  351. struct vdev_delete_response *rsp);
  352. #ifdef FEATURE_CM_ENABLE
  353. /**
  354. * mlme_cm_connect_start_ind() - Connection manager ext Connect start indication
  355. * @vdev: VDEV object
  356. * @req: Connection manager connect request
  357. *
  358. * Return: QDF_STATUS
  359. */
  360. QDF_STATUS mlme_cm_connect_start_ind(struct wlan_objmgr_vdev *vdev,
  361. struct wlan_cm_connect_req *req);
  362. /**
  363. * mlme_cm_bss_select_ind() - Connection manager ext Connect candidate
  364. * select indication, to do operations for the candidate
  365. * @vdev: VDEV object
  366. * @req: Vdev connect request
  367. *
  368. * Return: QDF_STATUS
  369. */
  370. QDF_STATUS mlme_cm_bss_select_ind(struct wlan_objmgr_vdev *vdev,
  371. struct wlan_cm_vdev_connect_req *req);
  372. /**
  373. * mlme_cm_bss_peer_create_req() - Connection manager ext bss peer create
  374. * request
  375. * @vdev: VDEV object
  376. * @peer_mac: Peer mac address
  377. *
  378. * Return: QDF_STATUS
  379. */
  380. QDF_STATUS mlme_cm_bss_peer_create_req(struct wlan_objmgr_vdev *vdev,
  381. struct qdf_mac_addr *peer_mac);
  382. /**
  383. * mlme_cm_connect_req() - Connection manager ext connect request to start vdev
  384. * and peer assoc state machine
  385. * @vdev: VDEV object
  386. * @req: Vdev connect request
  387. *
  388. * Context: The req is on stack, so the API need to make a copy, if it want to
  389. * use the req after return.
  390. *
  391. * Return: QDF_STATUS
  392. */
  393. QDF_STATUS mlme_cm_connect_req(struct wlan_objmgr_vdev *vdev,
  394. struct wlan_cm_vdev_connect_req *req);
  395. /**
  396. * mlme_cm_connect_complete_ind() - Connection manager ext connect complete
  397. * indication
  398. * @vdev: VDEV object
  399. * @rsp: Connection manager connect response
  400. *
  401. * Return: QDF_STATUS
  402. */
  403. QDF_STATUS mlme_cm_connect_complete_ind(struct wlan_objmgr_vdev *vdev,
  404. struct wlan_cm_connect_resp *rsp);
  405. /**
  406. * mlme_cm_disconnect_start_ind() - Connection manager ext disconnect start
  407. * indication
  408. * @vdev: VDEV object
  409. * @req: Connection manager disconnect request
  410. *
  411. * Return: QDF_STATUS
  412. */
  413. QDF_STATUS mlme_cm_disconnect_start_ind(struct wlan_objmgr_vdev *vdev,
  414. struct wlan_cm_disconnect_req *req);
  415. /**
  416. * mlme_cm_disconnect_req() - Connection manager ext disconnect
  417. * req to vdev and peer sm
  418. * @vdev: VDEV object
  419. * @req: vdev disconnect request
  420. *
  421. * Return: QDF_STATUS
  422. */
  423. QDF_STATUS mlme_cm_disconnect_req(struct wlan_objmgr_vdev *vdev,
  424. struct wlan_cm_vdev_discon_req *req);
  425. /**
  426. * mlme_cm_bss_peer_delete_req() - Connection manager ext bss peer delete
  427. * request
  428. * @vdev: VDEV object
  429. *
  430. * Return: QDF_STATUS
  431. */
  432. QDF_STATUS
  433. mlme_cm_bss_peer_delete_req(struct wlan_objmgr_vdev *vdev);
  434. /**
  435. * mlme_cm_disconnect_complete_ind() - Connection manager ext disconnect
  436. * complete indication
  437. * @vdev: VDEV object
  438. * @rsp: Connection manager disconnect response
  439. *
  440. * Return: QDF_STATUS
  441. */
  442. QDF_STATUS mlme_cm_disconnect_complete_ind(struct wlan_objmgr_vdev *vdev,
  443. struct wlan_cm_discon_rsp *rsp);
  444. /**
  445. * mlme_cm_vdev_down() - Connection manager ext req to send vdev down to FW
  446. * @vdev: VDEV object
  447. *
  448. * Return: QDF_STATUS
  449. */
  450. QDF_STATUS mlme_cm_vdev_down_req(struct wlan_objmgr_vdev *vdev);
  451. /**
  452. * mlme_cm_osif_connect_complete() - Connect complete resp to osif
  453. * @vdev: vdev pointer
  454. * @rsp: Connect response
  455. *
  456. * Return: QDF_STATUS
  457. */
  458. QDF_STATUS mlme_cm_osif_connect_complete(struct wlan_objmgr_vdev *vdev,
  459. struct wlan_cm_connect_resp *rsp);
  460. /**
  461. * mlme_cm_osif_failed_candidate_ind() - Failed Candidate indication to osif
  462. * @vdev: vdev pointer
  463. * @rsp: Connect response
  464. *
  465. * Return: QDF_STATUS
  466. */
  467. QDF_STATUS
  468. mlme_cm_osif_failed_candidate_ind(struct wlan_objmgr_vdev *vdev,
  469. struct wlan_cm_connect_resp *rsp);
  470. /**
  471. * mlme_cm_osif_update_id_and_src() - Update connection id and source to osif
  472. * @vdev: vdev pointer
  473. * @source: source of request
  474. * @cm_id: connection manager id
  475. *
  476. * Return: QDF_STATUS
  477. */
  478. QDF_STATUS mlme_cm_osif_update_id_and_src(struct wlan_objmgr_vdev *vdev,
  479. enum wlan_cm_source source,
  480. wlan_cm_id cm_id);
  481. /**
  482. * mlme_cm_osif_disconnect_complete() - Disconnect complete osif response
  483. * @vdev: vdev pointer
  484. * @cm_conn_rsp: Connect response
  485. *
  486. * Return: QDF_STATUS
  487. */
  488. QDF_STATUS
  489. mlme_cm_osif_disconnect_complete(struct wlan_objmgr_vdev *vdev,
  490. struct wlan_cm_discon_rsp *rsp);
  491. /**
  492. * mlme_cm_osif_disconnect_start_ind() - osif Disconnect start indication
  493. * @vdev: vdev pointer
  494. * @cm_conn_rsp: Connect response
  495. *
  496. * Return: QDF_STATUS
  497. */
  498. QDF_STATUS mlme_cm_osif_disconnect_start_ind(struct wlan_objmgr_vdev *vdev);
  499. /**
  500. * typedef osif_cm_get_global_ops_cb() - Callback to get connection manager
  501. * global ops
  502. */
  503. typedef struct mlme_cm_ops *(*osif_cm_get_global_ops_cb)(void);
  504. /**
  505. * mlme_set_osif_cm_cb() - Sets ops registration callback
  506. * @cm_osif_ops: Function pointer
  507. *
  508. * API to set ops registration call back
  509. *
  510. * Return: void
  511. */
  512. void mlme_set_osif_cm_cb(osif_cm_get_global_ops_cb cm_osif_ops);
  513. #endif
  514. #endif