wlan_tdls_ucfg_api.h 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. /*
  2. * Copyright (c) 2017-2019 The Linux Foundation. All rights reserved.
  3. *
  4. * Permission to use, copy, modify, and/or distribute this software for
  5. * any purpose with or without fee is hereby granted, provided that the
  6. * above copyright notice and this permission notice appear in all
  7. * copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
  10. * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
  11. * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
  12. * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
  13. * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
  14. * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
  15. * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
  16. * PERFORMANCE OF THIS SOFTWARE.
  17. */
  18. /**
  19. * DOC: wlan_tdls_ucfg_api.h
  20. *
  21. * TDLS north bound interface declaration
  22. */
  23. #if !defined(_WLAN_TDLS_UCFG_API_H_)
  24. #define _WLAN_TDLS_UCFG_API_H_
  25. #include <scheduler_api.h>
  26. #include <wlan_tdls_public_structs.h>
  27. #include <wlan_objmgr_cmn.h>
  28. #include <wlan_objmgr_psoc_obj.h>
  29. #include <wlan_objmgr_pdev_obj.h>
  30. #include <wlan_objmgr_vdev_obj.h>
  31. #ifdef CONVERGED_TDLS_ENABLE
  32. /**
  33. * ucfg_tdls_init() - TDLS module initialization API
  34. *
  35. * Return: QDF_STATUS
  36. */
  37. QDF_STATUS ucfg_tdls_init(void);
  38. /**
  39. * ucfg_tdls_deinit() - TDLS module deinitialization API
  40. *
  41. * Return: QDF_STATUS
  42. */
  43. QDF_STATUS ucfg_tdls_deinit(void);
  44. /**
  45. * ucfg_tdls_psoc_open() - TDLS module psoc open API
  46. * @psoc: psoc object
  47. *
  48. * Return: QDF_STATUS
  49. */
  50. QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc);
  51. /**
  52. * ucfg_tdls_psoc_close() - TDLS module psoc close API
  53. * @psoc: psoc object
  54. *
  55. * Return: QDF_STATUS
  56. */
  57. QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc);
  58. /**
  59. * ucfg_tdls_psoc_start() - TDLS module start
  60. * @psoc: psoc object
  61. * @req: tdls start paramets
  62. *
  63. * Return: QDF_STATUS
  64. */
  65. QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
  66. struct tdls_start_params *req);
  67. /**
  68. * ucfg_tdls_psoc_enable() - TDLS module enable API
  69. * @psoc: psoc object
  70. *
  71. * Return: QDF_STATUS
  72. */
  73. QDF_STATUS ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc *psoc);
  74. /**
  75. * ucfg_tdls_psoc_disable() - TDLS moudle disable API
  76. * @psoc: psoc object
  77. *
  78. * Return: QDF_STATUS
  79. */
  80. QDF_STATUS ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc *psoc);
  81. /**
  82. * ucfg_tdls_add_peer() - handle TDLS add peer
  83. * @vdev: vdev object
  84. * @add_peer_req: add peer request parameters
  85. *
  86. * Return: QDF_STATUS
  87. */
  88. QDF_STATUS ucfg_tdls_add_peer(struct wlan_objmgr_vdev *vdev,
  89. struct tdls_add_peer_params *add_peer_req);
  90. /**
  91. * ucfg_tdls_update_peer() - handle TDLS update peer
  92. * @vdev: vdev object
  93. * @update_peer: update TDLS request parameters
  94. *
  95. * Return: QDF_STATUS
  96. */
  97. QDF_STATUS ucfg_tdls_update_peer(struct wlan_objmgr_vdev *vdev,
  98. struct tdls_update_peer_params *update_peer);
  99. /**
  100. * ucfg_tdls_oper() - handle TDLS oper functions
  101. * @vdev: vdev object
  102. * @macaddr: MAC address of TDLS peer
  103. * @cmd: oper cmd
  104. *
  105. * Return: QDF_STATUS
  106. */
  107. QDF_STATUS ucfg_tdls_oper(struct wlan_objmgr_vdev *vdev,
  108. const uint8_t *macaddr, enum tdls_command_type cmd);
  109. /**
  110. * ucfg_tdls_get_all_peers() - get all tdls peers from the list
  111. * @vdev: vdev object
  112. * @buf: output buffer
  113. * @buflen: length of written data
  114. *
  115. * Return: QDF_STATUS
  116. */
  117. QDF_STATUS ucfg_tdls_get_all_peers(struct wlan_objmgr_vdev *vdev,
  118. char *buf, int buflen);
  119. /**
  120. * ucfg_tdls_send_mgmt_frame() - send TDLS mgmt frame
  121. * @mgmt_req: pointer to TDLS action frame request struct
  122. *
  123. * This will TDLS action frames to peer
  124. *
  125. * Return: QDF_STATUS
  126. */
  127. QDF_STATUS ucfg_tdls_send_mgmt_frame(
  128. struct tdls_action_frame_request *mgmt_req);
  129. /**
  130. * ucfg_tdls_responder() - set responder in TDLS peer
  131. * @msg_req: responder msg
  132. *
  133. * Return: QDF_STATUS
  134. */
  135. QDF_STATUS ucfg_tdls_responder(struct tdls_set_responder_req *msg_req);
  136. /**
  137. * ucfg_tdls_teardown_links() - teardown all TDLS links
  138. * @vdev: vdev object manager
  139. *
  140. * Return: None
  141. */
  142. QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev);
  143. /**
  144. * ucfg_tdls_notify_reset_adapter() - notify reset adapter
  145. * @vdev: vdev object manager
  146. *
  147. * Return: QDF_STATUS
  148. */
  149. QDF_STATUS ucfg_tdls_notify_reset_adapter(struct wlan_objmgr_vdev *vdev);
  150. /**
  151. * ucfg_tdls_notify_sta_connect() - notify sta connect
  152. * @notify_info: sta notification info
  153. *
  154. * Return: QDF_STATUS
  155. */
  156. QDF_STATUS ucfg_tdls_notify_sta_connect(
  157. struct tdls_sta_notify_params *notify_info);
  158. /**
  159. * ucfg_tdls_notify_sta_disconnect() - notify sta disconnect
  160. * @notify_info: sta notification info
  161. *
  162. * Return: QDF_STATUS
  163. */
  164. QDF_STATUS ucfg_tdls_notify_sta_disconnect(
  165. struct tdls_sta_notify_params *notify_info);
  166. /**
  167. * ucfg_tdls_set_operating_mode() - set operating mode
  168. * @set_mode_params: set mode params
  169. *
  170. * Return: QDF_STATUS
  171. */
  172. QDF_STATUS ucfg_tdls_set_operating_mode(
  173. struct tdls_set_mode_params *set_mode_params);
  174. /**
  175. * ucfg_tdls_update_rx_pkt_cnt() - update rx pkt count
  176. * @vdev: tdls vdev object
  177. * @mac_addr: peer mac address
  178. * @dest_mac_addr: dest mac address
  179. *
  180. * Return: None
  181. */
  182. void ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  183. struct qdf_mac_addr *mac_addr,
  184. struct qdf_mac_addr *dest_mac_addr);
  185. /**
  186. * ucfg_tdls_update_tx_pkt_cnt() - update tx pkt count
  187. * @vdev: tdls vdev object
  188. * @mac_addr: peer mac address
  189. *
  190. * Return: None
  191. */
  192. void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  193. struct qdf_mac_addr *mac_addr);
  194. /**
  195. * ucfg_tdls_antenna_switch() - tdls antenna switch
  196. * @vdev: tdls vdev object
  197. * @mode: antenna mode
  198. *
  199. * Return: QDF_STATUS
  200. */
  201. QDF_STATUS ucfg_tdls_antenna_switch(struct wlan_objmgr_vdev *vdev,
  202. uint32_t mode);
  203. /**
  204. * ucfg_set_tdls_offchannel() - Handle TDLS set offchannel
  205. * @vdev: vdev object
  206. * @offchannel: updated offchannel
  207. *
  208. * Return: QDF_STATUS
  209. */
  210. QDF_STATUS ucfg_set_tdls_offchannel(struct wlan_objmgr_vdev *vdev,
  211. int offchannel);
  212. /**
  213. * ucfg_set_tdls_offchan_mode() - Handle TDLS set offchannel mode
  214. * @vdev: vdev object
  215. * @offchanmode: updated off-channel mode
  216. *
  217. * Return: QDF_STATUS
  218. */
  219. QDF_STATUS ucfg_set_tdls_offchan_mode(struct wlan_objmgr_vdev *vdev,
  220. int offchanmode);
  221. /**
  222. * ucfg_set_tdls_secoffchanneloffset() - Handle TDLS set offchannel offset
  223. * @vdev: vdev object
  224. * @offchanoffset: tdls off-channel offset
  225. *
  226. * Return: QDF_STATUS
  227. */
  228. QDF_STATUS ucfg_set_tdls_secoffchanneloffset(struct wlan_objmgr_vdev *vdev,
  229. int offchanoffset);
  230. #else
  231. static inline
  232. QDF_STATUS ucfg_tdls_init(void)
  233. {
  234. return QDF_STATUS_SUCCESS;
  235. }
  236. static inline
  237. QDF_STATUS ucfg_tdls_deinit(void)
  238. {
  239. return QDF_STATUS_SUCCESS;
  240. }
  241. static inline
  242. QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc)
  243. {
  244. return QDF_STATUS_SUCCESS;
  245. }
  246. static inline
  247. QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc)
  248. {
  249. return QDF_STATUS_SUCCESS;
  250. }
  251. static inline
  252. QDF_STATUS ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc *psoc)
  253. {
  254. return QDF_STATUS_SUCCESS;
  255. }
  256. static inline
  257. QDF_STATUS ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc *psoc)
  258. {
  259. return QDF_STATUS_SUCCESS;
  260. }
  261. static inline
  262. void ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  263. struct qdf_mac_addr *mac_addr,
  264. struct qdf_mac_addr *dest_mac_addr)
  265. {
  266. }
  267. static inline
  268. void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  269. struct qdf_mac_addr *mac_addr)
  270. {
  271. }
  272. static inline
  273. QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev)
  274. {
  275. return QDF_STATUS_SUCCESS;
  276. }
  277. #endif /* CONVERGED_TDLS_ENABLE */
  278. #endif