1*5113495bSYour Name /* 2*5113495bSYour Name * Copyright (c) 2018-2019 The Linux Foundation. All rights reserved. 3*5113495bSYour Name * Copyright (c) 2022-2023 Qualcomm Innovation Center, Inc. All rights reserved. 4*5113495bSYour Name * 5*5113495bSYour Name * Permission to use, copy, modify, and/or distribute this software for 6*5113495bSYour Name * any purpose with or without fee is hereby granted, provided that the 7*5113495bSYour Name * above copyright notice and this permission notice appear in all 8*5113495bSYour Name * copies. 9*5113495bSYour Name * 10*5113495bSYour Name * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11*5113495bSYour Name * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12*5113495bSYour Name * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13*5113495bSYour Name * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14*5113495bSYour Name * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15*5113495bSYour Name * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16*5113495bSYour Name * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17*5113495bSYour Name * PERFORMANCE OF THIS SOFTWARE. 18*5113495bSYour Name */ 19*5113495bSYour Name 20*5113495bSYour Name /** 21*5113495bSYour Name * DOC: wlan_tdls_tgt_api.h 22*5113495bSYour Name * 23*5113495bSYour Name * TDLS south bound interface declaration 24*5113495bSYour Name */ 25*5113495bSYour Name 26*5113495bSYour Name #ifndef _WLAN_TDLS_TGT_API_H_ 27*5113495bSYour Name #define _WLAN_TDLS_TGT_API_H_ 28*5113495bSYour Name #include <wlan_tdls_public_structs.h> 29*5113495bSYour Name #include "wlan_tdls_main.h" 30*5113495bSYour Name 31*5113495bSYour Name /** 32*5113495bSYour Name * tgt_tdls_set_fw_state() - invoke lmac tdls update fw 33*5113495bSYour Name * @psoc: soc object 34*5113495bSYour Name * @tdls_param: update tdls state parameters 35*5113495bSYour Name * 36*5113495bSYour Name * Return: QDF_STATUS 37*5113495bSYour Name */ 38*5113495bSYour Name QDF_STATUS tgt_tdls_set_fw_state(struct wlan_objmgr_psoc *psoc, 39*5113495bSYour Name struct tdls_info *tdls_param); 40*5113495bSYour Name 41*5113495bSYour Name /** 42*5113495bSYour Name * tgt_tdls_set_peer_state() - invoke lmac tdls update peer state 43*5113495bSYour Name * @psoc: soc object 44*5113495bSYour Name * @peer_param: update tdls peer parameters 45*5113495bSYour Name * 46*5113495bSYour Name * Return: QDF_STATUS 47*5113495bSYour Name */ 48*5113495bSYour Name QDF_STATUS tgt_tdls_set_peer_state(struct wlan_objmgr_psoc *psoc, 49*5113495bSYour Name struct tdls_peer_update_state *peer_param); 50*5113495bSYour Name 51*5113495bSYour Name /** 52*5113495bSYour Name * tgt_tdls_set_offchan_mode() - invoke lmac tdls set off-channel mode 53*5113495bSYour Name * @psoc: soc object 54*5113495bSYour Name * @param: set tdls off channel parameters 55*5113495bSYour Name * 56*5113495bSYour Name * Return: QDF_STATUS 57*5113495bSYour Name */ 58*5113495bSYour Name QDF_STATUS tgt_tdls_set_offchan_mode(struct wlan_objmgr_psoc *psoc, 59*5113495bSYour Name struct tdls_channel_switch_params *param); 60*5113495bSYour Name 61*5113495bSYour Name /** 62*5113495bSYour Name * tgt_tdls_send_mgmt_rsp() - process tdls mgmt response 63*5113495bSYour Name * @pmsg: scheduler msg 64*5113495bSYour Name * 65*5113495bSYour Name * Return: QDF_STATUS 66*5113495bSYour Name */ 67*5113495bSYour Name QDF_STATUS tgt_tdls_send_mgmt_rsp(struct scheduler_msg *pmsg); 68*5113495bSYour Name 69*5113495bSYour Name /** 70*5113495bSYour Name * tgt_tdls_send_mgmt_tx_completion() -process tx completion message 71*5113495bSYour Name * @pmsg: scheduler msg 72*5113495bSYour Name * 73*5113495bSYour Name * Return: QDF_STATUS 74*5113495bSYour Name */ 75*5113495bSYour Name QDF_STATUS tgt_tdls_send_mgmt_tx_completion(struct scheduler_msg *pmsg); 76*5113495bSYour Name 77*5113495bSYour Name /** 78*5113495bSYour Name * tgt_tdls_del_peer_rsp() - handle TDLS del peer response 79*5113495bSYour Name * @pmsg: scheduler msg 80*5113495bSYour Name * 81*5113495bSYour Name * Return: QDF_STATUS 82*5113495bSYour Name */ 83*5113495bSYour Name QDF_STATUS tgt_tdls_del_peer_rsp(struct scheduler_msg *pmsg); 84*5113495bSYour Name 85*5113495bSYour Name /** 86*5113495bSYour Name * tgt_tdls_add_peer_rsp() - handle TDLS add peer response 87*5113495bSYour Name * @pmsg: scheduler msg 88*5113495bSYour Name * 89*5113495bSYour Name * Return: QDF_STATUS 90*5113495bSYour Name */ 91*5113495bSYour Name QDF_STATUS tgt_tdls_add_peer_rsp(struct scheduler_msg *pmsg); 92*5113495bSYour Name 93*5113495bSYour Name /** 94*5113495bSYour Name * tgt_tdls_register_ev_handler() - invoke lmac register tdls event handler 95*5113495bSYour Name * @psoc: soc object 96*5113495bSYour Name * 97*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code. 98*5113495bSYour Name */ 99*5113495bSYour Name QDF_STATUS tgt_tdls_register_ev_handler(struct wlan_objmgr_psoc *psoc); 100*5113495bSYour Name 101*5113495bSYour Name /** 102*5113495bSYour Name * tgt_tdls_unregister_ev_handler() - invoke lmac unregister tdls event handler 103*5113495bSYour Name * @psoc: soc object 104*5113495bSYour Name * 105*5113495bSYour Name * Return: QDF_STATUS_SUCCESS for success or error code. 106*5113495bSYour Name */ 107*5113495bSYour Name QDF_STATUS tgt_tdls_unregister_ev_handler(struct wlan_objmgr_psoc *psoc); 108*5113495bSYour Name 109*5113495bSYour Name /** 110*5113495bSYour Name * tgt_tdls_event_handler() - The callback registered to WMI for tdls events 111*5113495bSYour Name * @psoc: psoc object 112*5113495bSYour Name * @info: tdls event info 113*5113495bSYour Name * 114*5113495bSYour Name * The callback is registered by tgt as tdls rx ops handler. 115*5113495bSYour Name * 116*5113495bSYour Name * Return: 0 for success or err code. 117*5113495bSYour Name */ 118*5113495bSYour Name QDF_STATUS 119*5113495bSYour Name tgt_tdls_event_handler(struct wlan_objmgr_psoc *psoc, 120*5113495bSYour Name struct tdls_event_info *info); 121*5113495bSYour Name 122*5113495bSYour Name /** 123*5113495bSYour Name * tgt_tdls_mgmt_frame_rx_cb() - callback for rx mgmt frame 124*5113495bSYour Name * @psoc: soc context 125*5113495bSYour Name * @peer: peer context 126*5113495bSYour Name * @buf: rx buffer 127*5113495bSYour Name * @mgmt_rx_params: mgmt rx parameters 128*5113495bSYour Name * @frm_type: frame type 129*5113495bSYour Name * 130*5113495bSYour Name * This function gets called from mgmt tx/rx component when rx mgmt 131*5113495bSYour Name * received. 132*5113495bSYour Name * 133*5113495bSYour Name * Return: QDF_STATUS_SUCCESS 134*5113495bSYour Name */ 135*5113495bSYour Name QDF_STATUS tgt_tdls_mgmt_frame_rx_cb(struct wlan_objmgr_psoc *psoc, 136*5113495bSYour Name struct wlan_objmgr_peer *peer, qdf_nbuf_t buf, 137*5113495bSYour Name struct mgmt_rx_event_params *mgmt_rx_params, 138*5113495bSYour Name enum mgmt_frame_type frm_type); 139*5113495bSYour Name 140*5113495bSYour Name /** 141*5113495bSYour Name * tgt_tdls_peers_deleted_notification()- notification from legacy lim 142*5113495bSYour Name * @psoc: soc object 143*5113495bSYour Name * @session_id: session id 144*5113495bSYour Name * 145*5113495bSYour Name * This function called from legacy lim to notify tdls peer deletion 146*5113495bSYour Name * 147*5113495bSYour Name * Return: None 148*5113495bSYour Name */ 149*5113495bSYour Name void tgt_tdls_peers_deleted_notification(struct wlan_objmgr_psoc *psoc, 150*5113495bSYour Name uint32_t session_id); 151*5113495bSYour Name 152*5113495bSYour Name /** 153*5113495bSYour Name * tgt_tdls_delete_all_peers_indication()- Indication to tdls component 154*5113495bSYour Name * @psoc: soc object 155*5113495bSYour Name * @session_id: session id 156*5113495bSYour Name * 157*5113495bSYour Name * This function called from legacy lim to tdls component to delete tdls peers. 158*5113495bSYour Name * 159*5113495bSYour Name * Return: None 160*5113495bSYour Name */ 161*5113495bSYour Name void tgt_tdls_delete_all_peers_indication(struct wlan_objmgr_psoc *psoc, 162*5113495bSYour Name uint32_t session_id); 163*5113495bSYour Name 164*5113495bSYour Name #endif 165