[s3c24xx] bump to 2.6.30-rc6
[openwrt/svn-archive/archive.git] / target / linux / s3c24xx / files-2.6.30 / drivers / ar6000 / include / wmi.h
1 /*
2 * Copyright (c) 2004-2006 Atheros Communications Inc.
3 * All rights reserved.
4 *
5 *
6 * $ATH_LICENSE_HOSTSDK0_C$
7 *
8 * This file contains the definitions of the WMI protocol specified in the
9 * Wireless Module Interface (WMI). It includes definitions of all the
10 * commands and events. Commands are messages from the host to the WM.
11 * Events and Replies are messages from the WM to the host.
12 *
13 * Ownership of correctness in regards to WMI commands
14 * belongs to the host driver and the WM is not required to validate
15 * parameters for value, proper range, or any other checking.
16 *
17 */
18
19 #ifndef _WMI_H_
20 #define _WMI_H_
21
22 #ifndef ATH_TARGET
23 #include "athstartpack.h"
24 #endif
25
26 #include "wmix.h"
27
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31
32 #define WMI_PROTOCOL_VERSION 0x0002
33 #define WMI_PROTOCOL_REVISION 0x0000
34
35 #define ATH_MAC_LEN 6 /* length of mac in bytes */
36 #define WMI_CMD_MAX_LEN 100
37 #define WMI_CONTROL_MSG_MAX_LEN 256
38 #define WMI_OPT_CONTROL_MSG_MAX_LEN 1536
39 #define IS_ETHERTYPE(_typeOrLen) ((_typeOrLen) >= 0x0600)
40 #define RFC1042OUI {0x00, 0x00, 0x00}
41
42 #define IP_ETHERTYPE 0x0800
43
44 #define WMI_IMPLICIT_PSTREAM 0xFF
45 #define WMI_MAX_THINSTREAM 15
46
47 struct host_app_area_s {
48 A_UINT32 wmi_protocol_ver;
49 };
50
51 /*
52 * Data Path
53 */
54 typedef PREPACK struct {
55 A_UINT8 dstMac[ATH_MAC_LEN];
56 A_UINT8 srcMac[ATH_MAC_LEN];
57 A_UINT16 typeOrLen;
58 } POSTPACK ATH_MAC_HDR;
59
60 typedef PREPACK struct {
61 A_UINT8 dsap;
62 A_UINT8 ssap;
63 A_UINT8 cntl;
64 A_UINT8 orgCode[3];
65 A_UINT16 etherType;
66 } POSTPACK ATH_LLC_SNAP_HDR;
67
68 typedef enum {
69 DATA_MSGTYPE = 0x0,
70 CNTL_MSGTYPE,
71 SYNC_MSGTYPE
72 } WMI_MSG_TYPE;
73
74
75 typedef PREPACK struct {
76 A_INT8 rssi;
77 A_UINT8 info; /* WMI_MSG_TYPE in lower 2 bits - b1b0 */
78 /* UP in next 3 bits - b4b3b2 */
79 #define WMI_DATA_HDR_MSG_TYPE_MASK 0x03
80 #define WMI_DATA_HDR_MSG_TYPE_SHIFT 0
81 #define WMI_DATA_HDR_UP_MASK 0x07
82 #define WMI_DATA_HDR_UP_SHIFT 2
83 #define WMI_DATA_HDR_IS_MSG_TYPE(h, t) (((h)->info & (WMI_DATA_HDR_MSG_TYPE_MASK)) == (t))
84 } POSTPACK WMI_DATA_HDR;
85
86
87 #define WMI_DATA_HDR_SET_MSG_TYPE(h, t) (h)->info = (((h)->info & ~(WMI_DATA_HDR_MSG_TYPE_MASK << WMI_DATA_HDR_MSG_TYPE_SHIFT)) | (t << WMI_DATA_HDR_MSG_TYPE_SHIFT))
88 #define WMI_DATA_HDR_SET_UP(h, p) (h)->info = (((h)->info & ~(WMI_DATA_HDR_UP_MASK << WMI_DATA_HDR_UP_SHIFT)) | (p << WMI_DATA_HDR_UP_SHIFT))
89
90 /*
91 * Control Path
92 */
93 typedef PREPACK struct {
94 A_UINT16 commandId;
95 } POSTPACK WMI_CMD_HDR; /* used for commands and events */
96
97 /*
98 * List of Commnands
99 */
100 typedef enum {
101 WMI_CONNECT_CMDID = 0x0001,
102 WMI_RECONNECT_CMDID,
103 WMI_DISCONNECT_CMDID,
104 WMI_SYNCHRONIZE_CMDID,
105 WMI_CREATE_PSTREAM_CMDID,
106 WMI_DELETE_PSTREAM_CMDID,
107 WMI_START_SCAN_CMDID,
108 WMI_SET_SCAN_PARAMS_CMDID,
109 WMI_SET_BSS_FILTER_CMDID,
110 WMI_SET_PROBED_SSID_CMDID,
111 WMI_SET_LISTEN_INT_CMDID,
112 WMI_SET_BMISS_TIME_CMDID,
113 WMI_SET_DISC_TIMEOUT_CMDID,
114 WMI_GET_CHANNEL_LIST_CMDID,
115 WMI_SET_BEACON_INT_CMDID,
116 WMI_GET_STATISTICS_CMDID,
117 WMI_SET_CHANNEL_PARAMS_CMDID,
118 WMI_SET_POWER_MODE_CMDID,
119 WMI_SET_IBSS_PM_CAPS_CMDID,
120 WMI_SET_POWER_PARAMS_CMDID,
121 WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID,
122 WMI_ADD_CIPHER_KEY_CMDID,
123 WMI_DELETE_CIPHER_KEY_CMDID,
124 WMI_ADD_KRK_CMDID,
125 WMI_DELETE_KRK_CMDID,
126 WMI_SET_PMKID_CMDID,
127 WMI_SET_TX_PWR_CMDID,
128 WMI_GET_TX_PWR_CMDID,
129 WMI_SET_ASSOC_INFO_CMDID,
130 WMI_ADD_BAD_AP_CMDID,
131 WMI_DELETE_BAD_AP_CMDID,
132 WMI_SET_TKIP_COUNTERMEASURES_CMDID,
133 WMI_RSSI_THRESHOLD_PARAMS_CMDID,
134 WMI_TARGET_ERROR_REPORT_BITMASK_CMDID,
135 WMI_SET_ACCESS_PARAMS_CMDID,
136 WMI_SET_RETRY_LIMITS_CMDID,
137 WMI_SET_OPT_MODE_CMDID,
138 WMI_OPT_TX_FRAME_CMDID,
139 WMI_SET_VOICE_PKT_SIZE_CMDID,
140 WMI_SET_MAX_SP_LEN_CMDID,
141 WMI_SET_ROAM_CTRL_CMDID,
142 WMI_GET_ROAM_TBL_CMDID,
143 WMI_GET_ROAM_DATA_CMDID,
144 WMI_ENABLE_RM_CMDID,
145 WMI_SET_MAX_OFFHOME_DURATION_CMDID,
146 WMI_EXTENSION_CMDID, /* Non-wireless extensions */
147 WMI_SNR_THRESHOLD_PARAMS_CMDID,
148 WMI_LQ_THRESHOLD_PARAMS_CMDID,
149 WMI_SET_LPREAMBLE_CMDID,
150 WMI_SET_RTS_CMDID,
151 WMI_CLR_RSSI_SNR_CMDID,
152 WMI_SET_FIXRATES_CMDID,
153 WMI_GET_FIXRATES_CMDID,
154 WMI_SET_AUTH_MODE_CMDID,
155 WMI_SET_REASSOC_MODE_CMDID,
156 WMI_SET_WMM_CMDID,
157 WMI_SET_WMM_TXOP_CMDID,
158 WMI_TEST_CMDID,
159 WMI_SET_BT_STATUS_CMDID,
160 WMI_SET_BT_PARAMS_CMDID,
161
162 WMI_SET_KEEPALIVE_CMDID,
163 WMI_GET_KEEPALIVE_CMDID,
164 WMI_SET_APPIE_CMDID,
165 WMI_GET_APPIE_CMDID,
166 WMI_SET_WSC_STATUS_CMDID,
167
168 /* Wake on Wireless */
169 WMI_SET_HOST_SLEEP_MODE_CMDID,
170 WMI_SET_WOW_MODE_CMDID,
171 WMI_GET_WOW_LIST_CMDID,
172 WMI_ADD_WOW_PATTERN_CMDID,
173 WMI_DEL_WOW_PATTERN_CMDID,
174 WMI_SET_MAC_ADDRESS_CMDID,
175 WMI_SET_AKMP_PARAMS_CMDID,
176 WMI_SET_PMKID_LIST_CMDID,
177 WMI_GET_PMKID_LIST_CMDID,
178
179 /*
180 * Developer commands starts at 0xF000
181 */
182 WMI_SET_BITRATE_CMDID = 0xF000,
183 WMI_GET_BITRATE_CMDID,
184 WMI_SET_WHALPARAM_CMDID,
185
186 } WMI_COMMAND_ID;
187
188 /*
189 * Frame Types
190 */
191 typedef enum {
192 WMI_FRAME_BEACON = 0,
193 WMI_FRAME_PROBE_REQ,
194 WMI_FRAME_PROBE_RESP,
195 WMI_FRAME_ASSOC_REQ,
196 WMI_FRAME_ASSOC_RESP,
197 WMI_NUM_MGMT_FRAME
198 } WMI_MGMT_FRAME_TYPE;
199
200 /*
201 * Connect Command
202 */
203 typedef enum {
204 INFRA_NETWORK = 0x01,
205 ADHOC_NETWORK = 0x02,
206 ADHOC_CREATOR = 0x04,
207 } NETWORK_TYPE;
208
209 typedef enum {
210 OPEN_AUTH = 0x01,
211 SHARED_AUTH = 0x02,
212 LEAP_AUTH = 0x04, /* different from IEEE_AUTH_MODE definitions */
213 } DOT11_AUTH_MODE;
214
215 typedef enum {
216 NONE_AUTH = 0x01,
217 WPA_AUTH = 0x02,
218 WPA_PSK_AUTH = 0x03,
219 WPA2_AUTH = 0x04,
220 WPA2_PSK_AUTH = 0x05,
221 WPA_AUTH_CCKM = 0x06,
222 WPA2_AUTH_CCKM = 0x07,
223 } AUTH_MODE;
224
225 typedef enum {
226 NONE_CRYPT = 0x01,
227 WEP_CRYPT = 0x02,
228 TKIP_CRYPT = 0x03,
229 AES_CRYPT = 0x04,
230 } CRYPTO_TYPE;
231
232 #define WMI_MIN_CRYPTO_TYPE NONE_CRYPT
233 #define WMI_MAX_CRYPTO_TYPE (AES_CRYPT + 1)
234
235 #define WMI_MIN_KEY_INDEX 0
236 #define WMI_MAX_KEY_INDEX 3
237
238 #define WMI_MAX_KEY_LEN 32
239
240 #define WMI_MAX_SSID_LEN 32
241
242 typedef enum {
243 CONNECT_ASSOC_POLICY_USER = 0x0001,
244 CONNECT_SEND_REASSOC = 0x0002,
245 CONNECT_IGNORE_WPAx_GROUP_CIPHER = 0x0004,
246 CONNECT_PROFILE_MATCH_DONE = 0x0008,
247 CONNECT_IGNORE_AAC_BEACON = 0x0010,
248 CONNECT_CSA_FOLLOW_BSS = 0x0020,
249 } WMI_CONNECT_CTRL_FLAGS_BITS;
250
251 #define DEFAULT_CONNECT_CTRL_FLAGS (CONNECT_CSA_FOLLOW_BSS)
252
253 typedef PREPACK struct {
254 A_UINT8 networkType;
255 A_UINT8 dot11AuthMode;
256 A_UINT8 authMode;
257 A_UINT8 pairwiseCryptoType;
258 A_UINT8 pairwiseCryptoLen;
259 A_UINT8 groupCryptoType;
260 A_UINT8 groupCryptoLen;
261 A_UINT8 ssidLength;
262 A_UCHAR ssid[WMI_MAX_SSID_LEN];
263 A_UINT16 channel;
264 A_UINT8 bssid[ATH_MAC_LEN];
265 A_UINT32 ctrl_flags;
266 } POSTPACK WMI_CONNECT_CMD;
267
268 /*
269 * WMI_RECONNECT_CMDID
270 */
271 typedef PREPACK struct {
272 A_UINT16 channel; /* hint */
273 A_UINT8 bssid[ATH_MAC_LEN]; /* mandatory if set */
274 } POSTPACK WMI_RECONNECT_CMD;
275
276 /*
277 * WMI_ADD_CIPHER_KEY_CMDID
278 */
279 typedef enum {
280 PAIRWISE_USAGE = 0x00,
281 GROUP_USAGE = 0x01,
282 TX_USAGE = 0x02, /* default Tx Key - Static WEP only */
283 } KEY_USAGE;
284
285 /*
286 * Bit Flag
287 * Bit 0 - Initialise TSC - default is Initialize
288 */
289 #define KEY_OP_INIT_TSC 0x01
290 #define KEY_OP_INIT_RSC 0x02
291
292 #define KEY_OP_INIT_VAL 0x03 /* Default Initialise the TSC & RSC */
293 #define KEY_OP_VALID_MASK 0x03
294
295 typedef PREPACK struct {
296 A_UINT8 keyIndex;
297 A_UINT8 keyType;
298 A_UINT8 keyUsage; /* KEY_USAGE */
299 A_UINT8 keyLength;
300 A_UINT8 keyRSC[8]; /* key replay sequence counter */
301 A_UINT8 key[WMI_MAX_KEY_LEN];
302 A_UINT8 key_op_ctrl; /* Additional Key Control information */
303 } POSTPACK WMI_ADD_CIPHER_KEY_CMD;
304
305 /*
306 * WMI_DELETE_CIPHER_KEY_CMDID
307 */
308 typedef PREPACK struct {
309 A_UINT8 keyIndex;
310 } POSTPACK WMI_DELETE_CIPHER_KEY_CMD;
311
312 #define WMI_KRK_LEN 16
313 /*
314 * WMI_ADD_KRK_CMDID
315 */
316 typedef PREPACK struct {
317 A_UINT8 krk[WMI_KRK_LEN];
318 } POSTPACK WMI_ADD_KRK_CMD;
319
320 /*
321 * WMI_SET_TKIP_COUNTERMEASURES_CMDID
322 */
323 typedef enum {
324 WMI_TKIP_CM_DISABLE = 0x0,
325 WMI_TKIP_CM_ENABLE = 0x1,
326 } WMI_TKIP_CM_CONTROL;
327
328 typedef PREPACK struct {
329 A_UINT8 cm_en; /* WMI_TKIP_CM_CONTROL */
330 } POSTPACK WMI_SET_TKIP_COUNTERMEASURES_CMD;
331
332 /*
333 * WMI_SET_PMKID_CMDID
334 */
335
336 #define WMI_PMKID_LEN 16
337
338 typedef enum {
339 PMKID_DISABLE = 0,
340 PMKID_ENABLE = 1,
341 } PMKID_ENABLE_FLG;
342
343 typedef PREPACK struct {
344 A_UINT8 bssid[ATH_MAC_LEN];
345 A_UINT8 enable; /* PMKID_ENABLE_FLG */
346 A_UINT8 pmkid[WMI_PMKID_LEN];
347 } POSTPACK WMI_SET_PMKID_CMD;
348
349 /*
350 * WMI_START_SCAN_CMD
351 */
352 typedef enum {
353 WMI_LONG_SCAN = 0,
354 WMI_SHORT_SCAN = 1,
355 } WMI_SCAN_TYPE;
356
357 typedef PREPACK struct {
358 A_BOOL forceFgScan;
359 A_BOOL isLegacy; /* For Legacy Cisco AP compatibility */
360 A_UINT32 homeDwellTime; /* Maximum duration in the home channel(milliseconds) */
361 A_UINT32 forceScanInterval; /* Time interval between scans (milliseconds)*/
362 A_UINT8 scanType; /* WMI_SCAN_TYPE */
363 } POSTPACK WMI_START_SCAN_CMD;
364
365 /*
366 * WMI_SET_SCAN_PARAMS_CMDID
367 */
368 #define WMI_SHORTSCANRATIO_DEFAULT 3
369 typedef enum {
370 CONNECT_SCAN_CTRL_FLAGS = 0x01, /* set if can scan in the Connect cmd */
371 SCAN_CONNECTED_CTRL_FLAGS = 0x02, /* set if scan for the SSID it is */
372 /* already connected to */
373 ACTIVE_SCAN_CTRL_FLAGS = 0x04, /* set if enable active scan */
374 ROAM_SCAN_CTRL_FLAGS = 0x08, /* set if enable roam scan when bmiss and lowrssi */
375 REPORT_BSSINFO_CTRL_FLAGS = 0x10, /* set if follows customer BSSINFO reporting rule */
376 ENABLE_AUTO_CTRL_FLAGS = 0x20, /* if disabled, target doesn't
377 scan after a disconnect event */
378 ENABLE_SCAN_ABORT_EVENT = 0x40 /* Scan complete event with canceled status will be generated when a scan is prempted before it gets completed */
379
380 } WMI_SCAN_CTRL_FLAGS_BITS;
381
382 #define CAN_SCAN_IN_CONNECT(flags) (flags & CONNECT_SCAN_CTRL_FLAGS)
383 #define CAN_SCAN_CONNECTED(flags) (flags & SCAN_CONNECTED_CTRL_FLAGS)
384 #define ENABLE_ACTIVE_SCAN(flags) (flags & ACTIVE_SCAN_CTRL_FLAGS)
385 #define ENABLE_ROAM_SCAN(flags) (flags & ROAM_SCAN_CTRL_FLAGS)
386 #define CONFIG_REPORT_BSSINFO(flags) (flags & REPORT_BSSINFO_CTRL_FLAGS)
387 #define IS_AUTO_SCAN_ENABLED(flags) (flags & ENABLE_AUTO_CTRL_FLAGS)
388 #define SCAN_ABORT_EVENT_ENABLED(flags) (flags & ENABLE_SCAN_ABORT_EVENT)
389
390 #define DEFAULT_SCAN_CTRL_FLAGS (CONNECT_SCAN_CTRL_FLAGS| SCAN_CONNECTED_CTRL_FLAGS| ACTIVE_SCAN_CTRL_FLAGS| ROAM_SCAN_CTRL_FLAGS | ENABLE_AUTO_CTRL_FLAGS)
391
392
393 typedef PREPACK struct {
394 A_UINT16 fg_start_period; /* seconds */
395 A_UINT16 fg_end_period; /* seconds */
396 A_UINT16 bg_period; /* seconds */
397 A_UINT16 maxact_chdwell_time; /* msec */
398 A_UINT16 pas_chdwell_time; /* msec */
399 A_UINT8 shortScanRatio; /* how many shorts scan for one long */
400 A_UINT8 scanCtrlFlags;
401 A_UINT16 minact_chdwell_time; /* msec */
402 A_UINT32 max_dfsch_act_time; /* msecs */
403 } POSTPACK WMI_SCAN_PARAMS_CMD;
404
405 /*
406 * WMI_SET_BSS_FILTER_CMDID
407 */
408 typedef enum {
409 NONE_BSS_FILTER = 0x0, /* no beacons forwarded */
410 ALL_BSS_FILTER, /* all beacons forwarded */
411 PROFILE_FILTER, /* only beacons matching profile */
412 ALL_BUT_PROFILE_FILTER, /* all but beacons matching profile */
413 CURRENT_BSS_FILTER, /* only beacons matching current BSS */
414 ALL_BUT_BSS_FILTER, /* all but beacons matching BSS */
415 PROBED_SSID_FILTER, /* beacons matching probed ssid */
416 LAST_BSS_FILTER, /* marker only */
417 } WMI_BSS_FILTER;
418
419 typedef PREPACK struct {
420 A_UINT8 bssFilter; /* see WMI_BSS_FILTER */
421 A_UINT32 ieMask;
422 } POSTPACK WMI_BSS_FILTER_CMD;
423
424 /*
425 * WMI_SET_PROBED_SSID_CMDID
426 */
427 #define MAX_PROBED_SSID_INDEX 5
428
429 typedef enum {
430 DISABLE_SSID_FLAG = 0, /* disables entry */
431 SPECIFIC_SSID_FLAG = 0x01, /* probes specified ssid */
432 ANY_SSID_FLAG = 0x02, /* probes for any ssid */
433 } WMI_SSID_FLAG;
434
435 typedef PREPACK struct {
436 A_UINT8 entryIndex; /* 0 to MAX_PROBED_SSID_INDEX */
437 A_UINT8 flag; /* WMI_SSID_FLG */
438 A_UINT8 ssidLength;
439 A_UINT8 ssid[32];
440 } POSTPACK WMI_PROBED_SSID_CMD;
441
442 /*
443 * WMI_SET_LISTEN_INT_CMDID
444 * The Listen interval is between 15 and 3000 TUs
445 */
446 #define MIN_LISTEN_INTERVAL 15
447 #define MAX_LISTEN_INTERVAL 5000
448 #define MIN_LISTEN_BEACONS 1
449 #define MAX_LISTEN_BEACONS 50
450
451 typedef PREPACK struct {
452 A_UINT16 listenInterval;
453 A_UINT16 numBeacons;
454 } POSTPACK WMI_LISTEN_INT_CMD;
455
456 /*
457 * WMI_SET_BEACON_INT_CMDID
458 */
459 typedef PREPACK struct {
460 A_UINT16 beaconInterval;
461 } POSTPACK WMI_BEACON_INT_CMD;
462
463 /*
464 * WMI_SET_BMISS_TIME_CMDID
465 * valid values are between 1000 and 5000 TUs
466 */
467
468 #define MIN_BMISS_TIME 1000
469 #define MAX_BMISS_TIME 5000
470 #define MIN_BMISS_BEACONS 1
471 #define MAX_BMISS_BEACONS 50
472
473 typedef PREPACK struct {
474 A_UINT16 bmissTime;
475 A_UINT16 numBeacons;
476 } POSTPACK WMI_BMISS_TIME_CMD;
477
478 /*
479 * WMI_SET_POWER_MODE_CMDID
480 */
481 typedef enum {
482 REC_POWER = 0x01,
483 MAX_PERF_POWER,
484 } WMI_POWER_MODE;
485
486 typedef PREPACK struct {
487 A_UINT8 powerMode; /* WMI_POWER_MODE */
488 } POSTPACK WMI_POWER_MODE_CMD;
489
490 /*
491 * WMI_SET_POWER_PARAMS_CMDID
492 */
493 typedef enum {
494 IGNORE_DTIM = 0x01,
495 NORMAL_DTIM = 0x02,
496 STICK_DTIM = 0x03,
497 } WMI_DTIM_POLICY;
498
499 typedef PREPACK struct {
500 A_UINT16 idle_period; /* msec */
501 A_UINT16 pspoll_number;
502 A_UINT16 dtim_policy;
503 } POSTPACK WMI_POWER_PARAMS_CMD;
504
505 typedef PREPACK struct {
506 A_UINT8 power_saving;
507 A_UINT8 ttl; /* number of beacon periods */
508 A_UINT16 atim_windows; /* msec */
509 A_UINT16 timeout_value; /* msec */
510 } POSTPACK WMI_IBSS_PM_CAPS_CMD;
511
512 /*
513 * WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID
514 */
515 typedef enum {
516 IGNORE_TIM_ALL_QUEUES_APSD = 0,
517 PROCESS_TIM_ALL_QUEUES_APSD = 1,
518 IGNORE_TIM_SIMULATED_APSD = 2,
519 PROCESS_TIM_SIMULATED_APSD = 3,
520 } APSD_TIM_POLICY;
521
522 typedef PREPACK struct {
523 A_UINT16 psPollTimeout; /* msec */
524 A_UINT16 triggerTimeout; /* msec */
525 A_UINT32 apsdTimPolicy; /* TIM behavior with ques APSD enabled. Default is IGNORE_TIM_ALL_QUEUES_APSD */
526 A_UINT32 simulatedAPSDTimPolicy; /* TIM behavior with simulated APSD enabled. Default is PROCESS_TIM_SIMULATED_APSD */
527 } POSTPACK WMI_POWERSAVE_TIMERS_POLICY_CMD;
528
529 /*
530 * WMI_SET_VOICE_PKT_SIZE_CMDID
531 */
532 typedef PREPACK struct {
533 A_UINT16 voicePktSize;
534 } POSTPACK WMI_SET_VOICE_PKT_SIZE_CMD;
535
536 /*
537 * WMI_SET_MAX_SP_LEN_CMDID
538 */
539 typedef enum {
540 DELIVER_ALL_PKT = 0x0,
541 DELIVER_2_PKT = 0x1,
542 DELIVER_4_PKT = 0x2,
543 DELIVER_6_PKT = 0x3,
544 } APSD_SP_LEN_TYPE;
545
546 typedef PREPACK struct {
547 A_UINT8 maxSPLen;
548 } POSTPACK WMI_SET_MAX_SP_LEN_CMD;
549
550 /*
551 * WMI_SET_DISC_TIMEOUT_CMDID
552 */
553 typedef PREPACK struct {
554 A_UINT8 disconnectTimeout; /* seconds */
555 } POSTPACK WMI_DISC_TIMEOUT_CMD;
556
557 typedef enum {
558 UPLINK_TRAFFIC = 0,
559 DNLINK_TRAFFIC = 1,
560 BIDIR_TRAFFIC = 2,
561 } DIR_TYPE;
562
563 typedef enum {
564 DISABLE_FOR_THIS_AC = 0,
565 ENABLE_FOR_THIS_AC = 1,
566 ENABLE_FOR_ALL_AC = 2,
567 } VOICEPS_CAP_TYPE;
568
569 typedef enum {
570 TRAFFIC_TYPE_APERIODIC = 0,
571 TRAFFIC_TYPE_PERIODIC = 1,
572 }TRAFFIC_TYPE;
573
574 /*
575 * WMI_CREATE_PSTREAM_CMDID
576 */
577 typedef PREPACK struct {
578 A_UINT32 minServiceInt; /* in milli-sec */
579 A_UINT32 maxServiceInt; /* in milli-sec */
580 A_UINT32 inactivityInt; /* in milli-sec */
581 A_UINT32 suspensionInt; /* in milli-sec */
582 A_UINT32 serviceStartTime;
583 A_UINT32 minDataRate; /* in bps */
584 A_UINT32 meanDataRate; /* in bps */
585 A_UINT32 peakDataRate; /* in bps */
586 A_UINT32 maxBurstSize;
587 A_UINT32 delayBound;
588 A_UINT32 minPhyRate; /* in bps */
589 A_UINT32 sba;
590 A_UINT32 mediumTime;
591 A_UINT16 nominalMSDU; /* in octects */
592 A_UINT16 maxMSDU; /* in octects */
593 A_UINT8 trafficClass;
594 A_UINT8 trafficType; /* TRAFFIC_TYPE */
595 A_UINT8 trafficDirection; /* TRAFFIC_DIR */
596 A_UINT8 voicePSCapability; /* VOICEPS_CAP_TYPE */
597 A_UINT8 tsid;
598 A_UINT8 userPriority; /* 802.1D user priority */
599 } POSTPACK WMI_CREATE_PSTREAM_CMD;
600
601 /*
602 * WMI_DELETE_PSTREAM_CMDID
603 */
604 typedef PREPACK struct {
605 A_UINT8 trafficClass;
606 A_UINT8 tsid;
607 } POSTPACK WMI_DELETE_PSTREAM_CMD;
608
609 /*
610 * WMI_SET_CHANNEL_PARAMS_CMDID
611 */
612 typedef enum {
613 WMI_11A_MODE = 0x1,
614 WMI_11G_MODE = 0x2,
615 WMI_11AG_MODE = 0x3,
616 WMI_11B_MODE = 0x4,
617 WMI_11GONLY_MODE = 0x5,
618 } WMI_PHY_MODE;
619
620 #define WMI_MAX_CHANNELS 32
621
622 typedef PREPACK struct {
623 A_UINT8 reserved1;
624 A_UINT8 scanParam; /* set if enable scan */
625 A_UINT8 phyMode; /* see WMI_PHY_MODE */
626 A_UINT8 numChannels; /* how many channels follow */
627 A_UINT16 channelList[1]; /* channels in Mhz */
628 } POSTPACK WMI_CHANNEL_PARAMS_CMD;
629
630
631 /*
632 * WMI_RSSI_THRESHOLD_PARAMS_CMDID
633 * Setting the polltime to 0 would disable polling.
634 * Threshold values are in the ascending order, and should agree to:
635 * (lowThreshold_lowerVal < lowThreshold_upperVal < highThreshold_lowerVal
636 * < highThreshold_upperVal)
637 */
638
639 typedef PREPACK struct WMI_RSSI_THRESHOLD_PARAMS{
640 A_UINT32 pollTime; /* Polling time as a factor of LI */
641 A_INT16 thresholdAbove1_Val; /* lowest of upper */
642 A_INT16 thresholdAbove2_Val;
643 A_INT16 thresholdAbove3_Val;
644 A_INT16 thresholdAbove4_Val;
645 A_INT16 thresholdAbove5_Val;
646 A_INT16 thresholdAbove6_Val; /* highest of upper */
647 A_INT16 thresholdBelow1_Val; /* lowest of bellow */
648 A_INT16 thresholdBelow2_Val;
649 A_INT16 thresholdBelow3_Val;
650 A_INT16 thresholdBelow4_Val;
651 A_INT16 thresholdBelow5_Val;
652 A_INT16 thresholdBelow6_Val; /* highest of bellow */
653 A_UINT8 weight; /* "alpha" */
654 A_UINT8 reserved[3];
655 } POSTPACK WMI_RSSI_THRESHOLD_PARAMS_CMD;
656
657 /*
658 * WMI_SNR_THRESHOLD_PARAMS_CMDID
659 * Setting the polltime to 0 would disable polling.
660 */
661
662 typedef PREPACK struct WMI_SNR_THRESHOLD_PARAMS{
663 A_UINT32 pollTime; /* Polling time as a factor of LI */
664 A_UINT8 weight; /* "alpha" */
665 A_UINT8 thresholdAbove1_Val; /* lowest of uppper*/
666 A_UINT8 thresholdAbove2_Val;
667 A_UINT8 thresholdAbove3_Val;
668 A_UINT8 thresholdAbove4_Val; /* highest of upper */
669 A_UINT8 thresholdBelow1_Val; /* lowest of bellow */
670 A_UINT8 thresholdBelow2_Val;
671 A_UINT8 thresholdBelow3_Val;
672 A_UINT8 thresholdBelow4_Val; /* highest of bellow */
673 A_UINT8 reserved[3];
674 } POSTPACK WMI_SNR_THRESHOLD_PARAMS_CMD;
675
676 /*
677 * WMI_LQ_THRESHOLD_PARAMS_CMDID
678 */
679 typedef PREPACK struct WMI_LQ_THRESHOLD_PARAMS {
680 A_UINT8 enable;
681 A_UINT8 thresholdAbove1_Val;
682 A_UINT8 thresholdAbove2_Val;
683 A_UINT8 thresholdAbove3_Val;
684 A_UINT8 thresholdAbove4_Val;
685 A_UINT8 thresholdBelow1_Val;
686 A_UINT8 thresholdBelow2_Val;
687 A_UINT8 thresholdBelow3_Val;
688 A_UINT8 thresholdBelow4_Val;
689 A_UINT8 reserved[3];
690 } POSTPACK WMI_LQ_THRESHOLD_PARAMS_CMD;
691
692 typedef enum {
693 WMI_LPREAMBLE_DISABLED = 0,
694 WMI_LPREAMBLE_ENABLED
695 } WMI_LPREAMBLE_STATUS;
696
697 typedef PREPACK struct {
698 A_UINT8 status;
699 }POSTPACK WMI_SET_LPREAMBLE_CMD;
700
701 typedef PREPACK struct {
702 A_UINT16 threshold;
703 }POSTPACK WMI_SET_RTS_CMD;
704
705 /*
706 * WMI_TARGET_ERROR_REPORT_BITMASK_CMDID
707 * Sets the error reporting event bitmask in target. Target clears it
708 * upon an error. Subsequent errors are counted, but not reported
709 * via event, unless the bitmask is set again.
710 */
711 typedef PREPACK struct {
712 A_UINT32 bitmask;
713 } POSTPACK WMI_TARGET_ERROR_REPORT_BITMASK;
714
715 /*
716 * WMI_SET_TX_PWR_CMDID
717 */
718 typedef PREPACK struct {
719 A_UINT8 dbM; /* in dbM units */
720 } POSTPACK WMI_SET_TX_PWR_CMD, WMI_TX_PWR_REPLY;
721
722 /*
723 * WMI_SET_ASSOC_INFO_CMDID
724 *
725 * A maximum of 2 private IEs can be sent in the [Re]Assoc request.
726 * A 3rd one, the CCX version IE can also be set from the host.
727 */
728 #define WMI_MAX_ASSOC_INFO_TYPE 2
729 #define WMI_CCX_VER_IE 2 /* ieType to set CCX Version IE */
730
731 #define WMI_MAX_ASSOC_INFO_LEN 240
732
733 typedef PREPACK struct {
734 A_UINT8 ieType;
735 A_UINT8 bufferSize;
736 A_UINT8 assocInfo[1]; /* up to WMI_MAX_ASSOC_INFO_LEN */
737 } POSTPACK WMI_SET_ASSOC_INFO_CMD;
738
739
740 /*
741 * WMI_GET_TX_PWR_CMDID does not take any parameters
742 */
743
744 /*
745 * WMI_ADD_BAD_AP_CMDID
746 */
747 #define WMI_MAX_BAD_AP_INDEX 1
748
749 typedef PREPACK struct {
750 A_UINT8 badApIndex; /* 0 to WMI_MAX_BAD_AP_INDEX */
751 A_UINT8 bssid[ATH_MAC_LEN];
752 } POSTPACK WMI_ADD_BAD_AP_CMD;
753
754 /*
755 * WMI_DELETE_BAD_AP_CMDID
756 */
757 typedef PREPACK struct {
758 A_UINT8 badApIndex; /* 0 to WMI_MAX_BAD_AP_INDEX */
759 } POSTPACK WMI_DELETE_BAD_AP_CMD;
760
761 /*
762 * WMI_SET_ACCESS_PARAMS_CMDID
763 */
764 #define WMI_DEFAULT_TXOP_ACPARAM 0 /* implies one MSDU */
765 #define WMI_DEFAULT_ECWMIN_ACPARAM 4 /* corresponds to CWmin of 15 */
766 #define WMI_DEFAULT_ECWMAX_ACPARAM 10 /* corresponds to CWmax of 1023 */
767 #define WMI_MAX_CW_ACPARAM 15 /* maximum eCWmin or eCWmax */
768 #define WMI_DEFAULT_AIFSN_ACPARAM 2
769 #define WMI_MAX_AIFSN_ACPARAM 15
770 typedef PREPACK struct {
771 A_UINT16 txop; /* in units of 32 usec */
772 A_UINT8 eCWmin;
773 A_UINT8 eCWmax;
774 A_UINT8 aifsn;
775 } POSTPACK WMI_SET_ACCESS_PARAMS_CMD;
776
777
778 /*
779 * WMI_SET_RETRY_LIMITS_CMDID
780 *
781 * This command is used to customize the number of retries the
782 * wlan device will perform on a given frame.
783 */
784 #define WMI_MIN_RETRIES 2
785 #define WMI_MAX_RETRIES 13
786 typedef enum {
787 MGMT_FRAMETYPE = 0,
788 CONTROL_FRAMETYPE = 1,
789 DATA_FRAMETYPE = 2
790 } WMI_FRAMETYPE;
791
792 typedef PREPACK struct {
793 A_UINT8 frameType; /* WMI_FRAMETYPE */
794 A_UINT8 trafficClass; /* applies only to DATA_FRAMETYPE */
795 A_UINT8 maxRetries;
796 A_UINT8 enableNotify;
797 } POSTPACK WMI_SET_RETRY_LIMITS_CMD;
798
799 /*
800 * WMI_SET_ROAM_CTRL_CMDID
801 *
802 * This command is used to influence the Roaming behaviour
803 * Set the host biases of the BSSs before setting the roam mode as bias
804 * based.
805 */
806
807 /*
808 * Different types of Roam Control
809 */
810
811 typedef enum {
812 WMI_FORCE_ROAM = 1, /* Roam to the specified BSSID */
813 WMI_SET_ROAM_MODE = 2, /* default ,progd bias, no roam */
814 WMI_SET_HOST_BIAS = 3, /* Set the Host Bias */
815 WMI_SET_LOWRSSI_SCAN_PARAMS = 4, /* Set lowrssi Scan parameters */
816 } WMI_ROAM_CTRL_TYPE;
817
818 #define WMI_MIN_ROAM_CTRL_TYPE WMI_FORCE_ROAM
819 #define WMI_MAX_ROAM_CTRL_TYPE WMI_SET_LOWRSSI_SCAN_PARAMS
820
821 /*
822 * ROAM MODES
823 */
824
825 typedef enum {
826 WMI_DEFAULT_ROAM_MODE = 1, /* RSSI based ROAM */
827 WMI_HOST_BIAS_ROAM_MODE = 2, /* HOST BIAS based ROAM */
828 WMI_LOCK_BSS_MODE = 3 /* Lock to the Current BSS - no Roam */
829 } WMI_ROAM_MODE;
830
831 /*
832 * BSS HOST BIAS INFO
833 */
834
835 typedef PREPACK struct {
836 A_UINT8 bssid[ATH_MAC_LEN];
837 A_INT8 bias;
838 } POSTPACK WMI_BSS_BIAS;
839
840 typedef PREPACK struct {
841 A_UINT8 numBss;
842 WMI_BSS_BIAS bssBias[1];
843 } POSTPACK WMI_BSS_BIAS_INFO;
844
845 typedef PREPACK struct WMI_LOWRSSI_SCAN_PARAMS {
846 A_UINT16 lowrssi_scan_period;
847 A_INT16 lowrssi_scan_threshold;
848 A_INT16 lowrssi_roam_threshold;
849 A_UINT8 roam_rssi_floor;
850 A_UINT8 reserved[1]; /* For alignment */
851 } POSTPACK WMI_LOWRSSI_SCAN_PARAMS;
852
853 typedef PREPACK struct {
854 PREPACK union {
855 A_UINT8 bssid[ATH_MAC_LEN]; /* WMI_FORCE_ROAM */
856 A_UINT8 roamMode; /* WMI_SET_ROAM_MODE */
857 WMI_BSS_BIAS_INFO bssBiasInfo; /* WMI_SET_HOST_BIAS */
858 WMI_LOWRSSI_SCAN_PARAMS lrScanParams;
859 } POSTPACK info;
860 A_UINT8 roamCtrlType ;
861 } POSTPACK WMI_SET_ROAM_CTRL_CMD;
862
863 /*
864 * WMI_ENABLE_RM_CMDID
865 */
866 typedef PREPACK struct {
867 A_BOOL enable_radio_measurements;
868 } POSTPACK WMI_ENABLE_RM_CMD;
869
870 /*
871 * WMI_SET_MAX_OFFHOME_DURATION_CMDID
872 */
873 typedef PREPACK struct {
874 A_UINT8 max_offhome_duration;
875 } POSTPACK WMI_SET_MAX_OFFHOME_DURATION_CMD;
876
877 typedef PREPACK struct {
878 A_UINT32 frequency;
879 A_UINT8 threshold;
880 } POSTPACK WMI_SET_HB_CHALLENGE_RESP_PARAMS_CMD;
881
882 typedef enum {
883 BT_STREAM_UNDEF = 0,
884 BT_STREAM_SCO, /* SCO stream */
885 BT_STREAM_A2DP, /* A2DP stream */
886 BT_STREAM_MAX
887 } BT_STREAM_TYPE;
888
889 typedef enum {
890 BT_PARAM_SCO = 1, /* SCO stream parameters */
891 BT_PARAM_A2DP, /* A2DP stream parameters */
892 BT_PARAM_MISC, /* miscellaneous parameters */
893 BT_PARAM_REGS, /* co-existence register parameters */
894 BT_PARAM_MAX
895 } BT_PARAM_TYPE;
896
897 typedef enum {
898 BT_STATUS_UNDEF = 0,
899 BT_STATUS_START,
900 BT_STATUS_STOP,
901 BT_STATUS_RESUME,
902 BT_STATUS_SUSPEND,
903 BT_STATUS_MAX
904 } BT_STREAM_STATUS;
905
906 typedef PREPACK struct {
907 A_UINT8 streamType;
908 A_UINT8 status;
909 } POSTPACK WMI_SET_BT_STATUS_CMD;
910
911 typedef PREPACK struct {
912 A_UINT8 noSCOPkts;
913 A_UINT8 pspollTimeout;
914 A_UINT8 stompbt;
915 } POSTPACK BT_PARAMS_SCO;
916
917 typedef PREPACK struct {
918 A_UINT32 period;
919 A_UINT32 dutycycle;
920 A_UINT8 stompbt;
921 } POSTPACK BT_PARAMS_A2DP;
922
923 typedef PREPACK struct {
924 A_UINT32 mode;
925 A_UINT32 scoWghts;
926 A_UINT32 a2dpWghts;
927 A_UINT32 genWghts;
928 A_UINT32 mode2;
929 A_UINT8 setVal;
930 } POSTPACK BT_COEX_REGS;
931
932 typedef enum {
933 WLAN_PROTECT_POLICY = 1,
934 WLAN_COEX_CTRL_FLAGS
935 } BT_PARAMS_MISC_TYPE;
936
937 typedef enum {
938 WLAN_PROTECT_PER_STREAM = 0x01, /* default */
939 WLAN_PROTECT_ANY_TX = 0x02
940 } WLAN_PROTECT_FLAGS;
941
942
943 #define WLAN_DISABLE_COEX_IN_DISCONNECT 0x01 /* default */
944 #define WLAN_KEEP_COEX_IN_DISCONNECT 0x02
945 #define WLAN_STOMPBT_IN_DISCONNECT 0x04
946
947 #define WLAN_DISABLE_COEX_IN_ROAM 0x10 /* default */
948 #define WLAN_KEEP_COEX_IN_ROAM 0x20
949 #define WLAN_STOMPBT_IN_ROAM 0x40
950
951 #define WLAN_DISABLE_COEX_IN_SCAN 0x100 /* default */
952 #define WLAN_KEEP_COEX_IN_SCAN 0x200
953 #define WLAN_STOMPBT_IN_SCAN 0x400
954
955 #define WLAN_DISABLE_COEX_BT_OFF 0x1000 /* default */
956 #define WLAN_KEEP_COEX_BT_OFF 0x2000
957 #define WLAN_STOMPBT_BT_OFF 0x4000
958
959 typedef PREPACK struct {
960 A_UINT32 period;
961 A_UINT32 dutycycle;
962 A_UINT8 stompbt;
963 A_UINT8 policy;
964 } POSTPACK WLAN_PROTECT_POLICY_TYPE;
965
966 typedef PREPACK struct {
967 PREPACK union {
968 WLAN_PROTECT_POLICY_TYPE protectParams;
969 A_UINT16 wlanCtrlFlags;
970 } POSTPACK info;
971 A_UINT8 paramType;
972 } POSTPACK BT_PARAMS_MISC;
973
974 typedef PREPACK struct {
975 PREPACK union {
976 BT_PARAMS_SCO scoParams;
977 BT_PARAMS_A2DP a2dpParams;
978 BT_PARAMS_MISC miscParams;
979 BT_COEX_REGS regs;
980 } POSTPACK info;
981 A_UINT8 paramType;
982 } POSTPACK WMI_SET_BT_PARAMS_CMD;
983
984 /*
985 * Command Replies
986 */
987
988 /*
989 * WMI_GET_CHANNEL_LIST_CMDID reply
990 */
991 typedef PREPACK struct {
992 A_UINT8 reserved1;
993 A_UINT8 numChannels; /* number of channels in reply */
994 A_UINT16 channelList[1]; /* channel in Mhz */
995 } POSTPACK WMI_CHANNEL_LIST_REPLY;
996
997 typedef enum {
998 A_SUCCEEDED = A_OK,
999 A_FAILED_DELETE_STREAM_DOESNOT_EXIST=250,
1000 A_SUCCEEDED_MODIFY_STREAM=251,
1001 A_FAILED_INVALID_STREAM = 252,
1002 A_FAILED_MAX_THINSTREAMS = 253,
1003 A_FAILED_CREATE_REMOVE_PSTREAM_FIRST = 254,
1004 } PSTREAM_REPLY_STATUS;
1005
1006 /*
1007 * List of Events (target to host)
1008 */
1009 typedef enum {
1010 WMI_READY_EVENTID = 0x1001,
1011 WMI_CONNECT_EVENTID,
1012 WMI_DISCONNECT_EVENTID,
1013 WMI_BSSINFO_EVENTID,
1014 WMI_CMDERROR_EVENTID,
1015 WMI_REGDOMAIN_EVENTID,
1016 WMI_PSTREAM_TIMEOUT_EVENTID,
1017 WMI_NEIGHBOR_REPORT_EVENTID,
1018 WMI_TKIP_MICERR_EVENTID,
1019 WMI_SCAN_COMPLETE_EVENTID,
1020 WMI_REPORT_STATISTICS_EVENTID,
1021 WMI_RSSI_THRESHOLD_EVENTID,
1022 WMI_ERROR_REPORT_EVENTID,
1023 WMI_OPT_RX_FRAME_EVENTID,
1024 WMI_REPORT_ROAM_TBL_EVENTID,
1025 WMI_EXTENSION_EVENTID,
1026 WMI_CAC_EVENTID,
1027 WMI_SNR_THRESHOLD_EVENTID,
1028 WMI_LQ_THRESHOLD_EVENTID,
1029 WMI_TX_RETRY_ERR_EVENTID,
1030 WMI_REPORT_ROAM_DATA_EVENTID,
1031 WMI_TEST_EVENTID,
1032 WMI_APLIST_EVENTID,
1033 WMI_GET_WOW_LIST_EVENTID,
1034 WMI_GET_PMKID_LIST_EVENTID
1035 } WMI_EVENT_ID;
1036
1037 typedef enum {
1038 WMI_11A_CAPABILITY = 1,
1039 WMI_11G_CAPABILITY = 2,
1040 WMI_11AG_CAPABILITY = 3,
1041 } WMI_PHY_CAPABILITY;
1042
1043 typedef PREPACK struct {
1044 A_UINT8 macaddr[ATH_MAC_LEN];
1045 A_UINT8 phyCapability; /* WMI_PHY_CAPABILITY */
1046 } POSTPACK WMI_READY_EVENT;
1047
1048 /*
1049 * Connect Event
1050 */
1051 typedef PREPACK struct {
1052 A_UINT16 channel;
1053 A_UINT8 bssid[ATH_MAC_LEN];
1054 A_UINT16 listenInterval;
1055 A_UINT16 beaconInterval;
1056 A_UINT32 networkType;
1057 A_UINT8 beaconIeLen;
1058 A_UINT8 assocReqLen;
1059 A_UINT8 assocRespLen;
1060 A_UINT8 assocInfo[1];
1061 } POSTPACK WMI_CONNECT_EVENT;
1062
1063 /*
1064 * Disconnect Event
1065 */
1066 typedef enum {
1067 NO_NETWORK_AVAIL = 0x01,
1068 LOST_LINK = 0x02, /* bmiss */
1069 DISCONNECT_CMD = 0x03,
1070 BSS_DISCONNECTED = 0x04,
1071 AUTH_FAILED = 0x05,
1072 ASSOC_FAILED = 0x06,
1073 NO_RESOURCES_AVAIL = 0x07,
1074 CSERV_DISCONNECT = 0x08,
1075 INVALID_PROFILE = 0x0a,
1076 DOT11H_CHANNEL_SWITCH = 0x0b,
1077 } WMI_DISCONNECT_REASON;
1078
1079 typedef PREPACK struct {
1080 A_UINT16 protocolReasonStatus; /* reason code, see 802.11 spec. */
1081 A_UINT8 bssid[ATH_MAC_LEN]; /* set if known */
1082 A_UINT8 disconnectReason ; /* see WMI_DISCONNECT_REASON */
1083 A_UINT8 assocRespLen;
1084 A_UINT8 assocInfo[1];
1085 } POSTPACK WMI_DISCONNECT_EVENT;
1086
1087 /*
1088 * BSS Info Event.
1089 * Mechanism used to inform host of the presence and characteristic of
1090 * wireless networks present. Consists of bss info header followed by
1091 * the beacon or probe-response frame body. The 802.11 header is not included.
1092 */
1093 typedef enum {
1094 BEACON_FTYPE = 0x1,
1095 PROBERESP_FTYPE,
1096 ACTION_MGMT_FTYPE,
1097 } WMI_BI_FTYPE;
1098
1099 enum {
1100 BSS_ELEMID_CHANSWITCH = 0x01,
1101 BSS_ELEMID_ATHEROS = 0x02,
1102 };
1103
1104 typedef PREPACK struct {
1105 A_UINT16 channel;
1106 A_UINT8 frameType; /* see WMI_BI_FTYPE */
1107 A_UINT8 snr;
1108 A_INT16 rssi;
1109 A_UINT8 bssid[ATH_MAC_LEN];
1110 A_UINT32 ieMask;
1111 } POSTPACK WMI_BSS_INFO_HDR;
1112
1113 /*
1114 * Command Error Event
1115 */
1116 typedef enum {
1117 INVALID_PARAM = 0x01,
1118 ILLEGAL_STATE = 0x02,
1119 INTERNAL_ERROR = 0x03,
1120 } WMI_ERROR_CODE;
1121
1122 typedef PREPACK struct {
1123 A_UINT16 commandId;
1124 A_UINT8 errorCode;
1125 } POSTPACK WMI_CMD_ERROR_EVENT;
1126
1127 /*
1128 * New Regulatory Domain Event
1129 */
1130 typedef PREPACK struct {
1131 A_UINT32 regDomain;
1132 } POSTPACK WMI_REG_DOMAIN_EVENT;
1133
1134 typedef PREPACK struct {
1135 A_UINT8 trafficClass;
1136 } POSTPACK WMI_PSTREAM_TIMEOUT_EVENT;
1137
1138 /*
1139 * The WMI_NEIGHBOR_REPORT Event is generated by the target to inform
1140 * the host of BSS's it has found that matches the current profile.
1141 * It can be used by the host to cache PMKs and/to initiate pre-authentication
1142 * if the BSS supports it. The first bssid is always the current associated
1143 * BSS.
1144 * The bssid and bssFlags information repeats according to the number
1145 * or APs reported.
1146 */
1147 typedef enum {
1148 WMI_DEFAULT_BSS_FLAGS = 0x00,
1149 WMI_PREAUTH_CAPABLE_BSS = 0x01,
1150 WMI_PMKID_VALID_BSS = 0x02,
1151 } WMI_BSS_FLAGS;
1152
1153 typedef PREPACK struct {
1154 A_UINT8 bssid[ATH_MAC_LEN];
1155 A_UINT8 bssFlags; /* see WMI_BSS_FLAGS */
1156 } POSTPACK WMI_NEIGHBOR_INFO;
1157
1158 typedef PREPACK struct {
1159 A_INT8 numberOfAps;
1160 WMI_NEIGHBOR_INFO neighbor[1];
1161 } POSTPACK WMI_NEIGHBOR_REPORT_EVENT;
1162
1163 /*
1164 * TKIP MIC Error Event
1165 */
1166 typedef PREPACK struct {
1167 A_UINT8 keyid;
1168 A_UINT8 ismcast;
1169 } POSTPACK WMI_TKIP_MICERR_EVENT;
1170
1171 /*
1172 * WMI_SCAN_COMPLETE_EVENTID - no parameters (old), staus parameter (new)
1173 */
1174 typedef PREPACK struct {
1175 A_STATUS status;
1176 } POSTPACK WMI_SCAN_COMPLETE_EVENT;
1177
1178 #define MAX_OPT_DATA_LEN 1400
1179
1180 /*
1181 * WMI_SET_ADHOC_BSSID_CMDID
1182 */
1183 typedef PREPACK struct {
1184 A_UINT8 bssid[ATH_MAC_LEN];
1185 } POSTPACK WMI_SET_ADHOC_BSSID_CMD;
1186
1187 /*
1188 * WMI_SET_OPT_MODE_CMDID
1189 */
1190 typedef enum {
1191 SPECIAL_OFF,
1192 SPECIAL_ON,
1193 } OPT_MODE_TYPE;
1194
1195 typedef PREPACK struct {
1196 A_UINT8 optMode;
1197 } POSTPACK WMI_SET_OPT_MODE_CMD;
1198
1199 /*
1200 * WMI_TX_OPT_FRAME_CMDID
1201 */
1202 typedef enum {
1203 OPT_PROBE_REQ = 0x01,
1204 OPT_PROBE_RESP = 0x02,
1205 OPT_CPPP_START = 0x03,
1206 OPT_CPPP_STOP = 0x04,
1207 } WMI_OPT_FTYPE;
1208
1209 typedef PREPACK struct {
1210 A_UINT16 optIEDataLen;
1211 A_UINT8 frmType;
1212 A_UINT8 dstAddr[ATH_MAC_LEN];
1213 A_UINT8 bssid[ATH_MAC_LEN];
1214 A_UINT8 reserved; /* For alignment */
1215 A_UINT8 optIEData[1];
1216 } POSTPACK WMI_OPT_TX_FRAME_CMD;
1217
1218 /*
1219 * Special frame receive Event.
1220 * Mechanism used to inform host of the receiption of the special frames.
1221 * Consists of special frame info header followed by special frame body.
1222 * The 802.11 header is not included.
1223 */
1224 typedef PREPACK struct {
1225 A_UINT16 channel;
1226 A_UINT8 frameType; /* see WMI_OPT_FTYPE */
1227 A_INT8 snr;
1228 A_UINT8 srcAddr[ATH_MAC_LEN];
1229 A_UINT8 bssid[ATH_MAC_LEN];
1230 } POSTPACK WMI_OPT_RX_INFO_HDR;
1231
1232 /*
1233 * Reporting statistics.
1234 */
1235 typedef PREPACK struct {
1236 A_UINT32 tx_packets;
1237 A_UINT32 tx_bytes;
1238 A_UINT32 tx_unicast_pkts;
1239 A_UINT32 tx_unicast_bytes;
1240 A_UINT32 tx_multicast_pkts;
1241 A_UINT32 tx_multicast_bytes;
1242 A_UINT32 tx_broadcast_pkts;
1243 A_UINT32 tx_broadcast_bytes;
1244 A_UINT32 tx_rts_success_cnt;
1245 A_UINT32 tx_packet_per_ac[4];
1246 A_UINT32 tx_errors_per_ac[4];
1247
1248 A_UINT32 tx_errors;
1249 A_UINT32 tx_failed_cnt;
1250 A_UINT32 tx_retry_cnt;
1251 A_UINT32 tx_rts_fail_cnt;
1252 A_INT32 tx_unicast_rate;
1253 }POSTPACK tx_stats_t;
1254
1255 typedef PREPACK struct {
1256 A_UINT32 rx_packets;
1257 A_UINT32 rx_bytes;
1258 A_UINT32 rx_unicast_pkts;
1259 A_UINT32 rx_unicast_bytes;
1260 A_UINT32 rx_multicast_pkts;
1261 A_UINT32 rx_multicast_bytes;
1262 A_UINT32 rx_broadcast_pkts;
1263 A_UINT32 rx_broadcast_bytes;
1264 A_UINT32 rx_fragment_pkt;
1265
1266 A_UINT32 rx_errors;
1267 A_UINT32 rx_crcerr;
1268 A_UINT32 rx_key_cache_miss;
1269 A_UINT32 rx_decrypt_err;
1270 A_UINT32 rx_duplicate_frames;
1271 A_INT32 rx_unicast_rate;
1272 }POSTPACK rx_stats_t;
1273
1274 typedef PREPACK struct {
1275 A_UINT32 tkip_local_mic_failure;
1276 A_UINT32 tkip_counter_measures_invoked;
1277 A_UINT32 tkip_replays;
1278 A_UINT32 tkip_format_errors;
1279 A_UINT32 ccmp_format_errors;
1280 A_UINT32 ccmp_replays;
1281 }POSTPACK tkip_ccmp_stats_t;
1282
1283 typedef PREPACK struct {
1284 A_UINT32 power_save_failure_cnt;
1285 }POSTPACK pm_stats_t;
1286
1287 typedef PREPACK struct {
1288 A_UINT32 cs_bmiss_cnt;
1289 A_UINT32 cs_lowRssi_cnt;
1290 A_UINT16 cs_connect_cnt;
1291 A_UINT16 cs_disconnect_cnt;
1292 A_INT16 cs_aveBeacon_rssi;
1293 A_UINT16 cs_roam_count;
1294 A_UINT16 cs_rssi;
1295 A_UINT8 cs_snr;
1296 A_UINT8 cs_aveBeacon_snr;
1297 A_UINT8 cs_lastRoam_msec;
1298 } POSTPACK cserv_stats_t;
1299
1300 typedef PREPACK struct {
1301 tx_stats_t tx_stats;
1302 rx_stats_t rx_stats;
1303 tkip_ccmp_stats_t tkipCcmpStats;
1304 }POSTPACK wlan_net_stats_t;
1305
1306 typedef PREPACK struct {
1307 A_UINT32 wow_num_pkts_dropped;
1308 A_UINT16 wow_num_events_discarded;
1309 A_UINT8 wow_num_host_pkt_wakeups;
1310 A_UINT8 wow_num_host_event_wakeups;
1311 } POSTPACK wlan_wow_stats_t;
1312
1313 typedef PREPACK struct {
1314 A_UINT32 lqVal;
1315 A_INT32 noise_floor_calibation;
1316 pm_stats_t pmStats;
1317 wlan_net_stats_t txrxStats;
1318 wlan_wow_stats_t wowStats;
1319 cserv_stats_t cservStats;
1320 } POSTPACK WMI_TARGET_STATS;
1321
1322 /*
1323 * WMI_RSSI_THRESHOLD_EVENTID.
1324 * Indicate the RSSI events to host. Events are indicated when we breach a
1325 * thresold value.
1326 */
1327 typedef enum{
1328 WMI_RSSI_THRESHOLD1_ABOVE = 0,
1329 WMI_RSSI_THRESHOLD2_ABOVE,
1330 WMI_RSSI_THRESHOLD3_ABOVE,
1331 WMI_RSSI_THRESHOLD4_ABOVE,
1332 WMI_RSSI_THRESHOLD5_ABOVE,
1333 WMI_RSSI_THRESHOLD6_ABOVE,
1334 WMI_RSSI_THRESHOLD1_BELOW,
1335 WMI_RSSI_THRESHOLD2_BELOW,
1336 WMI_RSSI_THRESHOLD3_BELOW,
1337 WMI_RSSI_THRESHOLD4_BELOW,
1338 WMI_RSSI_THRESHOLD5_BELOW,
1339 WMI_RSSI_THRESHOLD6_BELOW
1340 }WMI_RSSI_THRESHOLD_VAL;
1341
1342 typedef PREPACK struct {
1343 A_INT16 rssi;
1344 A_UINT8 range;
1345 }POSTPACK WMI_RSSI_THRESHOLD_EVENT;
1346
1347 /*
1348 * WMI_ERROR_REPORT_EVENTID
1349 */
1350 typedef enum{
1351 WMI_TARGET_PM_ERR_FAIL = 0x00000001,
1352 WMI_TARGET_KEY_NOT_FOUND = 0x00000002,
1353 WMI_TARGET_DECRYPTION_ERR = 0x00000004,
1354 WMI_TARGET_BMISS = 0x00000008,
1355 WMI_PSDISABLE_NODE_JOIN = 0x00000010,
1356 WMI_TARGET_COM_ERR = 0x00000020,
1357 WMI_TARGET_FATAL_ERR = 0x00000040
1358 } WMI_TARGET_ERROR_VAL;
1359
1360 typedef PREPACK struct {
1361 A_UINT32 errorVal;
1362 }POSTPACK WMI_TARGET_ERROR_REPORT_EVENT;
1363
1364 typedef PREPACK struct {
1365 A_UINT8 retrys;
1366 }POSTPACK WMI_TX_RETRY_ERR_EVENT;
1367
1368 typedef enum{
1369 WMI_SNR_THRESHOLD1_ABOVE = 1,
1370 WMI_SNR_THRESHOLD1_BELOW,
1371 WMI_SNR_THRESHOLD2_ABOVE,
1372 WMI_SNR_THRESHOLD2_BELOW,
1373 WMI_SNR_THRESHOLD3_ABOVE,
1374 WMI_SNR_THRESHOLD3_BELOW,
1375 WMI_SNR_THRESHOLD4_ABOVE,
1376 WMI_SNR_THRESHOLD4_BELOW
1377 } WMI_SNR_THRESHOLD_VAL;
1378
1379 typedef PREPACK struct {
1380 A_UINT8 range; /* WMI_SNR_THRESHOLD_VAL */
1381 A_UINT8 snr;
1382 }POSTPACK WMI_SNR_THRESHOLD_EVENT;
1383
1384 typedef enum{
1385 WMI_LQ_THRESHOLD1_ABOVE = 1,
1386 WMI_LQ_THRESHOLD1_BELOW,
1387 WMI_LQ_THRESHOLD2_ABOVE,
1388 WMI_LQ_THRESHOLD2_BELOW,
1389 WMI_LQ_THRESHOLD3_ABOVE,
1390 WMI_LQ_THRESHOLD3_BELOW,
1391 WMI_LQ_THRESHOLD4_ABOVE,
1392 WMI_LQ_THRESHOLD4_BELOW
1393 } WMI_LQ_THRESHOLD_VAL;
1394
1395 typedef PREPACK struct {
1396 A_INT32 lq;
1397 A_UINT8 range; /* WMI_LQ_THRESHOLD_VAL */
1398 }POSTPACK WMI_LQ_THRESHOLD_EVENT;
1399 /*
1400 * WMI_REPORT_ROAM_TBL_EVENTID
1401 */
1402 #define MAX_ROAM_TBL_CAND 5
1403
1404 typedef PREPACK struct {
1405 A_INT32 roam_util;
1406 A_UINT8 bssid[ATH_MAC_LEN];
1407 A_INT8 rssi;
1408 A_INT8 rssidt;
1409 A_INT8 last_rssi;
1410 A_INT8 util;
1411 A_INT8 bias;
1412 A_UINT8 reserved; /* For alignment */
1413 } POSTPACK WMI_BSS_ROAM_INFO;
1414
1415
1416 typedef PREPACK struct {
1417 A_UINT16 roamMode;
1418 A_UINT16 numEntries;
1419 WMI_BSS_ROAM_INFO bssRoamInfo[1];
1420 } POSTPACK WMI_TARGET_ROAM_TBL;
1421
1422 /*
1423 * WMI_CAC_EVENTID
1424 */
1425 typedef enum {
1426 CAC_INDICATION_ADMISSION = 0x00,
1427 CAC_INDICATION_ADMISSION_RESP = 0x01,
1428 CAC_INDICATION_DELETE = 0x02,
1429 CAC_INDICATION_NO_RESP = 0x03,
1430 }CAC_INDICATION;
1431
1432 #define WMM_TSPEC_IE_LEN 63
1433
1434 typedef PREPACK struct {
1435 A_UINT8 ac;
1436 A_UINT8 cac_indication;
1437 A_UINT8 statusCode;
1438 A_UINT8 tspecSuggestion[WMM_TSPEC_IE_LEN];
1439 }POSTPACK WMI_CAC_EVENT;
1440
1441 /*
1442 * WMI_APLIST_EVENTID
1443 */
1444
1445 typedef enum {
1446 APLIST_VER1 = 1,
1447 } APLIST_VER;
1448
1449 typedef PREPACK struct {
1450 A_UINT8 bssid[ATH_MAC_LEN];
1451 A_UINT16 channel;
1452 } POSTPACK WMI_AP_INFO_V1;
1453
1454 typedef PREPACK union {
1455 WMI_AP_INFO_V1 apInfoV1;
1456 } POSTPACK WMI_AP_INFO;
1457
1458 typedef PREPACK struct {
1459 A_UINT8 apListVer;
1460 A_UINT8 numAP;
1461 WMI_AP_INFO apList[1];
1462 } POSTPACK WMI_APLIST_EVENT;
1463
1464 /*
1465 * developer commands
1466 */
1467
1468 /*
1469 * WMI_SET_BITRATE_CMDID
1470 *
1471 * Get bit rate cmd uses same definition as set bit rate cmd
1472 */
1473 typedef enum {
1474 RATE_AUTO = -1,
1475 RATE_1Mb = 0,
1476 RATE_2Mb = 1,
1477 RATE_5_5Mb = 2,
1478 RATE_11Mb = 3,
1479 RATE_6Mb = 4,
1480 RATE_9Mb = 5,
1481 RATE_12Mb = 6,
1482 RATE_18Mb = 7,
1483 RATE_24Mb = 8,
1484 RATE_36Mb = 9,
1485 RATE_48Mb = 10,
1486 RATE_54Mb = 11,
1487 } WMI_BIT_RATE;
1488
1489 typedef PREPACK struct {
1490 A_INT8 rateIndex; /* see WMI_BIT_RATE */
1491 } POSTPACK WMI_BIT_RATE_CMD, WMI_BIT_RATE_REPLY;
1492
1493 /*
1494 * WMI_SET_FIXRATES_CMDID
1495 *
1496 * Get fix rates cmd uses same definition as set fix rates cmd
1497 */
1498 typedef enum {
1499 FIX_RATE_1Mb = 0x1,
1500 FIX_RATE_2Mb = 0x2,
1501 FIX_RATE_5_5Mb = 0x4,
1502 FIX_RATE_11Mb = 0x8,
1503 FIX_RATE_6Mb = 0x10,
1504 FIX_RATE_9Mb = 0x20,
1505 FIX_RATE_12Mb = 0x40,
1506 FIX_RATE_18Mb = 0x80,
1507 FIX_RATE_24Mb = 0x100,
1508 FIX_RATE_36Mb = 0x200,
1509 FIX_RATE_48Mb = 0x400,
1510 FIX_RATE_54Mb = 0x800,
1511 } WMI_FIX_RATES_MASK;
1512
1513 typedef PREPACK struct {
1514 A_UINT16 fixRateMask; /* see WMI_BIT_RATE */
1515 } POSTPACK WMI_FIX_RATES_CMD, WMI_FIX_RATES_REPLY;
1516
1517 /*
1518 * WMI_SET_RECONNECT_AUTH_MODE_CMDID
1519 *
1520 * Set authentication mode
1521 */
1522 typedef enum {
1523 RECONN_DO_AUTH = 0x00,
1524 RECONN_NOT_AUTH = 0x01
1525 } WMI_AUTH_MODE;
1526
1527 typedef PREPACK struct {
1528 A_UINT8 mode;
1529 } POSTPACK WMI_SET_AUTH_MODE_CMD;
1530
1531 /*
1532 * WMI_SET_REASSOC_MODE_CMDID
1533 *
1534 * Set authentication mode
1535 */
1536 typedef enum {
1537 REASSOC_DO_DISASSOC = 0x00,
1538 REASSOC_DONOT_DISASSOC = 0x01
1539 } WMI_REASSOC_MODE;
1540
1541 typedef PREPACK struct {
1542 A_UINT8 mode;
1543 }POSTPACK WMI_SET_REASSOC_MODE_CMD;
1544
1545 typedef enum {
1546 ROAM_DATA_TIME = 1, /* Get The Roam Time Data */
1547 } ROAM_DATA_TYPE;
1548
1549 typedef PREPACK struct {
1550 A_UINT32 disassoc_time;
1551 A_UINT32 no_txrx_time;
1552 A_UINT32 assoc_time;
1553 A_UINT32 allow_txrx_time;
1554 A_UINT32 last_data_txrx_time;
1555 A_UINT32 first_data_txrx_time;
1556 A_UINT8 disassoc_bssid[ATH_MAC_LEN];
1557 A_INT8 disassoc_bss_rssi;
1558 A_UINT8 assoc_bssid[ATH_MAC_LEN];
1559 A_INT8 assoc_bss_rssi;
1560 } POSTPACK WMI_TARGET_ROAM_TIME;
1561
1562 typedef PREPACK struct {
1563 PREPACK union {
1564 WMI_TARGET_ROAM_TIME roamTime;
1565 } POSTPACK u;
1566 A_UINT8 roamDataType ;
1567 } POSTPACK WMI_TARGET_ROAM_DATA;
1568
1569 typedef enum {
1570 WMI_WMM_DISABLED = 0,
1571 WMI_WMM_ENABLED
1572 } WMI_WMM_STATUS;
1573
1574 typedef PREPACK struct {
1575 A_UINT8 status;
1576 }POSTPACK WMI_SET_WMM_CMD;
1577
1578 typedef enum {
1579 WMI_TXOP_DISABLED = 0,
1580 WMI_TXOP_ENABLED
1581 } WMI_TXOP_CFG;
1582
1583 typedef PREPACK struct {
1584 A_UINT8 txopEnable;
1585 }POSTPACK WMI_SET_WMM_TXOP_CMD;
1586
1587 typedef PREPACK struct {
1588 A_UINT8 keepaliveInterval;
1589 } POSTPACK WMI_SET_KEEPALIVE_CMD;
1590
1591 typedef PREPACK struct {
1592 A_BOOL configured;
1593 A_UINT8 keepaliveInterval;
1594 } POSTPACK WMI_GET_KEEPALIVE_CMD;
1595
1596 /*
1597 * Add Application specified IE to a management frame
1598 */
1599 #define WMI_MAX_IE_LEN 78
1600
1601 typedef PREPACK struct {
1602 A_UINT8 mgmtFrmType; /* one of WMI_MGMT_FRAME_TYPE */
1603 A_UINT8 ieLen; /* Length of the IE that should be added to the MGMT frame */
1604 A_UINT8 ieInfo[1];
1605 } POSTPACK WMI_SET_APPIE_CMD;
1606
1607 /*
1608 * Notify the WSC registration status to the target
1609 */
1610 #define WSC_REG_ACTIVE 1
1611 #define WSC_REG_INACTIVE 0
1612 /* Generic Hal Interface for setting hal paramters. */
1613 /* Add new Set HAL Param cmdIds here for newer params */
1614 typedef enum {
1615 WHAL_SETCABTO_CMDID = 1,
1616 }WHAL_CMDID;
1617
1618 typedef PREPACK struct {
1619 A_UINT8 cabTimeOut;
1620 } POSTPACK WHAL_SETCABTO_PARAM;
1621
1622 typedef PREPACK struct {
1623 A_UINT8 whalCmdId;
1624 A_UINT8 data[1];
1625 } POSTPACK WHAL_PARAMCMD;
1626
1627
1628 #define WOW_MAX_FILTER_LISTS 1 /*4*/
1629 #define WOW_MAX_FILTERS_PER_LIST 4
1630 #define WOW_PATTERN_SIZE 64
1631 #define WOW_MASK_SIZE 64
1632
1633 typedef PREPACK struct {
1634 A_UINT8 wow_valid_filter;
1635 A_UINT8 wow_filter_id;
1636 A_UINT8 wow_filter_size;
1637 A_UINT8 wow_filter_offset;
1638 A_UINT8 wow_filter_mask[WOW_MASK_SIZE];
1639 A_UINT8 wow_filter_pattern[WOW_PATTERN_SIZE];
1640 } POSTPACK WOW_FILTER;
1641
1642
1643 typedef PREPACK struct {
1644 A_UINT8 wow_valid_list;
1645 A_UINT8 wow_list_id;
1646 A_UINT8 wow_num_filters;
1647 A_UINT8 wow_total_list_size;
1648 WOW_FILTER list[WOW_MAX_FILTERS_PER_LIST];
1649 } POSTPACK WOW_FILTER_LIST;
1650
1651 typedef PREPACK struct {
1652 A_BOOL awake;
1653 A_BOOL asleep;
1654 } POSTPACK WMI_SET_HOST_SLEEP_MODE_CMD;
1655
1656 typedef PREPACK struct {
1657 A_BOOL enable_wow;
1658 } POSTPACK WMI_SET_WOW_MODE_CMD;
1659
1660 typedef PREPACK struct {
1661 A_UINT8 filter_list_id;
1662 } POSTPACK WMI_GET_WOW_LIST_CMD;
1663
1664 /*
1665 * WMI_GET_WOW_LIST_CMD reply
1666 */
1667 typedef PREPACK struct {
1668 A_UINT8 num_filters; /* number of patterns in reply */
1669 A_UINT8 this_filter_num; /* this is filter # x of total num_filters */
1670 A_UINT8 wow_mode;
1671 A_UINT8 host_mode;
1672 WOW_FILTER wow_filters[1];
1673 } POSTPACK WMI_GET_WOW_LIST_REPLY;
1674
1675 typedef PREPACK struct {
1676 A_UINT8 filter_list_id;
1677 A_UINT8 filter_size;
1678 A_UINT8 filter_offset;
1679 A_UINT8 filter[1];
1680 } POSTPACK WMI_ADD_WOW_PATTERN_CMD;
1681
1682 typedef PREPACK struct {
1683 A_UINT16 filter_list_id;
1684 A_UINT16 filter_id;
1685 } POSTPACK WMI_DEL_WOW_PATTERN_CMD;
1686
1687 typedef PREPACK struct {
1688 A_UINT8 macaddr[ATH_MAC_LEN];
1689 } POSTPACK WMI_SET_MAC_ADDRESS_CMD;
1690
1691 /*
1692 * WMI_SET_AKMP_PARAMS_CMD
1693 */
1694
1695 #define WMI_AKMP_MULTI_PMKID_EN 0x000001
1696
1697 typedef PREPACK struct {
1698 A_UINT32 akmpInfo;
1699 } POSTPACK WMI_SET_AKMP_PARAMS_CMD;
1700
1701 typedef PREPACK struct {
1702 A_UINT8 pmkid[WMI_PMKID_LEN];
1703 } POSTPACK WMI_PMKID;
1704
1705 /*
1706 * WMI_SET_PMKID_LIST_CMD
1707 */
1708 #define WMI_MAX_PMKID_CACHE 8
1709
1710 typedef PREPACK struct {
1711 A_UINT32 numPMKID;
1712 WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
1713 } POSTPACK WMI_SET_PMKID_LIST_CMD;
1714
1715 /*
1716 * WMI_GET_PMKID_LIST_CMD Reply
1717 * Following the Number of PMKIDs is the list of PMKIDs
1718 */
1719 typedef PREPACK struct {
1720 A_UINT32 numPMKID;
1721 WMI_PMKID pmkidList[1];
1722 } POSTPACK WMI_PMKID_LIST_REPLY;
1723
1724 /* index used for priority streams */
1725 typedef enum {
1726 WMI_NOT_MAPPED = -1,
1727 WMI_CONTROL_PRI = 0,
1728 WMI_BEST_EFFORT_PRI = 1,
1729 WMI_LOW_PRI = 2,
1730 WMI_HIGH_PRI = 3,
1731 WMI_HIGHEST_PRI,
1732 WMI_PRI_MAX_COUNT
1733 } WMI_PRI_STREAM_ID;
1734
1735 #ifndef ATH_TARGET
1736 #include "athendpack.h"
1737 #endif
1738
1739 #ifdef __cplusplus
1740 }
1741 #endif
1742
1743 #endif /* _WMI_H_ */