1/*
2 *
3 * Copyright (c) 2004-2007 Atheros Communications Inc.
4 * All rights reserved.
5 *
6 *
7 *  This program is free software; you can redistribute it and/or modify
8 *  it under the terms of the GNU General Public License version 2 as
9 *  published by the Free Software Foundation;
10 *
11 *  Software distributed under the License is distributed on an "AS
12 *  IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
13 *  implied. See the License for the specific language governing
14 *  rights and limitations under the License.
15 *
16 *
17 *
18 */
19
20
21#if 0
22Wireless Module Interface (WMI) Documentaion
23
24   This section describes the format and the usage model for WMI control and
25   data messages between the host and the AR6000-based targets. The header
26   file include/wmi.h contains all command and event manifest constants as
27   well as structure typedefs for each set of command and reply parameters.
28
29Data Frames
30
31   The data payload transmitted and received by the target follows RFC-1042
32   encapsulation and thus starts with an 802.2-style LLC-SNAP header. The
33   WLAN module completes 802.11 encapsulation of the payload, including the
34   MAC header, FCS, and WLAN security related fields. At the interface to the
35   message transport (HTC), a data frame is encapsulated in a WMI message.
36
37WMI Message Structure
38
39   The WMI protocol leverages an 802.3-style Ethernet header in communicating
40   the source and destination information between the host and the AR6000
41   modules using a 14-byte 802.3 header ahead of the 802.2-style payload. In
42   addition, the WMI protocol adds a header to all data messages:
43
44    {
45    INT8    rssi
46                  The RSSI of the received packet and its units are shown in db above the
47                      noise floor, and the noise floor is shown in dbm.
48    UINT8   info
49                      Contains information on message type and user priority. Message type
50                      differentiates between a data packet and a synchronization message.
51    } WMI_DATA_HDR
52
53   User priority contains the 802.1d user priority info from host to target. Host
54   software translates the host Ethernet format to 802.3 format prior to Tx and
55   802.3 format to host format in the Rx direction. The host does not transmit the
56   FCS that follows the data. MsgType differentiates between a regular data
57   packet (msgType=0) and a synchronization message (msgType=1).
58
59Data Endpoints
60
61   The AR6000 chipset provides several data endpoints to support quality of
62   service (QoS) and maintains separate queues and separate DMA engines for
63   each data endpoint. A data endpoint can be bi-directional.
64
65   Best effort (BE) class traffic uses the default data endpoint (2). The host can
66   establish up to two additional data endpoints for other traffic classes. Once
67   such a data endpoint is established, it sends and receives corresponding QoS
68   traffic in a manner similar to the default data endpoint.
69
70   If QoS is desired over the interconnect, host software must classify each data
71   packet and place it on the appropriate data endpoint. The information
72   required to classify data is generally available in-band as an 802.1p/q style
73   tag or as the ToS field in the IP header. The information may also be available
74   out-of-band depending on the host DDI.
75
76Connection States
77
78   Table B-1 describes the AR6000 WLAN connection states:
79
80   Table B-1.  AR6000 Connection States
81
82Connection State
83    Description
84
85   DISCONNECTED
86    In this state, the AR6000 device is not connected to a wireless
87   network. The device is in this state after reset when it sends the
88   WIRELESS MODULEREADYEVENT, after it processes a
89   DISCONNECT command, and when it loses its link with the
90   access point (AP) that it was connected to. The device signals a
91   transition to the DISCONNECTED state with a �DISCONNECT92   event.
93
94CONNECTED
95    In this state, the AR6000 device is connected to wireless networks.
96   The device enters this state after successfully processing a
97   CONNECT, which establishes a connection with a wireless
98   network. The device signals a transition to the CONNECTED state
99   with a �CONNECTevent.
100
101
102Message Types
103
104   WMI uses commands, replies, and events for the control and configuration of
105   the AR6000 device. The control protocol is asynchronous. Table B-2 describes
106   AR6000 message types:
107
108Table B-2.  AR6000 Message Types
109
110Message Type
111    Description
112
113Commands
114    Control messages that flow from the host to the device
115
116Replies/Events
117    Control messages that flow from the device to the host.
118
119   The device issues a reply to some WMI commands, but not to others.
120   The payload in a reply is command-specific, and some commands do
121   not trigger a reply message at all. Events are control messages issued
122   by the device to signal the occurrence of an asynchronous event.
123
124
125WMI Message Format
126
127   All WMI control commands, replies and events use the header format:
128
129   WMI_CMD_HDR Header Format
130   {
131        UINT16 id
132                 This 16-bit constant identifies which WMI command the host is issuing,
133                 which command the target is replying to, or which event has occurred.
134        WMI_CMD_HDR
135   }
136
137
138   A variable-size command-, reply-, or event-specific payload follows the
139   header. Over the interconnect, all fields in control messages (including
140   WMI_CMD_HDR and the command specific payload) use 32-bit little Endian
141   byte ordering and fields are packed. The AR6000 device always executes
142   commands in order, and the host may send multiple commands without
143   waiting for previous commands to complete. A majority of commands are
144   processed to completion once received. Other commands trigger a longer
145   duration activity whose completion is signaled to the host through an event.
146
147Command Restrictions
148
149   Some commands may only be issued when the AR6000 device is in a certain
150   state. The host is required to wait for an event signaling a state transition
151   before such a command can be issued. For example, if a command requires
152   the device to be in the CONNECTED state, then the host is required to wait
153   for a �CONNECTevent before it issues that command.
154
155   The device ignores any commands inappropriate for its current state. If the
156   command triggers a reply, the device generates an error reply. Otherwise, the
157   device silently ignores the inappropriate command.
158
159Command and Data Synchronization
160
161   WMI provides a mechanism for a host to advise the device of necessary
162   synchronization between commands and data. The device implements
163   synchronization; no implicit synchronization exists between endpoints.
164
165   The host controls synchronization using theSYNCHRONIZEcommand
166   over the control channel and synchronization messages over data channels.
167   The device stops each data channel upon receiving a synchronization message
168   on that channel, processing all data packets received prior to that message.
169   After the device receives synchronization messages for each data endpoint
170   and theSYNCHRONIZEcommand, it resumes all channels.
171
172   When the host must guarantee a command executes before processing new
173   data packets, it first issues the command, then issues theSYNCHRONIZE174   command and sends synchronization messages on data channels. When the
175   host must guarantee the device has processed all old data packets before a
176   processing a new command, it issues a �SYNCHRONIZEcommand and
177   synchronization messages on all data channels, then issues the desired
178   command.
179
180
181
182WMI Commands
183
184   ADD_BAD_AP
185    Cause the AR6000 device to avoid a particular AP
186   ADD_CIPHER_KEY
187    Add or replace any of the four AR6000 encryption keys
188   ADD_WOW_PATTERN
189    Used to add a pattern to the WoW pattern list
190   CLR_RSSI_SNR
191    Clear the current calculated RSSI and SNR value
192   CONNECT_CMD
193    Request that the AR6000 device establish a wireless connection
194        with the specified SSID
195   CREATE_PSTREAM
196    Create prioritized data endpoint between the host and device
197   DELETE_BAD_AP
198    Clear an entry in the bad AP table
199   DELETE_CIPHER_KEY
200    Delete a previously added cipher key
201   DELETE_PSTREAM
202    Delete a prioritized data endpoint
203   DELETE_WOW_PATTERN
204    Remove a pre-specified pattern from the WoW pattern list
205   EXTENSION
206    WMI message interface command
207   GET_BIT_RATE
208    Retrieve rate most recently used by the AR6000
209   GET_CHANNEL_LIST
210    Retrieve list of channels used by the AR6000
211   GET_FIXRATES
212    Retrieves the rate-mask set via the SET_FIXRATES command.
213   GET_PMKID_LIST_CMD
214    Retrieve the firmware list of PMKIDs
215   GET_ROAM_DATA
216    Internal use for data collection; available in special build only
217   GET_ROAM_TBL
218    Retrieve the roaming table maintained on the target
219   GET_TARGET_STATS
220    Request that the target send the statistics it maintains
221   GET_TX_PWR
222    Retrieve the current AR6000 device Tx power levels
223   GET_WOW_LIST
224    Retrieve the current list of WoW patterns
225   LQ_THRESHOLD_PARAMS
226    Set the link quality thresholds
227   OPT_TX_FRAME
228    Send a special frame (special feature)
229   RECONNECT
230    Request a reconnection to a BSS
231   RSSI_THRESHOLD_PARAMS
232    Configure how the AR6000 device monitors and reports signal
233       strength (RSSI) of the connected BSS
234   SCAN_PARAMS
235    Determine dwell time and changes scanned channels
236   SET_ACCESS_PARAMS
237    Set access parameters for the wireless network
238   SET_ADHOC_BSSID
239    Set the BSSID for an ad hoc network
240   SET_AKMP_PARAMS
241    Set multiPMKID mode
242   SET_APPIE
243    Add application-specified IE to a management frame
244   SET_ASSOC_INFO
245    Specify the IEs the device should add to association or
246        reassociation requests
247   SET_AUTH_MODE
248    Set 802.11 authentication mode of reconnection
249   SET_BEACON_INT
250    Set the beacon interval for an ad hoc network
251   SET_BIT_RATE
252    Set the AR6000 to a specific fixed bit rate
253   SET_BMISS_TIME
254    Set the beacon miss time
255   SET_BSS_FILTER
256    Inform the AR6000 of network types about which it wants to
257        receive information using a �BSSINFOevent
258   SET_BT_PARAMS
259    Set the status of a Bluetooth stream (SCO or A2DP) or set
260        Bluetooth coexistence register parameters
261   SET_BT_STATUS
262    Set the status of a Bluetooth stream (SCO or A2DP)
263   SET_CHANNEL_PARAMETERS
264    Configure WLAN channel parameters
265   SET_DISC_TIMEOUT
266    Set the amount of time the AR6000 spends attempting to
267        reestablish a connection
268   SET_FIXRATES
269    Set the device to a specific fixed PHY rate (supported subset)
270   SET_HALPARAM
271    Internal AR6000 command to set certain hardware parameters
272   SET_HOST_SLEEP_MODE
273    Set the host mode to asleep or awake
274   SET_IBSS_PM_CAPS
275    Support a non-standard power management scheme for an
276        ad hoc network
277   SET_LISTEN_INT
278    Request a listen interval
279   SET_LPREAMBLE
280    Override the short preamble capability of the AR6000 device
281   SET_MAX_SP_LEN
282    Set the maximum service period
283   SET_OPT_MODE
284    Set the special mode on/off (special feature)
285   SET_PMKID
286    Set the pairwise master key ID (PMKID)
287   SET_PMKID_LIST_CMD
288    Configure the firmware list of PMKIDs
289   SET_POWER_MODE
290    Set guidelines on trade-off between power utilization
291   SET_POWER_PARAMS
292    Configure power parameters
293   SET_POWERSAVE_PARAMS
294    Set the two AR6000 power save timers
295   SET_PROBED_SSID
296    Provide list of SSIDs the device should seek
297   SET_REASSOC_MODE
298    Specify whether the disassociated frame should be sent upon
299        reassociation
300   SET_RETRY_LIMITS
301    Limit how many times the device tries to send a frame
302   SET_ROAM_CTRL
303    Control roaming behavior
304   SET_RTS
305    Determine when RTS should be sent
306   SET_SCAN_PARAMS
307    Set the AR6000 scan parameters
308   SET_TKIP_COUNTERMEASURES
309    Enable/disable reports of TKIP MIC errors
310   SET_TX_PWR
311    Specify the AR6000 device Tx power levels
312   SET_VOICE_PKT_SIZE
313    Set voice packet size
314   SET_WMM
315    Override the AR6000 WMM capability
316   SET_WMM_TXOP
317    Configure TxOP bursting when sending traffic to a WMM-
318    capable AP
319   SET_WOW_MODE
320    Enable/disable WoW mode
321   SET_WSC_STATUS
322    Enable/disable profile check in cserv when the WPS protocol
323    is in progress
324   SNR_THRESHOLD_PARAMS
325    Configure how the device monitors and reports SNR of BSS
326   START_SCAN
327    Start a long or short channel scan
328   SYNCHRONIZE
329    Force a synchronization point between command and data
330    paths
331   TARGET_REPORT_ERROR_BITMASK
332    ControlERROR_REPORTevents from the AR6000
333
334
335
336
337Name
338    ADD_BAD_AP
339
340Synopsis
341    The host uses this command to cause the AR6000 to avoid a particular AP. The
342    AR6000 maintain a table with up to two APs to avoid. An ADD_BAD_AP command
343    adds or replaces the specified entry in this bad AP table.
344
345    If the AR6000 are currently connected to the AP specified in this command, they
346    disassociate.
347
348Command
349    wmiconfig eth1 --badap <bssid> <badApIndex>
350
351Command Parameters
352    UINT8 badApIndex    Index [0...1] that identifies which entry in the
353                        bad AP table to use
354
355
356    UINT8 bssid[6]  MAC address of the AP to avoid
357
358Command Values
359    badApIndex = 0, 1    Entry in the bad AP table to use
360
361Reset Value
362    The bad AP table is cleared
363
364Restrictions
365    None
366
367See Also
368DELETE_BAD_APon page B-13
369
370=====================================================================
371Name
372    ADD_CIPHER_KEY
373
374Synopsis
375    The host uses this command to add/replace any of four encryption keys on the
376    AR6000. The ADD_CIPHER_KEY command is issued after the CONNECT event
377    has been received by the host for all dot11Auth modes except for SHARED_AUTH.
378    When the dot11AuthMode is SHARED_AUTH, then the ADD_CIPHER_KEY
379    command should be issued before theCONNECTcommand.
380
381Command
382    wmiconfig eth1 --cipherkey <keyIndex> <keyType> <keyUsage>
383                            <keyLength> <keyopctrl> <keyRSC> <key>
384
385Command Parameters
386    UINT8 keyIndex      Index (0...3) of the key to add/replace;
387                        uniquely identifies the key
388    UINT8 keyType    CRYPTO_TYPE
389    UINT8 keyUsage   Specifies usage parameters of the key when
390                     keyType = WEP_CRYPT
391    UINT8 keyLength  Length of the key in bytes
392    UINT8 keyOpCtrl  bit[0] = Initialize TSC (default),
393                     bit[1] = Initialize RSC
394    UINT8 keyRSC[8]  Key replay sequence counter (RSC) initial
395                     value the device should use
396    UINT8 key[32]    Key material used for this connection
397    Command Values
398    {
399        NONE_CRYPT = 1
400        WEP_CRYPT  = 2
401        TKIP_CRYPT = 3
402        AES_CRYPT  = 4
403        KEY_OP_INIT_TSC   0x01
404        KEY_OP_INIT_RSC   0x02
405        KEY_OP_INIT_VAL   0x03
406                Default is to Initialize the TSC
407        KEY_OP_VALID_MASK 0x04
408                Two operations defined
409    } CRYPTO_TYPE
410
411    {
412        PAIRWISE_USAGE  = 0  Set if the key is used for unicast traffic only
413        GROUP_USAGE     = 1  Set if the key is used to receive multicast
414                              traffic (also set for static WEP keys)
415        TX_USAGE        = 2  Set for the GROUP key used to transmit frames
416                All others are reserved
417    } KEY_USAGE
418
419Reset Value
420    The four available keys are disabled.
421
422Restrictions
423    The cipher should correspond to the encryption mode specified in theCONNECT424    command.
425
426See Also
427DELETE_CIPHER_KEY428
429=====================================================================
430
431
432Name
433    ADD_WOW_PATTERN
434
435Synopsis
436    The host uses this command to add a pattern to the WoW pattern list; used for
437    pattern-matching for host wakeups by the WoW module. If the host mode is asleep
438    and WoW is enabled, all packets are matched against the existing WoW patterns. If a
439    packet matches any of the patterns specified, the target will wake up the host. All
440    non-matching packets are discarded by the target without being sent up to the host.
441
442Command
443    wmiconfigaddwowpattern <list-id> <filter-size> <filter-offset>
444    <pattern> <mask>
445
446Command Parameters
447    A_UINT8  filter_list_id    ID of the list that is to include the new pattern
448    A_UINT8  filter_size       Size of the new pattern
449    A_UINT8  filter_offset     Offset at which the pattern matching for this
450                                new pattern should begin at
451    A_UINT8  filter[1]         Byte stream that contains both the pattern and
452                                the mask of the new WoW wake-up pattern
453
454Reply Parameters
455    None
456
457Reset Value
458    None defined (default host mode is awake)
459
460Restrictions
461    None
462
463See Also
464DELETE_WOW_PATTERN465
466=====================================================================
467
468
469Name
470    CLR_RSSI_SNR
471
472Synopsis
473    Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by
474    running-average value. This command will clear the history and have a fresh start
475    for the running-average mechanism.
476
477Command
478    wmiconfig eth1 --cleanRssiSnr
479
480Command Parameters
481    None
482
483Reply Parameters
484    None
485
486Reset Value
487    None defined
488
489Restrictions
490    None
491
492=====================================================================
493
494Name
495    CONNECT_CMD
496
497Synopsis
498    New connect control information (connectCtrl) is added, with 32 possible modifiers.
499
500    CONNECT_SEND_REASSOC
501        Valid only for a host-controlled connection to a
502        particular AP. If this bit is set, a reassociation frame is
503        sent. If this bit is clear, an association request frame is
504        sent to the AP.
505
506    CONNECT_IGNORE_WPAx_GROUP_CIPHER
507        No group key is issued in the CONNECT command,
508        so use the group key advertised by the AP. In a target-
509        initiated roaming situation this allows a STA to roam
510        between APs that support different multicast ciphers.
511
512    CONNECT_PROFILE_MATCH_DONE
513        In a host-controlled connection case, it is possible that
514        during connect, firmware may not have the
515        information for a profile match (e.g, when the AP
516        supports hidden SSIDs and the device may not
517        transmit probe requests during connect). By setting
518        this bit in the connection control information, the
519        firmware waits for a beacon from the AP with the
520        BSSID supplied in the CONNECT command. No
521        additional profile checks are done.
522
523    CONNECT_IGNORE_AAC_BEACON
524        Ignore the Admission Capacity information in the
525        beacon of the AP
526
527    CONNECT_ASSOC_POLICY_USER
528        When set, the CONNECT_SEND_REASSOC setting
529        determines if an Assoc or Reassoc is sent to an AP
530
531Command
532    wmiconfig --setconnectctrl <ctrl flags bitmask>
533
534Command Parameters
535    typedef struct{
536    A_UINT8 networktype;
537    A_UINT8 dot11authmode;
538    A_UINT8 authmode;
539    A_UINT8 pairwiseCryptoType; /*CRYPTO_TYPE*/
540    A_UINT8 pairwiseCryptoLen;
541    A_UINT8 groupCryptoType; /*CRYPTO_TYPE*/
542    A_UINT8 groupCryptoLen;
543    A_UINT8 ssidLength;
544    A_UCHAR ssid[WMI_MAX_SSID_LEN];
545    A_UINT16 channel;
546    A_UINT8 bssid[AUTH_MAC_LEN];
547    A_UINT8 ctrl_flags; /*WMI_CONNECT_CTRL_FLAGS_BITS*/
548    } WMI_CONNECT_CMD;
549
550    ctrl flags bitmask
551        = 0x0001 CONNECT_ASSOC_POLICY_USER
552            Assoc frames are sent using the policy specified by
553            the flag
554        = 0x0002 CONNECT_SEND_REASSOC
555            Send Reassoc frame while connecting, otherwise send
556            assoc frames
557        = 0x0004 CONNECT_IGNORE_WPAx_GROUP_CIPHER
558            Ignore WPAx group cipher for WPA/WPA2
559        = 0x0008 CONNECT_PROFILE_MATCH_DONE
560            Ignore any profile check
561        = 0x0010 CONNECT_IGNORE_AAC_BEACON
562            Ignore the admission control information in the
563            beacon
564        ... CONNECT_CMD, continued
565        Command Values
566        typedef enum {
567            INFRA_NETWORK       = 0x01,
568            ADHOC_NETWORK       = 0x02,
569            ADHOC_CREATOR       = 0x04,
570        } NETWORK_TYPE;
571
572        typedef enum {
573            OPEN_AUTH           = 0x01,
574            SHARED_AUTH         = 0x02,
575            LEAP_AUTH           = 0x04,
576        } DOT11_AUTH_MODE;
577        typedef enum {
578            NONE_AUTH           = 0x01,
579            WPA_AUTH            = 0x02,
580            WPA_PSK_AUTH        = 0x03,
581            WPA2_AUTH           = 0x04,
582            WPA2_PSK_AUTH       = 0x05,
583            WPA_AUTH_CCKM       = 0x06,
584            WPA2_AUTH_CCKM      = 0x07,
585        } AUTH_MODE;
586        typedef enum {
587            NONE_CRYPT          = 0x01,
588            WEP_CRYPT           = 0x02,
589            TKIP_CRYPT          = 0x03,
590            AES_CRYPT           = 0x04,
591        } CRYPTO_TYPE;
592        typedef enum {
593            CONNECT_ASSOC_POLICY_USER = 0x0001,
594            CONNECT_SEND_REASSOC = 0x0002,
595            CONNECT_IGNORE_WPAx_GROUP_CIPHER = 0x0004,
596            CONNECT_PROFILE_MATCH_DONE = 0x0008,
597            CONNECT_IGNORE_AAC_BEACON = 0x0010,
598        } WMI_CONNECT_CTRL_FLAGS_BITS;
599
600    pairwiseCryptoLen and groupCryptoLen are valid when the respective
601    CryptoTypesis WEP_CRYPT, otherwise this value should be 0. This is the length in
602    bytes.
603
604Reset Value
605    None defined
606
607Restrictions
608    None
609
610=====================================================================
611
612
613Name
614    CREATE_PSTREAM
615
616Synopsis
617    The host uses this command to create a new prioritized data endpoint between the
618    host and the AR6000 device that carries a prioritized stream of data. If the AP that the
619    device connects to requires TSPEC stream establishment, the device requests the
620    corresponding TSPEC with the AP. The maximum and minimum service interval
621    ranges from 0 � 0x7FFFFFFF (ms), where 0 = disabled. The device does not send a
622    reply event for this command, as it is always assumed the command has succeeded.
623    An AP admission control response comes to the host via a WMI_CAC_INDICATION
624    event, once the response for the ADDTS frame comes.
625
626    Examples of cases where reassociation is generated (when WMM) and cases where
627    ADDTS is generated (when WMM and enabling ACM) are when:
628        Changing UAPSD flags in WMM mode, reassociation is generated
629        Changing the interval of sending auto QoS Null frame in WMM mode;
630            reassociation is not generated
631        Issuing a command with same previous parameters in WMM mode and enabling
632            ACM, an ADDTS request is generated
633        Changing the interval of a QoS null frame sending in WMM mode and enabling
634            ACM, an ADDTS request is generated
635        Issuing the command in disconnected state, reassociation or ADDTS is not
636            generated but the parameters are available after (re)association
637
638Command
639    --createqos <user priority> <direction> <traffic class>
640<trafficType> <voice PS capability> <min service interval> <max
641service interval> <inactivity interval> <suspension interval>
642<service start time> <tsid> <nominal MSDU> <max MSDU> <min data
643rate> <mean data rate> <peak data rate> <max burst size> <delay
644bound> <min phy rate> <sba> <medium time> where:
645
646    <user priority>
647    802.1D user priority range (0�7)
648    <direction>
649        = 0    Tx (uplink) traffic
650        = 1    Rx (downlink) traffic
651        = 2    Bi-directional traffic
652    <traffic class>
653        = 1    BK
654        = 2    VI
655        = 3    VO
656    <trafficType>
657        = 0    Aperiodic
658        = 1    Periodic
659    <voice PS capability>
660        Specifies whether the voice power save mechanism
661    (APSD if AP supports it or legacy/simulated APSD
662    [using PS-Poll]) should be used
663        = 0    Disable voice power save for traffic class
664        = 1    Enable APSD voice power save for traffic class
665        = 2    Enable voice power save for all traffic classes
666    <min service interval>
667        (In ms)
668    <max service interval>
669        Inactivity interval (in ms) (0 = Infinite)
670    <suspension interval>
671        (In ms)
672    <service start time>
673        Service start time
674    <tsid>
675        TSID range (0�15)
676    <nominal MSDU>
677        Nominal MAC SDU size
678    <max MSDU>
679        Maximum MAC SDU size
680    <min data rate>
681        Minimum data rate (in bps)
682    <mean data rate>
683        Mean data rate (in bps)
684    <peak data rate>
685        Peak data rate (in bps)
686    <max burst size>
687        Maximum burst size (in bps)
688    <delay bound>
689        Delay bound
690    <min phy rate>
691        Minimum PHY rate (in bps)
692    <sba>
693        Surplus bandwidth allowance
694    <medium time>
695        Medium time in TU of 32-ms periods per sec
696    ... CREATE_PSTREAM (continued)
697
698Command Parameters
699    UINT8 trafficClass    TRAFFIC_CLASS value
700    UINT8 traffic
701    Direction
702    DIR_TYPE value
703    UINT8    rxQueueNum
704        AR6000 device mailbox index (2 or 3)
705        corresponding to the endpoint the host
706        wishes to use to receive packets for the
707        prioritized stream
708    UINT8 trafficType  TRAFFIC_TYPE value
709    UINT8 voicePS
710Capability
711    VOICEPS_CAP_TYPE value
712    UINT8 tsid          Traffic stream ID
713    UINT8 userPriority  802.1D user priority
714    UINT16 nominalMSDU  Nominal MSDU in octets
715    UINT16 maxMSDU      Maximum MSDU in octets
716    UINT32 minServiceInt Minimum service interval: the min.
717                            period of traffic specified (in ms)
718    UINT32 maxServiceInt  Maximum service interval: the max.
719                        period of traffic specified (in ms)
720    UINT32 inactivityInt Indicates how many ms an established
721                        stream is inactive before the prioritized
722                        data endpoint is taken down and the
723                        corresponding T-SPEC deleted
724    UINT32 suspensionInt  Suspension interval (in ms)
725    UINT32 service       StartTime Service start time
726    UINT32 minDataRate  Minimum data rate (in bps)
727    UINT32 meanDataRate Mean data rate (in bps)
728    UINT32 peakDataRate Peak data rate (in bps)
729    UINT32 maxBurstSize
730    UINT32 delayBound
731    UINT32 minPhyRate   Minimum PHY rate for TSPEC (in bps)
732    UINT32 sba          Surplus bandwidth allowance
733    UINT32 mediumTime   Medium TSPEC time (in units of 32 ms)
734Command Values
735    {
736        WMM_AC_BE = 0   Best Effort
737        WMM_AC_BK = 1   Background
738        WMM_AC_VI = 2   Video
739        WMM_AC_VO = 3   Voice
740        All other values reserved
741    } TRAFFIC_CLASS
742    {
743        UPLINK_TRAFFIC   = 0  From the AR6000 device to the AP
744        DOWNLINK_TRAFFIC = 1  From the AP to the AR6000 device
745        BIDIR_TRAFFIC    = 2  Bi-directional traffic
746        All other values reserved
747    } DIR_TYPE
748    {
749        DISABLE_FOR_THIS_AC = 0
750        ENABLE_FOR_THIS_AC  = 1
751        ENABLE_FOR_ALL_AC   = 2
752        All other values reserved
753    } VOICEPS_CAP_TYPE
754
755    ... CREATE_PSTREAM (continued)
756
757
758        VI  BE   BK    Supported, Y/N?
759   0    0    0    0    Y
760   0    0    0    1    Y
761   0    0    1    0    N
762   0    0    1    1    N
763   0    1    0    0    Y
764   0    1    0    1    Y
765   0    1    1    0    N
766   0    1    1    1    N
767   1    0    0    0    Y
768   1    0    0    1    Y
769   1    0    1    0    N
770   1    1    0    0    N
771   1    1    0    1    Y
772   1    1    0    0    N
773   1    1    1    0    N
774   1    1    1    1    Y
775
776Reset Value
777    No pstream is present after reset; each of the BE, BK, VI,VO pstreams must be created
778    (either implicitly by data flow or explicitly by user)
779
780Restrictions
781    This command can only be issued when the device is in the CONNECTED state. If
782    the device receives the command while in DISCONNECTED state, it replies with a
783    failure indication. At most four prioritized data endpoints can be created, one for
784    each AC.
785
786See Also
787DELETE_PSTREAM788=====================================================================
789
790Name
791    DELETE_BAD_AP
792
793Synopsis
794    The host uses this command to clear a particular entry in the bad AP table
795
796Command
797    wmiconfig eth1 --rmAP [--num=<index>] // used to clear a badAP
798    entry. num is index from 0-3
799
800Command Parameters
801    UINT8  badApIndex   Index [0...n] that identifies the entry in the bad
802                        AP table to delete
803
804Command Values
805    badApIndex   = 0, 1, 2, 3
806            Entry in the bad AP table
807
808Reset Value
809    None defined
810
811Restrictions
812    None
813
814See Also
815ADD_BAD_AP816
817=====================================================================
818
819
820Name
821    DELETE_CIPHER_KEY
822
823Synopsis
824    The host uses this command to delete a key that was previously added with the
825ADD_CIPHER_KEYcommand.
826
827Command
828    TBD
829
830Command Parameters
831    UINT8   keyIndex    Index (0...3) of the key to be deleted
832
833Command Values
834    keyIndex    = 0, 1,2, 3    Key to delete
835
836Reset Value
837    None
838
839Restrictions
840    The host should not delete a key that is currently in use by the AR6000.
841
842See Also
843ADD_CIPHER_KEY844
845=====================================================================
846
847Name
848    DELETE_PSTREAM
849
850Synopsis
851    The host uses this command to delete a prioritized data endpoint created by a
852    previousCREATE_PSTREAMcommand
853
854Command
855    --deleteqos <trafficClass> <tsid>, where:
856
857    <traffic class>
858        = 0    BE
859        = 1    BK
860        = 2    VI
861        = 3    VO
862    <tsid>
863        The TSpec ID; use the -qosqueue option
864        to get the active TSpec IDs for each traffic class
865
866Command Parameters
867    A_UINT8    trafficClass    Indicate the traffic class of the stream
868                            being deleted
869
870Command Values
871    {
872        WMM_AC_BE = 0    Best effort
873        WMM_AC_BK = 1    Background
874        WMM_AC_VI = 2    Video
875        WMM_AC_VO = 3    Voice
876    } TRAFFIC CLASS
877
878    0-15 for TSID
879
880Reply Values
881    N/A
882
883Restrictions
884    This command should only be issued after a �CREATE_PSTREAMcommand has
885    successfully created a prioritized stream
886
887See Also
888CREATE_PSTREAM889
890=====================================================================
891
892
893Name
894    DELETE_WOW_PATTERN
895
896Synopsis
897    The host uses this command to remove a pre-specified pattern from the
898    WoW pattern list.
899
900Command
901    wmiconfigdelwowpattern <list-id> <pattern-id>
902
903Command Parameters
904    A_UINT8    filter_list_id    ID of the list that contains the WoW filter
905                                 pattern to delete
906    A_UINT8    filter_id    ID of the WoW filter pattern to delete
907
908Reply Parameters
909    None
910
911
912
913Reset Value
914    None defined
915
916Restrictions
917    None
918
919See Also
920ADD_WOW_PATTERN921
922=====================================================================
923
924
925Name
926    EXTENSION
927
928Synopsis
929    The WMI message interface is used mostly for wireless control messages to a wireless
930    module applicable to wireless module management regardless of the target platform
931    implementation. However, some commands only peripherally related to wireless
932    management are desired during operation. These wireless extension commands may
933    be platform-specific or implementation-dependent.
934
935Command
936    N/A
937
938Command Parameters
939    Command-specific
940
941Command Values
942    Command-specific
943
944Reply Parameters
945    Command-specific
946
947Reset Values
948    None defined
949
950Restrictions
951    None defined
952
953=====================================================================
954
955
956Name
957    GET_BIT_RATE
958
959Synopsis
960    Used by the host to obtain the rate most recently used by the AR6000 device
961
962Command
963    wmiconfig eth1 --getfixrates
964
965Command Parameters
966    None
967
968
969
970Reply Parameters
971    INT8
972    rateIndex
973    See theSET_BIT_RATEcommand
974
975Reset Values
976    None
977
978Restrictions
979    This command should only be used during development/debug; it is not intended
980for use in production. It is only valid when the device is in the CONNECTED state
981
982See Also
983SET_BIT_RATE984
985=====================================================================
986
987
988Name
989    GET_CHANNEL_LIST
990
991Synopsis
992    Used by the host uses to retrieve the list of channels that can be used by the device
993    while in the current wireless mode and in the current regulatory domain.
994
995Command
996    TBD
997
998Command Parameters
999    None
1000
1001Reply Parameters
1002    UINT8    reserved    Reserved
1003    UINT8    numberOfChannels    Number of channels the reply contains
1004    UINT16    channelList[numberOfChannels]  Array of channel frequencies (in MHz)
1005
1006Reset Values
1007    None defined
1008
1009Restrictions
1010    The maximum number of channels that can be reported are 32
1011
1012=====================================================================
1013
1014
1015Name
1016    GET_FIXRATES
1017
1018Synopsis
1019    Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by
1020    running-average value. This command will clear the history and have a fresh start for
1021    the running-average mechanism.
1022
1023Synopsis
1024    This returns rate-mask set via WMI_SET_FIXRATES to retrieve the current fixed rate
1025    that the AR6001 or AR6001 is using. SeeSET_FIXRATES�.
1026
1027Command
1028    wmiconfig eth1 --getfixrates
1029
1030Command Parameters
1031    A_UINT16    fixRateMask;    Note: if this command is used prior to
1032                using WMI_SET_FIXRATES, AR6000
1033                returns 0xffff as fixRateMask, indicating
1034                all the rates are enabled
1035
1036Reply Parameters
1037    None
1038
1039Reset Value
1040    None defined
1041
1042Restrictions
1043    None
1044
1045See Also
1046SET_FIXRATES1047
1048=====================================================================
1049
1050
1051
1052Name
1053    GET_PMKID_LIST_CMD
1054
1055Synopsis
1056    Retrieves the list of PMKIDs on the firmware. The
1057    WMI_GET_PMKID_LIST_EVENT is generated by the firmware.
1058
1059Command
1060    TBD
1061
1062Command Parameters
1063
1064Reset Values
1065    None
1066
1067Restrictions
1068    None
1069
1070See Also
1071    SET_PMKID_LIST_CMD GET_PMKID_LIST_EVENT
1072
1073=====================================================================
1074
1075
1076Name
1077    GET_ROAM_TBL
1078
1079Synopsis
1080    Retrieve the roaming table maintained on the target. The response is reported
1081    asynchronously through the ROAM_TBL_EVENT.
1082
1083Command
1084    wmiconfig --getroamtable <roamctrl> <info>
1085
1086Command Parameters
1087    A_UINT8    roamCtrlType;
1088    A_UINT16   roamMode
1089    A_UINT16   numEntries
1090    WMI_BSS_ROAM_INFO bssRoamInfo[1]
1091
1092Reply Value
1093    Reported asynchronously through the ROAM_TBL_EVENT
1094
1095Reset Value
1096    None defined
1097
1098Restrictions
1099    None
1100
1101See Also
1102    SET_KEEPALIVE
1103
1104=====================================================================
1105
1106
1107Name
1108    GET_TARGET_STATS
1109
1110Synopsis
1111    The host uses this command to request that the target send the statistics that it
1112    maintains. The statistics obtained from the target are accrued in the host every time
1113    the GET_TARGET_STATS command is issued. The --clearStats option is added to
1114    clear the target statistics maintained in the host.
1115
1116Command
1117    wmiconfig --getTargetStats --clearStats
1118
1119Command Parameters
1120    TARGET_STATS    targetStats
1121    WMI_TARGET_STATS
1122    UINT8   clearStats
1123
1124
1125Reply Value
1126    RSSI return value (0�100)
1127
1128Reset Values
1129    All statistics are cleared (zeroed)
1130
1131Restrictions
1132    The --getTargetStats option must be used; the --clearStats option is also available also
1133
1134
1135=====================================================================
1136
1137Name
1138    GET_TX_PWR
1139
1140Synopsis
1141    The host uses this command to retrieve the current Tx power level
1142
1143Command
1144    wmiconfig -i eth1 --getpower
1145
1146Command Parameters
1147    None
1148
1149Reply Parameters
1150    UINT16 dbM    The current Tx power level specified in dbM
1151
1152Reset Values
1153    The maximum permitted by the regulatory domain
1154
1155Restrictions
1156    None
1157
1158See Also
1159SET_TX_PWR1160
1161=====================================================================
1162
1163
1164Name
1165    GET_WOW_LIST
1166
1167Synopsis
1168    The host uses this command to retrieve the current list of WoW patterns.
1169
1170Command
1171    wmiconfiggetwowlist <list-id>
1172
1173Command Parameters
1174    A_UINT8 filter_list_id    ID of the list of WoW patterns to retrieve
1175
1176Reply Value(s)
1177    A_UINT16  num_filters    Number of WoW patterns contained in the list
1178    A_UINT8   wow_mode    Current mode of WoW (enabled or disabled)
1179    A_UINT8    host_mode    Current host mode (asleep or awake)
1180    WOW_FILTER    wow_filters[1]
1181        Contents of the WoW filter pattern list
1182        (contains mask, pattern, offset and size
1183    information for each of the patterns)
1184
1185Reset Value
1186    None defined
1187
1188Restrictions
1189    None
1190
1191See Also
1192SET_WSC_STATUS1193
1194=====================================================================
1195
1196
1197Name
1198    LQ_THRESHOLD_PARAMS
1199
1200Synopsis
1201    Sets Link Quality thresholds, the sampling will happen at every unicast data frame
1202    Tx if a certain threshold is met, and the corresponding event will be sent to the host.
1203
1204Command
1205    --lqThreshold <enable> <upper_threshold_1> ...
1206    <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4>
1207
1208Command Parameters
1209    <enable>    = 0    Disable link quality sampling
1210                = 1    Enable link quality sampling
1211    <upper_threshold_x>  Above thresholds (value in [0,100]), in
1212                    ascending order
1213    <lower_threshold_x> Below thresholds (value in [0,100]), in
1214                    ascending order
1215
1216Command Values
1217    See command parameters
1218
1219Reset Value
1220    None defined
1221
1222Restrictions
1223    None
1224
1225=====================================================================
1226
1227
1228Name
1229    OPT_TX_FRAME
1230
1231Synopsis
1232    Special feature, sends a special frame.
1233
1234Command
1235    wmiconfig --sendframe <frmType> <dstaddr> <bssid> <optIEDatalen>
1236    <optIEData>
1237
1238Command Parameters
1239    {
1240        A_UINT16    optIEDataLen;
1241        A_UINT8    frmType;
1242        A_UINT8    dstAddr[ATH_MAC_LEN];
1243        A_UINT8    bssid[ATH_MAC_LEN];
1244        A_UINT8    optIEData[1];
1245    } WMI_OPT_TX_FRAME_CMD;
1246
1247Command Values
1248    <frmtype>   = 1    Probe request frame
1249                = 2    Probe response frame
1250                = 3    CPPP start
1251                = 4    CPPP stop
1252
1253Reset Value
1254    None defined
1255
1256Restrictions
1257    Send a special frame only when special mode is on.
1258
1259=====================================================================
1260
1261
1262Name
1263    RECONNECT
1264
1265Synopsis
1266    This command requests a reconnection to a BSS to which the AR6000 device was
1267    formerly connected
1268
1269Command
1270    TBD
1271
1272Command Parameters
1273    UINT16    channel    Provides a hint as to which channel was
1274                        used for a previous connection
1275    UINT8    bssid[6]    If set, indicates which BSSID to connect to
1276
1277Command Values
1278    None
1279
1280Reset Values
1281    None
1282
1283Restrictions
1284    None
1285
1286See Also
1287CONNECT_CMD1288
1289=====================================================================
1290
1291
1292Name
1293    RSSI_THRESHOLD_PARAMS
1294
1295Synopsis
1296    Configures how the AR6000 device monitors and reports signal strength (RSSI) of the
1297    connected BSS, which is used as a link quality metric. The four RSSI threshold sets (in
1298    dbM) of the host specification divide the signal strength range into six segments.
1299    When signal strength increases or decreases across one of the boundaries, an
1300    RSSI_THRESHOLD event is signaled to the host. The host may then choose to take
1301    action (such as influencing roaming).
1302
1303Command
1304    wmiconfig eth1 --rssiThreshold <weight> <pollTime>
1305        <above_threshold_val_1> ... <above_threshold_tag_6>
1306        <above_threshold_val_6>
1307        <below_threshold_tag_1> <below_threshold_val_1> ...
1308        <below_threshold_tag_6> <below_threshold_val_6>
1309
1310Command Parameters
1311    UINT8    weight    Range in [1, 16] used to calculate average RSSI
1312    UINT32   pollTime   RSSI (signal strength) sampling frequency in
1313                seconds (if pollTime = 0, single strength
1314        sampling is disabled)
1315    USER_RSS__THOLD tholds[12]  Thresholds (6 x 2)
1316
1317Command Values
1318    None defined
1319
1320Reset Values
1321    pollTime is 0, and sampling is disabled
1322
1323Restrictions
1324    Can only be issued if the AR6000 device is connected
1325
1326
1327=====================================================================
1328
1329Name
1330    SCAN_PARAMS
1331
1332Synopsis
1333    The minact parameter determines the minimum active channel dwell time, within
1334    which if the STA receives any beacon, it remains on that channel until the maxact
1335    channel dwell time. If the STA does not receive a beacon within the minact dwell
1336    time, it switches to scan the next channel.
1337
1338Command
1339    wmiconfig -scan -minact=<ms> --maxact=<ms>
1340
1341Command Parameters
1342    UINT16    maxact    Channel dwell time (in ms), default = 0
1343    UINT16    minact    Channel dwell time (in ms), default = 105
1344
1345Command Values
1346    See channel parameters
1347
1348Reset Values
1349    None defined
1350
1351Restrictions
1352    The minact value should be greater than 0; maxact should be between 565535 ms
1353    and greater than minact
1354
1355=====================================================================
1356
1357
1358Name
1359    SET_ACCESS_PARAMS
1360
1361Synopsis
1362    Allows the host to set access parameters for the wireless network. A thorough
1363    understanding of IEEE 802.11 is required to properly manipulate these parameters.
1364
1365Command
1366    wmiconfig eth1 --acparams --txop <limit> --cwmin <0-15>
1367    --cwmax <0-15> --aifsn<0-15>
1368
1369Command Parameters
1370    UINT16    txop    The maximum time (expressed in units of
1371                        32 ms) the device can spend transmitting
1372                        after acquiring the right to transmit
1373    UINT8    eCWmin    Minimum contention window
1374    UINT8    eCWmax    Maximum contention window
1375    UINT8    aifsn    The arbitration inter-frame space number
1376
1377Command Values
1378    None
1379
1380Reset Values
1381    Reasonable defaults that vary, between endpoints (prioritized streams)
1382
1383Restrictions
1384    None
1385
1386=====================================================================
1387
1388
1389Name
1390    SET_ADHOC_BSSID
1391
1392Synopsis
1393    Allows the host to set the BSSID for an ad hoc network. If a network with this BSSID
1394    is not found, the target creates an ad hoc network with this BSSID after the connect
1395    WMI command is triggered (e.g., by the SIOCSIWESSID IOCTL).
1396
1397Command
1398    wmiconfig eth1 --adhocbssid <bssid>
1399
1400Command Parameters
1401    A_UINT8     bssid[ATH_MAC_LEN]    BSSID is specified in xx:xx:xx:xx:xx:xx format
1402
1403Command Values
1404    None
1405
1406Reset Values
1407    None
1408
1409Restrictions
1410    None
1411
1412=====================================================================
1413
1414
1415Name
1416    SET_AKMP_PARAMS
1417
1418Synopsis
1419    Enables or disables multi PMKID mode.
1420
1421Command
1422    wmiconfig eth1 --setakmp --multipmkid=<on/off>
1423
1424Command Parameters
1425    typedef struct {
1426      A_UINT32    akmpInfo;
1427    } WMI_SET_AKMP_PARAMS_CMD;
1428
1429Command Values
1430    akmpInfo;
1431    bit[0] = 0
1432        MultiPMKID mode is disabled and PMKIDs that
1433        were set using the WMI_SET_PMKID_CMD are
1434        used in the [Re]AssocRequest frame.
1435     bit[0] = 1
1436        MultiPMKID mode is enabled and PMKIDs issued
1437        by the WMI_SET_PMKID_LIST_CMD are used in
1438        the next [Re]AssocRequest sent to the AP.
1439
1440Reset Values
1441    MultiPMKID mode is disabled
1442
1443Restrictions
1444    None
1445
1446=====================================================================
1447
1448
1449Name
1450    SET_APPIE
1451
1452Synopsis
1453    Add an application-specified IE to a management frame. The maximum length is
1454    76 bytes. Including the length and the element ID, this translates to 78 bytes.
1455
1456Command
1457    wmiconfig --setappie <frame> <IE>, where:
1458
1459    frame
1460        One of beacon, probe, respon, assoc
1461
1462    IE
1463        A hex string beginning with DD (if = 0, no
1464        IE is sent in the management frame)
1465
1466Command Parameters
1467    mgmtFrmType;
1468        A WMI_MGMT_FRAME_TYPE
1469
1470    ieLen;
1471        Length of the IE to add to the GMT frame
1472
1473Command Values
1474    None
1475
1476Reset Value
1477    None defined
1478
1479Restrictions
1480    Supported only for the probe request and association request management frame
1481types. Also, only one IE can be added per management frame type.
1482
1483=====================================================================
1484
1485
1486Name
1487    SET_ASSOC_INFO
1488
1489Synopsis
1490    The host uses this command to specify any information elements (IEs) it wishes the
1491    AR6000 device to add to all future association and reassociation requests. IEs must be
1492    correct and are used as is by the device. IEs specified through this command are
1493    cleared with a DISCONNECT.
1494
1495Command
1496    wmiconfig eth1 --setAssocIe <IE>
1497
1498Command Parameters
1499    UINT8    ieType    Used directly in 802.11 frames
1500    UINT8    bufferSize    Size of assocInfo (in bytes) ranging from
1501                        0�240. If = 0, previously set IEs are cleared.
1502    UINT8    assocInfo[bufferSize]    Used directly in 802.11 frames
1503
1504Command Values
1505    None
1506
1507Reset Values
1508    IEs are cleared
1509
1510Restrictions
1511    This command can only be issued in the DISCONNECTED state
1512
1513=====================================================================
1514
1515
1516Name
1517    SET_AUTHMODE
1518
1519Synopsis
1520    Sets the 802.11 authentication mode of reconnection
1521
1522Command
1523    wmiconfig eth1 --setauthmode <mode>
1524
1525Command Parameters
1526    UINT8    mode
1527
1528Command Values
1529    mode    = 0x00    Proceed with authentication during reconnect
1530            = 0x01    Do not proceed with authentication during reconnect
1531
1532Reset Values
1533    Authentication
1534
1535Restrictions
1536    None
1537
1538=====================================================================
1539
1540
1541Name
1542    SET_BEACON_INT
1543
1544Synopsis
1545    Sets the beacon interval for an ad hoc network. Beacon interval selection may have an
1546    impact on power savings. To some degree, a longer interval reduces power
1547    consumption but also decreases throughput. A thorough understanding of IEEE
1548    802.11 ad hoc networks is required to use this command effectively.
1549
1550Command
1551    wmiconfig eth1 --ibssconintv
1552
1553Command Parameters
1554    UINT16    beaconInterval    Specifies the beacon interval in TU units (1024 ms)
1555
1556Command Values
1557    None
1558
1559Reset Values
1560    The default beacon interval is 100 TUs (102.4 ms)
1561
1562Restrictions
1563    This command can only be issued before the AR6000 device starts an ad hoc network
1564
1565See Also
1566SET_IBSS_PM_CAPS1567
1568=====================================================================
1569
1570
1571Name
1572    SET_BIT_RATE
1573
1574Synopsis
1575    The host uses this command to set the AR6000 device to a specific fixed rate.
1576
1577Command
1578    wmiconfig eth1 --setfixrates <rate_0> ... <rate_n>
1579
1580Command Parameters
1581    INT8    rateIndex
1582    A WMI_BIT_RATE value
1583    {
1584        RATE_AUTO    = -1
1585        RATE_1Mb     = 0
1586        RATE_2Mb     = 1
1587        RATE_5_5M    = 2
1588        RATE_11Mb    = 3
1589        RATE_6Mb     = 4
1590        RATE_9Mb     = 5
1591        RATE_12Mb    = 6
1592        RATE_18Mb    = 7
1593        RATE_24Mb    = 8
1594        RATE_36Mb    = 9
1595        RATE_48Mb    = 10
1596        RATE_54Mb    = 11
1597      } WMI_BIT_RATE
1598
1599
1600Command Values
1601    See command parameters
1602
1603Reset Values
1604    The dynamic rate is determined by the AR6000 device
1605
1606Restrictions
1607    This command is intended for use only during development/debug; it is not
1608intended for use in production
1609
1610See Also
1611GET_BIT_RATE1612
1613=====================================================================
1614
1615
1616Name
1617    SET_BMISS_TIME
1618
1619Synopsis
1620    This command sets the beacon miss (BMISS) time, which the AR6000 hardware use
1621    to recognize missed beacons. When an excessive number (15) of consecutive beacons
1622    are missed, the AR6000 consider switching to a different BSS. The time can be
1623    specified in number of beacons or in TUs.
1624
1625Command(s)
1626    wmiconfig eth1 --setbmissbeacons=<val>
1627    wmiconfig eth1 --setbmisstime=<val>
1628
1629Command Parameters
1630    UINT16    bmissTime    Specifies the beacon miss time
1631                            [1000...5000] in TUs (1024 ms)
1632    UINT16    bmissbeacons  Specifies the number of beacons [5...50]
1633
1634Command Values
1635    None
1636
1637Reset Values
1638    bmissTime is 1500 TUs (1536 ms)
1639
1640Restrictions
1641    None
1642
1643=====================================================================
1644
1645
1646Name
1647    SET_BSS_FILTER
1648
1649Synopsis
1650    The host uses this to inform the AR6000 device of the types of networks about which
1651    it wants to receive information from theBSSINFOevent. As the device performs
1652    either foreground or background scans, it applies the filter and sendsBSSINFO1653    events only for the networks that pass the filter. If any of the  bssFilter or the ieMask
1654    filter matches, a BSS Info is sent to the host. The ieMask currently is used as a match
1655    for the IEs in the beacons, probe reponses and channel switch action management
1656    frame. See alsoScan and Roamon page C-1.
1657
1658    The BSS filter command has been enhanced to support IE based filtering. The IEs can
1659    be specified as a bitmask through this command using this enum.
1660
1661Command
1662    wmiconfig eth1filter = <filter> --ieMask 0x<mask>
1663
1664Command Parameters
1665    UINT8    BssFilter
1666
1667 Command Values
1668    typedef struct {
1669        A_UINT8    bssFilter;    See WMI_BSS_FILTER
1670        A_UINT32    ieMask;
1671    } __ATTRIB_PACK WMI_BSS_FILTER_CMD;
1672
1673    The ieMask can take this combination of values:
1674
1675    enum {
1676        BSS_ELEMID_CHANSWITCH   = 0x01
1677        BSS_ELEMID_ATHEROS      = 0x02,
1678    }
1679
1680Reply Value
1681    None
1682
1683Reset Value
1684    BssFilter = NONE_BSS_FILTER (0)
1685
1686Restrictions
1687    None
1688
1689See Also
1690CONNECT_CMD1691
1692=====================================================================
1693
1694
1695Name
1696    SET_BT_PARAMS
1697
1698Synopsis
1699    This command is used to set the status of a Bluetooth stream or set Bluetooth
1700    coexistence register parameters. The stream may be an SCO or an A2DP stream and
1701    its status can be started/stopped/suspended/resumed.
1702
1703Command
1704    wmiconfigsetBTparams <paramType> <params>
1705
1706Command Parameters
1707    struct {
1708       union {
1709            BT_PARAMS_SCO    scoParams;
1710            BT_PARAMS_A2DP   a2dpParams;
1711            BT_PARAMS_MISC   miscParams;
1712            BT_COEX_REGS     regs;
1713        } info;
1714         A_UINT8 paramType;
1715        struct {
1716            A_UINT8 noSCOPkts;    Number of SCO packets between consecutive PS-POLLs
1717            A_UINT8 pspollTimeout;
1718            A_UINT8 stompbt;
1719        } BT_PARAMS_SCO;
1720        struct {
1721            A2DP BT stream parameters
1722            A_UINT32   period;
1723            A_UINT32   dutycycle;
1724            A_UINT8    stompbt;
1725        } BT_PARAMS_A2DP;
1726        struct {
1727            union {
1728               WLAN_PROTECT_POLICY_TYPE   protectParams;
1729               A_UINT16    wlanCtrlFlags;
1730            }info;
1731        A_UINT8 paramType;
1732        } BT_PARAMS_MISC;
1733        struct {
1734            BT coexistence registers values
1735            A_UINT32    mode;     Coexistence mode
1736            A_UINT32    scoWghts; WLAN and BT weights
1737            A_UINT32    a2dpWghts;
1738            A_UINT32    genWghts;
1739            A_UINT32    mode2;    Coexistence mode2
1740            A_UINT8    setVal;
1741        } BT_COEX_REGS;
1742
1743Command Values
1744    None defined
1745
1746Reset Value
1747    None
1748
1749Restrictions
1750    None
1751
1752=====================================================================
1753
1754
1755Name
1756    SET_BT_STATUS
1757
1758Synopsis
1759    Sets the status of a Bluetooth stream. The stream may be a SCO or an A2DP stream
1760    and its status can be started/stopped/suspended/resumed.
1761
1762Command
1763    wmiconfigsetBTstatus <streamType> <status>
1764
1765Command Parameters
1766    {
1767        A_UINT8        streamType;    Stream type
1768        A_UINT8        status;    Stream status
1769    }WMI_SET_BT_STATUS_CMD;
1770
1771Command Values
1772    {
1773        BT_STREAM_UNDEF    = 0
1774        BT_STREAM_SCO
1775        SCO stream
1776        BT_STREAM_A2DP
1777        A2DP stream
1778        BT_STREAM_MAX
1779    } BT_STREAM_TYPE;
1780
1781    {
1782        BT_STATUS_UNDEF    = 0
1783        BT_STATUS_START
1784        BT_STATUS_STOP
1785        BT_STATUS_RESUME
1786        BT_STATUS_SUSPEND
1787        BT_STATUS_MAX
1788    } BT_STREAM_STATUS;
1789
1790Reset Value
1791    None defined
1792
1793Restrictions
1794    None
1795
1796=====================================================================
1797
1798
1799Name
1800    SET_CHANNEL_PARAMETERS
1801
1802Synopsis
1803    Configures various WLAN parameters related to channels, sets the wireless mode,
1804    and can restrict the AR6000 device to a subset of available channels. The list of
1805    available channels varies depending on the wireless mode and the regulatory
1806    domain. The device never operates on a channel outside of its regulatory domain. The
1807    device starts to scan the list of channels right after this command.
1808
1809Command
1810    wmiconfig eth1 --wmode <mode> <list>
1811
1812Command Parameters
1813    UINT8    phyMode    See Values below.
1814    UINT8    numberOfChannels
1815        Number of channels in the channel array that
1816        follows. If = 0, then the device uses all of the
1817        channels permitted by the regulatory domain
1818        and by the specified phyMode.
1819    UINT16    channel[numberOfChannels]
1820        Array listing the subset of channels (expressed
1821        as frequencies in MHz) the host wants the
1822        device to use. Any channel not permitted by
1823        the specified phyMode or by the specified
1824        regulatory domain is ignored by the device.
1825
1826Command Values
1827    phyMode = {
1828        Wireless mode
1829        11a    = 0x01
1830        11g    = 0x02
1831        11ag   = 0x03
1832        11b    = 0x04
1833        11g only    = 0x05
1834        }
1835
1836Reset Values
1837    phyMode
1838    11ag
1839    802.11a/g modules
1840        11g
1841    802.11g module
1842    channels
1843        Defaults to all channels permitted by the
1844        current regulatory domain.
1845
1846Restrictions
1847    This command, if issued, should be issued soon after reset and prior to the first
1848    connection. This command should only be issued in the DISCONNECTED state.
1849
1850=====================================================================
1851
1852
1853Name
1854    SET_DISC_TIMEOUT
1855
1856Synopsis
1857    The host uses this command to configure the amount of time that the AR6000 should
1858    spend when it attempts to reestablish a connection after losing link with its current
1859    BSS. If this time limit is exceeded, the AR6000 send a �DISCONNECTevent. After
1860    sending theDISCONNECTevent the AR6000 continues to attempt to reestablish a
1861    connection, but they do so at the interval corresponding to a foreground scan as
1862    established by theSET_SCAN_PARAMScommand.
1863
1864    A timeout value of 0 indicates that the AR6000 will disable all autonomous roaming,
1865    so that the AR6000 will not perform any scans after sending a �DISCONNECT1866    event to the host. The state is maintained until a shutdown or host sets different
1867    timeout value from 0.
1868
1869Command
1870    wmiconfig eth1 --disc=<timeout in seconds>
1871
1872Command Parameters
1873    UINT8    disconnectTimeout
1874        Specifies the time limit (in seconds) after
1875        which a failure to reestablish a connection
1876        results in a �DISCONNECTevent
1877
1878Command Values
1879    None
1880
1881Reset Values
1882    disconnectTimeout is 10 seconds
1883
1884Restrictions
1885    This command can only be issued while in a DISCONNECTED state
1886
1887=====================================================================
1888
1889
1890Name
1891    SET_FIXRATES
1892
1893Synopsis
1894    By default, the AR6000 device uses all PHY rates based on mode of operation. If the
1895    host application requires the device to use subset of supported rates, it can set those
1896    rates with this command. In 802.11g mode, the AR6000 device takes the entire
1897    802.11g basic rate set and the rates specified with this command and uses it as the
1898    supported rate set.
1899
1900    This rate set is advertised in the probe request and the assoc/re-assoc request as
1901    supported rates. Upon successful association, the device modifies the rate set pool
1902    using the: intersection of AP-supported rates with the union of the 802.11g basic rate
1903    set and rates set using this command. The device picks transmission rates from this
1904    pool based on a rate control algorithm.
1905
1906Command
1907    TBD
1908
1909Command Parameters
1910    A_UINT16    fixRateMask;
1911        The individual bit is an index for rate table,
1912        and setting the that index to 1 would set that
1913        corresponding rate. E.g., fixRateMask = 9
1914        (1001) sets 1 Mbps and 11 Mbps.
1915
1916Command Values
1917    None
1918
1919Reset Value
1920    None defined
1921
1922Restrictions
1923    None
1924
1925See Also
1926GET_FIXRATES1927
1928=====================================================================
1929
1930
1931Name
1932    SET_WHAL_PARAM
1933
1934Synopsis
1935    An internal AR6000 command that is used to set certain hardware parameters. The
1936    description of this command is in $WORKAREA/include/halapi.h.
1937
1938Command
1939    TBD
1940
1941Command Parameters
1942    ATH_HAL_SETCABTO_CMDID
1943        Sets the timeout waiting for the multicast
1944        traffic after a DTIM beacon (in TUs).
1945
1946Command Values
1947    None
1948
1949Reset Value
1950    Default = 10 TUs
1951
1952Restrictions
1953    This command should be executed before issuing a connect command.
1954
1955=====================================================================
1956
1957
1958Name
1959    SET_HOST_SLEEP_MODE
1960
1961Synopsis
1962    The host uses this command to set the host mode to asleep or awake. All packets are
1963    delivered to the host when the host mode is awake. When host mode is asleep, only if
1964    WoW is enabled and the incoming packet matches one of the specified WoW
1965    patterns, will the packet be delivered to the host. The host will also be woken up by
1966    the target for pattern-matching packets and important events.
1967
1968Command
1969    wmiconfigsethostmode=<asleep/awake>
1970
1971Command Parameters
1972    A_BOOL    awake    Set the host mode to awake
1973    A_BOOL    asleep   Set the host mode to asleep
1974
1975Command Values
1976    1 = awake, 0 = asleep
1977
1978Reset Value
1979    None defined (default host mode is awake)
1980
1981Restrictions
1982    None
1983
1984
1985=====================================================================
1986
1987Name
1988    SET_IBSS_PM_CAPS
1989
1990Synopsis
1991    Used to support a non-standard power management scheme for an ad hoc wireless
1992    network consisting of up to eight stations (STAs) that support this form of power
1993    saving (e.g., Atheros-based STAs). A thorough understanding of IEEE 802.11 ad hoc
1994    networks is required to use this command effectively.
1995
1996Command
1997    wmiconfig eth1 --ibsspmcaps --ps=<enable/disable>
1998        --aw=<ATIM Windows in ms>
1999        --ttl=<Time to live in number of beacon periods>
2000        --to=<timeout in ms>
2001
2002Command Parameters
2003    UINT8    power_saving
2004        = 0
2005        The non-standard power saving scheme is
2006        disabled and maximum throughput (with no
2007        power saving) is obtained.
2008
2009        = 1
2010        Ad hoc power saving scheme is enabled (but
2011        throughput may be decreased)
2012
2013    UINT16    atim_windows
2014        Specifies the length (in ms) of the ad hoc traffic
2015        indication message (ATIM) windows used in an ad
2016        hoc network. All Atheros-based STAs that join the
2017        network use this duration ATIM window.
2018
2019    The duration is communicated between wireless
2020    STAs through an IE in beacons and probe responses.
2021
2022    The host sets atim_windows to control trade-offs
2023    between power use and throughput. The value
2024    chosen should be based on the beacon interval (see
2025    theSET_BEACON_INTcommand) on the
2026    expected number of STAs in the IBSS, and on the
2027    amount of traffic and traffic patterns between STAs.
2028
2029    UINT16    timeout_value
2030        Specifies the timeout (in ms). The value is the same
2031        for all ad hoc connections, but tracks separately for
2032        each.
2033
2034        Applicable only for a beacon period and used to
2035        derive actual timeout values on the Tx and Rx sides.
2036        On the Tx side, the value defines a window during
2037        which the STA accepts the frame(s) from the host for a
2038        particular connection. Until closed, the window
2039        restarts with every frame received from the host. On
2040        the Rx side, indicates the time until which the STA
2041        continues accepting frames from a particular
2042        connection. The value resets with every frame
2043        received. The value can be used to determine the
2044        trade off between throughput and power.
2045        Default = 10 ms
2046
2047    UINT8    ttl
2048        Specifies the value in number of beacon periods. The
2049        value is used to set a limit on the time until which a
2050        frame is kept alive in the AR6001 before being
2051        discarded. Default = 5
2052
2053Command Values
2054    None
2055
2056Reset Values
2057    By default, power_saving is enabled with atim_window = 20 ms
2058
2059Restrictions
2060    Can only be issued before the AR6000 starts an ad hoc network
2061
2062See Also
2063SET_BEACON_INT2064
2065=====================================================================
2066
2067
2068
2069Name
2070    SET_LISTEN_INT
2071
2072Synopsis
2073    The host uses this command to request a listen interval, which determines how often
2074    the AR6000 device should wake up and listen for traffic. The listen interval can be set
2075    by the TUs or by the number of beacons. The device may not be able to comply with
2076    the request (e.g., if the beacon interval is greater than the requested listen interval, the
2077    device sets the listen interval to the beacon interval). The actual listen interval used
2078    by the device is available in theCONNECTevent.
2079
2080Command
2081    wmiconfig eth1 --listen=<#of TUs, can range from 15 to 3000>
2082
2083    --listenbeacons=<#of beacons, can range from 1 to 50>
2084
2085Command Parameters
2086    UINT16    listenInterval
2087        Specifies the listen interval in Kms
2088        (1024 ms), ranging from 100 to 1000
2089
2090    UINT16    listenbeacons
2091        Specifies the listen interval in beacons,
2092        ranging from 1 to 50
2093
2094Command Values
2095    None
2096
2097Reset Values
2098    The device sets the listen interval equal to the beacon interval of the AP it associates
2099    to.
2100
2101Restrictions
2102    None
2103
2104=====================================================================
2105
2106
2107Name
2108    SET_LPREAMBLE
2109
2110Synopsis
2111    Overrides the short preamble capability of the AR6000 device
2112
2113Command
2114    TBD
2115
2116Command Parameters
2117    WMI_LPREAMBLE_DISABLED
2118        The device is short-preamble capable
2119
2120    WMI_LPREAMBLE_ENABLED
2121        The device supports only the long-
2122    preamble mode
2123
2124Command Values
2125    None
2126
2127Reset Value
2128    None defined
2129
2130Restrictions
2131    None
2132
2133
2134=====================================================================
2135
2136Name
2137    SET_MAX_SP_LEN
2138
2139Synopsis
2140    Set the maximum service period; indicates the number of packets the AR6001 can
2141    receive from the AP when triggered
2142
2143Command
2144    wmiconfig eth1 --setMaxSPLength <maxSPLen>
2145
2146Command Parameters
2147    UINT8    maxSPLen
2148        An APSD_SP_LEN_TYPE value
2149
2150Command Values
2151    {
2152        DELIVER_ALL_PKT  = 0x0
2153        DELIVER_2_PKT    = 0x1
2154        DELIVER_4_PKT    = 0x2
2155        DELIVER_6_PKT    = 0x3
2156    }APSD_SP_LEN_TYPE
2157
2158
2159Reset Values
2160    maxSPLen is DELIVER_ALL_PKT
2161
2162Restrictions
2163    None
2164
2165=====================================================================
2166
2167
2168Name
2169    SET_OPT_MODE
2170
2171Synopsis
2172    Special feature, sets the special mode on/off
2173
2174Command
2175    wmiconfig eth1 --mode <mode>
2176    Set the optional mode, where mode is special or off
2177
2178Command Parameters
2179    enum {
2180        SPECIAL_OFF
2181        SPECIAL_ON
2182    } OPT_MODE_TYPE;
2183
2184Command Values
2185
2186Reset Value
2187    Mode = Off
2188
2189Restrictions
2190    None
2191
2192=====================================================================
2193
2194
2195Name
2196    SET_PMKID
2197
2198Synopsis
2199    The host uses this command to enable or disable a pairwise master key ID (PMKID)
2200    in the AR6000 PMKID cache. The AR6000 clears its PMKID cache on receipt of a
2201    DISCONNECT command from the host. Individual entries in the cache might be
2202    deleted as the AR6000 detect new APs and decides to remove old ones.
2203
2204Command
2205    wmiconfig eth1 --setbsspmkid --bssid=<aabbccddeeff>
2206    --bsspmkid=<pmkid>
2207
2208Command Parameters
2209    UINT8    bssid[6]
2210        The MAC address of the AP that the
2211        PMKID corresponds to (6 bytes in hex
2212        format)
2213
2214    UINT8    enable
2215        Either PMKID_DISABLE (0) to disable
2216        the PMKID or PMKID_ENABLE (1) to
2217        enable it (16 bytes in hex format)
2218
2219    UINT8    pmkid[16]
2220        Meaningful only if enable is
2221        PMKID_ENABLE, when it is the PMKID
2222        that the AR6000 should use on the next
2223        reassociation with the specified AP
2224
2225Command Values
2226    enable
2227    = 0 (disable), 1 (enable)
2228    PKMID enabled/disabled
2229
2230Reset Values
2231    None defined
2232
2233Restrictions
2234    Only supported in infrastructure networks
2235
2236=====================================================================
2237
2238
2239Name
2240    SET_PMKID_LIST_CMD
2241
2242Synopsis
2243    Configures the list of PMKIDs on the firmware.
2244
2245Command
2246    wmiconfig --setpmkidlist --numpmkid=<n> --pmkid=<pmkid_1>
2247    ... --pmkid=<pmkid_n>
2248
2249    Where n is the number of pmkids (maximum = 8) and pmkid_i is the ith pmkid (16
2250    bytes in hex format)
2251
2252Command Parameters
2253    {
2254        A_UINT8 pmkid[WMI_PMKID_LEN];
2255    } __ATTRIB_PACK WMI_PMKID;
2256
2257    {
2258        A_UINT32 numPMKID;
2259        WMI_PMKID pmkidList[WMI_MAX_PMKID_CACHE];
2260    } __ATTRIB_PACK WMI_SET_PMKID_LIST_CMD;
2261
2262Command Values
2263    None
2264
2265Reset Values
2266    None
2267
2268Restrictions
2269    Supported only in infrastructure modes
2270
2271=====================================================================
2272
2273
2274Name
2275    SET_POWER_MODE
2276
2277Synopsis
2278    The host uses this command to provide the AR6000 device with guidelines on the
2279    desired trade-off between power utilization and performance.
2280
2281        In normal power mode, the device enters a sleep state if they have nothing to do,
2282        which conserves power but may cost performance as it can take up to 2 ms to
2283        resume operation after leaving sleep state.
2284
2285        In maximum performance mode, the device never enters sleep state, thus no time
2286        is spent waking up, resulting in higher power consumption and better
2287        performance.
2288
2289Command
2290    TBD
2291
2292Command Parameters
2293    UINT8    powerMode
2294        WMI_POWER_MODE value
2295    {
2296        REC_POWER   = 1
2297            (Recommended setting) Tries to conserve
2298            power without sacrificing performance
2299        MAX_PERF_POWER    = 2
2300            Setting that maximizes performance at
2301            the expense of power
2302
2303            All other values are reserved
2304    } WMI_POWER_MODE
2305
2306Command Values
2307    See command parameters
2308
2309Reset Values
2310    powerMode is REC_POWER
2311
2312Restrictions
2313    This command should only be issued in the DISCONNECTED state for the
2314    infrastructure network.
2315
2316            For a PM-disabled ad hoc network, the power mode should remain in
2317            MAX_PERF_POWER.
2318
2319            For a PM-enabled ad hoc network, the device can have REC_POWER or
2320            MAX_PERF_POWER set, but either way it must follow the power save ad hoc
2321            protocol. The host can change power modes in the CONNECTED state.
2322
2323    Host changes to the PS setting when the STA is off the home channel take no effect
2324    and cause a TARGET_PM_FAIL event.
2325
2326=====================================================================
2327
2328
2329Name
2330    SET_POWER_PARAMS
2331
2332Synopsis
2333    The host uses this command to configure power parameters
2334
2335Command
2336    wmiconfig eth1 --pmparams --it=<ms> --np=<number of PS POLL>
2337    --dp=<DTIM policy: ignore/normal/stick>
2338
2339Command Parameters
2340    UINT16    idle_period
2341        Length of time (in ms) the AR6000 device
2342        remains awake after frame Rx/Tx before going
2343        to SLEEP state
2344
2345    UINT16    pspoll_number
2346            The number of PowerSavePoll (PS-poll)
2347            messages the device should send before
2348            notifying the AP it is awake
2349
2350    UINT16    dtim_policy
2351            A WMI_POWER_PARAMS_CMD value
2352
2353    {
2354        IGNORE_DTIM    =1
2355            The device does not listen to any content after
2356            beacon (CAB) traffic
2357        NORMAL_DTIM    = 2
2358            DTIM period follows the listen interval (e.g., if
2359            the listen interval is 4 and the DTIM period is 2,
2360            the device wakes up every fourth beacon)
2361        STICK_DTIM    = 3
2362            Device attempt to receive all CAB traffic (e.g., if
2363            the DTIM period is 2 and the listen interval is 4,
2364            the device wakes up every second beacon)
2365    } WMI_POWER_PARAMS_CMD
2366
2367Command Parameters
2368    See command parameters
2369
2370Reset Values
2371    idle_period
2372        200 ms
2373
2374    pspoll_number
2375    = 1
2376
2377    dtim_policy
2378    = NORMAL_DTIM
2379
2380Restrictions
2381    None
2382
2383=====================================================================
2384
2385
2386Name
2387    SET_POWERSAVE_PARAMS
2388
2389Synopsis
2390    Set the two AR6000 power save timers (PS-POLL timer and APSD trigger timer) and
2391    the two ASPD TIM policies
2392
2393Command
2394    wmiconfig eth1--psparams --psPollTimer=<psPollTimeout in ms>
2395    --triggerTimer=<triggerTimeout in ms> --apsdTimPolicy=<ignore/
2396    adhere> --simulatedAPSDTimPolicy=<ignore/adhere>
2397
2398Command Parameters
2399    typedef struct {
2400        A_UINT16    psPollTimeout;
2401            Timeout (in ms) after sending PS-POLL; the
2402            AR6000 device sleeps if it does not receive a
2403            data packet from the AP
2404
2405        A_UINT16    triggerTimeout;
2406            Timeout (in ms) after sending a trigger; the
2407            device sleeps if it does not receive any data
2408            or null frame from the AP
2409
2410        APSD_TIM_POLICY    apsdTimPolicy;
2411            TIM behavior with queue APSD enabled
2412
2413        APSD_TIM_POLICY    simulatedAPSD
2414
2415        TimPolicy;
2416            TIM behavior with simulated APSD
2417            enabled
2418
2419    typedef enum {
2420        IGNORE_TIM_ALL_QUEUES_APSD = 0,
2421        PROCESS_TIM_ALL_QUEUES_APSD = 1,
2422        IGNORE_TIM_SIMULATED_APSD = 2,
2423        POWERSAVE_TIMERS_POLICY = 3,
2424    } APSD_TIM_POLICY;
2425
2426Command Values
2427    None
2428
2429Reset Values
2430    psPollTimeout is 50 ms; triggerTimeout is 10 ms;
2431    apsdTimPolicy = IGNORE_TIM_ALL_QUEUES_APSD;
2432    simulatedAPSDTimPolicy = POWERSAVE_TIMERS_POLICY
2433
2434Restrictions
2435    When this command is used, all parameters must be set; this command does not
2436    allow setting only one parameter.
2437
2438=====================================================================
2439
2440
2441Name
2442    SET_PROBED_SSID
2443
2444Synopsis
2445    The host uses this command to provide a list of up to MAX_PROBED_SSID_INDEX
2446    (six) SSIDs that the AR6000 device should actively look for. It lists the active SSID
2447    table. By default, the device actively looks for only the SSID specified in the
2448CONNECT_CMDcommand, and only when the regulatory domain allows active
2449    probing. With this command, specified SSIDs are probed for, even if they are hidden.
2450
2451Command
2452    wmiconfig eth1 --ssid=<ssid> [--num=<index>]
2453
2454Command Parameters
2455    {
2456        A_UINT8    numSsids
2457            A number from 0 to
2458            MAX_PROBED_SSID_INDEX indicating
2459            the active SSID table entry index for this
2460            command (if the specified entry index
2461            already has an SSID, the SSID specified in
2462            this command replaces it)
2463
2464        WMI_PROBED_SSID_INFO    probedSSID[1]
2465    } WMI_PROBED_SSID_CMD
2466
2467    {
2468        A_UINT8    flag
2469            WMI_SSID_FLAG indicates the current
2470            entry in the active SSID table
2471        A_UINT8    ssidLength
2472            Length of the specified SSID in bytes.
2473            If = 0, the entry corresponding to the
2474            index is erased
2475        A_UINT8    ssid[32]
2476            SSID string actively probed for when
2477            permitted by the regulatory domain
2478    } WMI_PROBED_SSID_INFO
2479
2480Command Values
2481    WMI_SSID_FLAG
2482    {
2483         DISABLE_SSID_FLAG    = 0
2484            Disables entry
2485        SPECIFIC_SSID_FLAG    = 1
2486            Probes specified SSID
2487        ANY_SSID_FLAG    = 2
2488            Probes for any SSID
2489    } WMI_SSID_FLAG
2490
2491Reset Value
2492    The entries are unused.
2493
2494Restrictions
2495    None
2496
2497=====================================================================
2498
2499
2500Name
2501    SET_REASSOC_MODE
2502
2503Synopsis
2504    Specify whether the disassociated frame should be sent or not upon reassociation.
2505
2506Command
2507    wmiconfig eth1 --setreassocmode <mode>
2508
2509Command Parameters
2510    UINT8    mode
2511
2512Command Values
2513    mode
2514        = 0x00
2515        Send disassoc to a previously connected AP
2516        upon reassociation
2517        = 0x01
2518        Do not send disassoc to previously connected
2519        AP upon reassociation
2520
2521Reset Values
2522    None defined
2523
2524Restrictions
2525    None
2526
2527
2528=====================================================================
2529
2530Name
2531    SET_RETRY_LIMITS
2532
2533Synopsis
2534    Allows the host to influence the number of times that the AR6000 device should
2535    attempt to send a frame before they give up.
2536
2537Command
2538    wmiconfig --setretrylimits <frameType> <trafficClass> <maxRetries>
2539    <enableNotify>
2540
2541Command Parameters
2542    {
2543        UINT8    frameType
2544            A WMI_FRAMETYPE specifying
2545            which type of frame is of interest.
2546        UINT8    trafficClass
2547            Specifies a traffic class (see
2548CREATE_PSTREAM�). This
2549            parameter is only significant when
2550            frameType = DATA_FRAMETYPE.
2551        UINT8    maxRetries
2552            Maximum number of times the
2553            device attempts to retry a frame Tx,
2554            ranging from WMI_MIN_RETRIES
2555            (2) to WMI_MAX_RETRIES (15). If
2556            the special value 0 is used,
2557            maxRetries is set to 15.
2558        A_UINT8    enableNotify
2559            Notify when enabled
2560    } WMI_RETRY_LIMIT_INFO
2561
2562    {
2563        A_UINT8    numEntries
2564        WMI_RETRY_LIMIT_INFO  retryLimitInfo[1]
2565    } WMI_SET_RETRY_LIMITS_CMD
2566
2567Command Values
2568    {
2569        MGMT_FRAMETYPE    = 0    Management frame
2570        CONTROL_FRAMETYPE = 1    Control frame
2571        DATA_FRAMETYPE    = 2    Data frame
2572    } WMI_FRAMETYPE
2573
2574Reset Values
2575    Retries are set to 15
2576
2577Restrictions
2578    None
2579
2580=====================================================================
2581
2582
2583Name
2584    SET_ROAM_CTRL
2585
2586Synopsis
2587    Affects how the AR6000 device selects a BSS. The host uses this command to set and
2588    enable low RSSI scan parameters. The time period of low RSSI background scan is
2589    mentioned in scan period. Low RSSI scan is triggered when the current RSSI
2590    threshold (75% of current RSSI) is equal to or less than scan threshold.
2591
2592    Low RSSI roam is triggered when the current RSSI threshold falls below the roam
2593    threshold and roams to a better AP by the end of the scan cycle. During Low RSSI
2594    roam, if the STA finds a new AP with an RSSI greater than roam RSSI to floor, during
2595    scan, it roams immediately to it instead of waiting for the end of the scan cycle. See
2596    alsoScan and Roamon page C-1.
2597
2598Command
2599    wmiconfig --roam <roamctrl> <info>, where info is <scan period>
2600    <scan threshold> <roam threshold> <roam rssi floor>
2601
2602Command Parameters
2603    A_UINT8    roamCtrlType;
2604
2605Command Values
2606    WMI_FORCE_ROAM     = 1
2607    Roam to the specified BSSID
2608
2609    WMI_SET_ROAM_MODE  = 2
2610    Default, progd bias, no roam
2611
2612    WMI_SET_HOST_BIAS  = 3
2613    Set the host bias
2614
2615    WMI_SET_LOWRSSI_SCAN_PARAMS  = 4
2616    Info parameters
2617
2618    A_UINT8    bssid[ATH_MAC_LEN];
2619    WMI_FORCE_ROAM
2620
2621    A_UINT8    roamMode;
2622    WMI_SET_ROAM_MODE
2623
2624    A_UINT8    bssBiasInfo;
2625    WMI_SET_HOST_BIAS
2626
2627    A_UINT16    lowrssi_scan_period;
2628    WMI_SET_LOWRSSI_SCAN_PARAMS
2629
2630    A_INT16
2631    lowrssi_scan_threshold;
2632    WMI_SET_LOWRSSI_SCAN_PARAMS
2633
2634    A_INT16    lowrssi_roam_threshold;
2635    WMI_SET_LOWRSSI_SCAN_PARAMS
2636
2637    A_UINT8    roam_rssi_floor;
2638    WMI_SET_LOWRSSI_SCAN_PARAMS
2639
2640Reset Value
2641    None defined (default lowrssi scan is disabled. Enabled only when scan period is set.)
2642
2643Restrictions
2644    None
2645
2646=====================================================================
2647
2648
2649Name
2650    SET_RTS
2651
2652Synopsis
2653    Decides when RTS should be sent.
2654
2655Command
2656    wmiconfig eth1 --setRTS <pkt length threshold>
2657
2658Command Parameters
2659    A_UINT16
2660    threshold;
2661    Command parameter threshold in bytes. An RTS is
2662    sent if the data length is more than this threshold.
2663    The default is to NOT send RTS.
2664
2665Command Values
2666    None
2667
2668Reset Value
2669    Not to send RTS.
2670
2671Restrictions
2672    None
2673
2674
2675=====================================================================
2676
2677Name
2678    SET_SCAN_PARAMS
2679
2680Synopsis
2681    The host uses this command to set the AR6000 scan parameters, including the duty
2682    cycle for both foreground and background scanning. Foreground scanning takes
2683    place when the AR6000 device is not connected, and discovers all available wireless
2684    networks to find the best BSS to join. Background scanning takes place when the
2685    device is already connected to a network and scans for potential roaming candidates
2686    and maintains them in order of best to worst. A second priority of background
2687    scanning is to find new wireless networks.
2688
2689    The device initiates a scan when necessary. For example, a foreground scan is always
2690    started on receipt of a �CONNECT_CMDcommand or when the device cannot find
2691    a BSS to connect to. Foreground scanning is disabled by default until receipt of a
2692    CONNECT command. Background scanning is enabled by default and occurs every
2693    60 seconds after the device is connected.
2694
2695    The device implements a binary backoff interval for foreground scanning when it
2696    enters the DISCONNECTED state after losing connectivity with an AP or when a
2697    CONNECT command is received. The first interval is ForegroundScanStartPeriod,
2698    which doubles after each scan until the interval reaches ForegroundScanEndPeriod.
2699    If the host terminates a connection with DISCONNECT, the foreground scan period
2700    is ForegroundScanEndPeriod. All scan intervals are measured from the time a full
2701    scan ends to the time the next full scan starts. The host starts a scan by issuing a
2702START_SCANcommand. See alsoScan and Roamon page C-1.
2703
2704Command
2705    wmiconfig eth1 --scan --fgstart=<sec> --fgend=<sec> --bg=<sec> --
2706    act=<msec> --pas=<msec> --sr=<short scan ratio> --scanctrlflags
2707    <connScan> <scanConnected> <activeScan> <reportBSSINFO>
2708
2709Command Parameters
2710    UINT16    fgStartPeriod
2711        First interval used by the device when it
2712        disconnects from an AP or receives a
2713        CONNECT command, specified in seconds (0�
2714        65535). If = 0, the device uses the reset value.
2715        If = 65535, the device disables foreground
2716        scanning.
2717
2718    UINT16    fgEndPeriod
2719        The maximum interval the device waits between
2720        foreground scans specified in seconds (from
2721        ForegroundScanStartPeriod to 65535). If = 0, the
2722        device uses the reset value.
2723
2724    UINT16    bgScanPeriod
2725        The period of background scan specified in
2726        seconds (0�65535). By default, it is set to the reset
2727        value of 60 seconds. If 0 or 65535 is specified, the
2728        device disables background scanning.
2729
2730    UINT16    maxactChDwellTime
2731        The period of time the device stays on a
2732        particular channel while active scanning. It is
2733        specified in ms (1065535). If the special value of
2734        0 is specified, the device uses the reset value.
2735
2736    UINT16    PasChDwellTime
2737        The period of time the device remains on a
2738        particular channel while passive scanning. It is
2739        specified in ms (1065535). If the special value of
2740        0 is specified, the device uses the reset value.
2741
2742    UINT8    shortScanRatio
2743        Number of short scans to perform for each
2744        long scan.
2745
2746    UINT8    scanCtrlFlasgs
2747
2748    UINT16    minactChDwellTime
2749        Specified in ms
2750
2751    UINT32    maxDFSchActTime
2752        The maximum time a DFS channel can stay
2753        active before being marked passive, specified in
2754        ms.
2755
2756Command Values
2757    None
2758
2759Reset Values
2760    ForegroundScanStart
2761Period
2762        1 sec
2763
2764    ForegroundScanEndPeriod
2765        60 sec
2766
2767    BackgroundScanPeriod
2768        60 sec
2769
2770    ActiveChannelDwellTime
2771        105 ms
2772
2773=====================================================================
2774
2775
2776Name
2777    SET_TKIP_COUNTERMEASURES
2778
2779Synopsis
2780    The host issues this command to tell the target whether to enable or disable TKIP
2781    countermeasures.
2782
2783Command
2784    TBD
2785
2786Command Parameters
2787    UINT8    WMI_TKIP_CM_ENABLE
2788        Enables the countermeasures
2789
2790
2791    UINT8    TKIP_CM_DISABLE
2792        Disables the countermeasures
2793
2794Command Values
2795    None
2796
2797Reset Values
2798    By default, TKIP MIC reporting is disabled
2799
2800Restrictions
2801    None
2802
2803=====================================================================
2804
2805
2806Name
2807    SET_TX_PWR
2808
2809Synopsis
2810    The host uses this command to specify the Tx power level of the AR6000. Cannot be
2811    used to exceed the power limit permitted by the regulatory domain. The maximum
2812    output power is limited in the chip to 31.5 dBm; the range is 0 � 31.5 dbm.
2813
2814Command
2815    wmiconfig --power <dbM>
2816
2817Command Parameters
2818    UINT8    dbM
2819        The desired Tx power specified in dbM.
2820        If = 0, the device chooses the maximum
2821        permitted by the regulatory domain.
2822
2823Command Values
2824    None
2825
2826Reset Values
2827    The maximum permitted by the regulatory domain
2828
2829Restrictions
2830    None
2831
2832See Also
2833GET_TX_PWR2834
2835
2836=====================================================================
2837
2838Name
2839    SET_VOICE_PKT_SIZE
2840
2841Synopsis
2842    If an AP does not support WMM, it has no way to differentiate voice from data.
2843    Because the voice packet is typically small, packet in size less than voicePktSize are
2844    assumed to be voice, otherwise it is treated as data.
2845
2846Command
2847    wmiconfig eth1 --setVoicePktSize <size-in-bytes>
2848
2849Command Parameters
2850    UINT16    voicePktSize
2851        Packet size in octets
2852
2853Command Values
2854    None
2855
2856Reset Values
2857    voicePktSize default is 400 bytes
2858
2859Restrictions
2860    No effect if WMM is unavailable
2861
2862
2863=====================================================================
2864
2865Name
2866    SET_WMM
2867
2868Synopsis
2869    Overrides the AR6000 device WMM capability
2870
2871Command
2872    wmiconfig eth1 --setwmm <enable>
2873
2874Command Parameters
2875    WMI_WMM_ENABLED
2876        Enables WMM
2877
2878    WMI_WMM_DISABLED
2879        Disables WMM support
2880
2881Command Values
2882    0 = disabled
2883    1 = enabled
2884
2885Reset Value
2886    WMM Disabled
2887
2888Restrictions
2889    None
2890
2891
2892=====================================================================
2893
2894Name
2895    SET_WMM_TXOP
2896
2897Synopsis
2898    Configures TxOP Bursting when sending traffic to a WMM capable AP
2899
2900Command
2901    wmiconfig eth1 --txopbursting <burstEnable>
2902
2903    <burstEnable>
2904        = 0
2905    Disallow TxOp bursting
2906
2907        = 1
2908    Allow TxOp bursting
2909
2910Command Parameters
2911    txopEnable
2912        = WMI_TXOP_DISABLED
2913        Disabled
2914
2915        = WMI_TXOP_ENABLED
2916        Enabled
2917
2918Command Values
2919    txopEnable
2920        = 0    Disabled
2921
2922        = 1    Enabled
2923
2924Reset Value
2925    Bursting is off by default
2926
2927Restrictions
2928    None
2929
2930=====================================================================
2931
2932
2933Name
2934    SET_WOW_MODE
2935
2936Synopsis
2937    The host uses this command to enable or disable the WoW mode. When WoW mode
2938    is enabled and the host is asleep, pattern matching takes place at the target level.
2939    Only packets that match any of the pre-specified WoW filter patterns, will be passed
2940    up to the host. The host will also be woken up by the target. Packets which do not
2941    match any of the WoW patterns are discarded.
2942
2943Command
2944    wmiconfigsetwowmode <enable/disable>
2945
2946Command Parameters
2947    A_BOOL    enable_wow
2948        Enable or disable WoW:
2949
2950Command Values
2951        = 0
2952    Disable WoW
2953
2954        = 1
2955    Enable WoW
2956
2957Reset Value
2958    None defined (default WoW mode is disabled).
2959
2960Restrictions
2961    None
2962
2963See Also
2964GET_WOW_LIST2965
2966
2967=====================================================================
2968
2969Name
2970    SET_WSC_STATUS
2971
2972Synopsis
2973    The supplicant uses this command to inform the target about the status of the WSC
2974    registration protocol. During the WSC registration protocol, a flag is set so the target
2975    bypasses some of the checks in the CSERV module. At the end of the registration, this
2976    flag is reset.
2977
2978Command
2979    N/A
2980
2981Command Parameters
2982    A_BOOL status
2983        = 1    WSC registration in progress
2984        = 0    WSC protocol not running
2985
2986Reply Parameters
2987    None
2988
2989Reset Value
2990    None defined (default = 0)
2991
2992Restrictions
2993    None
2994
2995
2996=====================================================================
2997
2998Name
2999    SNR_THRESHOLD_PARAMS
3000
3001Synopsis
3002    Configures how the AR6000 device monitors and reports SNR of the connected BSS,
3003    used as a link quality metric.
3004
3005Command
3006    --snrThreshold <weight> <upper_threshold_1> ...
3007    <upper_threshold_4> <lower_threshold_1> ... <lower_threshold_4>
3008    <pollTimer>
3009
3010Command Parameters
3011    <weight>
3012        Share with rssiThreshold. Range in [1, 16], used
3013        in the formula to calculate average RSSI
3014
3015    <upper_threshold_x>
3016        Above thresholds expressed in db, in ascending
3017        order
3018
3019    <lower_threshold_x>
3020        Below thresholds expressed in db, in ascending
3021        order
3022
3023    <pollTimer>
3024        The signal strength sampling frequency in
3025        seconds. If polltime = 0, signal strength
3026        sampling is disabled
3027
3028Command Values
3029    None
3030
3031Reset Value
3032    None defined
3033
3034Restrictions
3035    None
3036
3037=====================================================================
3038
3039
3040Name
3041    START_SCAN
3042
3043Synopsis
3044    The host uses this command to start a long or short channel scan. All future scans are
3045    relative to the time the AR6000 device processes this command. The device performs
3046    a channel scan on receipt of this command, even if a scan was already in progress.
3047    The host uses this command when it wishes to refresh its cached database of wireless
3048    networks. The isLegacy field will be removed (0 for now) because it is achieved by
3049    setting CONNECT_PROFILE_MATCH_DONE in the CONNECT command. See also
3050Scan and Roam3051
3052Command
3053    wmiconfig eth1 --startscan <scan type> <forcefgscan> 0
3054    <homeDwellTime> <forceScanInterval>
3055
3056Command Parameters
3057    UINT8    scanType
3058        WMI_SCAN_TYPE
3059
3060Command Values
3061    {
3062        WMI_LONG_SCAN    =0x0
3063            Requests a full scan
3064        WMI_SHORT_SCAN   =0x1
3065            Requests a short scan
3066    } WMI_SCAN_TYPE
3067
3068    A_BOOL    forceFgScan
3069        forceFgScan
3070        = 0
3071        Disable the foreground scan
3072
3073        forceFgScan
3074        = 1
3075        Forces a foreground scan
3076
3077    A_UINT32    homeDwellTime
3078        Maximum duration in the home
3079        channel (in ms)
3080
3081    A_UINT32     forceScanInterval
3082        Time interval between scans (in ms)
3083
3084    A_UINT32     scanType
3085        WMI_SCAN_TYPE
3086
3087Reset Value
3088    Disable forcing foreground scan
3089
3090Restrictions
3091    isLegacy field will no longer be supported (pass as 0 for now)
3092
3093
3094=====================================================================
3095
3096Name
3097    SYNCHRONIZE
3098
3099Synopsis
3100    The host uses this command to force a synchronization point between the command
3101    and data paths
3102
3103Command
3104    TBD
3105
3106Command Parameters
3107    None
3108
3109
3110
3111Command Values
3112    None
3113
3114
3115
3116Reset Values
3117    None
3118
3119
3120
3121Restrictions
3122    None
3123
3124
3125=====================================================================
3126
3127Name
3128    TARGET_ERROR_REPORT_BITMASK
3129
3130Synopsis
3131    Allows the host to controlERROR_REPORTevents from the AR6000 device.
3132
3133        If error reporting is disabled for an error type, a count of errors of that type is
3134        maintained by the device.
3135
3136        If error reporting is enabled for an error type, anERROR_REPORTevent is
3137        sent when an error occurs and the error report bit is cleared.
3138
3139    Error counts for each error type are available through theGET_TARGET_STATS3140    command.
3141
3142Command
3143    wmiconfig eth1 --setErrorReportingBitmask
3144
3145Command Parameters
3146    UINT32    bitmask
3147        Represents the set of
3148        WMI_TARGET_ERROR_VAL error types
3149        enabled for reporting
3150
3151Command Values
3152    {
3153        WMI_TARGET_PM_ERR_FAIL    = 0x00000001
3154            Power save fails (only two cases):
3155               Retry out of null function/QoS null
3156               function to associated AP for PS
3157               indication'
3158               Host changes the PS setting when
3159               STA is off home channel
3160
3161        WMI_TARGET_KEY_NOT_FOUND    = 0x00000002
3162            No cipher key
3163        WMI_TARGET_DECRYPTION_ERR   = 0x00000004
3164            Decryption error
3165        WMI_TARGET_BMISS            = 0x00000008
3166            Beacon miss
3167        WMI_PSDISABLE_NODE_JOIN     = 0x00000010
3168            A non-PS-enabled STA joined the
3169            PS-enabled network
3170        WMI_TARGET_COM_ERR          = 0x00000020
3171            Host/target communication error
3172        WMI_TARGET_FATAL_ERR        = 0x00000040
3173            Fatal error
3174    } WMI_TARGET_ERROR_VAL
3175
3176Reset Values
3177    Bitmask is 0, and all error reporting is disabled
3178
3179Restrictions
3180    None
3181
3182
3183=====================================================================
3184WMI Events
3185
3186Event
3187    Description
3188    Page
3189
3190
3191BSSINFO
3192    Contains information describing BSSs collected during a scan
3193
3194CAC_EVENTID
3195    Indicates signalling events in admission control
3196
3197CMDERROR
3198    The AR6000 device encounters an error while attempting to process
3199    a command
3200
3201CONNECT
3202    The device has connected to a wireless network
3203
3204DISCONNECT
3205    The device lost connectivity with a wireless network
3206
3207ERROR_REPORT
3208    An error has occurred for which the host previously requested
3209    notification with the command
3210    �TARGET_ERROR_REPORT_BITMASK�
3211
3212EXTENSION
3213    WMI extension event
3214
3215GET_PMKID_LIST_EVENT
3216    Created in response to a �GET_PMKID_LIST_CMD� command
3217
3218GET_WOW_LIST_EVENT
3219    Response to the wmiconfig �GET_WOW_LIST� command to
3220    retrieve the configured WoW patterns
3221
3222NEIGHBOR_REPORT
3223    Neighbor APs that match the current profile were detected
3224
3225OPT_RX_FRAME_EVENT
3226    (Special feature) informs the host of the reception of a special frame
3227
3228PSTREAM_TIMEOUT
3229    A prioritized stream has been idle for a specified interval
3230
3231READY
3232    The AR6000 device is ready to accept commands
3233
3234REGDOMAIN
3235    The regulatory domain has changed
3236
3237REPORT_ROAM_DATA_EVENT
3238    Reports the roam time calculations made by the device
3239    (generated with a special build)
32403241
3242REPORT_STATISTICS
3243    Reply to a �GET_TARGET_STATS� command
3244
3245ROAM_TBL_EVENT
3246    Reports the roam table
3247
3248RSSI_THRESHOLD
3249    Signal strength from the connected AP has crossed the threshold
3250    defined in the �RSSI_THRESHOLD_PARAMS� command
3251
3252SCAN_COMPLETE_EVENT
3253    A scan has completed (added status SCAN_ABORTED in release 2.0)
3254
3255TEST_EVENT
3256    Event generated by the TCMD
3257
3258TKIP_MICERROR
3259    TKIP MIC errors were detected
3260
3261=====================================================================
3262
3263Name
3264    BSSINFO
3265
3266Synopsis
3267    Contains information describing one or more BSSs as collected during a scan.
3268    Information includes the BSSID, SSID, RSSI, network type, channel, supported rates,
3269    and IEs. BSSINFO events are sent only after the device receives a beacon or probe-
3270    response frame that pass the filter specified in the �SET_BSS_FILTER� command.
3271    BSSINFO events consist of a small header followed by a copy of the beacon or probe
3272    response frame. The 802.11 header is not present. For formats of beacon and probe-
3273    response frames please consult the IEEE 802.11 specification.
3274
3275    The beacons or probe responses containing the IE specified by the
3276    WMI_BSS_FILTER_CMD are passed to the host through the
3277    WMI_BSSINFO_EVENT. The event carries a 32-bit bitmask that indicates the IEs that
3278    were detected in the management frame. The frame type field has been extended to
3279    indicate action management frames. This would be helpful to route these frames
3280    through the same event mechanism as used by the beacon processing function.
3281
3282    If the bssFilter in the SET_BSS_FILTER matches, then the ieMask is not relevant
3283    because the BSSINFO event is sent to the host. If the bssFilter doesnot match in the
3284    beacons/probe respones, then the ieMask match dictates whether the BSSINFO
3285    event is sent to the host. In the case of action management frames, the ieMask is the
3286    filter that is applied.
3287
3288Event ID
3289    0x1004
3290
3291Event Parameters
3292    typedef struct {
3293        A_UINT16    channel;
3294            Specifies the frequency (in MHz) where the
3295            frame was received
3296        A_UINT8    frameType;
3297            A WMI_BI_FTYPE value
3298        A_UINT8    snr;
3299        A_INT16    rssi;
3300            Indicates signal strength
3301        A_UINT8    bssid[ATH_MAC_LEN];
3302        A_UINT32    ieMask;
3303    } _ATTRIB_PACK_WMI_BSS_INFO_HDR;
3304
3305    Beacon or Probe Response Frame
3306
3307Event Values
3308    {
3309        BEACON_FTYPE    = 0x1
3310            Indicates a beacon frame
3311        PROBERESP_FTYPE
3312            Indicates a probe response frame
3313        ACTION_MGMT_FTYPE
3314     } WMI_BI_FTYPE
3315
3316=====================================================================
3317
3318Name
3319    CAC_EVENTID
3320
3321Synopsis
3322    Indicates signalling events in admission control. Events are generated when
3323    admission is accepted, rejected, or deleted by either the host or the AP. If the AP does
3324    not respond to an admission request within a timeout of 500 ms, an event is
3325    generated to the host.
3326
3327Event ID
3328    0x1011
3329
3330Event Parameters
3331    UINT8
3332    ac
3333    Access class pertaining to the
3334signalling
3335
3336    UINT8    cac_indication
3337        Type of indication; indications are
3338        listed in WMI_CAC_INDICATION
3339
3340    UINT8    statusCode
3341        AP response status code for a
3342        request
3343
3344    UINT8    tspecSuggestion[63]
3345        Suggested TSPEC from AP
3346
3347Event Values
3348    {
3349        CAC_INDICATION_ADMISSION = 0x00
3350        CAC_INDICATION_ADMISSION_RESP    = 0x01
3351        CAC_INDICATION_DELETE    = 0x02
3352        CAC_INDICATION_NO_RESP   = 0x03
3353    } WMI_CAC_INDICATION
3354
3355
3356=====================================================================
3357
3358
3359Name
3360    CMDERROR
3361
3362Synopsis
3363    Indicates that the AR6000 device encountered an error while attempting to process a
3364    command. This error is fatal and indicates that the device requires a reset.
3365
3366Event ID
3367    0x1005
3368
3369Event Parameters
3370    UINT16    commandId
3371        Corresponds to the command which generated
3372        the error
3373    UINT8    errorCode
3374        A WMI_ERROR_CODE value
3375
3376Event Values
3377    {
3378        INVALID_PARAM    = 1
3379            Invalid parameter
3380        ILLEGAL_STATE    = 2
3381            Illegal state
3382        INTERNAL_ERROR   = 3
3383            Internal Error
3384        All other values reserved
3385    } WMI_ERROR_CODE
3386
3387
3388=====================================================================
3389
3390
3391Name
3392    CONNECT
3393
3394Synopsis
3395    Signals that the AR6000 connected to a wireless network. Connection occurs due to a
3396    �CONNECT� command or roaming to a new AP. For infrastructure networks, shows
3397    that the AR6000 successfully performed 802.11 authentication and AP association.
3398
3399Event ID
3400    0x1002
3401
3402Event Parameters
3403    UINT16    channel
3404        Channel frequency (in MHz) of the network the
3405        AR6000 are connected to
3406
3407    UINT8    bssid[6]
3408        MAC address of the AP the AR6000 are
3409        connected to or the BSSID of the ad hoc
3410        network
3411
3412    UINT16    listenInterval
3413        Listen interval (in Kms) that the AR6000 are
3414        using
3415
3416    UINT 8    beaconIeLen
3417        Length (in bytes) of the beacon IEs
3418
3419    UINT8    assocInfo
3420        Pointer to an array containing beacon IEs,
3421        followed first by association request IEs then by
3422        association response IEs
3423
3424    UINT8    assocReqLen
3425        Length (in bytes) of the assocReqIEs array
3426
3427    UINT8    assocRespLen
3428        Length (in bytes) of the assocRespIEs array
3429
3430Event Values
3431    None defined
3432
3433=====================================================================
3434
3435
3436Name
3437    DISCONNECT
3438
3439Synopsis
3440    Signals that the AR6000 device lost connectivity with the wireless network.
3441    DISCONENCT is generated when the device fails to complete a �CONNECT�
3442    command or as a result of a transition from a connected state to disconnected state.
3443
3444    After sending the �DISCONNECT� event the device continually tries to re-establish
3445    a connection. A LOST_LINK occurs when STA cannot receive beacons within the
3446    specified time for the SET_BMISS_TIME command.
3447
3448Event ID
3449    0x1003
3450
3451Event Parameters
3452    UINT8    disconnect
3453        Reason
3454        A WMI_DISCONNECT_REASON value
3455
3456    UINT8    bssid[6]
3457        Indicates which BSS the device was connected to
3458
3459    UINT8    assocRespLen
3460        Length of the 802.11 association response frame
3461        that triggered this event, or 0 if not applicable
3462
3463    UINT8    assocInfo[assocRespLen]
3464        Copy of the 802.11 association response frame
3465
3466Event Values
3467    {
3468        NO_NETWORK_AVAIL    =0x01
3469            Indicates that the device was unable to
3470            establish or find the desired network
3471        LOST_LINK    =0x02
3472            Indicates the devices is no longer receiving
3473            beacons from the BSS it was previously
3474            connected to
3475
3476        DISCONNECT_CMD  =0x03
3477            Indicates a �DISCONNECT� command was
3478            processed
3479        BSS_DISCONNECTED =0x04
3480            Indicates the BSS explicitly disconnected the
3481            device. Possible mechanisms include the AP
3482            sending 802.11 management frames
3483            (e.g., disassociate or deauthentication
3484            messages).
3485        AUTH_FAILED    =0x05
3486            Indicates that the device failed 802.11
3487            authentication with the BSS
3488        ASSOC_FAILED    =0x06
3489            Indicates that the device failed 802.11
3490            association with the BSS
3491        NO_RESOURCES_AVAIL    =0x07
3492            Indicates that a connection failed because the
3493            AP had insufficient resources to complete the
3494            connection
3495        CSERV_DISCONNECT    =0x08
3496            Indicates that the device�s connection services
3497            module decided to disconnect from a BSS,
3498            which can happen for a variety of reasons (e.g.,
3499            the host marks the current connected AP as a
3500            bad AP).
3501        INVALID_PROFILE    =0x0A
3502            Indicates that an attempt was made to
3503            reconnect to a BSS that no longer matches the
3504            current profile
3505        All other values are reserved
3506    } WMI_DISCONNECT_REASON
3507
3508
3509=====================================================================
3510
3511
3512Name
3513    ERROR_REPORT
3514
3515Synopsis
3516    Signals that a type of error has occurred for which the host previously requested
3517    notification through the �TARGET_ERROR_REPORT_BITMASK� command.
3518
3519Event ID
3520    0x100D
3521
3522Event Parameters
3523    UINT32    errorVal
3524            WMI_TARGET_ERROR_VAL value. See
3525            �TARGET_ERROR_REPORT_BITMASK�.
3526
3527Event Values
3528    errorVal
3529    = 0x00000001
3530    Power save fails
3531
3532        = 0x00000002
3533    No cipher key
3534
3535        = 0x00000004
3536    Decryption error
3537
3538        = 0x00000008
3539    Beacon miss
3540
3541        = 0x00000010
3542    A non-power save disabled node has joined
3543    the PS-enabled network
3544
3545
3546=====================================================================
3547
3548
3549Name
3550    EXTENSION
3551
3552Synopsis
3553    The WMI is used mostly for wireless control messages to a wireless module that
3554    apply to wireless module management regardless of the target platform
3555    implementation. However, some events peripherally related to wireless management
3556    are desired during operation. These wireless extension events may be platform-
3557    specific or implementation-dependent. See �WMI Extension Commands�
3558
3559
3560Event ID
3561    0x1010
3562
3563
3564=====================================================================
3565
3566
3567Name
3568    GET_PMKID_LIST_EVENT
3569
3570Synopsis
3571    Generated by firmware in response to a �GET_PMKID_LIST_CMD� command.
3572
3573Event Parameters
3574    typedef struct {
3575        A_UINT32    numPMKID;
3576            Contains the number of PMKIDs in the reply
3577        WMI_PMKID   pmkidList[1];
3578    } __ATTRIB_PACK WMI_PMKID_LIST_REPLY;
3579
3580Event Values
3581    None
3582
3583
3584=====================================================================
3585
3586
3587Name
3588    GET_WOW_LIST_EVENT
3589
3590Synopsis
3591    Response to the wmiconfig �getwowlist command to retrieve the configured Wake on
3592    Wireless patterns
3593
3594Event ID
3595    0x10018
3596
3597Event Parameters
3598    {
3599
3600    A_UINT8    num_filters
3601        Total number of patterns in the list
3602    A_UINT8    this_filter_num
3603        The filter number
3604    A_UINT8    wow_mode
3605        Shows whether WoW is enabled or disabled
3606    A_UINT8    host_mode
3607        Shows whether the host is asleep or awake
3608    WOW_FILTER    wow_filters[1]
3609        List of WoW filters (pattern and mask data bytes)
3610    } WMI_GET_WOW_LIST_REPLY;
3611
3612    {
3613        Each wow_filter_list element shows:
3614    A_UINT8    wow_valid_filter
3615        Whether the filter is valid
3616    A_UINT8    wow_filter_list_id
3617        Filter List ID (23 = default)
3618    A_UINT8    wow_filter_size
3619        Size in bytes of the filter
3620    A_UINT8    wow_filter_offset
3621        Offset of the pattern to search in the data packet
3622    A_UINT8    wow_filter_mask[MASK_SIZE]
3623        The mask to be applied to the pattern
3624    A_UINT8    wow_filter_pattern[WOW_PATTERN_SIZE]
3625        The pattern that to match to wake up the host
3626    } WOW_FILTER
3627
3628Event Values
3629    None
3630
3631=====================================================================
3632
3633
3634
3635Name
3636    NEIGHBOR_REPORT
3637
3638Synopsis
3639    Indicates the existence of neighbor APs that match the current profile. The host uses
3640    this event to populate the PMKID cache on the AR6000 and/or to perform
3641    preauthentication. This event is only generated in infrastructure mode.
3642
3643    A total of numberOfAps pairs of bssid/bssFlags exist, one pair for each AP.
3644
3645Event ID
3646    0x1008
3647
3648Event Parameters
3649    UINT8    numberOfAps
3650        The number of APs reported about in
3651        this event
3652    {
3653        UINT8    bssid[6]
3654            MAC address of a neighbor AP
3655        UINT8    bssFlags
3656            A WMI_BSS_FLAGS value
3657    }[numberOfAps]
3658
3659
3660Event Values
3661    {
3662        WMI_DEFAULT_BSS_FLAGS    = 0
3663            Logical OR of 1 or more
3664        WMI_BSS_FLAGS
3665        WMI_PREAUTH_CAPABLE_BSS
3666            = 1
3667            Indicates that this AP is capable of
3668            preauthentication
3669        WMI_PMKID_VALID_BSS
3670            = 2
3671            Indicates that the AR6000 have a
3672            valid pairwise master key for this AP
3673    } WMI_BSS_FLAGS
3674
3675
3676=====================================================================
3677
3678
3679
3680Name
3681    OPT_RX_FRAME_EVENT
3682
3683Synopsis
3684    Special feature, informs host of the reception of a special frame.
3685
3686Event ID
3687    0x100E
3688
3689Event Parameters
3690    {
3691        A_UINT16    channel;
3692        A_UINT8    frameType;
3693        A_INT8    snr;
3694        A_UINT8    srcAddr[ATH_MAC_LEN];
3695        A_UINT8    bssid[ATH_MAC_LEN];
3696        }WMI_OPT_RX_INFO_HDR
3697
3698Event Values
3699    None
3700
3701=====================================================================
3702
3703
3704
3705Name
3706    PSTREAM_TIMEOUT
3707
3708Synopsis
3709    Indicates that a priority stream that got created as a result of priority-marked data
3710    flow (priority marked in IP TOS) being idle for the default inactivity interval period
3711    (specified in the �CREATE_PSTREAM� command) used for priority streams created
3712    implicitly by the driver. This event is not indicated for user-created priority streams.
3713    User-created priority streams exist until the users delete them explicitly. They do not
3714    timeout due to data inactivity.
3715
3716Event ID
3717    0x1007
3718
3719Event Parameters
3720    A_UINT8
3721    trafficClass
3722    Indicated the traffic class of priority
3723    stream that timed out
3724
3725Event Values
3726    {
3727        WMM_AC_BE    = 0
3728            Best effort
3729        WMM_AC_BK    = 1
3730            Background
3731        WMM_AC_VI    = 2
3732            Video
3733        WMM_AC_VO     = 3
3734            Voice
3735    } TRAFFIC CLASS
3736
3737
3738=====================================================================
3739
3740Name
3741    READY
3742
3743Synopsis
3744    Indicates that the AR6000 device is prepared to accept commands. It is sent once after
3745    power on or reset. It also indicates the MAC address of the device.
3746
3747Event ID
3748    0x1001
3749
3750Event Parameters
3751    UINT8    macAddr[6]
3752        Device MAC address
3753    UINT8    phyCapability
3754        A WMI_PHY_CAPABILITY value. Indicates the
3755        capabilities of the device wireless module�s radio
3756
3757Event Values
3758    {
3759        WMI_11A_CAPABILITY       = 1
3760        WMI_11G_CAPABILITY       = 2
3761        WMI_11AG_CAPABILITY      = 3
3762    } WMI_PHY_CAPABILITY
3763
3764
3765=====================================================================
3766
3767Name
3768    REGDOMAIN
3769
3770Synopsis
3771    Indicates that the regulatory domain has changed. It initially occurs when the
3772    AR6000 device reads the board data information. The regulatory domain can also
3773    change when the device is a world-mode SKU. In this case, the regulatory domain is
3774    based on the country advertised by APs per the IEEE 802.11d specification. A
3775    potential side effect of a regulatory domain change is a change in the list of available
3776    channels. Any channel restrictions that exist as a result of a previous
3777    �SET_CHANNEL_PARAMETERS� command are lifted.
3778
3779Event ID
3780    0x1006
3781
3782Event Parameters
3783    UINT32    regDomain
3784        The range of 0x0000 � 0x00FF
3785        corresponds to an ISO country code.
3786
3787    Other regCodes are reserved for world
3788    mode settings and specific regulatory
3789    domains.
3790
3791Event Values
3792    None
3793
3794
3795=====================================================================
3796
3797
3798
3799Name
3800    REPORT_STATISTICS
3801
3802Synopsis
3803    A reply to a �GET_TARGET_STATS� command.
3804
3805Event ID
3806    0x100B
3807
3808Event Parameters
3809    When the statistics are sent to the host, the AR6001 clear them so that a new set of
3810    statistics are collected for the next report.
3811
3812    UINT32    tx_packets
3813    UINT32    tx_bytes
3814    UINT32    tx_unicast_pkts
3815    UINT32    tx_unicast_bytes
3816    UINT32    tx_multicast_pkts
3817    UINT32    tx_multicast_bytes
3818    UINT32    tx_broadcast_pkts
3819    UINT32    tx_broadcast_bytes
3820    UINT32    tx_rts_success_cnt
3821    UINT32    tx_packet_per_ac[4]
3822        Tx packets per AC: [0] = BE, [1] = BK,
3823        [2] = VI, [3] = VO
3824    UINT32    tx_errors
3825        Number of packets which failed Tx, due
3826        to all failures
3827    ... REPORT_STATISTICS, continued
3828    UINT32    tx_failed_cnt
3829        Number of data packets that failed Tx
3830    UINT32    tx_retry_cnt
3831        Number of Tx retries for all packets
3832    UINT32    tx_rts_fail_cnt
3833        Number of RTS Tx failed count
3834    UINT32    rx_packets
3835    UINT32    rx_bytes
3836    UINT32    rx_unicast_pkts
3837    UINT32    rx_unicast_bytes
3838    UINT32    rx_multicast_pkts
3839    UINT32    rx_multicast_bytes
3840    UINT32    rx_broadcast_pkts
3841    UINT32    rx_broadcast_bytes
3842    UINT32    rx_fragment_pkt
3843        Number of fragmented packets received
3844    UINT32    rx_errors
3845        Number of Rx errors due to all failures
3846    UINT32    rx_crcerr
3847        Number of Rx errors due to CRC errors
3848    UINT32    rx_key_cache_miss
3849        Number of Rx errors due to a key not
3850        being plumbed
3851    UINT32    rx_decrypt_err
3852        Number of Rx errors due to decryption
3853        failure
3854    UINT32    rx_duplicate_frames
3855        Number of duplicate frames received
3856    UINT32    tkip_local_mic_failure
3857        Number of TKIP MIC errors detected
3858    UINT32    tkip_counter_measures_invoked
3859        Number of times TKIP countermeasures
3860        were invoked
3861    UINT32    tkip_replays
3862        Number of frames that replayed a TKIP
3863        encrypted frame received earlier
3864    UINT32    tkip_format_errors
3865        Number of frames that did not conform
3866        to the TKIP frame format
3867    UINT32    ccmp_format_errors
3868        Number of frames that did not conform
3869        to the CCMP frame format
3870    UINT32    ccmp_replays
3871        Number of frames that replayed a CCMP
3872        encrypted frame received earlier
3873    UINT32    power_save_failure_cnt
3874        Number of failures that occurred when
3875        the AR6001 could not go to sleep
3876    UINT32    cs_bmiss_cnt
3877        Number of BMISS interrupts since
3878    connection
3879    UINT32    cs_lowRssi_cnt
3880        Number of the times the RSSI went below
3881        the low RSSI threshold
3882    UINT16    cs_connect_cnt
3883        Number of connection times
3884    UINT16    cs_disconnect_cnt
3885        Number of disconnection times
3886    UINT8    cs_aveBeacon_rssi
3887        The current averaged value of the RSSI
3888        from the beacons of the connected BSS
3889    UINT8    cs_lastRoam_msec
3890        Time that the last roaming took, in ms.
3891        This time is the difference between
3892        roaming start and actual connection.
3893
3894Event Values
3895    None defined
3896
3897
3898=====================================================================
3899
3900Name
3901    ROAM_TBL_EVENT
3902
3903Synopsis
3904    Reports the roam table, which contains the current roam mode and this information
3905    for every BSS:
3906
3907Event ID
3908    0x100F
3909
3910Event Parameters
3911    A_UINT8     bssid[ATH_MAC_LEN];
3912        BSSID
3913    A_UINT8     rssi
3914        Averaged RSSI
3915    A_UINT8     rssidt
3916        Change in RSSI
3917    A_UINT8     last_rssi
3918        Last recorded RSSI
3919    A_UINT8     roam_util
3920        Utility value used in roaming decision
3921    A_UINT8     util
3922        Base utility with the BSS
3923    A_UINT8     bias
3924        Host configured for this BSS
3925
3926Event Values
3927    roamMode
3928        Current roam mode
3929
3930        = 1
3931    RSSI based roam
3932
3933        = 2
3934    Host bias-based roam
3935
3936        = 3
3937    Lock to the current BSS
3938
3939        = 4
3940    Autonomous roaming disabled
3941
3942
3943=====================================================================
3944
3945Name
3946    RSSI_THRESHOLD
3947
3948Synopsis
3949    Alerts the host that the signal strength from the connected AP has crossed a
3950    interesting threshold as defined in a previous �RSSI_THRESHOLD_PARAMS�
3951    command.
3952
3953Event ID
3954    0x100C
3955
3956Event Parameters
3957    UINT8    range
3958        A WMI_RSSI_THRESHOLD_VAL
3959        value, which indicates the range of
3960        the average signal strength
3961
3962Event Values
3963    {
3964        WMI_RSSI_LOWTHRESHOLD_BELOW_LOWERVAL  = 1
3965        WMI_RSSI_LOWTHRESHOLD_LOWERVAL        = 2
3966        WMI_RSSI_LOWTHRESHOLD_UPPERVAL        = 3
3967        WMI_RSSI_HIGHTHRESHOLD_LOWERVAL       = 4
3968        WMI_RSSI_HIGHTHRESHOLD_HIGHERVAL      = 5
3969    } WMI_RSSI_THRESHOLD_VAL
3970
3971
3972=====================================================================
3973
3974Name
3975    SCAN_COMPLETE_EVENT
3976
3977Synopsis
3978    Indicates the scan status. if the Scan was not completed, this event is generated with
3979    the status A_ECANCELED.
3980
3981Event ID
3982    0x100A
3983
3984Event Parameters
3985    A_UINT8    scanStatus
3986
3987Event Values
3988    {
3989        #define     SCAN_ABORTED 16
3990        #define     SCAN_COMPLETED 0
3991        A_UINT8     scanStatus
3992            A_OK or A_ECANCELED
3993    } WMI_SCAN_COMPLETE_EVENT;
3994
3995
3996=====================================================================
3997
3998Name
3999    TEST_EVENT
4000
4001Synopsis
4002    The TCMD application uses a single WMI event (WMI_TEST_EVENTID) to
4003    communicate events from target to host. The events are parsed by the TCMD
4004    application and WMI layer is oblivious of it.
4005
4006Event ID
4007    0x1016
4008
4009Event Parameters
4010    WMI_TEST_EVENTID
4011
4012
4013Event Values
4014    None
4015
4016
4017=====================================================================
4018
4019
4020
4021Name
4022    TKIP_MICERR
4023
4024Synopsis
4025    Indicates that TKIP MIC errors were detected.
4026
4027Event ID
4028    0x1009
4029
4030Event Parameters
4031    UINT8    keyid
4032        Indicates the TKIP key ID
4033
4034    UINT8    ismcast
4035        0 = Unicast
4036        1 = Multicast
4037
4038Event Values
4039    See event parameters
4040
4041=====================================================================
4042
4043WMI Extension Commands
4044
4045The WMI EXTENSION command is used to multiplex a collection of
4046commands that:
4047
4048        Are not generic wireless commands
4049        May be implementation-specific
4050        May be target platform-specific
4051        May be optional for a host implementation
4052
4053    An extension command is sent to the AR6000 targets like any other WMI
4054command message and uses the WMI_EXTENSION. The first field of the
4055payload for this EXTENSION command is another commandId, sometimes
4056called the subcommandId, which indicates which extension command is
4057being used. A subcommandId-specific payload follows the subcommandId.
4058
4059All extensions (subcommandIds) are listed in the header file include/wmix.h.
4060See also �WMI Extension Events� on page B-58.
4061
4062
4063WMI Extension Commands
4064
4065
4066GPIO_INPUT_GET
4067    Read GPIO pins configured for input
4068
4069GPIO_INTR_ACK
4070    Acknowledge and re-arm GPIO interrupts reported earlier
4071
4072GPIO_OUTPUT_SET
4073    Manage output on GPIO pins configured for output
4074
4075GPIO_REGISTER_GET
4076    Read an arbitrary GPIO register
4077
4078GPIO_REGISTER_SET
4079    Dynamically change GPIO configuration
4080
4081SET_LQTHRESHOLD
4082    Set link quality thresholds; the sampling happens at every unicast
4083    data frame Tx, if certain thresholds are met, and corresponding
4084    events are sent to the host
4085
4086
4087=====================================================================
4088
4089Name
4090    GPIO_INPUT_GET
4091
4092Synopsis
4093    Allows the host to read GPIO pins that are configured for input. The values read are
4094    returned through a �GPIO_DATA� extension event.
4095
4096NOTE: Support for GPIO is optional.
4097
4098Command
4099    N/A
4100
4101Command Parameters
4102    None
4103
4104
4105
4106Reply Parameters
4107    None
4108
4109
4110Reset Value
4111    None
4112
4113
4114
4115Restrictions
4116    None
4117
4118=====================================================================
4119
4120
4121Name
4122    GPIO_INTR_ACK
4123
4124Synopsis
4125    The host uses this command to acknowledge and to re-arm GPIO interrupts reported
4126    through an earlier �GPIO_INTR� extension event. A single �GPIO_INTR_ACK�
4127    command should be used to acknowledge all GPIO interrupts that the host knows to
4128    be outstanding (if pending interrupts are not acknowledged through
4129    �GPIO_INTR_ACK�, another �GPIO_INTR� extension event is raised).
4130
4131NOTE: Support for GPIO is optional.
4132
4133Command
4134    N/A
4135
4136Command Parameters
4137    UINT32    ack_mask
4138        A mask of interrupting GPIO pins (e.g., ack_mask
4139        bit [3] acknowledges an interrupt from the pin GPIO3).
4140
4141Command Values
4142    None
4143
4144Reset Value
4145    None
4146
4147Restrictions
4148    The host should acknowledge only interrupts about which it was notified.
4149
4150
4151=====================================================================
4152
4153Name
4154    GPIO_OUTPUT_SET
4155
4156Synopsis
4157    Manages output on GPIO pins configured for output.
4158
4159    Conflicts between set_mask and clear_mask or enable_mask and disable_mask result
4160    in undefined behavior.
4161
4162NOTE: Support for GPIO is optional.
4163
4164Command
4165    N/A
4166
4167Command Parameters
4168    UINT32    set_mask
4169        Specifies which pins should drive a 1 out
4170    UINT32    clear_mask
4171        Specifies which pins should drive a 0 out
4172    UINT32    enable_mask
4173        Specifies which pins should be enabled for output
4174    UINT32    disable_mask
4175        Specifies which pins should be disabled for output
4176
4177Command Values
4178    None
4179
4180
4181Reset Value
4182    None
4183
4184
4185Restrictions
4186    None
4187
4188
4189
4190=====================================================================
4191
4192
4193Name
4194    GPIO_REGISTER_GET
4195
4196Synopsis
4197    Allows the host to read an arbitrary GPIO register. It is intended for use during
4198    bringup/debug. The target responds to this command with a �GPIO_DATA� event.
4199
4200NOTE: Support for GPIO is optional.
4201
4202Command
4203    N/A
4204
4205Command Parameters
4206    UINT32
4207    gpioreg_id
4208    Specifies a GPIO register identifier, as defined
4209in include/AR6000/AR6000_gpio.h
4210
4211Reply Parameters
4212    None
4213
4214Reset Value
4215    N/A
4216
4217Restrictions
4218    None
4219
4220
4221=====================================================================
4222
4223Name
4224    GPIO_REGISTER_SET
4225
4226Synopsis
4227    Allows the host to dynamically change GPIO configuration (usually handled
4228    statically through the GPIO configuration DataSet).
4229
4230NOTE: Support for GPIO is optional.
4231
4232Command
4233    N/A
4234
4235Command Parameters
4236    UINT32    gpioreg_id
4237        Specifies a GPIO register identifier, as defined in
4238        include/AR6000/AR6000_gpio.h
4239    UINT32    value
4240        Specifies a value to write to the specified
4241        GPIO register
4242
4243Command Values
4244    None
4245
4246
4247Reset Value
4248    Initial hardware configuration is as defined in the AR6001 or AR6002 ROCmTM
4249    Single-Chip MAC/BB/Radio for 2.4/5 GHz Embedded WLAN Applications data sheet. This
4250    configuration is modified by the GPIO Configuration DataSet, if one exists.
4251
4252Restrictions
4253    None
4254
4255
4256=====================================================================
4257
4258
4259Name
4260    SET_LQTHRESHOLD
4261
4262Synopsis
4263    Set link quality thresholds, the sampling happens at every unicast data frame Tx, if
4264    certain threshold is met, corresponding event will be sent to host.
4265
4266Command
4267    wmiconfig eth1 --lqThreshold <enable> <upper_threshold_1>...
4268    <upper_threshold_4> <lower_threshold_1>... <lower_threshold_4>
4269
4270Command Parameters
4271    A_UINT8   enable;
4272    A_UINT8   thresholdAbove1_Val;
4273    A_UINT8   thresholdAbove2_Val;
4274    A_UINT8   thresholdAbove3_Val;
4275    A_UINT8   thresholdAbove4_Val;
4276    A_UINT8   thresholdBelow1_Val;
4277    A_UINT8   thresholdBelow2_Val;
4278    A_UINT8   thresholdBelow3_Val;
4279    A_UINT8   thresholdBelow4_Val;
4280
4281Command Values
4282    enable
4283    = 0
4284    Disable link quality sampling
4285
4286        = 1
4287    Enable link quality sampling
4288
4289
4290    thresholdAbove_Val
4291    [1...4]
4292    Above thresholds (value in [0,100]), in ascending
4293    order threshold
4294
4295    Below_Val [1...4] = below thresholds (value
4296    in [0,100]), in ascending order
4297
4298Reset Values
4299    None
4300
4301Restrictions
4302    None
4303
4304=====================================================================
4305WMI Extension Events
4306
4307The WMI EXTENSION event is used for a collection of events that:
4308
4309    Are not generic wireless events
4310    May be implementation-specific
4311    May be target platform-specific
4312    May be optional for a host implementation
4313
4314    An extension event is sent from the AR6000 device targets to the host just like
4315any other WMI event message, using the WMI_EXTENSION_EVENTID. The
4316first field of the payload for this �EXTENSION� event is another commandId
4317(sometimes called the subcommandId) that indicates which �EXTENSION�
4318event is being used. A subcommandId-specific payload follows the
4319subcommandId.
4320
4321All extensions (subcommandIds) are listed in the header file include/wmix.h.
4322See also �WMI Extension Commands� on page B-55.
4323
4324
4325WMI Extension Events
4326
4327
4328GPIO_ACK
4329    Acknowledges a host set command has been processed by the device
4330
4331GPIO_DATA
4332    Response to a host�s request for data
4333
4334GPIO_INTR
4335    Signals that GPIO interrupts are pending
4336
4337
4338=====================================================================
4339
4340Name
4341    GPIO_ACK
4342
4343Synopsis
4344    Acknowledges that a host set command (either �GPIO_OUTPUT_SET� or
4345    �GPIO_REGISTER_SET�) has been processed by the AR6000 device.
4346
4347NOTE: Support for GPIO is optional.
4348
4349Event ID
4350    N/A
4351
4352Event Parameters
4353    None
4354
4355
4356Event Values
4357    None
4358
4359=====================================================================
4360
4361
4362Name
4363    GPIO_DATA
4364
4365Synopsis
4366    The AR6000 device uses this event to respond to the host�s earlier request for data
4367    (through either a �GPIO_REGISTER_GET� or a �GPIO_INPUT_GET� command).
4368
4369NOTE: Support for GPIO is optional.
4370
4371Event ID
4372    N/A
4373
4374Event Parameters
4375    UINT32    value
4376        Holds the data of interest, which is either a register value
4377        (in the case of �GPIO_REGISTER_GET�) or a mask of
4378        pin inputs (in the case of �GPIO_INPUT_GET�).
4379    UINT32    reg_id
4380        Indicates which register was read (in the case of
4381        �GPIO_REGISTER_GET�) or is GPIO_ID_NONE (in the
4382        case of �GPIO_INPUT_GET�)
4383
4384Event Values
4385    None
4386
4387
4388=====================================================================
4389
4390
4391
4392Name
4393    GPIO_INTR
4394
4395Synopsis
4396    The AR6000 device raises this event to signal that GPIO interrupts are pending.
4397    These GPIOs may be interrupts that occurred after the last �GPIO_INTR_ACK�
4398    command was issued, or may be GPIO interrupts that the host failed to acknowledge
4399    in the last �GPIO_INTR_ACK�. The AR6000 will not raise another GPIO_INTR
4400    event until this event is acknowledged through a �GPIO_INTR_ACK� command.
4401
4402NOTE: Support for GPIO is optional.
4403
4404Event ID
4405    N/A
4406
4407Event Parameters
4408    UINT32    intr_mask
4409        Indicates which GPIO interrupts are currently pending
4410
4411    UINT32    input_values
4412        A recent copy of the GPIO input values, taken at the
4413        time the most recent GPIO interrupt was processed
4414
4415Event Values
4416    None
4417
4418
4419
4420=====================================================================
4421#endif
4422