📄 wmi.h
字号:
WMI_REPORT_ROAM_TBL_EVENTID,
#endif
WMI_EXTENSION_EVENTID,
#ifndef AR6K_FIRMWARE_1_0
WMI_CAC_EVENTID,
WMI_SNR_THRESHOLD_EVENTID,
WMI_LQ_THRESHOLD_EVENTID,
WMI_TX_RETRY_ERR_EVENTID,
WMI_REPORT_ROAM_DATA_EVENTID,
#endif
} WMI_EVENT_ID;
typedef enum {
WMI_11A_CAPABILITY = 1,
WMI_11G_CAPABILITY = 2,
WMI_11AG_CAPABILITY = 3,
} WMI_PHY_CAPABILITY;
typedef struct {
A_UINT8 macaddr[ATH_MAC_LEN];
A_UINT8 phyCapability; /* WMI_PHY_CAPABILITY */
} WMI_READY_EVENT;
/*
* Connect Event
*/
typedef struct {
A_UINT16 channel;
A_UINT8 bssid[ATH_MAC_LEN];
A_UINT16 listenInterval;
#ifndef AR6K_FIRMWARE_1_0
A_UINT8 beaconIeLen;
#endif
A_UINT8 assocReqLen;
A_UINT8 assocRespLen;
A_UINT8 assocInfo[1];
} WMI_CONNECT_EVENT;
/*
* Disconnect Event
*/
typedef enum {
NO_NETWORK_AVAIL = 0x01,
LOST_LINK = 0x02, /* bmiss */
DISCONNECT_CMD = 0x03,
BSS_DISCONNECTED = 0x04,
AUTH_FAILED = 0x05,
ASSOC_FAILED = 0x06,
NO_RESOURCES_AVAIL = 0x07,
CSERV_DISCONNECT = 0x08,
INVALID_PROFILE = 0x0a,
} WMI_DISCONNECT_REASON;
typedef struct {
A_UINT8 disconnectReason; /* see WMI_DISCONNECT_REASON */
A_UINT8 bssid[ATH_MAC_LEN]; /* set if known */
A_UINT8 assocRespLen;
A_UINT8 assocInfo[1];
} WMI_DISCONNECT_EVENT;
/*
* BSS Info Event.
* Mechanism used to inform host of the presence and characteristic of
* wireless networks present. Consists of bss info header followed by
* the beacon or probe-response frame body. The 802.11 header is not included.
*/
typedef enum {
BEACON_FTYPE = 0x1,
PROBERESP_FTYPE,
} WMI_BI_FTYPE;
typedef struct {
A_UINT16 channel;
A_UINT8 frameType; /* see WMI_BI_FTYPE */
A_INT8 rssi;
A_UINT8 bssid[ATH_MAC_LEN];
} WMI_BSS_INFO_HDR;
/*
* Command Error Event
*/
typedef enum {
INVALID_PARAM = 0x01,
ILLEGAL_STATE = 0x02,
INTERNAL_ERROR = 0x03,
} WMI_ERROR_CODE;
typedef struct {
A_UINT16 commandId;
A_UINT8 errorCode;
} WMI_CMD_ERROR_EVENT;
/*
* New Regulatory Domain Event
*/
typedef struct {
A_UINT32 regDomain;
} WMI_REG_DOMAIN_EVENT;
typedef struct {
A_UINT8 txQueueNumber;
A_UINT8 rxQueueNumber;
A_UINT8 trafficDirection;
} WMI_PSTREAM_TIMEOUT_EVENT;
/*
* The WMI_NEIGHBOR_REPORT Event is generated by the target to inform
* the host of BSS's it has found that matches the current profile.
* It can be used by the host to cache PMKs and/to initiate pre-authentication
* if the BSS supports it. The first bssid is always the current associated
* BSS.
* The bssid and bssFlags information repeats according to the number
* or APs reported.
*/
typedef enum {
WMI_DEFAULT_BSS_FLAGS = 0x00,
WMI_PREAUTH_CAPABLE_BSS = 0x01,
WMI_PMKID_VALID_BSS = 0x02,
} WMI_BSS_FLAGS;
typedef struct {
A_UINT8 bssid[ATH_MAC_LEN];
A_UINT8 bssFlags; /* see WMI_BSS_FLAGS */
} WMI_NEIGHBOR_INFO;
typedef struct {
A_INT8 numberOfAps;
WMI_NEIGHBOR_INFO neighbor[1];
} WMI_NEIGHBOR_REPORT_EVENT;
/*
* TKIP MIC Error Event
*/
typedef struct {
A_UINT8 keyid;
A_UINT8 ismcast;
} WMI_TKIP_MICERR_EVENT;
/*
* WMI_SCAN_COMPLETE_EVENTID - no parameters
*/
#ifdef AR6K_FIRMWARE_1_0
#define MAX_OPT_DATA_LEN 1500
#else
#define MAX_OPT_DATA_LEN 1400
#endif
/*
* WMI_SET_ADHOC_BSSID_CMDID
*/
typedef struct {
A_UINT8 bssid[ATH_MAC_LEN];
} WMI_SET_ADHOC_BSSID_CMD;
/*
* WMI_SET_OPT_MODE_CMDID
*/
typedef enum {
SPECIAL_OFF,
SPECIAL_ON,
} OPT_MODE_TYPE;
typedef struct {
A_UINT8 optMode;
} WMI_SET_OPT_MODE_CMD;
/*
* WMI_TX_OPT_FRAME_CMDID
*/
typedef enum {
OPT_PROBE_REQ = 0x01,
OPT_PROBE_RESP = 0x02,
OPT_CPPP_START = 0x03,
OPT_CPPP_STOP = 0x04,
} WMI_OPT_FTYPE;
typedef struct {
A_UINT8 frmType;
A_UINT8 dstAddr[ATH_MAC_LEN];
A_UINT8 bssid[ATH_MAC_LEN];
A_UINT16 optIEDataLen;
A_UINT8 *optIEData;
} WMI_OPT_TX_FRAME_CMD;
/*
* Special frame receive Event.
* Mechanism used to inform host of the receiption of the special frames.
* Consists of special frame info header followed by special frame body.
* The 802.11 header is not included.
*/
typedef struct {
A_UINT16 channel;
A_UINT8 frameType; /* see WMI_OPT_FTYPE */
A_INT8 rssi;
A_UINT8 srcAddr[ATH_MAC_LEN];
A_UINT8 bssid[ATH_MAC_LEN];
} WMI_OPT_RX_INFO_HDR;
/*
* Reporting statistics.
*/
typedef struct {
A_UINT32 tx_packets;
A_UINT32 tx_bytes;
A_UINT32 tx_unicast_pkts;
A_UINT32 tx_unicast_bytes;
A_UINT32 tx_multicast_pkts;
A_UINT32 tx_multicast_bytes;
A_UINT32 tx_broadcast_pkts;
A_UINT32 tx_broadcast_bytes;
A_UINT32 tx_rts_success_cnt;
#ifndef AR6K_FIRMWARE_1_0
A_UINT32 tx_packet_per_ac[4];
#endif
A_UINT32 tx_errors;
A_UINT32 tx_failed_cnt;
A_UINT32 tx_retry_cnt;
A_UINT32 tx_rts_fail_cnt;
}tx_stats_t;
typedef struct {
A_UINT32 rx_packets;
A_UINT32 rx_bytes;
A_UINT32 rx_unicast_pkts;
A_UINT32 rx_unicast_bytes;
A_UINT32 rx_multicast_pkts;
A_UINT32 rx_multicast_bytes;
A_UINT32 rx_broadcast_pkts;
A_UINT32 rx_broadcast_bytes;
A_UINT32 rx_fragment_pkt;
A_UINT32 rx_errors;
A_UINT32 rx_crcerr;
A_UINT32 rx_key_cache_miss;
A_UINT32 rx_decrypt_err;
A_UINT32 rx_duplicate_frames;
}rx_stats_t;
typedef struct {
A_UINT32 tkip_local_mic_failure;
A_UINT32 tkip_counter_measures_invoked;
A_UINT32 tkip_replays;
A_UINT32 tkip_format_errors;
A_UINT32 ccmp_format_errors;
A_UINT32 ccmp_replays;
}tkip_ccmp_stats_t;
typedef struct {
A_UINT32 power_save_failure_cnt;
}pm_stats_t;
typedef struct {
A_UINT32 cs_bmiss_cnt;
A_UINT32 cs_lowRssi_cnt;
A_UINT16 cs_connect_cnt;
A_UINT16 cs_disconnect_cnt;
A_UINT8 cs_aveBeacon_rssi;
A_UINT8 cs_lastRoam_msec;
}cserv_stats_t;
typedef struct {
tx_stats_t tx_stats;
rx_stats_t rx_stats;
tkip_ccmp_stats_t tkipCcmpStats;
}wlan_net_stats_t;
typedef struct {
wlan_net_stats_t txrxStats;
cserv_stats_t cservStats;
pm_stats_t pmStats;
A_INT16 noise_floor_calibation;
}WMI_TARGET_STATS;
/*
* WMI_RSSI_THRESHOLD_EVENTID.
* Indicate the RSSI events to host. Events are indicated when we breach a
* thresold value.
*/
typedef enum{
WMI_RSSI_LOWTHRESHOLD_BELOW_LOWERVAL=1,
WMI_RSSI_LOWTHRESHOLD_LOWERVAL,
WMI_RSSI_LOWTHRESHOLD_UPPERVAL,
WMI_RSSI_HIGHTHRESHOLD_LOWERVAL,
WMI_RSSI_HIGHTHRESHOLD_HIGHERVAL
}WMI_RSSI_THRESHOLD_VAL;
typedef struct {
A_UINT8 range;
}WMI_RSSI_THRESHOLD_EVENT;
/*
* WMI_ERROR_REPORT_EVENTID
*/
typedef enum{
WMI_TARGET_PM_ERR_FAIL = 0x00000001,
WMI_TARGET_KEY_NOT_FOUND = 0x00000002,
WMI_TARGET_DECRYPTION_ERR = 0x00000004,
WMI_TARGET_BMISS = 0x00000008,
WMI_PSDISABLE_NODE_JOIN = 0x00000010
}WMI_TARGET_ERROR_VAL;
typedef struct {
A_UINT32 errorVal;
}WMI_TARGET_ERROR_REPORT_EVENT;
/*
* WMI_REPORT_ROAM_TBL_EVENTID
*/
#define MAX_ROAM_TBL_CAND 5
typedef struct {
A_UINT8 bssid[ATH_MAC_LEN];
A_INT8 rssi;
A_INT8 rssidt;
A_INT8 last_rssi;
A_INT32 roam_util;
A_INT8 util;
A_INT8 bias;
} WMI_BSS_ROAM_INFO;
typedef struct {
A_UINT8 roamMode;
A_UINT8 numEntries;
WMI_BSS_ROAM_INFO bssRoamInfo[1];
} WMI_TARGET_ROAM_TBL;
/*
* WMI_CAC_EVENTID
*/
typedef enum {
CAC_INDICATION_ADMISSION = 0x00,
CAC_INDICATION_ADMISSION_RESP = 0x01,
CAC_INDICATION_DELETE = 0x02,
CAC_INDICATION_NO_RESP = 0x03,
}CAC_INDICATION;
#define WMM_TSPEC_IE_LEN 63
typedef struct {
A_UINT8 ac;
A_UINT8 cac_indication;
A_UINT8 statusCode;
A_UINT8 tspecSuggestion[WMM_TSPEC_IE_LEN];
}WMI_CAC_EVENT;
/*
* developer commands
*/
/*
* WMI_SET_BITRATE_CMDID
*
* Get bit rate cmd uses same definition as set bit rate cmd
*/
typedef enum {
RATE_AUTO = -1,
RATE_1Mb = 0,
RATE_2Mb = 1,
RATE_5_5Mb = 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;
typedef struct {
A_INT8 rateIndex; /* see WMI_BIT_RATE */
} WMI_BIT_RATE_CMD, WMI_BIT_RATE_REPLY;
typedef enum {
ROAM_DATA_TIME = 1, /* Get The Roam Time Data */
} ROAM_DATA_TYPE;
typedef struct {
A_UINT32 disassoc_time;
A_UINT8 disassoc_bssid[ATH_MAC_LEN];
A_INT8 disassoc_bss_rssi;
A_UINT32 no_txrx_time;
A_UINT32 assoc_time;
A_UINT8 assoc_bssid[ATH_MAC_LEN];
A_INT8 assoc_bss_rssi;
A_UINT32 allow_txrx_time;
A_UINT32 last_data_txrx_time;
A_UINT32 first_data_txrx_time;
} WMI_TARGET_ROAM_TIME;
typedef struct {
A_UINT8 roamDataType;
union {
WMI_TARGET_ROAM_TIME roamTime;
} u;
} WMI_TARGET_ROAM_DATA;
#ifdef UNDER_CE
#pragma pack()
#endif
#ifdef __cplusplus
}
#endif
#endif /* _WMI_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -