/* * * Copyright (c) 2004-2007 Atheros Communications Inc. * All rights reserved. * * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation; * * Software distributed under the License is distributed on an "AS * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or * implied. See the License for the specific language governing * rights and limitations under the License. * * * */ #if 0 Wireless Module Interface (WMI) Documentaion This section describes the format and the usage model for WMI control and data messages between the host and the AR6000-based targets. The header file include/wmi.h contains all command and event manifest constants as well as structure typedefs for each set of command and reply parameters. Data Frames The data payload transmitted and received by the target follows RFC-1042 encapsulation and thus starts with an 802.2-style LLC-SNAP header. The WLAN module completes 802.11 encapsulation of the payload, including the MAC header, FCS, and WLAN security related fields. At the interface to the message transport (HTC), a data frame is encapsulated in a WMI message. WMI Message Structure The WMI protocol leverages an 802.3-style Ethernet header in communicating the source and destination information between the host and the AR6000 modules using a 14-byte 802.3 header ahead of the 802.2-style payload. In addition, the WMI protocol adds a header to all data messages: { INT8 rssi The RSSI of the received packet and its units are shown in db above the noise floor, and the noise floor is shown in dbm. UINT8 info Contains information on message type and user priority. Message type differentiates between a data packet and a synchronization message. } WMI_DATA_HDR User priority contains the 802.1d user priority info from host to target. Host software translates the host Ethernet format to 802.3 format prior to Tx and 802.3 format to host format in the Rx direction. The host does not transmit the FCS that follows the data. MsgType differentiates between a regular data packet (msgType=0) and a synchronization message (msgType=1). Data Endpoints The AR6000 chipset provides several data endpoints to support quality of service (QoS) and maintains separate queues and separate DMA engines for each data endpoint. A data endpoint can be bi-directional. Best effort (BE) class traffic uses the default data endpoint (2). The host can establish up to two additional data endpoints for other traffic classes. Once such a data endpoint is established, it sends and receives corresponding QoS traffic in a manner similar to the default data endpoint. If QoS is desired over the interconnect, host software must classify each data packet and place it on the appropriate data endpoint. The information required to classify data is generally available in-band as an 802.1p/q style tag or as the ToS field in the IP header. The information may also be available out-of-band depending on the host DDI. Connection States Table B-1 describes the AR6000 WLAN connection states: Table B-1. AR6000 Connection States Connection State Description DISCONNECTED In this state, the AR6000 device is not connected to a wireless network. The device is in this state after reset when it sends the WIRELESS MODULE “READY” EVENT, after it processes a DISCONNECT command, and when it loses its link with the access point (AP) that it was connected to. The device signals a transition to the DISCONNECTED state with a “DISCONNECT” event. CONNECTED In this state, the AR6000 device is connected to wireless networks. The device enters this state after successfully processing a CONNECT, which establishes a connection with a wireless network. The device signals a transition to the CONNECTED state with a “CONNECT” event. Message Types WMI uses commands, replies, and events for the control and configuration of the AR6000 device. The control protocol is asynchronous. Table B-2 describes AR6000 message types: Table B-2. AR6000 Message Types Message Type Description Commands Control messages that flow from the host to the device Replies/Events Control messages that flow from the device to the host. The device issues a reply to some WMI commands, but not to others. The payload in a reply is command-specific, and some commands do not trigger a reply message at all. Events are control messages issued by the device to signal the occurrence of an asynchronous event. WMI Message Format All WMI control commands, replies and events use the header format: WMI_CMD_HDR Header Format { UINT16 id This 16-bit constant identifies which WMI command the host is issuing, which command the target is replying to, or which event has occurred. WMI_CMD_HDR } A variable-size command-, reply-, or event-specific payload follows the header. Over the interconnect, all fields in control messages (including WMI_CMD_HDR and the command specific payload) use 32-bit little Endian byte ordering and fields are packed. The AR6000 device always executes commands in order, and the host may send multiple commands without waiting for previous commands to complete. A majority of commands are processed to completion once received. Other commands trigger a longer duration activity whose completion is signaled to the host through an event. Command Restrictions Some commands may only be issued when the AR6000 device is in a certain state. The host is required to wait for an event signaling a state transition before such a command can be issued. For example, if a command requires the device to be in the CONNECTED state, then the host is required to wait for a “CONNECT” event before it issues that command. The device ignores any commands inappropriate for its current state. If the command triggers a reply, the device generates an error reply. Otherwise, the device silently ignores the inappropriate command. Command and Data Synchronization WMI provides a mechanism for a host to advise the device of necessary synchronization between commands and data. The device implements synchronization; no implicit synchronization exists between endpoints. The host controls synchronization using the “SYNCHRONIZE” command over the control channel and synchronization messages over data channels. The device stops each data channel upon receiving a synchronization message on that channel, processing all data packets received prior to that message. After the device receives synchronization messages for each data endpoint and the “SYNCHRONIZE” command, it resumes all channels. When the host must guarantee a command executes before processing new data packets, it first issues the command, then issues the “SYNCHRONIZE” command and sends synchronization messages on data channels. When the host must guarantee the device has processed all old data packets before a processing a new command, it issues a “SYNCHRONIZE” command and synchronization messages on all data channels, then issues the desired command. WMI Commands ADD_BAD_AP Cause the AR6000 device to avoid a particular AP ADD_CIPHER_KEY Add or replace any of the four AR6000 encryption keys ADD_WOW_PATTERN Used to add a pattern to the WoW pattern list CLR_RSSI_SNR Clear the current calculated RSSI and SNR value CONNECT_CMD Request that the AR6000 device establish a wireless connection with the specified SSID CREATE_PSTREAM Create prioritized data endpoint between the host and device DELETE_BAD_AP Clear an entry in the bad AP table DELETE_CIPHER_KEY Delete a previously added cipher key DELETE_PSTREAM Delete a prioritized data endpoint DELETE_WOW_PATTERN Remove a pre-specified pattern from the WoW pattern list EXTENSION WMI message interface command GET_BIT_RATE Retrieve rate most recently used by the AR6000 GET_CHANNEL_LIST Retrieve list of channels used by the AR6000 GET_FIXRATES Retrieves the rate-mask set via the SET_FIXRATES command. GET_PMKID_LIST_CMD Retrieve the firmware list of PMKIDs GET_ROAM_DATA Internal use for data collection; available in special build only GET_ROAM_TBL Retrieve the roaming table maintained on the target GET_TARGET_STATS Request that the target send the statistics it maintains GET_TX_PWR Retrieve the current AR6000 device Tx power levels GET_WOW_LIST Retrieve the current list of WoW patterns LQ_THRESHOLD_PARAMS Set the link quality thresholds OPT_TX_FRAME Send a special frame (special feature) RECONNECT Request a reconnection to a BSS RSSI_THRESHOLD_PARAMS Configure how the AR6000 device monitors and reports signal strength (RSSI) of the connected BSS SCAN_PARAMS Determine dwell time and changes scanned channels SET_ACCESS_PARAMS Set access parameters for the wireless network SET_ADHOC_BSSID Set the BSSID for an ad hoc network SET_AKMP_PARAMS Set multiPMKID mode SET_APPIE Add application-specified IE to a management frame SET_ASSOC_INFO Specify the IEs the device should add to association or reassociation requests SET_AUTH_MODE Set 802.11 authentication mode of reconnection SET_BEACON_INT Set the beacon interval for an ad hoc network SET_BIT_RATE Set the AR6000 to a specific fixed bit rate SET_BMISS_TIME Set the beacon miss time SET_BSS_FILTER Inform the AR6000 of network types about which it wants to receive information using a “BSSINFO” event SET_BT_PARAMS Set the status of a Bluetooth stream (SCO or A2DP) or set Bluetooth coexistence register parameters SET_BT_STATUS Set the status of a Bluetooth stream (SCO or A2DP) SET_CHANNEL_PARAMETERS Configure WLAN channel parameters SET_DISC_TIMEOUT Set the amount of time the AR6000 spends attempting to reestablish a connection SET_FIXRATES Set the device to a specific fixed PHY rate (supported subset) SET_HALPARAM Internal AR6000 command to set certain hardware parameters SET_HOST_SLEEP_MODE Set the host mode to asleep or awake SET_IBSS_PM_CAPS Support a non-standard power management scheme for an ad hoc network SET_LISTEN_INT Request a listen interval SET_LPREAMBLE Override the short preamble capability of the AR6000 device SET_MAX_SP_LEN Set the maximum service period SET_OPT_MODE Set the special mode on/off (special feature) SET_PMKID Set the pairwise master key ID (PMKID) SET_PMKID_LIST_CMD Configure the firmware list of PMKIDs SET_POWER_MODE Set guidelines on trade-off between power utilization SET_POWER_PARAMS Configure power parameters SET_POWERSAVE_PARAMS Set the two AR6000 power save timers SET_PROBED_SSID Provide list of SSIDs the device should seek SET_REASSOC_MODE Specify whether the disassociated frame should be sent upon reassociation SET_RETRY_LIMITS Limit how many times the device tries to send a frame SET_ROAM_CTRL Control roaming behavior SET_RTS Determine when RTS should be sent SET_SCAN_PARAMS Set the AR6000 scan parameters SET_TKIP_COUNTERMEASURES Enable/disable reports of TKIP MIC errors SET_TX_PWR Specify the AR6000 device Tx power levels SET_VOICE_PKT_SIZE Set voice packet size SET_WMM Override the AR6000 WMM capability SET_WMM_TXOP Configure TxOP bursting when sending traffic to a WMM- capable AP SET_WOW_MODE Enable/disable WoW mode SET_WSC_STATUS Enable/disable profile check in cserv when the WPS protocol is in progress SNR_THRESHOLD_PARAMS Configure how the device monitors and reports SNR of BSS START_SCAN Start a long or short channel scan SYNCHRONIZE Force a synchronization point between command and data paths TARGET_REPORT_ERROR_BITMASK Control “ERROR_REPORT” events from the AR6000 Name ADD_BAD_AP Synopsis The host uses this command to cause the AR6000 to avoid a particular AP. The AR6000 maintain a table with up to two APs to avoid. An ADD_BAD_AP command adds or replaces the specified entry in this bad AP table. If the AR6000 are currently connected to the AP specified in this command, they disassociate. Command wmiconfig eth1 --badap Command Parameters UINT8 badApIndex Index [0...1] that identifies which entry in the bad AP table to use UINT8 bssid[6] MAC address of the AP to avoid Command Values badApIndex = 0, 1 Entry in the bad AP table to use Reset Value The bad AP table is cleared Restrictions None See Also “DELETE_BAD_AP” on page B-13 ===================================================================== Name ADD_CIPHER_KEY Synopsis The host uses this command to add/replace any of four encryption keys on the AR6000. The ADD_CIPHER_KEY command is issued after the CONNECT event has been received by the host for all dot11Auth modes except for SHARED_AUTH. When the dot11AuthMode is SHARED_AUTH, then the ADD_CIPHER_KEY command should be issued before the “CONNECT” command. Command wmiconfig eth1 --cipherkey Command Parameters UINT8 keyIndex Index (0...3) of the key to add/replace; uniquely identifies the key UINT8 keyType CRYPTO_TYPE UINT8 keyUsage Specifies usage parameters of the key when keyType = WEP_CRYPT UINT8 keyLength Length of the key in bytes UINT8 keyOpCtrl bit[0] = Initialize TSC (default), bit[1] = Initialize RSC UINT8 keyRSC[8] Key replay sequence counter (RSC) initial value the device should use UINT8 key[32] Key material used for this connection Command Values { NONE_CRYPT = 1 WEP_CRYPT = 2 TKIP_CRYPT = 3 AES_CRYPT = 4 KEY_OP_INIT_TSC 0x01 KEY_OP_INIT_RSC 0x02 KEY_OP_INIT_VAL 0x03 Default is to Initialize the TSC KEY_OP_VALID_MASK 0x04 Two operations defined } CRYPTO_TYPE { PAIRWISE_USAGE = 0 Set if the key is used for unicast traffic only GROUP_USAGE = 1 Set if the key is used to receive multicast traffic (also set for static WEP keys) TX_USAGE = 2 Set for the GROUP key used to transmit frames All others are reserved } KEY_USAGE Reset Value The four available keys are disabled. Restrictions The cipher should correspond to the encryption mode specified in the “CONNECT” command. See Also “DELETE_CIPHER_KEY” ===================================================================== Name ADD_WOW_PATTERN Synopsis The host uses this command to add a pattern to the WoW pattern list; used for pattern-matching for host wakeups by the WoW module. If the host mode is asleep and WoW is enabled, all packets are matched against the existing WoW patterns. If a packet matches any of the patterns specified, the target will wake up the host. All non-matching packets are discarded by the target without being sent up to the host. Command wmiconfig –addwowpattern Command Parameters A_UINT8 filter_list_id ID of the list that is to include the new pattern A_UINT8 filter_size Size of the new pattern A_UINT8 filter_offset Offset at which the pattern matching for this new pattern should begin at A_UINT8 filter[1] Byte stream that contains both the pattern and the mask of the new WoW wake-up pattern Reply Parameters None Reset Value None defined (default host mode is awake) Restrictions None See Also “DELETE_WOW_PATTERN” ===================================================================== Name CLR_RSSI_SNR Synopsis Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by running-average value. This command will clear the history and have a fresh start for the running-average mechanism. Command wmiconfig eth1 --cleanRssiSnr Command Parameters None Reply Parameters None Reset Value None defined Restrictions None ===================================================================== Name CONNECT_CMD Synopsis New connect control information (connectCtrl) is added, with 32 possible modifiers. CONNECT_SEND_REASSOC Valid only for a host-controlled connection to a particular AP. If this bit is set, a reassociation frame is sent. If this bit is clear, an association request frame is sent to the AP. CONNECT_IGNORE_WPAx_GROUP_CIPHER No group key is issued in the CONNECT command, so use the group key advertised by the AP. In a target- initiated roaming situation this allows a STA to roam between APs that support different multicast ciphers. CONNECT_PROFILE_MATCH_DONE In a host-controlled connection case, it is possible that during connect, firmware may not have the information for a profile match (e.g, when the AP supports hidden SSIDs and the device may not transmit probe requests during connect). By setting this bit in the connection control information, the firmware waits for a beacon from the AP with the BSSID supplied in the CONNECT command. No additional profile checks are done. CONNECT_IGNORE_AAC_BEACON Ignore the Admission Capacity information in the beacon of the AP CONNECT_ASSOC_POLICY_USER When set, the CONNECT_SEND_REASSOC setting determines if an Assoc or Reassoc is sent to an AP Command wmiconfig --setconnectctrl Command Parameters typedef struct{ A_UINT8 networktype; A_UINT8 dot11authmode; A_UINT8 authmode; A_UINT8 pairwiseCryptoType; /*CRYPTO_TYPE*/ A_UINT8 pairwiseCryptoLen; A_UINT8 groupCryptoType; /*CRYPTO_TYPE*/ A_UINT8 groupCryptoLen; A_UINT8 ssidLength; A_UCHAR ssid[WMI_MAX_SSID_LEN]; A_UINT16 channel; A_UINT8 bssid[AUTH_MAC_LEN]; A_UINT8 ctrl_flags; /*WMI_CONNECT_CTRL_FLAGS_BITS*/ } WMI_CONNECT_CMD; ctrl flags bitmask = 0x0001 CONNECT_ASSOC_POLICY_USER Assoc frames are sent using the policy specified by the flag = 0x0002 CONNECT_SEND_REASSOC Send Reassoc frame while connecting, otherwise send assoc frames = 0x0004 CONNECT_IGNORE_WPAx_GROUP_CIPHER Ignore WPAx group cipher for WPA/WPA2 = 0x0008 CONNECT_PROFILE_MATCH_DONE Ignore any profile check = 0x0010 CONNECT_IGNORE_AAC_BEACON Ignore the admission control information in the beacon ... CONNECT_CMD, continued Command Values typedef enum { INFRA_NETWORK = 0x01, ADHOC_NETWORK = 0x02, ADHOC_CREATOR = 0x04, } NETWORK_TYPE; typedef enum { OPEN_AUTH = 0x01, SHARED_AUTH = 0x02, LEAP_AUTH = 0x04, } DOT11_AUTH_MODE; typedef enum { NONE_AUTH = 0x01, WPA_AUTH = 0x02, WPA_PSK_AUTH = 0x03, WPA2_AUTH = 0x04, WPA2_PSK_AUTH = 0x05, WPA_AUTH_CCKM = 0x06, WPA2_AUTH_CCKM = 0x07, } AUTH_MODE; typedef enum { NONE_CRYPT = 0x01, WEP_CRYPT = 0x02, TKIP_CRYPT = 0x03, AES_CRYPT = 0x04, } CRYPTO_TYPE; typedef enum { CONNECT_ASSOC_POLICY_USER = 0x0001, CONNECT_SEND_REASSOC = 0x0002, CONNECT_IGNORE_WPAx_GROUP_CIPHER = 0x0004, CONNECT_PROFILE_MATCH_DONE = 0x0008, CONNECT_IGNORE_AAC_BEACON = 0x0010, } WMI_CONNECT_CTRL_FLAGS_BITS; pairwiseCryptoLen and groupCryptoLen are valid when the respective CryptoTypesis WEP_CRYPT, otherwise this value should be 0. This is the length in bytes. Reset Value None defined Restrictions None ===================================================================== Name CREATE_PSTREAM Synopsis The host uses this command to create a new prioritized data endpoint between the host and the AR6000 device that carries a prioritized stream of data. If the AP that the device connects to requires TSPEC stream establishment, the device requests the corresponding TSPEC with the AP. The maximum and minimum service interval ranges from 0 – 0x7FFFFFFF (ms), where 0 = disabled. The device does not send a reply event for this command, as it is always assumed the command has succeeded. An AP admission control response comes to the host via a WMI_CAC_INDICATION event, once the response for the ADDTS frame comes. Examples of cases where reassociation is generated (when WMM) and cases where ADDTS is generated (when WMM and enabling ACM) are when: Changing UAPSD flags in WMM mode, reassociation is generated Changing the interval of sending auto QoS Null frame in WMM mode; reassociation is not generated Issuing a command with same previous parameters in WMM mode and enabling ACM, an ADDTS request is generated Changing the interval of a QoS null frame sending in WMM mode and enabling ACM, an ADDTS request is generated Issuing the command in disconnected state, reassociation or ADDTS is not generated but the parameters are available after (re)association Command --createqos where: 802.1D user priority range (0–7) = 0 Tx (uplink) traffic = 1 Rx (downlink) traffic = 2 Bi-directional traffic = 1 BK = 2 VI = 3 VO = 0 Aperiodic = 1 Periodic Specifies whether the voice power save mechanism (APSD if AP supports it or legacy/simulated APSD [using PS-Poll]) should be used = 0 Disable voice power save for traffic class = 1 Enable APSD voice power save for traffic class = 2 Enable voice power save for all traffic classes (In ms) Inactivity interval (in ms) (0 = Infinite) (In ms) Service start time TSID range (0–15) Nominal MAC SDU size Maximum MAC SDU size Minimum data rate (in bps) Mean data rate (in bps) Peak data rate (in bps) Maximum burst size (in bps) Delay bound Minimum PHY rate (in bps) Surplus bandwidth allowance Medium time in TU of 32-ms periods per sec ... CREATE_PSTREAM (continued) Command Parameters UINT8 trafficClass TRAFFIC_CLASS value UINT8 traffic Direction DIR_TYPE value UINT8 rxQueueNum AR6000 device mailbox index (2 or 3) corresponding to the endpoint the host wishes to use to receive packets for the prioritized stream UINT8 trafficType TRAFFIC_TYPE value UINT8 voicePS Capability VOICEPS_CAP_TYPE value UINT8 tsid Traffic stream ID UINT8 userPriority 802.1D user priority UINT16 nominalMSDU Nominal MSDU in octets UINT16 maxMSDU Maximum MSDU in octets UINT32 minServiceInt Minimum service interval: the min. period of traffic specified (in ms) UINT32 maxServiceInt Maximum service interval: the max. period of traffic specified (in ms) UINT32 inactivityInt Indicates how many ms an established stream is inactive before the prioritized data endpoint is taken down and the corresponding T-SPEC deleted UINT32 suspensionInt Suspension interval (in ms) UINT32 service StartTime Service start time UINT32 minDataRate Minimum data rate (in bps) UINT32 meanDataRate Mean data rate (in bps) UINT32 peakDataRate Peak data rate (in bps) UINT32 maxBurstSize UINT32 delayBound UINT32 minPhyRate Minimum PHY rate for TSPEC (in bps) UINT32 sba Surplus bandwidth allowance UINT32 mediumTime Medium TSPEC time (in units of 32 ms) Command Values { WMM_AC_BE = 0 Best Effort WMM_AC_BK = 1 Background WMM_AC_VI = 2 Video WMM_AC_VO = 3 Voice All other values reserved } TRAFFIC_CLASS { UPLINK_TRAFFIC = 0 From the AR6000 device to the AP DOWNLINK_TRAFFIC = 1 From the AP to the AR6000 device BIDIR_TRAFFIC = 2 Bi-directional traffic All other values reserved } DIR_TYPE { DISABLE_FOR_THIS_AC = 0 ENABLE_FOR_THIS_AC = 1 ENABLE_FOR_ALL_AC = 2 All other values reserved } VOICEPS_CAP_TYPE ... CREATE_PSTREAM (continued) VI BE BK Supported, Y/N? 0 0 0 0 Y 0 0 0 1 Y 0 0 1 0 N 0 0 1 1 N 0 1 0 0 Y 0 1 0 1 Y 0 1 1 0 N 0 1 1 1 N 1 0 0 0 Y 1 0 0 1 Y 1 0 1 0 N 1 1 0 0 N 1 1 0 1 Y 1 1 0 0 N 1 1 1 0 N 1 1 1 1 Y Reset Value No pstream is present after reset; each of the BE, BK, VI,VO pstreams must be created (either implicitly by data flow or explicitly by user) Restrictions This command can only be issued when the device is in the CONNECTED state. If the device receives the command while in DISCONNECTED state, it replies with a failure indication. At most four prioritized data endpoints can be created, one for each AC. See Also “DELETE_PSTREAM” ===================================================================== Name DELETE_BAD_AP Synopsis The host uses this command to clear a particular entry in the bad AP table Command wmiconfig eth1 --rmAP [--num=] // used to clear a badAP entry. num is index from 0-3 Command Parameters UINT8 badApIndex Index [0...n] that identifies the entry in the bad AP table to delete Command Values badApIndex = 0, 1, 2, 3 Entry in the bad AP table Reset Value None defined Restrictions None See Also “ADD_BAD_AP” ===================================================================== Name DELETE_CIPHER_KEY Synopsis The host uses this command to delete a key that was previously added with the “ADD_CIPHER_KEY” command. Command TBD Command Parameters UINT8 keyIndex Index (0...3) of the key to be deleted Command Values keyIndex = 0, 1,2, 3 Key to delete Reset Value None Restrictions The host should not delete a key that is currently in use by the AR6000. See Also “ADD_CIPHER_KEY” ===================================================================== Name DELETE_PSTREAM Synopsis The host uses this command to delete a prioritized data endpoint created by a previous “CREATE_PSTREAM” command Command --deleteqos , where: = 0 BE = 1 BK = 2 VI = 3 VO The TSpec ID; use the -qosqueue option to get the active TSpec IDs for each traffic class Command Parameters A_UINT8 trafficClass Indicate the traffic class of the stream being deleted Command Values { WMM_AC_BE = 0 Best effort WMM_AC_BK = 1 Background WMM_AC_VI = 2 Video WMM_AC_VO = 3 Voice } TRAFFIC CLASS 0-15 for TSID Reply Values N/A Restrictions This command should only be issued after a “CREATE_PSTREAM” command has successfully created a prioritized stream See Also “CREATE_PSTREAM” ===================================================================== Name DELETE_WOW_PATTERN Synopsis The host uses this command to remove a pre-specified pattern from the WoW pattern list. Command wmiconfig –delwowpattern Command Parameters A_UINT8 filter_list_id ID of the list that contains the WoW filter pattern to delete A_UINT8 filter_id ID of the WoW filter pattern to delete Reply Parameters None Reset Value None defined Restrictions None See Also “ADD_WOW_PATTERN” ===================================================================== Name EXTENSION Synopsis The WMI message interface is used mostly for wireless control messages to a wireless module applicable to wireless module management regardless of the target platform implementation. However, some commands only peripherally related to wireless management are desired during operation. These wireless extension commands may be platform-specific or implementation-dependent. Command N/A Command Parameters Command-specific Command Values Command-specific Reply Parameters Command-specific Reset Values None defined Restrictions None defined ===================================================================== Name GET_BIT_RATE Synopsis Used by the host to obtain the rate most recently used by the AR6000 device Command wmiconfig eth1 --getfixrates Command Parameters None Reply Parameters INT8 rateIndex See the “SET_BIT_RATE” command Reset Values None Restrictions This command should only be used during development/debug; it is not intended for use in production. It is only valid when the device is in the CONNECTED state See Also “SET_BIT_RATE” ===================================================================== Name GET_CHANNEL_LIST Synopsis Used by the host uses to retrieve the list of channels that can be used by the device while in the current wireless mode and in the current regulatory domain. Command TBD Command Parameters None Reply Parameters UINT8 reserved Reserved UINT8 numberOfChannels Number of channels the reply contains UINT16 channelList[numberOfChannels] Array of channel frequencies (in MHz) Reset Values None defined Restrictions The maximum number of channels that can be reported are 32 ===================================================================== Name GET_FIXRATES Synopsis Clears the current calculated RSSI and SNR value. RSSI and SNR are reported by running-average value. This command will clear the history and have a fresh start for the running-average mechanism. Synopsis This returns rate-mask set via WMI_SET_FIXRATES to retrieve the current fixed rate that the AR6001 or AR6001 is using. See “SET_FIXRATES”. Command wmiconfig eth1 --getfixrates Command Parameters A_UINT16 fixRateMask; Note: if this command is used prior to using WMI_SET_FIXRATES, AR6000 returns 0xffff as fixRateMask, indicating all the rates are enabled Reply Parameters None Reset Value None defined Restrictions None See Also “SET_FIXRATES” ===================================================================== Name GET_PMKID_LIST_CMD Synopsis Retrieves the list of PMKIDs on the firmware. The WMI_GET_PMKID_LIST_EVENT is generated by the firmware. Command TBD Command Parameters Reset Values None Restrictions None See Also SET_PMKID_LIST_CMD GET_PMKID_LIST_EVENT ===================================================================== Name GET_ROAM_TBL Synopsis Retrieve the roaming table maintained on the target. The response is reported asynchronously through the ROAM_TBL_EVENT. Command wmiconfig --getroamtable Command Parameters A_UINT8 roamCtrlType; A_UINT16 roamMode A_UINT16 numEntries WMI_BSS_ROAM_INFO bssRoamInfo[1] Reply Value Reported asynchronously through the ROAM_TBL_EVENT Reset Value None defined Restrictions None See Also SET_KEEPALIVE ===================================================================== Name GET_TARGET_STATS Synopsis The host uses this command to request that the target send the statistics that it maintains. The statistics obtained from the target are accrued in the host every time the GET_TARGET_STATS command is issued. The --clearStats option is added to clear the target statistics maintained in the host. Command wmiconfig --getTargetStats --clearStats Command Parameters TARGET_STATS targetStats WMI_TARGET_STATS UINT8 clearStats Reply Value RSSI return value (0–100) Reset Values All statistics are cleared (zeroed) Restrictions The --getTargetStats option must be used; the --clearStats option is also available also ===================================================================== Name GET_TX_PWR Synopsis The host uses this command to retrieve the current Tx power level Command wmiconfig -i eth1 --getpower Command Parameters None Reply Parameters UINT16 dbM The current Tx power level specified in dbM Reset Values The maximum permitted by the regulatory domain Restrictions None See Also “SET_TX_PWR” ===================================================================== Name GET_WOW_LIST Synopsis The host uses this command to retrieve the current list of WoW patterns. Command wmiconfig –getwowlist Command Parameters A_UINT8 filter_list_id ID of the list of WoW patterns to retrieve Reply Value(s) A_UINT16 num_filters Number of WoW patterns contained in the list A_UINT8 wow_mode Current mode of WoW (enabled or disabled) A_UINT8 host_mode Current host mode (asleep or awake) WOW_FILTER wow_filters[1] Contents of the WoW filter pattern list (contains mask, pattern, offset and size information for each of the patterns) Reset Value None defined Restrictions None See Also “SET_WSC_STATUS” ===================================================================== Name LQ_THRESHOLD_PARAMS Synopsis Sets Link Quality thresholds, the sampling will happen at every unicast data frame Tx if a certain threshold is met, and the corresponding event will be sent to the host. Command --lqThreshold ... ... Command Parameters = 0 Disable link quality sampling = 1 Enable link quality sampling Above thresholds (value in [0,100]), in ascending order Below thresholds (value in [0,100]), in ascending order Command Values See command parameters Reset Value None defined Restrictions None ===================================================================== Name OPT_TX_FRAME Synopsis Special feature, sends a special frame. Command wmiconfig --sendframe Command Parameters { A_UINT16 optIEDataLen; A_UINT8 frmType; A_UINT8 dstAddr[ATH_MAC_LEN]; A_UINT8 bssid[ATH_MAC_LEN]; A_UINT8 optIEData[1]; } WMI_OPT_TX_FRAME_CMD; Command Values = 1 Probe request frame = 2 Probe response frame = 3 CPPP start = 4 CPPP stop Reset Value None defined Restrictions Send a special frame only when special mode is on. ===================================================================== Name RECONNECT Synopsis This command requests a reconnection to a BSS to which the AR6000 device was formerly connected Command TBD Command Parameters UINT16 channel Provides a hint as to which channel was used for a previous connection UINT8 bssid[6] If set, indicates which BSSID to connect to Command Values None Reset Values None Restrictions None See Also “CONNECT_CMD” ===================================================================== Name RSSI_THRESHOLD_PARAMS Synopsis Configures how the AR6000 device monitors and reports signal strength (RSSI) of the connected BSS, which is used as a link quality metric. The four RSSI threshold sets (in dbM) of the host specification divide the signal strength range into six segments. When signal strength increases or decreases across one of the boundaries, an RSSI_THRESHOLD event is signaled to the host. The host may then choose to take action (such as influencing roaming). Command wmiconfig eth1 --rssiThreshold ... ... Command Parameters UINT8 weight Range in [1, 16] used to calculate average RSSI UINT32 pollTime RSSI (signal strength) sampling frequency in seconds (if pollTime = 0, single strength sampling is disabled) USER_RSS__THOLD tholds[12] Thresholds (6 x 2) Command Values None defined Reset Values pollTime is 0, and sampling is disabled Restrictions Can only be issued if the AR6000 device is connected ===================================================================== Name SCAN_PARAMS Synopsis The minact parameter determines the minimum active channel dwell time, within which if the STA receives any beacon, it remains on that channel until the maxact channel dwell time. If the STA does not receive a beacon within the minact dwell time, it switches to scan the next channel. Command wmiconfig -scan -minact= --maxact= Command Parameters UINT16 maxact Channel dwell time (in ms), default = 0 UINT16 minact Channel dwell time (in ms), default = 105 Command Values See channel parameters Reset Values None defined Restrictions The minact value should be greater than 0; maxact should be between 5–65535 ms and greater than minact ===================================================================== Name SET_ACCESS_PARAMS Synopsis Allows the host to set access parameters for the wireless network. A thorough understanding of IEEE 802.11 is required to properly manipulate these parameters. Command wmiconfig eth1 --acparams --txop --cwmin <0-15> --cwmax <0-15> --aifsn<0-15> Command Parameters UINT16 txop The maximum time (expressed in units of 32 ms) the device can spend transmitting after acquiring the right to transmit UINT8 eCWmin Minimum contention window UINT8 eCWmax Maximum contention window UINT8 aifsn The arbitration inter-frame space number Command Values None Reset Values Reasonable defaults that vary, between endpoints (prioritized streams) Restrictions None ===================================================================== Name SET_ADHOC_BSSID Synopsis Allows the host to set the BSSID for an ad hoc network. If a network with this BSSID is not found, the target creates an ad hoc network with this BSSID after the connect WMI command is triggered (e.g., by the SIOCSIWESSID IOCTL). Command wmiconfig eth1 --adhocbssid Command Parameters A_UINT8 bssid[ATH_MAC_LEN] BSSID is specified in xx:xx:xx:xx:xx:xx format Command Values None Reset Values None Restrictions None ===================================================================== Name SET_AKMP_PARAMS Synopsis Enables or disables multi PMKID mode. Command wmiconfig eth1 --setakmp --multipmkid= Command Parameters typedef struct { A_UINT32 akmpInfo; } WMI_SET_AKMP_PARAMS_CMD; Command Values akmpInfo; bit[0] = 0 MultiPMKID mode is disabled and PMKIDs that were set using the WMI_SET_PMKID_CMD are used in the [Re]AssocRequest frame. bit[0] = 1 MultiPMKID mode is enabled and PMKIDs issued by the WMI_SET_PMKID_LIST_CMD are used in the next [Re]AssocRequest sent to the AP. Reset Values MultiPMKID mode is disabled Restrictions None ===================================================================== Name SET_APPIE Synopsis Add an application-specified IE to a management frame. The maximum length is 76 bytes. Including the length and the element ID, this translates to 78 bytes. Command wmiconfig --setappie , where: frame One of beacon, probe, respon, assoc IE A hex string beginning with DD (if = 0, no IE is sent in the management frame) Command Parameters mgmtFrmType; A WMI_MGMT_FRAME_TYPE ieLen; Length of the IE to add to the GMT frame Command Values None Reset Value None defined Restrictions Supported only for the probe request and association request management frame types. Also, only one IE can be added per management frame type. ===================================================================== Name SET_ASSOC_INFO Synopsis The host uses this command to specify any information elements (IEs) it wishes the AR6000 device to add to all future association and reassociation requests. IEs must be correct and are used as is by the device. IEs specified through this command are cleared with a DISCONNECT. Command wmiconfig eth1 --setAssocIe Command Parameters UINT8 ieType Used directly in 802.11 frames UINT8 bufferSize Size of assocInfo (in bytes) ranging from 0–240. If = 0, previously set IEs are cleared. UINT8 assocInfo[bufferSize] Used directly in 802.11 frames Command Values None Reset Values IEs are cleared Restrictions This command can only be issued in the DISCONNECTED state ===================================================================== Name SET_AUTHMODE Synopsis Sets the 802.11 authentication mode of reconnection Command wmiconfig eth1 --setauthmode Command Parameters UINT8 mode Command Values mode = 0x00 Proceed with authentication during reconnect = 0x01 Do not proceed with authentication during reconnect Reset Values Authentication Restrictions None ===================================================================== Name SET_BEACON_INT Synopsis Sets the beacon interval for an ad hoc network. Beacon interval selection may have an impact on power savings. To some degree, a longer interval reduces power consumption but also decreases throughput. A thorough understanding of IEEE 802.11 ad hoc networks is required to use this command effectively. Command wmiconfig eth1 --ibssconintv Command Parameters UINT16 beaconInterval Specifies the beacon interval in TU units (1024 ms) Command Values None Reset Values The default beacon interval is 100 TUs (102.4 ms) Restrictions This command can only be issued before the AR6000 device starts an ad hoc network See Also “SET_IBSS_PM_CAPS” ===================================================================== Name SET_BIT_RATE Synopsis The host uses this command to set the AR6000 device to a specific fixed rate. Command wmiconfig eth1 --setfixrates ... Command Parameters INT8 rateIndex A WMI_BIT_RATE value { RATE_AUTO = -1 RATE_1Mb = 0 RATE_2Mb = 1 RATE_5_5M = 2 RATE_11Mb = 3 RATE_6Mb = 4 RATE_9Mb = 5 RATE_12Mb = 6 RATE_18Mb = 7 RATE_24Mb = 8 RATE_36Mb = 9 RATE_48Mb = 10 RATE_54Mb = 11 } WMI_BIT_RATE Command Values See command parameters Reset Values The dynamic rate is determined by the AR6000 device Restrictions This command is intended for use only during development/debug; it is not intended for use in production See Also “GET_BIT_RATE” ===================================================================== Name SET_BMISS_TIME Synopsis This command sets the beacon miss (BMISS) time, which the AR6000 hardware use to recognize missed beacons. When an excessive number (15) of consecutive beacons are missed, the AR6000 consider switching to a different BSS. The time can be specified in number of beacons or in TUs. Command(s) wmiconfig eth1 --setbmissbeacons= wmiconfig eth1 --setbmisstime= Command Parameters UINT16 bmissTime Specifies the beacon miss time [1000...5000] in TUs (1024 ms) UINT16 bmissbeacons Specifies the number of beacons [5...50] Command Values None Reset Values bmissTime is 1500 TUs (1536 ms) Restrictions None ===================================================================== Name SET_BSS_FILTER Synopsis The host uses this to inform the AR6000 device of the types of networks about which it wants to receive information from the “BSSINFO” event. As the device performs either foreground or background scans, it applies the filter and sends “BSSINFO” events only for the networks that pass the filter. If any of the bssFilter or the ieMask filter matches, a BSS Info is sent to the host. The ieMask currently is used as a match for the IEs in the beacons, probe reponses and channel switch action management frame. See also “Scan and Roam” on page C-1. The BSS filter command has been enhanced to support IE based filtering. The IEs can be specified as a bitmask through this command using this enum. Command wmiconfig eth1 –filter = --ieMask 0x Command Parameters UINT8 BssFilter Command Values typedef struct { A_UINT8 bssFilter; See WMI_BSS_FILTER A_UINT32 ieMask; } __ATTRIB_PACK WMI_BSS_FILTER_CMD; The ieMask can take this combination of values: enum { BSS_ELEMID_CHANSWITCH = 0x01 BSS_ELEMID_ATHEROS = 0x02, } Reply Value None Reset Value BssFilter = NONE_BSS_FILTER (0) Restrictions None See Also “CONNECT_CMD” ===================================================================== Name SET_BT_PARAMS Synopsis This command is used to set the status of a Bluetooth stream or set Bluetooth coexistence register parameters. The stream may be an SCO or an A2DP stream and its status can be started/stopped/suspended/resumed. Command wmiconfig –setBTparams Command Parameters struct { union { BT_PARAMS_SCO scoParams; BT_PARAMS_A2DP a2dpParams; BT_PARAMS_MISC miscParams; BT_COEX_REGS regs; } info; A_UINT8 paramType; struct { A_UINT8 noSCOPkts; Number of SCO packets between consecutive PS-POLLs A_UINT8 pspollTimeout; A_UINT8 stompbt; } BT_PARAMS_SCO; struct { A2DP BT stream parameters A_UINT32 period; A_UINT32 dutycycle; A_UINT8 stompbt; } BT_PARAMS_A2DP; struct { union { WLAN_PROTECT_POLICY_TYPE protectParams; A_UINT16 wlanCtrlFlags; }info; A_UINT8 paramType; } BT_PARAMS_MISC; struct { BT coexistence registers values A_UINT32 mode; Coexistence mode A_UINT32 scoWghts; WLAN and BT weights A_UINT32 a2dpWghts; A_UINT32 genWghts; A_UINT32 mode2; Coexistence mode2 A_UINT8 setVal; } BT_COEX_REGS; Command Values None defined Reset Value None Restrictions None ===================================================================== Name SET_BT_STATUS Synopsis Sets the status of a Bluetooth stream. The stream may be a SCO or an A2DP stream and its status can be started/stopped/suspended/resumed. Command wmiconfig –setBTstatus Command Parameters { A_UINT8 streamType; Stream type A_UINT8 status; Stream status }WMI_SET_BT_STATUS_CMD; Command Values { BT_STREAM_UNDEF = 0 BT_STREAM_SCO SCO stream BT_STREAM_A2DP A2DP stream BT_STREAM_MAX } BT_STREAM_TYPE; { BT_STATUS_UNDEF = 0 BT_STATUS_START BT_STATUS_STOP BT_STATUS_RESUME BT_STATUS_SUSPEND BT_STATUS_MAX } BT_STREAM_STATUS; Reset Value None defined Restrictions None ===================================================================== Name SET_CHANNEL_PARAMETERS Synopsis Configures various WLAN parameters related to channels, sets the wireless mode, and can restrict the AR6000 device to a subset of available channels. The list of available channels varies depending on the wireless mode and the regulatory domain. The device never operates on a channel outside of its regulatory domain. The device starts to scan the list of channels right after this command. Command wmiconfig eth1 --wmode Command Parameters UINT8 phyMode See Values below. UINT8 numberOfChannels Number of channels in the channel array that follows. If = 0, then the device uses all of the channels permitted by the regulatory domain and by the specified phyMode. UINT16 channel[numberOfChannels] Array listing the subset of channels (expressed as frequencies in MHz) the host wants the device to use. Any channel not permitted by the specified phyMode or by the specified regulatory domain is ignored by the device. Command Values phyMode = { Wireless mode 11a = 0x01 11g = 0x02 11ag = 0x03 11b = 0x04 11g only = 0x05 } Reset Values phyMode 11ag 802.11a/g modules 11g 802.11g module channels Defaults to all channels permitted by the current regulatory domain. Restrictions This command, if issued, should be issued soon after reset and prior to the first connection. This command should only be issued in the DISCONNECTED state. ===================================================================== Name SET_DISC_TIMEOUT Synopsis The host uses this command to configure the amount of time that the AR6000 should spend when it attempts to reestablish a connection after losing link with its current BSS. If this time limit is exceeded, the AR6000 send a “DISCONNECT” event. After sending the “DISCONNECT” event the AR6000 continues to attempt to reestablish a connection, but they do so at the interval corresponding to a foreground scan as established by the “SET_SCAN_PARAMS” command. A timeout value of 0 indicates that the AR6000 will disable all autonomous roaming, so that the AR6000 will not perform any scans after sending a “DISCONNECT” event to the host. The state is maintained until a shutdown or host sets different timeout value from 0. Command wmiconfig eth1 --disc= Command Parameters UINT8 disconnectTimeout Specifies the time limit (in seconds) after which a failure to reestablish a connection results in a “DISCONNECT” event Command Values None Reset Values disconnectTimeout is 10 seconds Restrictions This command can only be issued while in a DISCONNECTED state ===================================================================== Name SET_FIXRATES Synopsis By default, the AR6000 device uses all PHY rates based on mode of operation. If the host application requires the device to use subset of supported rates, it can set those rates with this command. In 802.11g mode, the AR6000 device takes the entire 802.11g basic rate set and the rates specified with this command and uses it as the supported rate set. This rate set is advertised in the probe request and the assoc/re-assoc request as supported rates. Upon successful association, the device modifies the rate set pool using the: intersection of AP-supported rates with the union of the 802.11g basic rate set and rates set using this command. The device picks transmission rates from this pool based on a rate control algorithm. Command TBD Command Parameters A_UINT16 fixRateMask; The individual bit is an index for rate table, and setting the that index to 1 would set that corresponding rate. E.g., fixRateMask = 9 (1001) sets 1 Mbps and 11 Mbps. Command Values None Reset Value None defined Restrictions None See Also “GET_FIXRATES” ===================================================================== Name SET_WHAL_PARAM Synopsis An internal AR6000 command that is used to set certain hardware parameters. The description of this command is in $WORKAREA/include/halapi.h. Command TBD Command Parameters ATH_HAL_SETCABTO_CMDID Sets the timeout waiting for the multicast traffic after a DTIM beacon (in TUs). Command Values None Reset Value Default = 10 TUs Restrictions This command should be executed before issuing a connect command. ===================================================================== Name SET_HOST_SLEEP_MODE Synopsis The host uses this command to set the host mode to asleep or awake. All packets are delivered to the host when the host mode is awake. When host mode is asleep, only if WoW is enabled and the incoming packet matches one of the specified WoW patterns, will the packet be delivered to the host. The host will also be woken up by the target for pattern-matching packets and important events. Command wmiconfig –sethostmode= Command Parameters A_BOOL awake Set the host mode to awake A_BOOL asleep Set the host mode to asleep Command Values 1 = awake, 0 = asleep Reset Value None defined (default host mode is awake) Restrictions None ===================================================================== Name SET_IBSS_PM_CAPS Synopsis Used to support a non-standard power management scheme for an ad hoc wireless network consisting of up to eight stations (STAs) that support this form of power saving (e.g., Atheros-based STAs). A thorough understanding of IEEE 802.11 ad hoc networks is required to use this command effectively. Command wmiconfig eth1 --ibsspmcaps --ps= --aw= --ttl=