wlan_tdls_tgt_api.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. /*
  2. * Copyright (c) 2018-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_tgt_api.h
  20. *
  21. * TDLS south bound interface declaration
  22. */
  23. #ifndef _WLAN_TDLS_TGT_API_H_
  24. #define _WLAN_TDLS_TGT_API_H_
  25. #include <wlan_tdls_public_structs.h>
  26. #include "../../core/src/wlan_tdls_main.h"
  27. /**
  28. * tgt_tdls_set_fw_state() - invoke lmac tdls update fw
  29. * @psoc: soc object
  30. * @tdls_param: update tdls state parameters
  31. *
  32. * Return: QDF_STATUS
  33. */
  34. QDF_STATUS tgt_tdls_set_fw_state(struct wlan_objmgr_psoc *psoc,
  35. struct tdls_info *tdls_param);
  36. /**
  37. * tgt_tdls_set_peer_state() - invoke lmac tdls update peer state
  38. * @psoc: soc object
  39. * @peer_param: update tdls peer parameters
  40. *
  41. * Return: QDF_STATUS
  42. */
  43. QDF_STATUS tgt_tdls_set_peer_state(struct wlan_objmgr_psoc *psoc,
  44. struct tdls_peer_update_state *peer_param);
  45. /**
  46. * tgt_tdls_set_offchan_mode() - invoke lmac tdls set off-channel mode
  47. * @psoc: soc object
  48. * @param: set tdls off channel parameters
  49. *
  50. * Return: QDF_STATUS
  51. */
  52. QDF_STATUS tgt_tdls_set_offchan_mode(struct wlan_objmgr_psoc *psoc,
  53. struct tdls_channel_switch_params *param);
  54. /**
  55. * tgt_tdls_send_mgmt_rsp() - process tdls mgmt response
  56. * @pmsg: sheduler msg
  57. *
  58. * Return: QDF_STATUS
  59. */
  60. QDF_STATUS tgt_tdls_send_mgmt_rsp(struct scheduler_msg *pmsg);
  61. /**
  62. * tgt_tdls_send_mgmt_tx_completion() -process tx completion message
  63. * @pmsg: sheduler msg
  64. *
  65. * Return: QDF_STATUS
  66. */
  67. QDF_STATUS tgt_tdls_send_mgmt_tx_completion(struct scheduler_msg *pmsg);
  68. /**
  69. * tgt_tdls_del_peer_rsp() - handle TDLS del peer response
  70. * @pmsg: sheduler msg
  71. *
  72. * Return: QDF_STATUS
  73. */
  74. QDF_STATUS tgt_tdls_del_peer_rsp(struct scheduler_msg *pmsg);
  75. /**
  76. * tgt_tdls_add_peer_rsp() - handle TDLS add peer response
  77. * @pmsg: sheduler msg
  78. *
  79. * Return: QDF_STATUS
  80. */
  81. QDF_STATUS tgt_tdls_add_peer_rsp(struct scheduler_msg *pmsg);
  82. /**
  83. * tgt_tdls_register_ev_handler() - invoke lmac register tdls event handler
  84. * @psoc: soc object
  85. *
  86. * Return: QDF_STATUS_SUCCESS for success or error code.
  87. */
  88. QDF_STATUS tgt_tdls_register_ev_handler(struct wlan_objmgr_psoc *psoc);
  89. /**
  90. * tgt_tdls_unregister_ev_handler() - invoke lmac unregister tdls event handler
  91. * @psoc: soc object
  92. *
  93. * Return: QDF_STATUS_SUCCESS for success or error code.
  94. */
  95. QDF_STATUS tgt_tdls_unregister_ev_handler(struct wlan_objmgr_psoc *psoc);
  96. /**
  97. * tgt_tdls_event_handler() - The callback registered to WMI for tdls events
  98. * @psoc: psoc object
  99. * @info: tdls event info
  100. *
  101. * The callback is registered by tgt as tdls rx ops handler.
  102. *
  103. * Return: 0 for success or err code.
  104. */
  105. QDF_STATUS
  106. tgt_tdls_event_handler(struct wlan_objmgr_psoc *psoc,
  107. struct tdls_event_info *info);
  108. /**
  109. * tgt_tdls_mgmt_frame_rx_cb() - callback for rx mgmt frame
  110. * @psoc: soc context
  111. * @peer: peer context
  112. * @buf: rx buffer
  113. * @mgmt_rx_params: mgmt rx parameters
  114. * @frm_type: frame type
  115. *
  116. * This function gets called from mgmt tx/rx component when rx mgmt
  117. * received.
  118. *
  119. * Return: QDF_STATUS_SUCCESS
  120. */
  121. QDF_STATUS tgt_tdls_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc,
  122. struct wlan_objmgr_peer *peer, qdf_nbuf_t buf,
  123. struct mgmt_rx_event_params *mgmt_rx_params,
  124. enum mgmt_frame_type frm_type);
  125. /**
  126. * tgt_tdls_peers_deleted_notification()- notification from legacy lim
  127. * @psoc: soc object
  128. * @session_id: session id
  129. *
  130. * This function called from legacy lim to notify tdls peer deletion
  131. *
  132. * Return: None
  133. */
  134. void tgt_tdls_peers_deleted_notification(struct wlan_objmgr_psoc *psoc,
  135. uint32_t session_id);
  136. /**
  137. * tgt_tdls_delete_all_peers_indication()- Indication to tdls component
  138. * @psoc: soc object
  139. * @session_id: session id
  140. *
  141. * This function called from legacy lim to tdls component to delete tdls peers.
  142. *
  143. * Return: None
  144. */
  145. void tgt_tdls_delete_all_peers_indication(struct wlan_objmgr_psoc *psoc,
  146. uint32_t session_id);
  147. #endif