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