xref: /wlan-driver/qcacld-3.0/components/tdls/dispatcher/inc/wlan_tdls_ucfg_api.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name /*
2*5113495bSYour Name  * Copyright (c) 2017-2021 The Linux Foundation. All rights reserved.
3*5113495bSYour Name  * Copyright (c) 2021-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_ucfg_api.h
22*5113495bSYour Name  *
23*5113495bSYour Name  * TDLS north bound interface declaration
24*5113495bSYour Name  */
25*5113495bSYour Name 
26*5113495bSYour Name #if !defined(_WLAN_TDLS_UCFG_API_H_)
27*5113495bSYour Name #define _WLAN_TDLS_UCFG_API_H_
28*5113495bSYour Name 
29*5113495bSYour Name #include <scheduler_api.h>
30*5113495bSYour Name #include <wlan_tdls_public_structs.h>
31*5113495bSYour Name #include <wlan_objmgr_cmn.h>
32*5113495bSYour Name #include <wlan_objmgr_psoc_obj.h>
33*5113495bSYour Name #include <wlan_objmgr_pdev_obj.h>
34*5113495bSYour Name #include <wlan_objmgr_vdev_obj.h>
35*5113495bSYour Name 
36*5113495bSYour Name #ifdef FEATURE_WLAN_TDLS
37*5113495bSYour Name 
38*5113495bSYour Name /**
39*5113495bSYour Name  * ucfg_tdls_init() - TDLS module initialization API
40*5113495bSYour Name  *
41*5113495bSYour Name  * Return: QDF_STATUS
42*5113495bSYour Name  */
43*5113495bSYour Name QDF_STATUS ucfg_tdls_init(void);
44*5113495bSYour Name 
45*5113495bSYour Name /**
46*5113495bSYour Name  * ucfg_tdls_deinit() - TDLS module deinitialization API
47*5113495bSYour Name  *
48*5113495bSYour Name  * Return: QDF_STATUS
49*5113495bSYour Name  */
50*5113495bSYour Name QDF_STATUS ucfg_tdls_deinit(void);
51*5113495bSYour Name 
52*5113495bSYour Name /**
53*5113495bSYour Name  * ucfg_tdls_psoc_open() - TDLS module psoc open API
54*5113495bSYour Name  * @psoc: psoc object
55*5113495bSYour Name  *
56*5113495bSYour Name  * Return: QDF_STATUS
57*5113495bSYour Name  */
58*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc);
59*5113495bSYour Name 
60*5113495bSYour Name /**
61*5113495bSYour Name  * ucfg_tdls_psoc_close() - TDLS module psoc close API
62*5113495bSYour Name  * @psoc: psoc object
63*5113495bSYour Name  *
64*5113495bSYour Name  * Return: QDF_STATUS
65*5113495bSYour Name  */
66*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc);
67*5113495bSYour Name 
68*5113495bSYour Name /**
69*5113495bSYour Name  * ucfg_tdls_update_config() - TDLS module start
70*5113495bSYour Name  * @psoc: psoc object
71*5113495bSYour Name  * @req: tdls start paramets
72*5113495bSYour Name  *
73*5113495bSYour Name  * Return: QDF_STATUS
74*5113495bSYour Name  */
75*5113495bSYour Name QDF_STATUS ucfg_tdls_update_config(struct wlan_objmgr_psoc *psoc,
76*5113495bSYour Name 				   struct tdls_start_params *req);
77*5113495bSYour Name 
78*5113495bSYour Name /**
79*5113495bSYour Name  * ucfg_tdls_update_fw_wideband_capability() - Update FW TDLS wideband
80*5113495bSYour Name  *                                             capability in TDLS component
81*5113495bSYour Name  *
82*5113495bSYour Name  * @psoc: psoc object
83*5113495bSYour Name  * @is_fw_tdls_wideband_capable: if fw is tdls wideband capable then it is true
84*5113495bSYour Name  *
85*5113495bSYour Name  * Return: void
86*5113495bSYour Name  */
87*5113495bSYour Name void ucfg_tdls_update_fw_wideband_capability(struct wlan_objmgr_psoc *psoc,
88*5113495bSYour Name 					     bool is_fw_tdls_wideband_capable);
89*5113495bSYour Name 
90*5113495bSYour Name /**
91*5113495bSYour Name  * ucfg_tdls_is_fw_wideband_capable() - Get FW TDLS wideband capability from
92*5113495bSYour Name  *                                      TDLS component.
93*5113495bSYour Name  * @psoc: psoc object
94*5113495bSYour Name  *
95*5113495bSYour Name  * Return: true if fw supports tdls wideband
96*5113495bSYour Name  */
97*5113495bSYour Name bool ucfg_tdls_is_fw_wideband_capable(struct wlan_objmgr_psoc *psoc);
98*5113495bSYour Name 
99*5113495bSYour Name #ifdef WLAN_FEATURE_11AX
100*5113495bSYour Name /**
101*5113495bSYour Name  * ucfg_tdls_update_fw_11ax_capability() - Update FW TDLS 11ax capability in
102*5113495bSYour Name  *                                      TDLS Component
103*5113495bSYour Name  * @psoc: psoc object
104*5113495bSYour Name  * @is_fw_tdls_11ax_capable: bool if fw is tdls 11ax capable then it is true
105*5113495bSYour Name  *
106*5113495bSYour Name  * Return: void
107*5113495bSYour Name  */
108*5113495bSYour Name void ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc *psoc,
109*5113495bSYour Name 					 bool is_fw_tdls_11ax_capable);
110*5113495bSYour Name 
111*5113495bSYour Name /**
112*5113495bSYour Name  * ucfg_update_fw_tdls_6g_capability() - Update FW TDLS 6g capability in TDLS
113*5113495bSYour Name  *                                    Component
114*5113495bSYour Name  * @psoc: psoc object
115*5113495bSYour Name  * @is_fw_tdls_6g_capable: set to true if firmware supports TDLS on 6G band
116*5113495bSYour Name  *
117*5113495bSYour Name  * Return: void
118*5113495bSYour Name  */
119*5113495bSYour Name void ucfg_update_fw_tdls_6g_capability(struct wlan_objmgr_psoc *psoc,
120*5113495bSYour Name 				       bool is_fw_tdls_6g_capable);
121*5113495bSYour Name 
122*5113495bSYour Name /**
123*5113495bSYour Name  * ucfg_tdls_is_fw_11ax_capable() - Get FW TDLS 11ax capability from TLDS
124*5113495bSYour Name  *                                    component.
125*5113495bSYour Name  * @psoc: psoc object
126*5113495bSYour Name  *
127*5113495bSYour Name  * Return: true if fw supports tdls 11ax
128*5113495bSYour Name  */
129*5113495bSYour Name bool ucfg_tdls_is_fw_11ax_capable(struct wlan_objmgr_psoc *psoc);
130*5113495bSYour Name 
131*5113495bSYour Name /**
132*5113495bSYour Name  * ucfg_tdls_is_fw_6g_capable() - Get FW TDLS 6g capability from TLDS
133*5113495bSYour Name  *                                component.
134*5113495bSYour Name  * @psoc: psoc object
135*5113495bSYour Name  *
136*5113495bSYour Name  * Return: true if fw supports tdls on 6ghz band
137*5113495bSYour Name  */
138*5113495bSYour Name bool ucfg_tdls_is_fw_6g_capable(struct wlan_objmgr_psoc *psoc);
139*5113495bSYour Name 
140*5113495bSYour Name #else
141*5113495bSYour Name static inline
ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc * psoc,bool is_fw_tdls_11ax_capable)142*5113495bSYour Name void ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc *psoc,
143*5113495bSYour Name 					 bool is_fw_tdls_11ax_capable)
144*5113495bSYour Name {
145*5113495bSYour Name }
146*5113495bSYour Name 
147*5113495bSYour Name static inline
ucfg_tdls_is_fw_11ax_capable(struct wlan_objmgr_psoc * psoc)148*5113495bSYour Name bool  ucfg_tdls_is_fw_11ax_capable(struct wlan_objmgr_psoc *psoc)
149*5113495bSYour Name {
150*5113495bSYour Name return false;
151*5113495bSYour Name }
152*5113495bSYour Name 
153*5113495bSYour Name static inline
ucfg_update_fw_tdls_6g_capability(struct wlan_objmgr_psoc * psoc,bool is_fw_tdls_6g_capable)154*5113495bSYour Name void ucfg_update_fw_tdls_6g_capability(struct wlan_objmgr_psoc *psoc,
155*5113495bSYour Name 				       bool is_fw_tdls_6g_capable)
156*5113495bSYour Name {
157*5113495bSYour Name }
158*5113495bSYour Name 
159*5113495bSYour Name static inline
ucfg_tdls_is_fw_6g_capable(struct wlan_objmgr_psoc * psoc)160*5113495bSYour Name bool  ucfg_tdls_is_fw_6g_capable(struct wlan_objmgr_psoc *psoc)
161*5113495bSYour Name {
162*5113495bSYour Name return false;
163*5113495bSYour Name }
164*5113495bSYour Name #endif
165*5113495bSYour Name 
166*5113495bSYour Name #ifdef WLAN_FEATURE_11BE
167*5113495bSYour Name /**
168*5113495bSYour Name  * ucfg_tdls_update_fw_mlo_capability() - update fw mlo capability
169*5113495bSYour Name  * @psoc: psoc object
170*5113495bSYour Name  * @is_fw_tdls_mlo_capable: bool value
171*5113495bSYour Name  *
172*5113495bSYour Name  * Return: none
173*5113495bSYour Name  */
174*5113495bSYour Name void ucfg_tdls_update_fw_mlo_capability(struct wlan_objmgr_psoc *psoc,
175*5113495bSYour Name 					bool is_fw_tdls_mlo_capable);
176*5113495bSYour Name #else
177*5113495bSYour Name static inline
ucfg_tdls_update_fw_mlo_capability(struct wlan_objmgr_psoc * psoc,bool is_fw_tdls_mlo_capable)178*5113495bSYour Name void ucfg_tdls_update_fw_mlo_capability(struct wlan_objmgr_psoc *psoc,
179*5113495bSYour Name 					bool is_fw_tdls_mlo_capable)
180*5113495bSYour Name {
181*5113495bSYour Name }
182*5113495bSYour Name #endif
183*5113495bSYour Name 
184*5113495bSYour Name /**
185*5113495bSYour Name  * ucfg_tdls_link_vdev_is_matching() - check whether vdev is matching link vdev
186*5113495bSYour Name  * @vdev: vdev object
187*5113495bSYour Name  *
188*5113495bSYour Name  * Return: bool
189*5113495bSYour Name  */
190*5113495bSYour Name bool ucfg_tdls_link_vdev_is_matching(struct wlan_objmgr_vdev *vdev);
191*5113495bSYour Name 
192*5113495bSYour Name /**
193*5113495bSYour Name  * ucfg_tdls_get_tdls_link_vdev() - get tdls link vdev
194*5113495bSYour Name  * @vdev: vdev object
195*5113495bSYour Name  * @dbg_id: debug id
196*5113495bSYour Name  *
197*5113495bSYour Name  * Return: vdev pointer
198*5113495bSYour Name  */
199*5113495bSYour Name struct wlan_objmgr_vdev *
200*5113495bSYour Name ucfg_tdls_get_tdls_link_vdev(struct wlan_objmgr_vdev *vdev,
201*5113495bSYour Name 			     wlan_objmgr_ref_dbgid dbg_id);
202*5113495bSYour Name 
203*5113495bSYour Name /**
204*5113495bSYour Name  * ucfg_tdls_put_tdls_link_vdev() - put tdls link vdev
205*5113495bSYour Name  * @vdev: vdev odject
206*5113495bSYour Name  * @dbg_id: debug id
207*5113495bSYour Name  *
208*5113495bSYour Name  * Return: void
209*5113495bSYour Name  */
210*5113495bSYour Name void ucfg_tdls_put_tdls_link_vdev(struct wlan_objmgr_vdev *vdev,
211*5113495bSYour Name 				  wlan_objmgr_ref_dbgid dbg_id);
212*5113495bSYour Name 
213*5113495bSYour Name /**
214*5113495bSYour Name  * ucfg_tdls_psoc_enable() - TDLS module enable API
215*5113495bSYour Name  * @psoc: psoc object
216*5113495bSYour Name  *
217*5113495bSYour Name  * Return: QDF_STATUS
218*5113495bSYour Name  */
219*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc *psoc);
220*5113495bSYour Name 
221*5113495bSYour Name /**
222*5113495bSYour Name  * ucfg_tdls_psoc_disable() - TDLS module disable API
223*5113495bSYour Name  * @psoc: psoc object
224*5113495bSYour Name  *
225*5113495bSYour Name  * Return: QDF_STATUS
226*5113495bSYour Name  */
227*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc *psoc);
228*5113495bSYour Name 
229*5113495bSYour Name /**
230*5113495bSYour Name  * ucfg_tdls_add_peer() - handle TDLS add peer
231*5113495bSYour Name  * @vdev: vdev object
232*5113495bSYour Name  * @add_peer_req: add peer request parameters
233*5113495bSYour Name  *
234*5113495bSYour Name  * Return: QDF_STATUS
235*5113495bSYour Name  */
236*5113495bSYour Name QDF_STATUS ucfg_tdls_add_peer(struct wlan_objmgr_vdev *vdev,
237*5113495bSYour Name 			      struct tdls_add_peer_params *add_peer_req);
238*5113495bSYour Name 
239*5113495bSYour Name /**
240*5113495bSYour Name  * ucfg_tdls_update_peer() - handle TDLS update peer
241*5113495bSYour Name  * @vdev: vdev object
242*5113495bSYour Name  * @update_peer: update TDLS request parameters
243*5113495bSYour Name  *
244*5113495bSYour Name  * Return: QDF_STATUS
245*5113495bSYour Name  */
246*5113495bSYour Name QDF_STATUS ucfg_tdls_update_peer(struct wlan_objmgr_vdev *vdev,
247*5113495bSYour Name 				 struct tdls_update_peer_params *update_peer);
248*5113495bSYour Name 
249*5113495bSYour Name /**
250*5113495bSYour Name  * ucfg_tdls_oper() - handle TDLS oper functions
251*5113495bSYour Name  * @vdev: vdev object
252*5113495bSYour Name  * @macaddr: MAC address of TDLS peer
253*5113495bSYour Name  * @cmd: oper cmd
254*5113495bSYour Name  *
255*5113495bSYour Name  * Return: QDF_STATUS
256*5113495bSYour Name  */
257*5113495bSYour Name QDF_STATUS ucfg_tdls_oper(struct wlan_objmgr_vdev *vdev,
258*5113495bSYour Name 			  const uint8_t *macaddr, enum tdls_command_type cmd);
259*5113495bSYour Name 
260*5113495bSYour Name /**
261*5113495bSYour Name  * ucfg_tdls_get_all_peers() - get all tdls peers from the list
262*5113495bSYour Name  * @vdev: vdev object
263*5113495bSYour Name  * @buf: output buffer
264*5113495bSYour Name  * @buflen: length of written data
265*5113495bSYour Name  *
266*5113495bSYour Name  * Return: QDF_STATUS
267*5113495bSYour Name  */
268*5113495bSYour Name QDF_STATUS ucfg_tdls_get_all_peers(struct wlan_objmgr_vdev *vdev,
269*5113495bSYour Name 				   char *buf, int buflen);
270*5113495bSYour Name 
271*5113495bSYour Name /**
272*5113495bSYour Name  * ucfg_tdls_send_mgmt_frame() - send TDLS mgmt frame
273*5113495bSYour Name  * @mgmt_req: pointer to TDLS action frame request struct
274*5113495bSYour Name  *
275*5113495bSYour Name  * This will TDLS action frames to peer
276*5113495bSYour Name  *
277*5113495bSYour Name  * Return: QDF_STATUS
278*5113495bSYour Name  */
279*5113495bSYour Name QDF_STATUS ucfg_tdls_send_mgmt_frame(
280*5113495bSYour Name 				struct tdls_action_frame_request *mgmt_req);
281*5113495bSYour Name 
282*5113495bSYour Name /**
283*5113495bSYour Name  * ucfg_tdls_responder() - set responder in TDLS peer
284*5113495bSYour Name  * @msg_req: responder msg
285*5113495bSYour Name  *
286*5113495bSYour Name  * Return: QDF_STATUS
287*5113495bSYour Name  */
288*5113495bSYour Name QDF_STATUS ucfg_tdls_responder(struct tdls_set_responder_req *msg_req);
289*5113495bSYour Name 
290*5113495bSYour Name /**
291*5113495bSYour Name  * ucfg_tdls_teardown_links() - notify TDLS modules to teardown all TDLS links.
292*5113495bSYour Name  * @psoc: psoc object
293*5113495bSYour Name  *
294*5113495bSYour Name  * Return: QDF_STATUS
295*5113495bSYour Name  */
296*5113495bSYour Name QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_psoc *psoc);
297*5113495bSYour Name 
298*5113495bSYour Name /**
299*5113495bSYour Name  * ucfg_tdls_teardown_links_sync() - teardown all TDLS links.
300*5113495bSYour Name  * @psoc: psoc object
301*5113495bSYour Name  * @vdev: Vdev object pointer
302*5113495bSYour Name  *
303*5113495bSYour Name  * Return: None
304*5113495bSYour Name  */
305*5113495bSYour Name void ucfg_tdls_teardown_links_sync(struct wlan_objmgr_psoc *psoc,
306*5113495bSYour Name 				   struct wlan_objmgr_vdev *vdev);
307*5113495bSYour Name 
308*5113495bSYour Name /**
309*5113495bSYour Name  * ucfg_tdls_notify_reset_adapter() - notify reset adapter
310*5113495bSYour Name  * @vdev: vdev object manager
311*5113495bSYour Name  *
312*5113495bSYour Name  * Return: QDF_STATUS
313*5113495bSYour Name  */
314*5113495bSYour Name QDF_STATUS ucfg_tdls_notify_reset_adapter(struct wlan_objmgr_vdev *vdev);
315*5113495bSYour Name 
316*5113495bSYour Name /**
317*5113495bSYour Name  * ucfg_tdls_set_operating_mode() - set operating mode
318*5113495bSYour Name  * @set_mode_params: set mode params
319*5113495bSYour Name  *
320*5113495bSYour Name  * Return: QDF_STATUS
321*5113495bSYour Name  */
322*5113495bSYour Name QDF_STATUS ucfg_tdls_set_operating_mode(
323*5113495bSYour Name 			struct tdls_set_mode_params *set_mode_params);
324*5113495bSYour Name 
325*5113495bSYour Name /**
326*5113495bSYour Name  * ucfg_tdls_update_rx_pkt_cnt() - update rx pkt count
327*5113495bSYour Name  * @vdev: tdls vdev object
328*5113495bSYour Name  * @mac_addr: peer mac address
329*5113495bSYour Name  * @dest_mac_addr: dest mac address
330*5113495bSYour Name  *
331*5113495bSYour Name  * Return: None
332*5113495bSYour Name  */
333*5113495bSYour Name void ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
334*5113495bSYour Name 				 struct qdf_mac_addr *mac_addr,
335*5113495bSYour Name 				 struct qdf_mac_addr *dest_mac_addr);
336*5113495bSYour Name 
337*5113495bSYour Name /**
338*5113495bSYour Name  * ucfg_tdls_update_tx_pkt_cnt() - update tx pkt count
339*5113495bSYour Name  * @vdev: tdls vdev object
340*5113495bSYour Name  * @mac_addr: peer mac address
341*5113495bSYour Name  *
342*5113495bSYour Name  * Return: None
343*5113495bSYour Name  */
344*5113495bSYour Name void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
345*5113495bSYour Name 				 struct qdf_mac_addr *mac_addr);
346*5113495bSYour Name 
347*5113495bSYour Name /**
348*5113495bSYour Name  * ucfg_tdls_antenna_switch() - tdls antenna switch
349*5113495bSYour Name  * @vdev: tdls vdev object
350*5113495bSYour Name  * @mode: antenna mode
351*5113495bSYour Name  *
352*5113495bSYour Name  * Return: QDF_STATUS
353*5113495bSYour Name  */
354*5113495bSYour Name QDF_STATUS ucfg_tdls_antenna_switch(struct wlan_objmgr_vdev *vdev,
355*5113495bSYour Name 				    uint32_t mode);
356*5113495bSYour Name 
357*5113495bSYour Name /**
358*5113495bSYour Name  * ucfg_set_tdls_offchannel() - Handle TDLS set offchannel
359*5113495bSYour Name  * @vdev: vdev object
360*5113495bSYour Name  * @offchannel: updated offchannel
361*5113495bSYour Name  *
362*5113495bSYour Name  * Return: QDF_STATUS
363*5113495bSYour Name  */
364*5113495bSYour Name QDF_STATUS ucfg_set_tdls_offchannel(struct wlan_objmgr_vdev *vdev,
365*5113495bSYour Name 				    int offchannel);
366*5113495bSYour Name 
367*5113495bSYour Name /**
368*5113495bSYour Name  * ucfg_set_tdls_offchan_mode() - Handle TDLS set offchannel mode
369*5113495bSYour Name  * @vdev: vdev object
370*5113495bSYour Name  * @offchanmode: updated off-channel mode
371*5113495bSYour Name  *
372*5113495bSYour Name  * Return: QDF_STATUS
373*5113495bSYour Name  */
374*5113495bSYour Name QDF_STATUS ucfg_set_tdls_offchan_mode(struct wlan_objmgr_vdev *vdev,
375*5113495bSYour Name 				      int offchanmode);
376*5113495bSYour Name 
377*5113495bSYour Name /**
378*5113495bSYour Name  * ucfg_set_tdls_secoffchanneloffset() - Handle TDLS set offchannel offset
379*5113495bSYour Name  * @vdev: vdev object
380*5113495bSYour Name  * @offchanoffset: tdls off-channel offset
381*5113495bSYour Name  *
382*5113495bSYour Name  * Return: QDF_STATUS
383*5113495bSYour Name  */
384*5113495bSYour Name QDF_STATUS ucfg_set_tdls_secoffchanneloffset(struct wlan_objmgr_vdev *vdev,
385*5113495bSYour Name 					     int offchanoffset);
386*5113495bSYour Name 
387*5113495bSYour Name /**
388*5113495bSYour Name  * ucfg_tdls_discovery_on_going() - check discovery is on going
389*5113495bSYour Name  * @vdev: vdev object
390*5113495bSYour Name  *
391*5113495bSYour Name  * Return: true if tdls discovery on going else false
392*5113495bSYour Name  */
393*5113495bSYour Name bool ucfg_tdls_discovery_on_going(struct wlan_objmgr_vdev *vdev);
394*5113495bSYour Name 
395*5113495bSYour Name /**
396*5113495bSYour Name  * ucfg_tdls_get_mlo_vdev() - get mlo vdev for tdls
397*5113495bSYour Name  * @vdev: vdev object
398*5113495bSYour Name  * @index: index of vdev in mlo list
399*5113495bSYour Name  * @dbg_id: debug id
400*5113495bSYour Name  *
401*5113495bSYour Name  * Return: vdev pointer
402*5113495bSYour Name  */
403*5113495bSYour Name struct wlan_objmgr_vdev *ucfg_tdls_get_mlo_vdev(struct wlan_objmgr_vdev *vdev,
404*5113495bSYour Name 						uint8_t index,
405*5113495bSYour Name 						wlan_objmgr_ref_dbgid dbg_id);
406*5113495bSYour Name 
407*5113495bSYour Name /**
408*5113495bSYour Name  * ucfg_tdls_release_mlo_vdev() - release mlo vdev for tdls
409*5113495bSYour Name  * @vdev: vdev object
410*5113495bSYour Name  * @dbg_id: debug id
411*5113495bSYour Name  *
412*5113495bSYour Name  * Return: void
413*5113495bSYour Name  */
414*5113495bSYour Name void ucfg_tdls_release_mlo_vdev(struct wlan_objmgr_vdev *vdev,
415*5113495bSYour Name 				wlan_objmgr_ref_dbgid dbg_id);
416*5113495bSYour Name /**
417*5113495bSYour Name  * ucfg_tdls_set_rssi() - API to set TDLS RSSI on peer given by mac
418*5113495bSYour Name  * @vdev: vdev object
419*5113495bSYour Name  * @mac: MAC address of Peer
420*5113495bSYour Name  * @rssi: rssi value
421*5113495bSYour Name  *
422*5113495bSYour Name  * Set RSSI on TDLS peer
423*5113495bSYour Name  *
424*5113495bSYour Name  * Return: QDF_STATUS
425*5113495bSYour Name  */
426*5113495bSYour Name QDF_STATUS ucfg_tdls_set_rssi(struct wlan_objmgr_vdev *vdev,
427*5113495bSYour Name 			      uint8_t *mac, int8_t rssi);
428*5113495bSYour Name 
429*5113495bSYour Name /**
430*5113495bSYour Name  * ucfg_tdls_notify_connect_failure() - This api is called if STA/P2P
431*5113495bSYour Name  * connection fails on one iface and to enable/disable TDLS on the other
432*5113495bSYour Name  * STA/P2P iface which is already connected.It is a wrapper function to
433*5113495bSYour Name  * API wlan_tdls_notify_connect_failure()
434*5113495bSYour Name  * @psoc: psoc object
435*5113495bSYour Name  *
436*5113495bSYour Name  * Return: void
437*5113495bSYour Name  */
438*5113495bSYour Name void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc);
439*5113495bSYour Name 
440*5113495bSYour Name /**
441*5113495bSYour Name  * ucfg_get_tdls_conn_peer_count() - This api is called to get number of
442*5113495bSYour Name  *                                    connected TDLS peer
443*5113495bSYour Name  * @vdev: vdev object
444*5113495bSYour Name  *
445*5113495bSYour Name  * Return: tdls connected peer count
446*5113495bSYour Name  */
447*5113495bSYour Name uint16_t ucfg_get_tdls_conn_peer_count(struct wlan_objmgr_vdev *vdev);
448*5113495bSYour Name 
449*5113495bSYour Name /**
450*5113495bSYour Name  * ucfg_get_tdls_vdev() - Ucfg api to get tdls specific vdev object
451*5113495bSYour Name  * @psoc: wlan psoc object manager
452*5113495bSYour Name  * @dbg_id: debug id
453*5113495bSYour Name  *
454*5113495bSYour Name  * If TDLS is enabled on any vdev then return the corresponding vdev.
455*5113495bSYour Name  *
456*5113495bSYour Name  * This api increases the ref count of the returned vdev.
457*5113495bSYour Name  * Return: vdev manager pointer or NULL.
458*5113495bSYour Name  */
459*5113495bSYour Name struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
460*5113495bSYour Name 					    wlan_objmgr_ref_dbgid dbg_id);
461*5113495bSYour Name 
462*5113495bSYour Name /**
463*5113495bSYour Name  * ucfg_tdls_check_is_tdls_allowed() - Ucfg api to check is tdls allowed or not
464*5113495bSYour Name  * @vdev: vdev object
465*5113495bSYour Name  *
466*5113495bSYour Name  * Function determines the whether TDLS allowed in the system
467*5113495bSYour Name  *
468*5113495bSYour Name  * Return: true or false
469*5113495bSYour Name  */
470*5113495bSYour Name bool ucfg_tdls_check_is_tdls_allowed(struct wlan_objmgr_vdev *vdev);
471*5113495bSYour Name 
472*5113495bSYour Name /**
473*5113495bSYour Name  * ucfg_tdls_set_user_tdls_enable() - ucfg api to set tdls is enable or not
474*5113495bSYour Name  * from userspace
475*5113495bSYour Name  * @vdev: vdev object
476*5113495bSYour Name  * @is_user_tdls_enable: true if tdls is enabled from userspace
477*5113495bSYour Name  *
478*5113495bSYour Name  * Return: void
479*5113495bSYour Name  */
480*5113495bSYour Name void ucfg_tdls_set_user_tdls_enable(struct wlan_objmgr_vdev *vdev,
481*5113495bSYour Name 				    bool is_user_tdls_enable);
482*5113495bSYour Name 
483*5113495bSYour Name #else
484*5113495bSYour Name static inline
ucfg_tdls_link_vdev_is_matching(struct wlan_objmgr_vdev * vdev)485*5113495bSYour Name bool ucfg_tdls_link_vdev_is_matching(struct wlan_objmgr_vdev *vdev)
486*5113495bSYour Name {
487*5113495bSYour Name 	return false;
488*5113495bSYour Name }
489*5113495bSYour Name 
490*5113495bSYour Name static inline
491*5113495bSYour Name struct wlan_objmgr_vdev *
ucfg_tdls_get_tdls_link_vdev(struct wlan_objmgr_vdev * vdev,wlan_objmgr_ref_dbgid dbg_id)492*5113495bSYour Name ucfg_tdls_get_tdls_link_vdev(struct wlan_objmgr_vdev *vdev,
493*5113495bSYour Name 			     wlan_objmgr_ref_dbgid dbg_id)
494*5113495bSYour Name {
495*5113495bSYour Name 	return NULL;
496*5113495bSYour Name }
497*5113495bSYour Name 
498*5113495bSYour Name static inline
ucfg_tdls_put_tdls_link_vdev(struct wlan_objmgr_vdev * vdev,wlan_objmgr_ref_dbgid dbg_id)499*5113495bSYour Name void ucfg_tdls_put_tdls_link_vdev(struct wlan_objmgr_vdev *vdev,
500*5113495bSYour Name 				  wlan_objmgr_ref_dbgid dbg_id)
501*5113495bSYour Name {
502*5113495bSYour Name }
503*5113495bSYour Name 
504*5113495bSYour Name static inline
ucfg_tdls_init(void)505*5113495bSYour Name QDF_STATUS ucfg_tdls_init(void)
506*5113495bSYour Name {
507*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
508*5113495bSYour Name }
509*5113495bSYour Name 
510*5113495bSYour Name static inline
ucfg_tdls_deinit(void)511*5113495bSYour Name QDF_STATUS ucfg_tdls_deinit(void)
512*5113495bSYour Name {
513*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
514*5113495bSYour Name }
515*5113495bSYour Name 
516*5113495bSYour Name static inline
ucfg_tdls_psoc_open(struct wlan_objmgr_psoc * psoc)517*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_open(struct wlan_objmgr_psoc *psoc)
518*5113495bSYour Name {
519*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
520*5113495bSYour Name }
521*5113495bSYour Name 
522*5113495bSYour Name static inline
ucfg_tdls_psoc_close(struct wlan_objmgr_psoc * psoc)523*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_close(struct wlan_objmgr_psoc *psoc)
524*5113495bSYour Name {
525*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
526*5113495bSYour Name }
527*5113495bSYour Name 
528*5113495bSYour Name static inline
ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc * psoc)529*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_enable(struct wlan_objmgr_psoc *psoc)
530*5113495bSYour Name {
531*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
532*5113495bSYour Name }
533*5113495bSYour Name 
534*5113495bSYour Name static inline
ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc * psoc)535*5113495bSYour Name QDF_STATUS ucfg_tdls_psoc_disable(struct wlan_objmgr_psoc *psoc)
536*5113495bSYour Name {
537*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
538*5113495bSYour Name }
539*5113495bSYour Name 
540*5113495bSYour Name static inline
ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev * vdev,struct qdf_mac_addr * mac_addr,struct qdf_mac_addr * dest_mac_addr)541*5113495bSYour Name void ucfg_tdls_update_rx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
542*5113495bSYour Name 				 struct qdf_mac_addr *mac_addr,
543*5113495bSYour Name 				 struct qdf_mac_addr *dest_mac_addr)
544*5113495bSYour Name {
545*5113495bSYour Name }
546*5113495bSYour Name 
547*5113495bSYour Name static inline
ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev * vdev,struct qdf_mac_addr * mac_addr)548*5113495bSYour Name void ucfg_tdls_update_tx_pkt_cnt(struct wlan_objmgr_vdev *vdev,
549*5113495bSYour Name 				 struct qdf_mac_addr *mac_addr)
550*5113495bSYour Name {
551*5113495bSYour Name }
552*5113495bSYour Name 
553*5113495bSYour Name static inline
ucfg_tdls_teardown_links(struct wlan_objmgr_psoc * psoc)554*5113495bSYour Name QDF_STATUS ucfg_tdls_teardown_links(struct wlan_objmgr_psoc *psoc)
555*5113495bSYour Name {
556*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
557*5113495bSYour Name }
558*5113495bSYour Name 
559*5113495bSYour Name static inline
ucfg_tdls_teardown_links_sync(struct wlan_objmgr_psoc * psoc,struct wlan_objmgr_vdev * vdev)560*5113495bSYour Name void ucfg_tdls_teardown_links_sync(struct wlan_objmgr_psoc *psoc,
561*5113495bSYour Name 				   struct wlan_objmgr_vdev *vdev)
562*5113495bSYour Name {
563*5113495bSYour Name }
564*5113495bSYour Name 
565*5113495bSYour Name static inline
ucfg_tdls_set_rssi(struct wlan_objmgr_vdev * vdev,uint8_t * mac,int8_t rssi)566*5113495bSYour Name QDF_STATUS ucfg_tdls_set_rssi(struct wlan_objmgr_vdev *vdev,
567*5113495bSYour Name 			      uint8_t *mac, int8_t rssi)
568*5113495bSYour Name {
569*5113495bSYour Name 	return QDF_STATUS_SUCCESS;
570*5113495bSYour Name }
571*5113495bSYour Name 
572*5113495bSYour Name static inline
ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc * psoc)573*5113495bSYour Name void ucfg_tdls_notify_connect_failure(struct wlan_objmgr_psoc *psoc)
574*5113495bSYour Name {
575*5113495bSYour Name }
576*5113495bSYour Name 
577*5113495bSYour Name static inline
ucfg_get_tdls_vdev(struct wlan_objmgr_psoc * psoc,wlan_objmgr_ref_dbgid dbg_id)578*5113495bSYour Name struct wlan_objmgr_vdev *ucfg_get_tdls_vdev(struct wlan_objmgr_psoc *psoc,
579*5113495bSYour Name 					    wlan_objmgr_ref_dbgid dbg_id)
580*5113495bSYour Name {
581*5113495bSYour Name 	return NULL;
582*5113495bSYour Name }
583*5113495bSYour Name 
584*5113495bSYour Name static inline
ucfg_tdls_check_is_tdls_allowed(struct wlan_objmgr_vdev * vdev)585*5113495bSYour Name bool ucfg_tdls_check_is_tdls_allowed(struct wlan_objmgr_vdev *vdev)
586*5113495bSYour Name {
587*5113495bSYour Name 	return false;
588*5113495bSYour Name }
589*5113495bSYour Name 
590*5113495bSYour Name static inline
ucfg_tdls_set_user_tdls_enable(struct wlan_objmgr_vdev * vdev,bool is_user_tdls_enable)591*5113495bSYour Name void ucfg_tdls_set_user_tdls_enable(struct wlan_objmgr_vdev *vdev,
592*5113495bSYour Name 				    bool is_user_tdls_enable)
593*5113495bSYour Name {
594*5113495bSYour Name }
595*5113495bSYour Name 
596*5113495bSYour Name static inline
ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc * psoc,bool is_fw_tdls_11ax_capable)597*5113495bSYour Name void ucfg_tdls_update_fw_11ax_capability(struct wlan_objmgr_psoc *psoc,
598*5113495bSYour Name 					 bool is_fw_tdls_11ax_capable)
599*5113495bSYour Name {
600*5113495bSYour Name }
601*5113495bSYour Name 
602*5113495bSYour Name static inline
ucfg_tdls_is_fw_11ax_capable(struct wlan_objmgr_psoc * psoc)603*5113495bSYour Name bool  ucfg_tdls_is_fw_11ax_capable(struct wlan_objmgr_psoc *psoc)
604*5113495bSYour Name {
605*5113495bSYour Name return false;
606*5113495bSYour Name }
607*5113495bSYour Name #endif /* FEATURE_WLAN_TDLS */
608*5113495bSYour Name #endif
609