wlan_tdls_ucfg_api.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. /*
  2. * Copyright (c) 2017-2018 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. /**
  32. * ucfg_tdls_init() - TDLS module initialization API
  33. *
  34. * Return: QDF_STATUS
  35. */
  36. QDF_STATUS ucfg_tdls_init(void);
  37. /**
  38. * ucfg_tdls_deinit() - TDLS module deinitialization API
  39. *
  40. * Return: QDF_STATUS
  41. */
  42. QDF_STATUS ucfg_tdls_deinit(void);
  43. /**
  44. * ucfg_tdls_psoc_open() - TDLS module psoc open API
  45. * @psoc: psoc object
  46. *
  47. * Return: QDF_STATUS
  48. */
  49. QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc);
  50. /**
  51. * ucfg_tdls_psoc_close() - TDLS module psoc close API
  52. * @psoc: psoc object
  53. *
  54. * Return: QDF_STATUS
  55. */
  56. QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc);
  57. /**
  58. * ucfg_tdls_psoc_start() - TDLS module start
  59. * @psoc: psoc object
  60. * @req: tdls start paramets
  61. *
  62. * Return: QDF_STATUS
  63. */
  64. QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
  65. struct tdls_start_params *req);
  66. /**
  67. * ucfg_tdls_psoc_enable() - TDLS module enable API
  68. * @psoc: psoc object
  69. *
  70. * Return: QDF_STATUS
  71. */
  72. QDF_STATUS ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc *psoc);
  73. /**
  74. * ucfg_tdls_psoc_disable() - TDLS moudle disable API
  75. * @psoc: psoc object
  76. *
  77. * Return: QDF_STATUS
  78. */
  79. QDF_STATUS ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc *psoc);
  80. /**
  81. * ucfg_tdls_add_peer() - handle TDLS add peer
  82. * @vdev: vdev object
  83. * @add_peer_req: add peer request parameters
  84. *
  85. * Return: QDF_STATUS
  86. */
  87. QDF_STATUS ucfg_tdls_add_peer(struct wlan_objmgr_vdev *vdev,
  88. struct tdls_add_peer_params *add_peer_req);
  89. /**
  90. * ucfg_tdls_update_peer() - handle TDLS update peer
  91. * @vdev: vdev object
  92. * @update_peer: update TDLS request parameters
  93. *
  94. * Return: QDF_STATUS
  95. */
  96. QDF_STATUS ucfg_tdls_update_peer(struct wlan_objmgr_vdev *vdev,
  97. struct tdls_update_peer_params *update_peer);
  98. /**
  99. * ucfg_tdls_oper() - handle TDLS oper functions
  100. * @vdev: vdev object
  101. * @macaddr: MAC address of TDLS peer
  102. * @cmd: oper cmd
  103. *
  104. * Return: QDF_STATUS
  105. */
  106. QDF_STATUS ucfg_tdls_oper(struct wlan_objmgr_vdev *vdev,
  107. const uint8_t *macaddr, enum tdls_command_type cmd);
  108. /**
  109. * ucfg_tdls_get_all_peers() - get all tdls peers from the list
  110. * @vdev: vdev object
  111. * @buf: output buffer
  112. * @buflen: length of written data
  113. *
  114. * Return: QDF_STATUS
  115. */
  116. QDF_STATUS ucfg_tdls_get_all_peers(struct wlan_objmgr_vdev *vdev,
  117. char *buf, int buflen);
  118. /**
  119. * ucfg_tdls_send_mgmt_frame() - send TDLS mgmt frame
  120. * @mgmt_req: pointer to TDLS action frame request struct
  121. *
  122. * This will TDLS action frames to peer
  123. *
  124. * Return: QDF_STATUS
  125. */
  126. QDF_STATUS ucfg_tdls_send_mgmt_frame(
  127. struct tdls_action_frame_request *mgmt_req);
  128. /**
  129. * ucfg_tdls_responder() - set responder in TDLS peer
  130. * @msg_req: responder msg
  131. *
  132. * Return: QDF_STATUS
  133. */
  134. QDF_STATUS ucfg_tdls_responder(struct tdls_set_responder_req *msg_req);
  135. /**
  136. * ucfg_tdls_teardown_links() - teardown all TDLS links
  137. * @vdev: vdev object manager
  138. *
  139. * Return: None
  140. */
  141. QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_vdev *vdev);
  142. /**
  143. * ucfg_tdls_notify_reset_adapter() - notify reset adapter
  144. * @vdev: vdev object manager
  145. *
  146. * Return: QDF_STATUS
  147. */
  148. QDF_STATUS ucfg_tdls_notify_reset_adapter(struct wlan_objmgr_vdev *vdev);
  149. /**
  150. * ucfg_tdls_notify_sta_connect() - notify sta connect
  151. * @notify_info: sta notification info
  152. *
  153. * Return: QDF_STATUS
  154. */
  155. QDF_STATUS ucfg_tdls_notify_sta_connect(
  156. struct tdls_sta_notify_params *notify_info);
  157. /**
  158. * ucfg_tdls_notify_sta_disconnect() - notify sta disconnect
  159. * @notify_info: sta notification info
  160. *
  161. * Return: QDF_STATUS
  162. */
  163. QDF_STATUS ucfg_tdls_notify_sta_disconnect(
  164. struct tdls_sta_notify_params *notify_info);
  165. /**
  166. * ucfg_tdls_set_operating_mode() - set operating mode
  167. * @set_mode_params: set mode params
  168. *
  169. * Return: QDF_STATUS
  170. */
  171. QDF_STATUS ucfg_tdls_set_operating_mode(
  172. struct tdls_set_mode_params *set_mode_params);
  173. /**
  174. * ucfg_tdls_update_rx_pkt_cnt() - update rx pkt count
  175. * @vdev: tdls vdev object
  176. * @mac_addr: peer mac address
  177. *
  178. * Return: None
  179. */
  180. void ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  181. struct qdf_mac_addr *mac_addr);
  182. /**
  183. * ucfg_tdls_update_tx_pkt_cnt() - update tx pkt count
  184. * @vdev: tdls vdev object
  185. * @mac_addr: peer mac address
  186. *
  187. * Return: None
  188. */
  189. void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
  190. struct qdf_mac_addr *mac_addr);
  191. /**
  192. * ucfg_tdls_antenna_switch() - tdls antenna switch
  193. * @vdev: tdls vdev object
  194. * @mode: antenna mode
  195. *
  196. * Return: QDF_STATUS
  197. */
  198. QDF_STATUS ucfg_tdls_antenna_switch(struct wlan_objmgr_vdev *vdev,
  199. uint32_t mode);
  200. #endif