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 * @val: aggregate size value 149 * @is_amsdu: boolean to indicate value corresponds to amsdu/ampdu 150 * 151 * Return: QDF_STATUS - Success or Failure 152 */ 153 QDF_STATUS vdev_mgr_set_custom_aggr_size_send( 154 struct vdev_mlme_obj *mlme_obj, 155 uint32_t val, bool is_amsdu); 156 157 /** 158 * vdev_mgr_onfig_ratemask_cmd_send() – MLME API to send ratemask 159 * @mlme_obj: pointer to vdev_mlme_obj 160 * @type: type of ratemask configuration 161 * @lower32: Lower 32 bits in the 1st 64-bit value 162 * @higher32: Higher 32 bits in the 1st 64-bit value 163 * @lower32_2: Lower 32 bits in the 2nd 64-bit value 164 * 165 * Return: QDF_STATUS - Success or Failure 166 */ 167 QDF_STATUS vdev_mgr_config_ratemask_cmd_send( 168 struct vdev_mlme_obj *mlme_obj, 169 uint8_t type, 170 uint32_t lower32, 171 uint32_t higher32, 172 uint32_t lower32_2); 173 174 /** 175 * vdev_mgr_beacon_stop() – MLME API to stop beacon 176 * @mlme_obj: pointer to vdev_mlme_obj 177 * 178 * Return: QDF_STATUS - Success or Failure 179 */ 180 QDF_STATUS vdev_mgr_beacon_stop(struct vdev_mlme_obj *mlme_obj); 181 182 /** 183 * vdev_mgr_beacon_free() – MLME API to free beacon 184 * @mlme_obj: pointer to vdev_mlme_obj 185 * 186 * Return: QDF_STATUS - Success or Failure 187 */ 188 QDF_STATUS vdev_mgr_beacon_free(struct vdev_mlme_obj *mlme_obj); 189 190 /** 191 * vdev_mgr_beacon_send() – MLME API to send beacon 192 * @mlme_obj: pointer to vdev_mlme_obj 193 * @param: pointer to beacon_params 194 * 195 * Return: QDF_STATUS - Success or Failure 196 */ 197 QDF_STATUS vdev_mgr_beacon_send(struct vdev_mlme_obj *mlme_obj, 198 struct beacon_params *param); 199 200 /** 201 * vdev_mgr_beacon_tmpl_send() – MLME API to send beacon template 202 * @mlme_obj: pointer to vdev_mlme_obj 203 * @param: pointer to beacon_tmpl_params 204 * 205 * Return: QDF_STATUS - Success or Failure 206 */ 207 QDF_STATUS vdev_mgr_beacon_tmpl_send(struct vdev_mlme_obj *mlme_obj, 208 struct beacon_tmpl_params *param); 209 210 /** 211 * vdev_mgr_bcn_miss_offload_send() – MLME API to send bcn miss offload 212 * @mlme_obj: pointer to vdev_mlme_obj 213 * 214 * Return: QDF_STATUS - Success or Failure 215 */ 216 QDF_STATUS vdev_mgr_bcn_miss_offload_send(struct vdev_mlme_obj *mlme_obj); 217 218 /** 219 * vdev_mgr_multiple_restart_send() – MLME API to send multiple vdev restart 220 * @pdev: pointer to pdev object 221 * @chan: pointer to channel param structure 222 * @disable_hw_ack: ddisable hw ack value 223 * @vdev_ids: pointer to list of vdev ids which require restart 224 * @num_vdevs: number of vdevs in list 225 * 226 * Return: QDF_STATUS - Success or Failure 227 */ 228 QDF_STATUS vdev_mlme_multiple_restart_send(struct wlan_objmgr_pdev *pdev, 229 struct mlme_channel_param *chan, 230 uint32_t disable_hw_ack, 231 uint32_t *vdev_ids, 232 uint32_t num_vdevs); 233 234 #endif /* CMN_VDEV_MGR_TGT_IF_ENABLE */ 235 #endif /* __VDEV_MGR_OPS_H__ */ 236