xref: /wlan-dirver/qcacld-3.0/core/mac/inc/wni_api.h (revision bb8e47c200751dd274982fa7d00566e04456aa23)
1 /*
2  * Copyright (c) 2012-2018 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  * This file wni_api.h contains message definitions exported by
21  * Sirius software modules.
22  * NOTE: See projects/sirius/include/sir_api.h for structure
23  * definitions of the host/FW messages.
24  *
25  * Author:        Chandra Modumudi
26  * Date:          04/11/2002
27  * History:-
28  * Date           Modified by    Modification Information
29  * --------------------------------------------------------------------
30  */
31 
32 #ifndef __WNI_API_H
33 #define __WNI_API_H
34 
35 #define SIR_SME_MODULE_ID 0x16
36 
37 /* / Start of Sirius/Host message types */
38 #define WNI_HOST_MSG_START             0x1500
39 
40 enum eWniMsgTypes {
41 	/* / CFG message types */
42 	eWNI_CFG_MSG_TYPES_BEGIN = WNI_HOST_MSG_START,
43 	eWNI_CFG_MSG_TYPES_END = eWNI_CFG_MSG_TYPES_BEGIN + 0xFF,
44 
45 	/* / SME message types */
46 	eWNI_SME_MSG_TYPES_BEGIN = eWNI_CFG_MSG_TYPES_END,
47 	eWNI_SME_SYS_READY_IND,
48 	eWNI_SME_SCAN_REQ,
49 	eWNI_SME_SCAN_ABORT_IND,
50 	eWNI_SME_SCAN_RSP,
51 	eWNI_SME_JOIN_REQ,
52 	eWNI_SME_JOIN_RSP,
53 	eWNI_SME_SETCONTEXT_REQ,
54 	eWNI_SME_SETCONTEXT_RSP,
55 	eWNI_SME_REASSOC_REQ,
56 	eWNI_SME_REASSOC_RSP,
57 	eWNI_SME_DISASSOC_REQ,
58 	eWNI_SME_DISASSOC_RSP,
59 	eWNI_SME_DISASSOC_IND,
60 	eWNI_SME_DISASSOC_CNF,
61 	eWNI_SME_DEAUTH_REQ,
62 	eWNI_SME_DEAUTH_RSP,
63 	eWNI_SME_DEAUTH_IND,
64 	eWNI_SME_DISCONNECT_DONE_IND,
65 	eWNI_SME_WM_STATUS_CHANGE_NTF,
66 	eWNI_SME_IBSS_NEW_PEER_IND,
67 	eWNI_SME_IBSS_PEER_DEPARTED_IND,
68 	eWNI_SME_START_BSS_REQ,
69 	eWNI_SME_START_BSS_RSP,
70 	eWNI_SME_ASSOC_IND,
71 	eWNI_SME_ASSOC_CNF,
72 	eWNI_SME_SWITCH_CHL_IND,
73 	eWNI_SME_STOP_BSS_REQ,
74 	eWNI_SME_STOP_BSS_RSP,
75 	eWNI_SME_DEAUTH_CNF,
76 	eWNI_SME_MIC_FAILURE_IND,
77 	eWNI_SME_ADDTS_REQ,
78 	eWNI_SME_ADDTS_RSP,
79 	eWNI_SME_DELTS_REQ,
80 	eWNI_SME_DELTS_RSP,
81 	eWNI_SME_DELTS_IND,
82 	eWNI_SME_GET_STATISTICS_REQ,
83 	eWNI_SME_GET_STATISTICS_RSP,
84 	eWNI_SME_GET_RSSI_REQ,
85 	eWNI_SME_GET_ASSOC_STAS_REQ,
86 	eWNI_SME_WPS_PBC_PROBE_REQ_IND,
87 	eWNI_SME_UPPER_LAYER_ASSOC_CNF,
88 	eWNI_SME_SESSION_UPDATE_PARAM,
89 	eWNI_SME_CHNG_MCC_BEACON_INTERVAL,
90 	eWNI_SME_CLEAR_DFS_CHANNEL_LIST,
91 	eWNI_SME_GET_SNR_REQ,
92 
93 	eWNI_SME_RRM_MSG_TYPE_BEGIN,
94 
95 	eWNI_SME_NEIGHBOR_REPORT_REQ_IND,
96 	eWNI_SME_NEIGHBOR_REPORT_IND,
97 	eWNI_SME_BEACON_REPORT_REQ_IND,
98 	eWNI_SME_BEACON_REPORT_RESP_XMIT_IND,
99 
100 	eWNI_SME_ADD_STA_SELF_RSP,
101 	eWNI_SME_DEL_STA_SELF_RSP,
102 
103 	eWNI_SME_FT_PRE_AUTH_REQ,
104 	eWNI_SME_FT_PRE_AUTH_RSP,
105 	eWNI_SME_FT_UPDATE_KEY,
106 	eWNI_SME_FT_AGGR_QOS_REQ,
107 	eWNI_SME_FT_AGGR_QOS_RSP,
108 
109 #if defined FEATURE_WLAN_ESE
110 	eWNI_SME_ESE_ADJACENT_AP_REPORT,
111 #endif
112 
113 	eWNI_SME_REGISTER_MGMT_FRAME_REQ,
114 	eWNI_SME_GENERIC_CHANGE_COUNTRY_CODE,
115 	eWNI_SME_MAX_ASSOC_EXCEEDED,
116 #ifdef FEATURE_WLAN_TDLS
117 	eWNI_SME_TDLS_SEND_MGMT_REQ,
118 	eWNI_SME_TDLS_SEND_MGMT_RSP,
119 	eWNI_SME_TDLS_ADD_STA_REQ,
120 	eWNI_SME_TDLS_ADD_STA_RSP,
121 	eWNI_SME_TDLS_DEL_STA_REQ,
122 	eWNI_SME_TDLS_DEL_STA_RSP,
123 	eWNI_SME_TDLS_DEL_STA_IND,
124 	eWNI_SME_TDLS_DEL_ALL_PEER_IND,
125 	eWNI_SME_MGMT_FRM_TX_COMPLETION_IND,
126 	eWNI_SME_TDLS_LINK_ESTABLISH_REQ,
127 	eWNI_SME_TDLS_LINK_ESTABLISH_RSP,
128 	eWNI_SME_TDLS_SHOULD_DISCOVER,
129 	eWNI_SME_TDLS_SHOULD_TEARDOWN,
130 	eWNI_SME_TDLS_PEER_DISCONNECTED,
131 	eWNI_SME_TDLS_CONNECTION_TRACKER_NOTIFICATION,
132 #endif
133 	/* NOTE: If you are planning to add more mesages, please make sure that */
134 	/* SIR_LIM_ITC_MSG_TYPES_BEGIN is moved appropriately. It is set as */
135 	/* SIR_LIM_MSG_TYPES_BEGIN+0xB0 = 12B0 (which means max of 176 messages and */
136 	/* eWNI_SME_TDLS_DEL_STA_RSP = 175. */
137 	/* Should fix above issue to enable TDLS_INTERNAL */
138 	eWNI_SME_RESET_AP_CAPS_CHANGED,
139 #ifdef WLAN_FEATURE_11W
140 	eWNI_SME_UNPROT_MGMT_FRM_IND,
141 #endif
142 #ifdef WLAN_FEATURE_GTK_OFFLOAD
143 	eWNI_PMC_GTK_OFFLOAD_GETINFO_RSP,
144 #endif /* WLAN_FEATURE_GTK_OFFLOAD */
145 	eWNI_SME_CANDIDATE_FOUND_IND,   /*ROAM candidate indication from FW */
146 	eWNI_SME_HANDOFF_REQ,   /*upper layer requested handoff to driver in STA mode */
147 	eWNI_SME_ROAM_SCAN_OFFLOAD_RSP, /*Fwd the LFR scan offload rsp from FW to SME */
148 	eWNI_SME_IBSS_PEER_INFO_RSP,
149 	eWNI_SME_GET_TSM_STATS_REQ,
150 	eWNI_SME_GET_TSM_STATS_RSP,
151 	eWNI_SME_TSM_IE_IND,
152 
153 	eWNI_SME_READY_TO_SUSPEND_IND,
154 	/* DFS EVENTS */
155 	eWNI_SME_DFS_RADAR_FOUND,       /* RADAR found indication from DFS */
156 	eWNI_SME_CHANNEL_CHANGE_REQ,    /* Channel Change Request from SAP */
157 	eWNI_SME_CHANNEL_CHANGE_RSP,    /* Channel Change Response from WMA */
158 	eWNI_SME_START_BEACON_REQ,      /* Start Beacon Transmission. */
159 	eWNI_SME_DFS_BEACON_CHAN_SW_IE_REQ,     /* Transmit CSA IE in beacons */
160 	eWNI_SME_DFS_CSAIE_TX_COMPLETE_IND,     /* To indicate completion of CSA IE */
161 	/* update in beacons/probe rsp */
162 	eWNI_SME_STATS_EXT_EVENT,
163 	eWNI_SME_GET_PEER_INFO_IND,
164 	eWNI_SME_GET_PEER_INFO_EXT_IND,
165 	eWNI_SME_CSA_OFFLOAD_EVENT,
166 	eWNI_SME_UPDATE_ADDITIONAL_IES, /* indicates Additional IE from hdd to PE */
167 	eWNI_SME_MODIFY_ADDITIONAL_IES, /* To indicate IE modify from hdd to PE */
168 #ifdef FEATURE_WLAN_AUTO_SHUTDOWN
169 	eWNI_SME_AUTO_SHUTDOWN_IND,
170 #endif
171 #ifdef QCA_HT_2040_COEX
172 	eWNI_SME_SET_HT_2040_MODE,
173 #endif
174 #ifdef WLAN_FEATURE_ROAM_OFFLOAD
175 	eWNI_SME_HO_FAIL_IND,   /* Hand Off Failure Ind from WMA to SME */
176 #endif
177 #ifdef WLAN_FEATURE_NAN
178 	eWNI_SME_NAN_EVENT,
179 #endif
180 	eWNI_SME_LINK_STATUS_IND,
181 #ifdef WLAN_FEATURE_EXTWOW_SUPPORT
182 	eWNI_SME_READY_TO_EXTWOW_IND,
183 #endif
184 	eWNI_SME_MSG_GET_TEMPERATURE_IND,
185 	eWNI_SME_SNR_IND,
186 #ifdef FEATURE_WLAN_EXTSCAN
187 	eWNI_SME_EXTSCAN_FULL_SCAN_RESULT_IND,
188 	eWNI_SME_EPNO_NETWORK_FOUND_IND,
189 #endif
190 	eWNI_SME_SET_HW_MODE_REQ,
191 	eWNI_SME_SET_HW_MODE_RESP,
192 	eWNI_SME_HW_MODE_TRANS_IND,
193 	eWNI_SME_NSS_UPDATE_REQ,
194 	eWNI_SME_NSS_UPDATE_RSP,
195 	eWNI_SME_OCB_SET_CONFIG_RSP,
196 	eWNI_SME_OCB_GET_TSF_TIMER_RSP,
197 	eWNI_SME_DCC_GET_STATS_RSP,
198 	eWNI_SME_DCC_UPDATE_NDL_RSP,
199 	eWNI_SME_DCC_STATS_EVENT,
200 	eWNI_SME_SET_DUAL_MAC_CFG_REQ,
201 	eWNI_SME_SET_DUAL_MAC_CFG_RESP,
202 	eWNI_SME_SET_THERMAL_LEVEL_IND,
203 	eWNI_SME_SET_IE_REQ,
204 	eWNI_SME_EXT_CHANGE_CHANNEL,
205 	eWNI_SME_EXT_CHANGE_CHANNEL_IND,
206 	eWNI_SME_REGISTER_MGMT_FRAME_CB,
207 	eWNI_SME_HT40_OBSS_SCAN_IND, /* START and UPDATE OBSS SCAN Indication*/
208 	eWNI_SME_SET_ANTENNA_MODE_REQ,
209 	eWNI_SME_SET_ANTENNA_MODE_RESP,
210 	eWNI_SME_TSF_EVENT,
211 	eWNI_SME_MON_INIT_SESSION,
212 	eWNI_SME_PDEV_SET_HT_VHT_IE,
213 	eWNI_SME_SET_VDEV_IES_PER_BAND,
214 	eWNI_SME_SEND_DISASSOC_FRAME,
215 	eWNI_SME_UPDATE_ACCESS_POLICY_VENDOR_IE,
216 	eWNI_SME_DEFAULT_SCAN_IE,
217 	eWNI_SME_ROAM_SCAN_OFFLOAD_REQ,
218 	eWNI_SME_LOST_LINK_INFO_IND,
219 	eWNI_SME_DEL_ALL_TDLS_PEERS,
220 	eWNI_SME_RSO_CMD_STATUS_IND,
221 	eWMI_SME_LL_STATS_IND,
222 	eWNI_SME_DFS_CAC_COMPLETE,
223 	eWNI_SME_UPDATE_CONFIG,
224 	eWNI_SME_BT_ACTIVITY_INFO_IND,
225 	eWNI_SME_SET_HE_BSS_COLOR,
226 	eWNI_SME_TRIGGER_SAE,
227 	eWNI_SME_SEND_MGMT_FRAME_TX,
228 	eWNI_SME_SEND_SAE_MSG,
229 	eWNI_SME_SET_ADDBA_ACCEPT,
230 	eWNI_SME_UPDATE_EDCA_PROFILE,
231 	eWNI_SME_MSG_TYPES_END
232 };
233 
234 typedef enum {
235 	eWNI_TDLS_TEARDOWN_REASON_TX,
236 	eWNI_TDLS_TEARDOWN_REASON_RSSI,
237 	eWNI_TDLS_TEARDOWN_REASON_SCAN,
238 	eWNI_TDLS_DISCONNECTED_REASON_PEER_DELETE,
239 	eWNI_TDLS_TEARDOWN_REASON_PTR_TIMEOUT,
240 	eWNI_TDLS_TEARDOWN_REASON_BAD_PTR,
241 	eWNI_TDLS_TEARDOWN_REASON_NO_RESPONSE,
242 } eWniTdlsTeardownReason;
243 
244 /**
245  * enum ewni_tdls_connection_tracker_notification - connection tracker events
246  * @eWNI_TDLS_PEER_ENTER_BUF_STA: TDLS peer enters buff sta
247  * @eWNI_TDLS_PEER_EXIT_BUF_STA: TDLS peer exit buff sta
248  * @eWNI_TDLS_ENTER_BT_BUSY_MODE: Enter BT busy event
249  * @eWNI_TDLS_EXIT_BT_BUSY_MODE: Exit BT busy event
250  * @eWMI_TDLS_SCAN_STARTED_EVENT: offload scan start event
251  * @eWMI_TDLS_SCAN_COMPLETED_EVENT: offload scan end event
252  */
253 enum ewni_tdls_connection_tracker_notification {
254 	eWNI_TDLS_PEER_ENTER_BUF_STA,
255 	eWNI_TDLS_PEER_EXIT_BUF_STA,
256 	eWNI_TDLS_ENTER_BT_BUSY_MODE,
257 	eWNI_TDLS_EXIT_BT_BUSY_MODE,
258 	eWMI_TDLS_SCAN_STARTED_EVENT,
259 	eWMI_TDLS_SCAN_COMPLETED_EVENT,
260 };
261 
262 #define WNI_CFG_MSG_TYPES_BEGIN        0x1200
263 
264 /*---------------------------------------------------------------------*/
265 /* CFG Module Definitions                                              */
266 /*---------------------------------------------------------------------*/
267 
268 /*---------------------------------------------------------------------*/
269 /* CFG message definitions                                             */
270 /*---------------------------------------------------------------------*/
271 #define WNI_CFG_MSG_HDR_MASK    0xffff0000
272 #define WNI_CFG_MSG_LEN_MASK    0x0000ffff
273 #define WNI_CFG_MB_HDR_LEN      4
274 #define WNI_CFG_MAX_PARAM_NUM   32
275 
276 /*---------------------------------------------------------------------*/
277 /* CFG to HDD message types                                            */
278 /*---------------------------------------------------------------------*/
279 #define WNI_CFG_PARAM_UPDATE_IND       (WNI_CFG_MSG_TYPES_BEGIN | 0x00)
280 #define WNI_CFG_DNLD_REQ               (WNI_CFG_MSG_TYPES_BEGIN | 0x01)
281 #define WNI_CFG_DNLD_CNF               (WNI_CFG_MSG_TYPES_BEGIN | 0x02)
282 #define WNI_CFG_GET_RSP                (WNI_CFG_MSG_TYPES_BEGIN | 0x03)
283 #define WNI_CFG_SET_CNF                (WNI_CFG_MSG_TYPES_BEGIN | 0x04)
284 #define WNI_CFG_GET_ATTRIB_RSP         (WNI_CFG_MSG_TYPES_BEGIN | 0x05)
285 #define WNI_CFG_ADD_GRP_ADDR_CNF       (WNI_CFG_MSG_TYPES_BEGIN | 0x06)
286 #define WNI_CFG_DEL_GRP_ADDR_CNF       (WNI_CFG_MSG_TYPES_BEGIN | 0x07)
287 
288 #define ANI_CFG_GET_RADIO_STAT_RSP     (WNI_CFG_MSG_TYPES_BEGIN | 0x08)
289 #define ANI_CFG_GET_PER_STA_STAT_RSP   (WNI_CFG_MSG_TYPES_BEGIN | 0x09)
290 #define ANI_CFG_GET_AGG_STA_STAT_RSP   (WNI_CFG_MSG_TYPES_BEGIN | 0x0a)
291 #define ANI_CFG_CLEAR_STAT_RSP         (WNI_CFG_MSG_TYPES_BEGIN | 0x0b)
292 
293 /*---------------------------------------------------------------------*/
294 /* CFG to HDD message parameter indices                                 */
295 
296 /*   The followings are word indices starting from the message body    */
297 
298 /*   WNI_CFG_xxxx_xxxx_xxxx:         index of parameter                */
299 /*   WNI_CFG_xxxx_xxxx_NUM:          number of parameters in message   */
300 
301 /*   WNI_CFG_xxxx_xxxx_LEN:          byte length of message including  */
302 /*                                   MB header                         */
303 /*                                                                     */
304 /*   WNI_CFG_xxxx_xxxx_PARTIAL_LEN:  byte length of message including  */
305 /*                                   parameters and MB header but      */
306 /*                                   excluding variable data length    */
307 /*---------------------------------------------------------------------*/
308 
309 /* Parameter update indication */
310 #define WNI_CFG_PARAM_UPDATE_IND_PID   0
311 
312 #define WNI_CFG_PARAM_UPDATE_IND_NUM   1
313 #define WNI_CFG_PARAM_UPDATE_IND_LEN   (WNI_CFG_MB_HDR_LEN + \
314 					(WNI_CFG_PARAM_UPDATE_IND_NUM << 2))
315 
316 /* Configuration download request */
317 #define WNI_CFG_DNLD_REQ_NUM           0
318 #define WNI_CFG_DNLD_REQ_LEN           WNI_CFG_MB_HDR_LEN
319 
320 /* Configuration download confirm */
321 #define WNI_CFG_DNLD_CNF_RES           0
322 
323 #define WNI_CFG_DNLD_CNF_NUM           1
324 #define WNI_CFG_DNLD_CNF_LEN           (WNI_CFG_MB_HDR_LEN + \
325 					(WNI_CFG_DNLD_CNF_NUM << 2))
326 /* Get response */
327 #define WNI_CFG_GET_RSP_RES            0
328 #define WNI_CFG_GET_RSP_PID            1
329 #define WNI_CFG_GET_RSP_PLEN           2
330 
331 #define WNI_CFG_GET_RSP_NUM            3
332 #define WNI_CFG_GET_RSP_PARTIAL_LEN    (WNI_CFG_MB_HDR_LEN + \
333 					(WNI_CFG_GET_RSP_NUM << 2))
334 /* Set confirm */
335 #define WNI_CFG_SET_CNF_RES            0
336 #define WNI_CFG_SET_CNF_PID            1
337 
338 #define WNI_CFG_SET_CNF_NUM            2
339 #define WNI_CFG_SET_CNF_LEN            (WNI_CFG_MB_HDR_LEN + \
340 					(WNI_CFG_SET_CNF_NUM << 2))
341 /* Get attribute response */
342 #define WNI_CFG_GET_ATTRIB_RSP_RES     0
343 #define WNI_CFG_GET_ATTRIB_RSP_PID     1
344 #define WNI_CFG_GET_ATTRIB_RSP_TYPE    2
345 #define WNI_CFG_GET_ATTRIB_RSP_PLEN    3
346 #define WNI_CFG_GET_ATTRIB_RSP_RW      4
347 
348 #define WNI_CFG_GET_ATTRIB_RSP_NUM     5
349 #define WNI_CFG_GET_ATTRIB_RSP_LEN     (WNI_CFG_MB_HDR_LEN + \
350 					(WNI_CFG_GET_ATTRIB_RSP_NUM << 2))
351 
352 /* Add group address confirm */
353 #define WNI_CFG_ADD_GRP_ADDR_CNF_RES   0
354 
355 #define WNI_CFG_ADD_GRP_ADDR_CNF_NUM   1
356 #define WNI_CFG_ADD_GRP_ADDR_CNF_LEN   (WNI_CFG_MB_HDR_LEN + \
357 					(WNI_CFG_ADD_GRP_ADDR_CNF_NUM << 2))
358 
359 /* Delete group address confirm */
360 #define WNI_CFG_DEL_GRP_ADDR_CNF_RES   0
361 
362 #define WNI_CFG_DEL_GRP_ADDR_CNF_NUM   1
363 #define WNI_CFG_DEL_GRP_ADDR_CNF_LEN   (WNI_CFG_MB_HDR_LEN + \
364 					(WNI_CFG_DEL_GRP_ADDR_CNF_NUM << 2))
365 
366 #define IS_CFG_MSG(msg) ((msg & 0xff00) == WNI_CFG_MSG_TYPES_BEGIN)
367 
368 /* Clear stats types. */
369 #define ANI_CLEAR_ALL_STATS          0
370 #define ANI_CLEAR_RX_STATS           1
371 #define ANI_CLEAR_TX_STATS           2
372 #define ANI_CLEAR_PER_STA_STATS      3
373 #define ANI_CLEAR_AGGR_PER_STA_STATS 4
374 #define ANI_CLEAR_STAT_TYPES_END     5
375 
376 /*---------------------------------------------------------------------*/
377 /* HDD to CFG message types                                            */
378 /*---------------------------------------------------------------------*/
379 #define WNI_CFG_DNLD_RSP               (WNI_CFG_MSG_TYPES_BEGIN | 0x80)
380 #define WNI_CFG_GET_REQ                (WNI_CFG_MSG_TYPES_BEGIN | 0x81)
381 
382 /* Shall be removed after stats integration */
383 
384 /*---------------------------------------------------------------------*/
385 /* HDD to CFG message parameter indices                                 */
386 /*                                                                     */
387 /*   The followings are word indices starting from the message body    */
388 /*                                                                     */
389 /*   WNI_CFG_xxxx_xxxx_xxxx:         index of parameter                */
390 /*                                                                     */
391 /*   WNI_CFG_xxxx_xxxx_NUM:          number of parameters in message   */
392 /*                                                                     */
393 /*   WNI_CFG_xxxx_xxxx_LEN:          byte length of message including  */
394 /*                                   MB header                         */
395 /*                                                                     */
396 /*   WNI_CFG_xxxx_xxxx_PARTIAL_LEN:  byte length of message including  */
397 /*                                   parameters and MB header but      */
398 /*                                   excluding variable data length    */
399 /*---------------------------------------------------------------------*/
400 
401 /* Download response */
402 #define WNI_CFG_DNLD_RSP_BIN_LEN       0
403 
404 #define WNI_CFG_DNLD_RSP_NUM           1
405 #define WNI_CFG_DNLD_RSP_PARTIAL_LEN   (WNI_CFG_MB_HDR_LEN + \
406 					(WNI_CFG_DNLD_RSP_NUM << 2))
407 
408 /* Set parameter request */
409 #define WNI_CFG_SET_REQ_PID            0
410 #define WNI_CFG_SET_REQ_PLEN           1
411 
412 /*---------------------------------------------------------------------*/
413 /* CFG return values                                                   */
414 /*---------------------------------------------------------------------*/
415 #define WNI_CFG_SUCCESS             1
416 #define WNI_CFG_NOT_READY           2
417 #define WNI_CFG_INVALID_PID         3
418 #define WNI_CFG_INVALID_LEN         4
419 #define WNI_CFG_RO_PARAM            5
420 #define WNI_CFG_WO_PARAM            6
421 #define WNI_CFG_INVALID_STAID       7
422 #define WNI_CFG_OTHER_ERROR         8
423 #define WNI_CFG_NEED_RESTART        9
424 #define WNI_CFG_NEED_RELOAD        10
425 
426 /*---------------------------------------------------------------------*/
427 /* CFG definitions                                                     */
428 /*---------------------------------------------------------------------*/
429 
430 /* Shall be removed after integration of stats. */
431 /* Get statistic response */
432 #define WNI_CFG_GET_STAT_RSP_RES       0
433 #define WNI_CFG_GET_STAT_RSP_PARAMID   1
434 #define WNI_CFG_GET_STAT_RSP_VALUE     2
435 
436 #define WNI_CFG_GET_STAT_RSP_NUM       3
437 #define WNI_CFG_GET_STAT_RSP_LEN       (WNI_CFG_MB_HDR_LEN + \
438 					(WNI_CFG_GET_STAT_RSP_NUM << 2))
439 /* Get per station statistic response */
440 #define WNI_CFG_GET_PER_STA_STAT_RSP_RES                        0
441 #define WNI_CFG_GET_PER_STA_STAT_RSP_STAID                      1
442 #define WNI_CFG_GET_PER_STA_STAT_RSP_FIRST_PARAM                2
443 
444 /* Per STA statistic structure */
445 typedef struct sAniCfgPerStaStatStruct {
446 	unsigned long sentAesBlksUcastHi;
447 	unsigned long sentAesBlksUcastLo;
448 
449 	unsigned long recvAesBlksUcastHi;
450 	unsigned long recvAesBlksUcastLo;
451 
452 	unsigned long aesFormatErrorUcastCnts;
453 
454 	unsigned long aesReplaysUcast;
455 
456 	unsigned long aesDecryptErrUcast;
457 
458 	unsigned long singleRetryPkts;
459 
460 	unsigned long failedTxPkts;
461 
462 	unsigned long ackTimeouts;
463 
464 	unsigned long multiRetryPkts;
465 
466 	unsigned long fragTxCntsHi;
467 	unsigned long fragTxCntsLo;
468 
469 	unsigned long transmittedPktsHi;
470 	unsigned long transmittedPktsLo;
471 
472 	unsigned long phyStatHi;
473 	unsigned long phyStatLo;
474 } tCfgPerStaStatStruct, *tpAniCfgPerStaStatStruct;
475 
476 #define WNI_CFG_GET_PER_STA_STAT_RSP_NUM                       23
477 #define WNI_CFG_GET_PER_STA_STAT_RSP_LEN    (WNI_CFG_MB_HDR_LEN + \
478 					     (WNI_CFG_GET_PER_STA_STAT_RSP_NUM << 2))
479 
480 /* Shall be removed after integrating stats. */
481 #define WNI_CFG_GET_STAT_RSP           (WNI_CFG_MSG_TYPES_BEGIN | 0x08)
482 #define WNI_CFG_GET_PER_STA_STAT_RSP   (WNI_CFG_MSG_TYPES_BEGIN | 0x09)
483 #define WNI_CFG_GET_AGG_STA_STAT_RSP   (WNI_CFG_MSG_TYPES_BEGIN | 0x0a)
484 #define WNI_CFG_GET_TX_RATE_CTR_RSP    (WNI_CFG_MSG_TYPES_BEGIN | 0x0b)
485 
486 #define WNI_CFG_GET_AGG_STA_STAT_RSP_NUM    21
487 #define WNI_CFG_GET_AGG_STA_STAT_RSP_LEN    (WNI_CFG_MB_HDR_LEN + \
488 					     (WNI_CFG_GET_AGG_STA_STAT_RSP_NUM << 2))
489 #define WNI_CFG_GET_AGG_STA_STAT_RSP_RES 0
490 
491 /* Get TX rate based stats */
492 #define WNI_CFG_GET_TX_RATE_CTR_RSP_RES                        0
493 
494 typedef struct sAniCfgTxRateCtrs {
495 /* add the rate counters here */
496 	unsigned long TxFrames_1Mbps;
497 	unsigned long TxFrames_2Mbps;
498 	unsigned long TxFrames_5_5Mbps;
499 	unsigned long TxFrames_6Mbps;
500 	unsigned long TxFrames_9Mbps;
501 	unsigned long TxFrames_11Mbps;
502 	unsigned long TxFrames_12Mbps;
503 	unsigned long TxFrames_18Mbps;
504 	unsigned long TxFrames_24Mbps;
505 	unsigned long TxFrames_36Mbps;
506 	unsigned long TxFrames_48Mbps;
507 	unsigned long TxFrames_54Mbps;
508 	unsigned long TxFrames_72Mbps;
509 	unsigned long TxFrames_96Mbps;
510 	unsigned long TxFrames_108Mbps;
511 
512 } tAniCfgTxRateCtrs, *tpAniCfgTxRateCtrs;
513 
514 #define WNI_CFG_GET_STAT_REQ           (WNI_CFG_MSG_TYPES_BEGIN | 0x86)
515 #define WNI_CFG_GET_PER_STA_STAT_REQ   (WNI_CFG_MSG_TYPES_BEGIN | 0x87)
516 #define WNI_CFG_GET_AGG_STA_STAT_REQ   (WNI_CFG_MSG_TYPES_BEGIN | 0x88)
517 #define WNI_CFG_GET_TX_RATE_CTR_REQ    (WNI_CFG_MSG_TYPES_BEGIN | 0x89)
518 
519 /* Get statistic request */
520 #define WNI_CFG_GET_STAT_REQ_PARAMID   0
521 
522 #define WNI_CFG_GET_STAT_REQ_NUM       1
523 #define WNI_CFG_GET_STAT_REQ_LEN       (WNI_CFG_MB_HDR_LEN + \
524 					(WNI_CFG_GET_STAT_REQ_NUM << 2))
525 
526 /* Get per station statistic request */
527 #define WNI_CFG_GET_PER_STA_STAT_REQ_STAID 0
528 
529 #define WNI_CFG_GET_PER_STA_STAT_REQ_NUM   1
530 #define WNI_CFG_GET_PER_STA_STAT_REQ_LEN   (WNI_CFG_MB_HDR_LEN + \
531 					    (WNI_CFG_GET_PER_STA_STAT_REQ_NUM << 2))
532 
533 #define DYNAMIC_CFG_TYPE_SELECTED_REGISTRAR   (0)
534 #define DYNAMIC_CFG_TYPE_WPS_STATE            (1)
535 
536 #endif /* __WNI_API_H */
537