2 * Copyright (c) 2004-2006 Atheros Communications Inc.
6 * $ATH_LICENSE_HOSTSDK0_C$
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.
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.
23 #include "athstartpack.h"
32 #define WMI_PROTOCOL_VERSION 0x0002
33 #define WMI_PROTOCOL_REVISION 0x0000
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}
42 #define IP_ETHERTYPE 0x0800
44 #define WMI_IMPLICIT_PSTREAM 0xFF
45 #define WMI_MAX_THINSTREAM 15
47 struct host_app_area_s {
48 A_UINT32 wmi_protocol_ver;
54 typedef PREPACK struct {
55 A_UINT8 dstMac[ATH_MAC_LEN];
56 A_UINT8 srcMac[ATH_MAC_LEN];
58 } POSTPACK ATH_MAC_HDR;
60 typedef PREPACK struct {
66 } POSTPACK ATH_LLC_SNAP_HDR;
75 typedef PREPACK struct {
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;
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))
93 typedef PREPACK struct {
95 } POSTPACK WMI_CMD_HDR; /* used for commands and events */
101 WMI_CONNECT_CMDID = 0x0001,
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,
125 WMI_DELETE_KRK_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,
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,
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,
157 WMI_SET_WMM_TXOP_CMDID,
159 WMI_SET_BT_STATUS_CMDID,
160 WMI_SET_BT_PARAMS_CMDID,
162 WMI_SET_KEEPALIVE_CMDID,
163 WMI_GET_KEEPALIVE_CMDID,
166 WMI_SET_WSC_STATUS_CMDID,
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,
180 * Developer commands starts at 0xF000
182 WMI_SET_BITRATE_CMDID = 0xF000,
183 WMI_GET_BITRATE_CMDID,
184 WMI_SET_WHALPARAM_CMDID,
192 WMI_FRAME_BEACON = 0,
194 WMI_FRAME_PROBE_RESP,
196 WMI_FRAME_ASSOC_RESP,
198 } WMI_MGMT_FRAME_TYPE;
204 INFRA_NETWORK = 0x01,
205 ADHOC_NETWORK = 0x02,
206 ADHOC_CREATOR = 0x04,
212 LEAP_AUTH = 0x04, /* different from IEEE_AUTH_MODE definitions */
220 WPA2_PSK_AUTH = 0x05,
221 WPA_AUTH_CCKM = 0x06,
222 WPA2_AUTH_CCKM = 0x07,
232 #define WMI_MIN_CRYPTO_TYPE NONE_CRYPT
233 #define WMI_MAX_CRYPTO_TYPE (AES_CRYPT + 1)
235 #define WMI_MIN_KEY_INDEX 0
236 #define WMI_MAX_KEY_INDEX 3
238 #define WMI_MAX_KEY_LEN 32
240 #define WMI_MAX_SSID_LEN 32
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;
251 #define DEFAULT_CONNECT_CTRL_FLAGS (CONNECT_CSA_FOLLOW_BSS)
253 typedef PREPACK struct {
255 A_UINT8 dot11AuthMode;
257 A_UINT8 pairwiseCryptoType;
258 A_UINT8 pairwiseCryptoLen;
259 A_UINT8 groupCryptoType;
260 A_UINT8 groupCryptoLen;
262 A_UCHAR ssid[WMI_MAX_SSID_LEN];
264 A_UINT8 bssid[ATH_MAC_LEN];
266 } POSTPACK WMI_CONNECT_CMD;
269 * WMI_RECONNECT_CMDID
271 typedef PREPACK struct {
272 A_UINT16 channel; /* hint */
273 A_UINT8 bssid[ATH_MAC_LEN]; /* mandatory if set */
274 } POSTPACK WMI_RECONNECT_CMD;
277 * WMI_ADD_CIPHER_KEY_CMDID
280 PAIRWISE_USAGE = 0x00,
282 TX_USAGE = 0x02, /* default Tx Key - Static WEP only */
287 * Bit 0 - Initialise TSC - default is Initialize
289 #define KEY_OP_INIT_TSC 0x01
290 #define KEY_OP_INIT_RSC 0x02
292 #define KEY_OP_INIT_VAL 0x03 /* Default Initialise the TSC & RSC */
293 #define KEY_OP_VALID_MASK 0x03
295 typedef PREPACK struct {
298 A_UINT8 keyUsage; /* KEY_USAGE */
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;
306 * WMI_DELETE_CIPHER_KEY_CMDID
308 typedef PREPACK struct {
310 } POSTPACK WMI_DELETE_CIPHER_KEY_CMD;
312 #define WMI_KRK_LEN 16
316 typedef PREPACK struct {
317 A_UINT8 krk[WMI_KRK_LEN];
318 } POSTPACK WMI_ADD_KRK_CMD;
321 * WMI_SET_TKIP_COUNTERMEASURES_CMDID
324 WMI_TKIP_CM_DISABLE = 0x0,
325 WMI_TKIP_CM_ENABLE = 0x1,
326 } WMI_TKIP_CM_CONTROL;
328 typedef PREPACK struct {
329 A_UINT8 cm_en; /* WMI_TKIP_CM_CONTROL */
330 } POSTPACK WMI_SET_TKIP_COUNTERMEASURES_CMD;
333 * WMI_SET_PMKID_CMDID
336 #define WMI_PMKID_LEN 16
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;
357 typedef PREPACK struct {
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;
366 * WMI_SET_SCAN_PARAMS_CMDID
368 #define WMI_SHORTSCANRATIO_DEFAULT 3
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 */
380 } WMI_SCAN_CTRL_FLAGS_BITS;
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)
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)
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;
406 * WMI_SET_BSS_FILTER_CMDID
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 */
419 typedef PREPACK struct {
420 A_UINT8 bssFilter; /* see WMI_BSS_FILTER */
422 } POSTPACK WMI_BSS_FILTER_CMD;
425 * WMI_SET_PROBED_SSID_CMDID
427 #define MAX_PROBED_SSID_INDEX 5
430 DISABLE_SSID_FLAG = 0, /* disables entry */
431 SPECIFIC_SSID_FLAG = 0x01, /* probes specified ssid */
432 ANY_SSID_FLAG = 0x02, /* probes for any ssid */
435 typedef PREPACK struct {
436 A_UINT8 entryIndex; /* 0 to MAX_PROBED_SSID_INDEX */
437 A_UINT8 flag; /* WMI_SSID_FLG */
440 } POSTPACK WMI_PROBED_SSID_CMD;
443 * WMI_SET_LISTEN_INT_CMDID
444 * The Listen interval is between 15 and 3000 TUs
446 #define MIN_LISTEN_INTERVAL 15
447 #define MAX_LISTEN_INTERVAL 5000
448 #define MIN_LISTEN_BEACONS 1
449 #define MAX_LISTEN_BEACONS 50
451 typedef PREPACK struct {
452 A_UINT16 listenInterval;
454 } POSTPACK WMI_LISTEN_INT_CMD;
457 * WMI_SET_BEACON_INT_CMDID
459 typedef PREPACK struct {
460 A_UINT16 beaconInterval;
461 } POSTPACK WMI_BEACON_INT_CMD;
464 * WMI_SET_BMISS_TIME_CMDID
465 * valid values are between 1000 and 5000 TUs
468 #define MIN_BMISS_TIME 1000
469 #define MAX_BMISS_TIME 5000
470 #define MIN_BMISS_BEACONS 1
471 #define MAX_BMISS_BEACONS 50
473 typedef PREPACK struct {
476 } POSTPACK WMI_BMISS_TIME_CMD;
479 * WMI_SET_POWER_MODE_CMDID
486 typedef PREPACK struct {
487 A_UINT8 powerMode; /* WMI_POWER_MODE */
488 } POSTPACK WMI_POWER_MODE_CMD;
491 * WMI_SET_POWER_PARAMS_CMDID
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;
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;
513 * WMI_SET_POWERSAVE_TIMERS_POLICY_CMDID
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,
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;
530 * WMI_SET_VOICE_PKT_SIZE_CMDID
532 typedef PREPACK struct {
533 A_UINT16 voicePktSize;
534 } POSTPACK WMI_SET_VOICE_PKT_SIZE_CMD;
537 * WMI_SET_MAX_SP_LEN_CMDID
540 DELIVER_ALL_PKT = 0x0,
546 typedef PREPACK struct {
548 } POSTPACK WMI_SET_MAX_SP_LEN_CMD;
551 * WMI_SET_DISC_TIMEOUT_CMDID
553 typedef PREPACK struct {
554 A_UINT8 disconnectTimeout; /* seconds */
555 } POSTPACK WMI_DISC_TIMEOUT_CMD;
564 DISABLE_FOR_THIS_AC = 0,
565 ENABLE_FOR_THIS_AC = 1,
566 ENABLE_FOR_ALL_AC = 2,
570 TRAFFIC_TYPE_APERIODIC = 0,
571 TRAFFIC_TYPE_PERIODIC = 1,
575 * WMI_CREATE_PSTREAM_CMDID
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;
588 A_UINT32 minPhyRate; /* in bps */
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 */
598 A_UINT8 userPriority; /* 802.1D user priority */
599 } POSTPACK WMI_CREATE_PSTREAM_CMD;
602 * WMI_DELETE_PSTREAM_CMDID
604 typedef PREPACK struct {
605 A_UINT8 trafficClass;
607 } POSTPACK WMI_DELETE_PSTREAM_CMD;
610 * WMI_SET_CHANNEL_PARAMS_CMDID
617 WMI_11GONLY_MODE = 0x5,
620 #define WMI_MAX_CHANNELS 32
622 typedef PREPACK struct {
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;
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)
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" */
655 } POSTPACK WMI_RSSI_THRESHOLD_PARAMS_CMD;
658 * WMI_SNR_THRESHOLD_PARAMS_CMDID
659 * Setting the polltime to 0 would disable polling.
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 */
674 } POSTPACK WMI_SNR_THRESHOLD_PARAMS_CMD;
677 * WMI_LQ_THRESHOLD_PARAMS_CMDID
679 typedef PREPACK struct WMI_LQ_THRESHOLD_PARAMS {
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;
690 } POSTPACK WMI_LQ_THRESHOLD_PARAMS_CMD;
693 WMI_LPREAMBLE_DISABLED = 0,
694 WMI_LPREAMBLE_ENABLED
695 } WMI_LPREAMBLE_STATUS;
697 typedef PREPACK struct {
699 }POSTPACK WMI_SET_LPREAMBLE_CMD;
701 typedef PREPACK struct {
703 }POSTPACK WMI_SET_RTS_CMD;
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.
711 typedef PREPACK struct {
713 } POSTPACK WMI_TARGET_ERROR_REPORT_BITMASK;
716 * WMI_SET_TX_PWR_CMDID
718 typedef PREPACK struct {
719 A_UINT8 dbM; /* in dbM units */
720 } POSTPACK WMI_SET_TX_PWR_CMD, WMI_TX_PWR_REPLY;
723 * WMI_SET_ASSOC_INFO_CMDID
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.
728 #define WMI_MAX_ASSOC_INFO_TYPE 2
729 #define WMI_CCX_VER_IE 2 /* ieType to set CCX Version IE */
731 #define WMI_MAX_ASSOC_INFO_LEN 240
733 typedef PREPACK struct {
736 A_UINT8 assocInfo[1]; /* up to WMI_MAX_ASSOC_INFO_LEN */
737 } POSTPACK WMI_SET_ASSOC_INFO_CMD;
741 * WMI_GET_TX_PWR_CMDID does not take any parameters
745 * WMI_ADD_BAD_AP_CMDID
747 #define WMI_MAX_BAD_AP_INDEX 1
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;
755 * WMI_DELETE_BAD_AP_CMDID
757 typedef PREPACK struct {
758 A_UINT8 badApIndex; /* 0 to WMI_MAX_BAD_AP_INDEX */
759 } POSTPACK WMI_DELETE_BAD_AP_CMD;
762 * WMI_SET_ACCESS_PARAMS_CMDID
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 */
775 } POSTPACK WMI_SET_ACCESS_PARAMS_CMD;
779 * WMI_SET_RETRY_LIMITS_CMDID
781 * This command is used to customize the number of retries the
782 * wlan device will perform on a given frame.
784 #define WMI_MIN_RETRIES 2
785 #define WMI_MAX_RETRIES 13
788 CONTROL_FRAMETYPE = 1,
792 typedef PREPACK struct {
793 A_UINT8 frameType; /* WMI_FRAMETYPE */
794 A_UINT8 trafficClass; /* applies only to DATA_FRAMETYPE */
796 A_UINT8 enableNotify;
797 } POSTPACK WMI_SET_RETRY_LIMITS_CMD;
800 * WMI_SET_ROAM_CTRL_CMDID
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
808 * Different types of Roam Control
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;
818 #define WMI_MIN_ROAM_CTRL_TYPE WMI_FORCE_ROAM
819 #define WMI_MAX_ROAM_CTRL_TYPE WMI_SET_LOWRSSI_SCAN_PARAMS
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 */
835 typedef PREPACK struct {
836 A_UINT8 bssid[ATH_MAC_LEN];
838 } POSTPACK WMI_BSS_BIAS;
840 typedef PREPACK struct {
842 WMI_BSS_BIAS bssBias[1];
843 } POSTPACK WMI_BSS_BIAS_INFO;
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;
853 typedef PREPACK struct {
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;
860 A_UINT8 roamCtrlType ;
861 } POSTPACK WMI_SET_ROAM_CTRL_CMD;
864 * WMI_ENABLE_RM_CMDID
866 typedef PREPACK struct {
867 A_BOOL enable_radio_measurements;
868 } POSTPACK WMI_ENABLE_RM_CMD;
871 * WMI_SET_MAX_OFFHOME_DURATION_CMDID
873 typedef PREPACK struct {
874 A_UINT8 max_offhome_duration;
875 } POSTPACK WMI_SET_MAX_OFFHOME_DURATION_CMD;
877 typedef PREPACK struct {
880 } POSTPACK WMI_SET_HB_CHALLENGE_RESP_PARAMS_CMD;
884 BT_STREAM_SCO, /* SCO stream */
885 BT_STREAM_A2DP, /* A2DP stream */
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 */
906 typedef PREPACK struct {
909 } POSTPACK WMI_SET_BT_STATUS_CMD;
911 typedef PREPACK struct {
913 A_UINT8 pspollTimeout;
915 } POSTPACK BT_PARAMS_SCO;
917 typedef PREPACK struct {
921 } POSTPACK BT_PARAMS_A2DP;
923 typedef PREPACK struct {
930 } POSTPACK BT_COEX_REGS;
933 WLAN_PROTECT_POLICY = 1,
935 } BT_PARAMS_MISC_TYPE;
938 WLAN_PROTECT_PER_STREAM = 0x01, /* default */
939 WLAN_PROTECT_ANY_TX = 0x02
940 } WLAN_PROTECT_FLAGS;
943 #define WLAN_DISABLE_COEX_IN_DISCONNECT 0x01 /* default */
944 #define WLAN_KEEP_COEX_IN_DISCONNECT 0x02
945 #define WLAN_STOMPBT_IN_DISCONNECT 0x04
947 #define WLAN_DISABLE_COEX_IN_ROAM 0x10 /* default */
948 #define WLAN_KEEP_COEX_IN_ROAM 0x20
949 #define WLAN_STOMPBT_IN_ROAM 0x40
951 #define WLAN_DISABLE_COEX_IN_SCAN 0x100 /* default */
952 #define WLAN_KEEP_COEX_IN_SCAN 0x200
953 #define WLAN_STOMPBT_IN_SCAN 0x400
955 #define WLAN_DISABLE_COEX_BT_OFF 0x1000 /* default */
956 #define WLAN_KEEP_COEX_BT_OFF 0x2000
957 #define WLAN_STOMPBT_BT_OFF 0x4000
959 typedef PREPACK struct {
964 } POSTPACK WLAN_PROTECT_POLICY_TYPE;
966 typedef PREPACK struct {
968 WLAN_PROTECT_POLICY_TYPE protectParams;
969 A_UINT16 wlanCtrlFlags;
972 } POSTPACK BT_PARAMS_MISC;
974 typedef PREPACK struct {
976 BT_PARAMS_SCO scoParams;
977 BT_PARAMS_A2DP a2dpParams;
978 BT_PARAMS_MISC miscParams;
982 } POSTPACK WMI_SET_BT_PARAMS_CMD;
989 * WMI_GET_CHANNEL_LIST_CMDID reply
991 typedef PREPACK struct {
993 A_UINT8 numChannels; /* number of channels in reply */
994 A_UINT16 channelList[1]; /* channel in Mhz */
995 } POSTPACK WMI_CHANNEL_LIST_REPLY;
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;
1007 * List of Events (target to host)
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,
1027 WMI_SNR_THRESHOLD_EVENTID,
1028 WMI_LQ_THRESHOLD_EVENTID,
1029 WMI_TX_RETRY_ERR_EVENTID,
1030 WMI_REPORT_ROAM_DATA_EVENTID,
1033 WMI_GET_WOW_LIST_EVENTID,
1034 WMI_GET_PMKID_LIST_EVENTID
1038 WMI_11A_CAPABILITY = 1,
1039 WMI_11G_CAPABILITY = 2,
1040 WMI_11AG_CAPABILITY = 3,
1041 } WMI_PHY_CAPABILITY;
1043 typedef PREPACK struct {
1044 A_UINT8 macaddr[ATH_MAC_LEN];
1045 A_UINT8 phyCapability; /* WMI_PHY_CAPABILITY */
1046 } POSTPACK WMI_READY_EVENT;
1051 typedef PREPACK struct {
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;
1067 NO_NETWORK_AVAIL = 0x01,
1068 LOST_LINK = 0x02, /* bmiss */
1069 DISCONNECT_CMD = 0x03,
1070 BSS_DISCONNECTED = 0x04,
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;
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;
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.
1100 BSS_ELEMID_CHANSWITCH = 0x01,
1101 BSS_ELEMID_ATHEROS = 0x02,
1104 typedef PREPACK struct {
1106 A_UINT8 frameType; /* see WMI_BI_FTYPE */
1109 A_UINT8 bssid[ATH_MAC_LEN];
1111 } POSTPACK WMI_BSS_INFO_HDR;
1114 * Command Error Event
1117 INVALID_PARAM = 0x01,
1118 ILLEGAL_STATE = 0x02,
1119 INTERNAL_ERROR = 0x03,
1122 typedef PREPACK struct {
1125 } POSTPACK WMI_CMD_ERROR_EVENT;
1128 * New Regulatory Domain Event
1130 typedef PREPACK struct {
1132 } POSTPACK WMI_REG_DOMAIN_EVENT;
1134 typedef PREPACK struct {
1135 A_UINT8 trafficClass;
1136 } POSTPACK WMI_PSTREAM_TIMEOUT_EVENT;
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
1144 * The bssid and bssFlags information repeats according to the number
1148 WMI_DEFAULT_BSS_FLAGS = 0x00,
1149 WMI_PREAUTH_CAPABLE_BSS = 0x01,
1150 WMI_PMKID_VALID_BSS = 0x02,
1153 typedef PREPACK struct {
1154 A_UINT8 bssid[ATH_MAC_LEN];
1155 A_UINT8 bssFlags; /* see WMI_BSS_FLAGS */
1156 } POSTPACK WMI_NEIGHBOR_INFO;
1158 typedef PREPACK struct {
1160 WMI_NEIGHBOR_INFO neighbor[1];
1161 } POSTPACK WMI_NEIGHBOR_REPORT_EVENT;
1164 * TKIP MIC Error Event
1166 typedef PREPACK struct {
1169 } POSTPACK WMI_TKIP_MICERR_EVENT;
1172 * WMI_SCAN_COMPLETE_EVENTID - no parameters (old), staus parameter (new)
1174 typedef PREPACK struct {
1176 } POSTPACK WMI_SCAN_COMPLETE_EVENT;
1178 #define MAX_OPT_DATA_LEN 1400
1181 * WMI_SET_ADHOC_BSSID_CMDID
1183 typedef PREPACK struct {
1184 A_UINT8 bssid[ATH_MAC_LEN];
1185 } POSTPACK WMI_SET_ADHOC_BSSID_CMD;
1188 * WMI_SET_OPT_MODE_CMDID
1195 typedef PREPACK struct {
1197 } POSTPACK WMI_SET_OPT_MODE_CMD;
1200 * WMI_TX_OPT_FRAME_CMDID
1203 OPT_PROBE_REQ = 0x01,
1204 OPT_PROBE_RESP = 0x02,
1205 OPT_CPPP_START = 0x03,
1206 OPT_CPPP_STOP = 0x04,
1209 typedef PREPACK struct {
1210 A_UINT16 optIEDataLen;
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;
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.
1224 typedef PREPACK struct {
1226 A_UINT8 frameType; /* see WMI_OPT_FTYPE */
1228 A_UINT8 srcAddr[ATH_MAC_LEN];
1229 A_UINT8 bssid[ATH_MAC_LEN];
1230 } POSTPACK WMI_OPT_RX_INFO_HDR;
1233 * Reporting statistics.
1235 typedef PREPACK struct {
1236 A_UINT32 tx_packets;
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];
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;
1255 typedef PREPACK struct {
1256 A_UINT32 rx_packets;
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;
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;
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;
1283 typedef PREPACK struct {
1284 A_UINT32 power_save_failure_cnt;
1285 }POSTPACK pm_stats_t;
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;
1296 A_UINT8 cs_aveBeacon_snr;
1297 A_UINT8 cs_lastRoam_msec;
1298 } POSTPACK cserv_stats_t;
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;
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;
1313 typedef PREPACK struct {
1315 A_INT32 noise_floor_calibation;
1317 wlan_net_stats_t txrxStats;
1318 wlan_wow_stats_t wowStats;
1319 cserv_stats_t cservStats;
1320 } POSTPACK WMI_TARGET_STATS;
1323 * WMI_RSSI_THRESHOLD_EVENTID.
1324 * Indicate the RSSI events to host. Events are indicated when we breach a
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;
1342 typedef PREPACK struct {
1345 }POSTPACK WMI_RSSI_THRESHOLD_EVENT;
1348 * WMI_ERROR_REPORT_EVENTID
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;
1360 typedef PREPACK struct {
1362 }POSTPACK WMI_TARGET_ERROR_REPORT_EVENT;
1364 typedef PREPACK struct {
1366 }POSTPACK WMI_TX_RETRY_ERR_EVENT;
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;
1379 typedef PREPACK struct {
1380 A_UINT8 range; /* WMI_SNR_THRESHOLD_VAL */
1382 }POSTPACK WMI_SNR_THRESHOLD_EVENT;
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;
1395 typedef PREPACK struct {
1397 A_UINT8 range; /* WMI_LQ_THRESHOLD_VAL */
1398 }POSTPACK WMI_LQ_THRESHOLD_EVENT;
1400 * WMI_REPORT_ROAM_TBL_EVENTID
1402 #define MAX_ROAM_TBL_CAND 5
1404 typedef PREPACK struct {
1406 A_UINT8 bssid[ATH_MAC_LEN];
1412 A_UINT8 reserved; /* For alignment */
1413 } POSTPACK WMI_BSS_ROAM_INFO;
1416 typedef PREPACK struct {
1418 A_UINT16 numEntries;
1419 WMI_BSS_ROAM_INFO bssRoamInfo[1];
1420 } POSTPACK WMI_TARGET_ROAM_TBL;
1426 CAC_INDICATION_ADMISSION = 0x00,
1427 CAC_INDICATION_ADMISSION_RESP = 0x01,
1428 CAC_INDICATION_DELETE = 0x02,
1429 CAC_INDICATION_NO_RESP = 0x03,
1432 #define WMM_TSPEC_IE_LEN 63
1434 typedef PREPACK struct {
1436 A_UINT8 cac_indication;
1438 A_UINT8 tspecSuggestion[WMM_TSPEC_IE_LEN];
1439 }POSTPACK WMI_CAC_EVENT;
1442 * WMI_APLIST_EVENTID
1449 typedef PREPACK struct {
1450 A_UINT8 bssid[ATH_MAC_LEN];
1452 } POSTPACK WMI_AP_INFO_V1;
1454 typedef PREPACK union {
1455 WMI_AP_INFO_V1 apInfoV1;
1456 } POSTPACK WMI_AP_INFO;
1458 typedef PREPACK struct {
1461 WMI_AP_INFO apList[1];
1462 } POSTPACK WMI_APLIST_EVENT;
1465 * developer commands
1469 * WMI_SET_BITRATE_CMDID
1471 * Get bit rate cmd uses same definition as set bit rate cmd
1489 typedef PREPACK struct {
1490 A_INT8 rateIndex; /* see WMI_BIT_RATE */
1491 } POSTPACK WMI_BIT_RATE_CMD, WMI_BIT_RATE_REPLY;
1494 * WMI_SET_FIXRATES_CMDID
1496 * Get fix rates cmd uses same definition as set fix rates cmd
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;
1513 typedef PREPACK struct {
1514 A_UINT16 fixRateMask; /* see WMI_BIT_RATE */
1515 } POSTPACK WMI_FIX_RATES_CMD, WMI_FIX_RATES_REPLY;
1518 * WMI_SET_RECONNECT_AUTH_MODE_CMDID
1520 * Set authentication mode
1523 RECONN_DO_AUTH = 0x00,
1524 RECONN_NOT_AUTH = 0x01
1527 typedef PREPACK struct {
1529 } POSTPACK WMI_SET_AUTH_MODE_CMD;
1532 * WMI_SET_REASSOC_MODE_CMDID
1534 * Set authentication mode
1537 REASSOC_DO_DISASSOC = 0x00,
1538 REASSOC_DONOT_DISASSOC = 0x01
1541 typedef PREPACK struct {
1543 }POSTPACK WMI_SET_REASSOC_MODE_CMD;
1546 ROAM_DATA_TIME = 1, /* Get The Roam Time Data */
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;
1562 typedef PREPACK struct {
1564 WMI_TARGET_ROAM_TIME roamTime;
1566 A_UINT8 roamDataType ;
1567 } POSTPACK WMI_TARGET_ROAM_DATA;
1570 WMI_WMM_DISABLED = 0,
1574 typedef PREPACK struct {
1576 }POSTPACK WMI_SET_WMM_CMD;
1579 WMI_TXOP_DISABLED = 0,
1583 typedef PREPACK struct {
1585 }POSTPACK WMI_SET_WMM_TXOP_CMD;
1587 typedef PREPACK struct {
1588 A_UINT8 keepaliveInterval;
1589 } POSTPACK WMI_SET_KEEPALIVE_CMD;
1591 typedef PREPACK struct {
1593 A_UINT8 keepaliveInterval;
1594 } POSTPACK WMI_GET_KEEPALIVE_CMD;
1597 * Add Application specified IE to a management frame
1599 #define WMI_MAX_IE_LEN 78
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 */
1605 } POSTPACK WMI_SET_APPIE_CMD;
1608 * Notify the WSC registration status to the target
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 */
1615 WHAL_SETCABTO_CMDID = 1,
1618 typedef PREPACK struct {
1620 } POSTPACK WHAL_SETCABTO_PARAM;
1622 typedef PREPACK struct {
1625 } POSTPACK WHAL_PARAMCMD;
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
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;
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;
1651 typedef PREPACK struct {
1654 } POSTPACK WMI_SET_HOST_SLEEP_MODE_CMD;
1656 typedef PREPACK struct {
1658 } POSTPACK WMI_SET_WOW_MODE_CMD;
1660 typedef PREPACK struct {
1661 A_UINT8 filter_list_id;
1662 } POSTPACK WMI_GET_WOW_LIST_CMD;
1665 * WMI_GET_WOW_LIST_CMD reply
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 */
1672 WOW_FILTER wow_filters[1];
1673 } POSTPACK WMI_GET_WOW_LIST_REPLY;
1675 typedef PREPACK struct {
1676 A_UINT8 filter_list_id;
1677 A_UINT8 filter_size;
1678 A_UINT8 filter_offset;
1680 } POSTPACK WMI_ADD_WOW_PATTERN_CMD;
1682 typedef PREPACK struct {
1683 A_UINT16 filter_list_id;
1685 } POSTPACK WMI_DEL_WOW_PATTERN_CMD;
1687 typedef PREPACK struct {
1688 A_UINT8 macaddr[ATH_MAC_LEN];
1689 } POSTPACK WMI_SET_MAC_ADDRESS_CMD;
1692 * WMI_SET_AKMP_PARAMS_CMD
1695 #define WMI_AKMP_MULTI_PMKID_EN 0x000001
1697 typedef PREPACK struct {
1699 } POSTPACK WMI_SET_AKMP_PARAMS_CMD;
1701 typedef PREPACK struct {
1702 A_UINT8 pmkid[WMI_PMKID_LEN];
1703 } POSTPACK WMI_PMKID;
1706 * WMI_SET_PMKID_LIST_CMD
1708 #define WMI_MAX_PMKID_CACHE 8
1710 typedef PREPACK struct {
1712 WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
1713 } POSTPACK WMI_SET_PMKID_LIST_CMD;
1716 * WMI_GET_PMKID_LIST_CMD Reply
1717 * Following the Number of PMKIDs is the list of PMKIDs
1719 typedef PREPACK struct {
1721 WMI_PMKID pmkidList[1];
1722 } POSTPACK WMI_PMKID_LIST_REPLY;
1724 /* index used for priority streams */
1726 WMI_NOT_MAPPED = -1,
1727 WMI_CONTROL_PRI = 0,
1728 WMI_BEST_EFFORT_PRI = 1,
1733 } WMI_PRI_STREAM_ID;
1736 #include "athendpack.h"
1743 #endif /* _WMI_H_ */