wlan_tdls_tgt_api.h 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. /*
  2. * Copyright (c) 2017 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_set_uapsd()- invoke lamc tdls set uapsd function
  56. * @psoc: soc object
  57. * @params: uapsd parameters
  58. *
  59. * Return: QDF_STATUS
  60. */
  61. QDF_STATUS tgt_tdls_set_uapsd(struct wlan_objmgr_psoc *psoc,
  62. struct sta_uapsd_trig_params *params);
  63. /**
  64. * tgt_tdls_send_mgmt_rsp() - process tdls mgmt response
  65. * @pmsg: sheduler msg
  66. *
  67. * Return: QDF_STATUS
  68. */
  69. QDF_STATUS tgt_tdls_send_mgmt_rsp(struct scheduler_msg *pmsg);
  70. /**
  71. * tgt_tdls_send_mgmt_tx_completion() -process tx completion message
  72. * @pmsg: sheduler msg
  73. *
  74. * Return: QDF_STATUS
  75. */
  76. QDF_STATUS tgt_tdls_send_mgmt_tx_completion(struct scheduler_msg *pmsg);
  77. /**
  78. * tgt_tdls_del_peer_rsp() - handle TDLS del peer response
  79. * @pmsg: sheduler msg
  80. *
  81. * Return: QDF_STATUS
  82. */
  83. QDF_STATUS tgt_tdls_del_peer_rsp(struct scheduler_msg *pmsg);
  84. /**
  85. * tgt_tdls_add_peer_rsp() - handle TDLS add peer response
  86. * @pmsg: sheduler msg
  87. *
  88. * Return: QDF_STATUS
  89. */
  90. QDF_STATUS tgt_tdls_add_peer_rsp(struct scheduler_msg *pmsg);
  91. /**
  92. * tgt_tdls_register_ev_handler() - invoke lmac register tdls event handler
  93. * @psoc: soc object
  94. *
  95. * Return: QDF_STATUS_SUCCESS for success or error code.
  96. */
  97. QDF_STATUS tgt_tdls_register_ev_handler(struct wlan_objmgr_psoc *psoc);
  98. /**
  99. * tgt_tdls_unregister_ev_handler() - invoke lmac unregister tdls event handler
  100. * @psoc: soc object
  101. *
  102. * Return: QDF_STATUS_SUCCESS for success or error code.
  103. */
  104. QDF_STATUS tgt_tdls_unregister_ev_handler(struct wlan_objmgr_psoc *psoc);
  105. /**
  106. * tgt_tdls_event_handler() - The callback registered to WMI for tdls events
  107. * @psoc: psoc object
  108. * @info: tdls event info
  109. *
  110. * The callback is registered by tgt as tdls rx ops handler.
  111. *
  112. * Return: 0 for success or err code.
  113. */
  114. QDF_STATUS
  115. tgt_tdls_event_handler(struct wlan_objmgr_psoc *psoc,
  116. struct tdls_event_info *info);
  117. /**
  118. * tgt_tdls_mgmt_frame_rx_cb() - callback for rx mgmt frame
  119. * @psoc: soc context
  120. * @peer: peer context
  121. * @buf: rx buffer
  122. * @mgmt_rx_params: mgmt rx parameters
  123. * @frm_type: frame type
  124. *
  125. * This function gets called from mgmt tx/rx component when rx mgmt
  126. * received.
  127. *
  128. * Return: QDF_STATUS_SUCCESS
  129. */
  130. QDF_STATUS tgt_tdls_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc,
  131. struct wlan_objmgr_peer *peer, qdf_nbuf_t buf,
  132. struct mgmt_rx_event_params *mgmt_rx_params,
  133. enum mgmt_frame_type frm_type);
  134. /**
  135. * tgt_tdls_peers_deleted_notification()- notification from legacy lim
  136. * @psoc: soc object
  137. * @session_id: session id
  138. *
  139. * This function called from legacy lim to notify tdls peer deletion
  140. *
  141. * Return: None
  142. */
  143. void tgt_tdls_peers_deleted_notification(struct wlan_objmgr_psoc *psoc,
  144. uint32_t session_id);
  145. #endif