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