xref: /wlan-driver/qcacld-3.0/components/tdls/dispatcher/inc/wlan_tdls_tgt_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
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