xref: /wlan-dirver/qca-wifi-host-cmn/umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.h (revision 503663c6daafffe652fa360bde17243568cd6d2a)
1 /*
2  * Copyright (c) 2019 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: vdev_mgr_ops.h
21  *
22  * This header file provides API declarations for filling data structures
23  * and sending vdev mgmt commands to target_if/mlme/vdev_mgr
24  */
25 
26 #ifndef __VDEV_MGR_OPS_H__
27 #define __VDEV_MGR_OPS_H__
28 
29 #include <wlan_objmgr_vdev_obj.h>
30 #include <wlan_vdev_mgr_tgt_if_tx_defs.h>
31 #include <wlan_mlme_dbg.h>
32 #include "include/wlan_vdev_mlme.h"
33 
34 /**
35  * vdev_mgr_create_send() – MLME API to create command to
36  * target_if
37  * @mlme_obj: pointer to vdev_mlme_obj
38  *
39  * Return: QDF_STATUS - Success or Failure
40  */
41 QDF_STATUS vdev_mgr_create_send(struct vdev_mlme_obj *mlme_obj);
42 
43 /**
44  * vdev_mgr_start_send() – MLME API to send start request to
45  * target_if
46  * @mlme_obj: pointer to vdev_mlme_obj
47  * @restart: flag to indicate type of request START/RESTART
48  *
49  * Return: QDF_STATUS - Success or Failure
50  */
51 QDF_STATUS vdev_mgr_start_send(struct vdev_mlme_obj *mlme_obj, bool restart);
52 
53 /**
54  * vdev_mgr_delete_send() – MLME API to send delete request to
55  * target_if
56  * @mlme_obj: pointer to vdev_mlme_obj
57  *
58  * Return: QDF_STATUS - Success or Failure
59  */
60 QDF_STATUS vdev_mgr_delete_send(struct vdev_mlme_obj *mlme_obj);
61 
62 /**
63  * vdev_mgr_peer_flush_tids_send () – MLME API to setup peer flush tids
64  * @mlme_obj: pointer to vdev_mlme_obj
65  * @mac: pointer to peer mac address
66  * @peer_tid_bitmap: peer tid bitmap
67  *
68  * Return: QDF_STATUS - Success or Failure
69  */
70 QDF_STATUS vdev_mgr_peer_flush_tids_send(struct vdev_mlme_obj *mlme_obj,
71 					 uint8_t *mac,
72 					 uint32_t peer_tid_bitmap);
73 /**
74  * vdev_mgr_stop_send () – MLME API to send STOP request
75  * @mlme_obj: pointer to vdev_mlme_obj
76  *
77  * Return: QDF_STATUS - Success or Failure
78  */
79 QDF_STATUS vdev_mgr_stop_send(struct vdev_mlme_obj *mlme_obj);
80 
81 /**
82  * vdev_mgr_up_send () – MLME API to send UP command
83  * @mlme_obj: pointer to vdev_mlme_obj
84  *
85  * Return: QDF_STATUS - Success or Failure
86  */
87 QDF_STATUS vdev_mgr_up_send(struct vdev_mlme_obj *mlme_obj);
88 
89 /**
90  * vdev_mgr_down_send () – MLME API to send down command
91  * @mlme_obj: pointer to vdev_mlme_obj
92  *
93  * Return: QDF_STATUS - Success or Failure
94  */
95 QDF_STATUS vdev_mgr_down_send(struct vdev_mlme_obj *mlme_obj);
96 
97 /**
98  * vdev_mgr_set_param_send() – MLME API to send vdev param
99  * @mlme_obj: pointer to vdev_mlme_obj
100  * @param_id: parameter id
101  * @param_value: value corresponding to parameter id
102  *
103  * Return: QDF_STATUS - Success or Failure
104  */
105 QDF_STATUS vdev_mgr_set_param_send(struct vdev_mlme_obj *mlme_obj,
106 				   uint32_t param_id,
107 				   uint32_t param_value);
108 
109 /**
110  * vdev_mgr_set_neighbour_rx_cmd_send() – MLME API to send neighbour Rx
111  * cmd
112  * @mlme_obj: pointer to vdev_mlme_obj
113  * @param: pointer to set neighbour rx params
114  *
115  * Return: QDF_STATUS - Success or Failure
116  */
117 QDF_STATUS vdev_mgr_set_neighbour_rx_cmd_send(
118 				struct vdev_mlme_obj *mlme_obj,
119 				struct set_neighbour_rx_params *param);
120 
121 /**
122  * vdev_mgr_set_nac_rssi_send() – MLME API to send nac rssi
123  * @mlme_obj: pointer to vdev_mlme_obj
124  * @param: pointer to vdev_scan_nac_rssi_params
125  *
126  * Return: QDF_STATUS - Success or Failure
127  */
128 QDF_STATUS vdev_mgr_nac_rssi_send(
129 			struct vdev_mlme_obj *mlme_obj,
130 			struct vdev_scan_nac_rssi_params *param);
131 
132 /**
133  * vdev_mgr_sifs_trigger_send() – MLME API to send SIFS trigger
134  * @mlme_obj: pointer to vdev_mlme_obj
135  * @param_value: parameter value
136  *
137  * Return: QDF_STATUS - Success or Failure
138  */
139 QDF_STATUS vdev_mgr_sifs_trigger_send(
140 			struct vdev_mlme_obj *mlme_obj,
141 			uint32_t param_value);
142 
143 /**
144  * vdev_mgr_set_custom_aggr_size_cmd_send() – MLME API to send custom aggr
145  * size
146  * @mlme_obj: pointer to vdev_mlme_obj
147  * @is_amsdu: boolean to indicate value corresponds to amsdu/ampdu
148  *
149  * Return: QDF_STATUS - Success or Failure
150  */
151 QDF_STATUS vdev_mgr_set_custom_aggr_size_send(
152 			struct vdev_mlme_obj *mlme_obj, bool is_amsdu);
153 
154 /**
155  * vdev_mgr_onfig_ratemask_cmd_send() – MLME API to send ratemask
156  * @mlme_obj: pointer to vdev_mlme_obj
157  * @type: type of ratemask configuration
158  * @lower32: Lower 32 bits in the 1st 64-bit value
159  * @higher32: Higher 32 bits in the 1st 64-bit value
160  * @lower32_2: Lower 32 bits in the 2nd 64-bit value
161  *
162  * Return: QDF_STATUS - Success or Failure
163  */
164 QDF_STATUS vdev_mgr_config_ratemask_cmd_send(
165 				struct vdev_mlme_obj *mlme_obj,
166 				uint8_t type,
167 				uint32_t lower32,
168 				uint32_t higher32,
169 				uint32_t lower32_2);
170 
171 /**
172  * vdev_mgr_beacon_stop() – MLME API to stop beacon
173  * @mlme_obj: pointer to vdev_mlme_obj
174  *
175  * Return: QDF_STATUS - Success or Failure
176  */
177 QDF_STATUS vdev_mgr_beacon_stop(struct vdev_mlme_obj *mlme_obj);
178 
179 /**
180  * vdev_mgr_beacon_free() – MLME API to free beacon
181  * @mlme_obj: pointer to vdev_mlme_obj
182  *
183  * Return: QDF_STATUS - Success or Failure
184  */
185 QDF_STATUS vdev_mgr_beacon_free(struct vdev_mlme_obj *mlme_obj);
186 
187 /**
188  * vdev_mgr_beacon_send() – MLME API to send beacon
189  * @mlme_obj: pointer to vdev_mlme_obj
190  * @param: pointer to beacon_params
191  *
192  * Return: QDF_STATUS - Success or Failure
193  */
194 QDF_STATUS vdev_mgr_beacon_send(struct vdev_mlme_obj *mlme_obj,
195 				struct beacon_params *param);
196 
197 /**
198  * vdev_mgr_beacon_tmpl_send() – MLME API to send beacon template
199  * @mlme_obj: pointer to vdev_mlme_obj
200  * @param: pointer to beacon_tmpl_params
201  *
202  * Return: QDF_STATUS - Success or Failure
203  */
204 QDF_STATUS vdev_mgr_beacon_tmpl_send(struct vdev_mlme_obj *mlme_obj,
205 				     struct beacon_tmpl_params *param);
206 
207 /**
208  * vdev_mgr_bcn_miss_offload_send() – MLME API to send bcn miss offload
209  * @mlme_obj: pointer to vdev_mlme_obj
210  *
211  * Return: QDF_STATUS - Success or Failure
212  */
213 QDF_STATUS vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj);
214 
215 /**
216  * vdev_mgr_multiple_restart_send() – MLME API to send multiple vdev restart
217  * @pdev: pointer to pdev object
218  * @chan: pointer to channel param structure
219  * @disable_hw_ack: ddisable hw ack value
220  * @vdev_ids: pointer to list of vdev ids which require restart
221  * @num_vdevs: number of vdevs in list
222  *
223  * Return: QDF_STATUS - Success or Failure
224  */
225 QDF_STATUS vdev_mgr_multiple_restart_send(struct wlan_objmgr_pdev *pdev,
226 					  struct mlme_channel_param *chan,
227 					  uint32_t disable_hw_ack,
228 					  uint32_t *vdev_ids,
229 					  uint32_t num_vdevs);
230 
231 /**
232  * vdev_mgr_peer_delete_all_send() – MLME API to send peer delete all request
233  * @mlme_obj: pointer to vdev_mlme_obj
234  *
235  * Return: QDF_STATUS - Success or Failure
236  */
237 QDF_STATUS vdev_mgr_peer_delete_all_send(struct vdev_mlme_obj *mlme_obj);
238 
239 #endif /* __VDEV_MGR_OPS_H__ */
240