xref: /wlan-driver/qca-wifi-host-cmn/umac/scan/dispatcher/inc/wlan_scan_tgt_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) 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: contains scan south bound interface definitions
22*5113495bSYour Name  */
23*5113495bSYour Name 
24*5113495bSYour Name #ifndef _WLAN_SCAN_TGT_API_H_
25*5113495bSYour Name #define _WLAN_SCAN_TGT_API_H_
26*5113495bSYour Name 
27*5113495bSYour Name #include <wlan_objmgr_psoc_obj.h>
28*5113495bSYour Name #include <wlan_objmgr_pdev_obj.h>
29*5113495bSYour Name #include <wlan_objmgr_vdev_obj.h>
30*5113495bSYour Name #include <wlan_objmgr_peer_obj.h>
31*5113495bSYour Name #include <wlan_scan_public_structs.h>
32*5113495bSYour Name #include <wlan_mgmt_txrx_utils_api.h>
33*5113495bSYour Name 
34*5113495bSYour Name /**
35*5113495bSYour Name  * tgt_scan_bcn_probe_rx_callback() - The callbeack registered to tx/rx module
36*5113495bSYour Name  * @psoc: psoc context
37*5113495bSYour Name  * @peer: peer
38*5113495bSYour Name  * @buf: frame buf
39*5113495bSYour Name  * @rx_param: rx event params
40*5113495bSYour Name  * @frm_type: frame type
41*5113495bSYour Name  *
42*5113495bSYour Name  * The callbeack registered to tx/rx module and is called when beacon
43*5113495bSYour Name  * or probe resp is received. This will post a msg to target_if queue.
44*5113495bSYour Name  *
45*5113495bSYour Name  * Return: success or error code.
46*5113495bSYour Name  */
47*5113495bSYour Name QDF_STATUS tgt_scan_bcn_probe_rx_callback(struct wlan_objmgr_psoc *psoc,
48*5113495bSYour Name 	struct wlan_objmgr_peer *peer, qdf_nbuf_t buf,
49*5113495bSYour Name 	struct mgmt_rx_event_params *rx_param,
50*5113495bSYour Name 	enum mgmt_frame_type frm_type);
51*5113495bSYour Name 
52*5113495bSYour Name /**
53*5113495bSYour Name  * tgt_scan_event_handler() - The callbeack registered to WMI for scan events
54*5113495bSYour Name  * @psoc: psoc handle
55*5113495bSYour Name  * @event_info: event info
56*5113495bSYour Name  *
57*5113495bSYour Name  * The callbeack registered to WMI for scan events and is called
58*5113495bSYour Name  * event for scan is received. This will post a msg to target_if queue.
59*5113495bSYour Name  *
60*5113495bSYour Name  * Return: 0 for success or error code.
61*5113495bSYour Name  */
62*5113495bSYour Name QDF_STATUS
63*5113495bSYour Name tgt_scan_event_handler(struct wlan_objmgr_psoc *psoc,
64*5113495bSYour Name 	struct scan_event_info *event_info);
65*5113495bSYour Name 
66*5113495bSYour Name #ifdef FEATURE_WLAN_SCAN_PNO
67*5113495bSYour Name 
68*5113495bSYour Name /**
69*5113495bSYour Name  * tgt_scan_pno_start() - invoke lmac send PNO start req
70*5113495bSYour Name  * @vdev: vdev pointer
71*5113495bSYour Name  * @req: pno req params
72*5113495bSYour Name  *
73*5113495bSYour Name  * Return: 0 for success or error code.
74*5113495bSYour Name  */
75*5113495bSYour Name QDF_STATUS tgt_scan_pno_start(struct wlan_objmgr_vdev *vdev,
76*5113495bSYour Name 	struct pno_scan_req_params *req);
77*5113495bSYour Name 
78*5113495bSYour Name /**
79*5113495bSYour Name  * tgt_scan_pno_stop() - invoke lmac send PNO stop req
80*5113495bSYour Name  * @vdev: vdev pointer
81*5113495bSYour Name  * @vdev_id: pno req params
82*5113495bSYour Name  *
83*5113495bSYour Name  * Return: 0 for success or error code.
84*5113495bSYour Name  */
85*5113495bSYour Name QDF_STATUS tgt_scan_pno_stop(struct wlan_objmgr_vdev *vdev,
86*5113495bSYour Name 	uint8_t vdev_id);
87*5113495bSYour Name 
88*5113495bSYour Name #endif
89*5113495bSYour Name 
90*5113495bSYour Name /**
91*5113495bSYour Name  * tgt_scan_obss_disable() - invoke lmac disable obss scan req
92*5113495bSYour Name  * @vdev: vdev pointer
93*5113495bSYour Name  *
94*5113495bSYour Name  *
95*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
96*5113495bSYour Name  */
97*5113495bSYour Name QDF_STATUS tgt_scan_obss_disable(struct wlan_objmgr_vdev *vdev);
98*5113495bSYour Name 
99*5113495bSYour Name /**
100*5113495bSYour Name  * tgt_scan_start() - invoke lmac scan start
101*5113495bSYour Name  * @req: scan request object
102*5113495bSYour Name  *
103*5113495bSYour Name  * This API invokes lmac API function to start scan
104*5113495bSYour Name  *
105*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
106*5113495bSYour Name  */
107*5113495bSYour Name QDF_STATUS
108*5113495bSYour Name tgt_scan_start(struct scan_start_request *req);
109*5113495bSYour Name 
110*5113495bSYour Name 
111*5113495bSYour Name /**
112*5113495bSYour Name  * tgt_scan_cancel() - invoke lmac scan cancel
113*5113495bSYour Name  * @req: scan request object
114*5113495bSYour Name  *
115*5113495bSYour Name  * This API invokes lmac API function to cancel scan
116*5113495bSYour Name  *
117*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
118*5113495bSYour Name  */
119*5113495bSYour Name QDF_STATUS
120*5113495bSYour Name tgt_scan_cancel(struct scan_cancel_request *req);
121*5113495bSYour Name 
122*5113495bSYour Name /**
123*5113495bSYour Name  * tgt_scan_register_ev_handler() - invoke lmac register scan event handler
124*5113495bSYour Name  * @psoc: psoc object
125*5113495bSYour Name  *
126*5113495bSYour Name  * This API invokes lmac API function to register for scan events
127*5113495bSYour Name  *
128*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
129*5113495bSYour Name  */
130*5113495bSYour Name QDF_STATUS
131*5113495bSYour Name tgt_scan_register_ev_handler(struct wlan_objmgr_psoc *psoc);
132*5113495bSYour Name 
133*5113495bSYour Name /**
134*5113495bSYour Name  * tgt_scan_unregister_ev_handler() - invoke lmac unregister scan event handler
135*5113495bSYour Name  * @psoc: psoc object
136*5113495bSYour Name  *
137*5113495bSYour Name  * This API invokes lmac API function to unregister for scan events
138*5113495bSYour Name  *
139*5113495bSYour Name  * Return: QDF_STATUS_SUCCESS for success or error code.
140*5113495bSYour Name  */
141*5113495bSYour Name QDF_STATUS
142*5113495bSYour Name tgt_scan_unregister_ev_handler(struct wlan_objmgr_psoc *psoc);
143*5113495bSYour Name 
144*5113495bSYour Name /**
145*5113495bSYour Name  * tgt_scan_set_max_active_scans() - lmac handler to set max active scans
146*5113495bSYour Name  * @psoc: psoc object
147*5113495bSYour Name  * @max_active_scans: maximum active scans allowed on underlying psoc
148*5113495bSYour Name  *
149*5113495bSYour Name  * Return: QDF_STATUS
150*5113495bSYour Name  */
151*5113495bSYour Name QDF_STATUS
152*5113495bSYour Name tgt_scan_set_max_active_scans(struct wlan_objmgr_psoc *psoc,
153*5113495bSYour Name 		uint32_t max_active_scans);
154*5113495bSYour Name 
155*5113495bSYour Name #endif
156