/* *************************************************************************** * Ralink Tech Inc. * 4F, No. 2 Technology 5th Rd. * Science-based Industrial Park * Hsin-chu, Taiwan, R.O.C. * * (c) Copyright 2002-2004, Ralink Technology, Inc. * * All rights reserved. Ralink's source code is an unpublished work and the * use of a copyright notice does not imply otherwise. This source code * contains confidential trade secret material of Ralink Tech. Any attemp * or participation in deciphering, decoding, reverse engineering or in any * way altering the source code is stricitly prohibited, unless the prior * written consent of Ralink Technology, Inc. is obtained. *************************************************************************** Module Name: oid.h Abstract: Revision History: Who When What -------- ---------- ---------------------------------------------- Name Date Modification logs */ #ifndef _OID_H_ #define _OID_H_ /*#include */ /* new types for Media Specific Indications */ /* Extension channel offset */ #define EXTCHA_NONE 0 #define EXTCHA_ABOVE 0x1 #define EXTCHA_BELOW 0x3 /* BW */ #define BAND_WIDTH_20 0 #define BAND_WIDTH_40 1 #define BAND_WIDTH_80 2 #define BAND_WIDTH_BOTH 3 #define BAND_WIDTH_10 4 /* 802.11j has 10MHz. This definition is for internal usage. doesn't fill in the IE or other field. */ /* SHORTGI */ #define GAP_INTERVAL_400 1 /* only support in HT mode */ #define GAP_INTERVAL_800 0 #define GAP_INTERVAL_BOTH 2 #define NdisMediaStateConnected 1 #define NdisMediaStateDisconnected 0 #define NdisApMediaStateConnected 1 #define NdisApMediaStateDisconnected 0 #define NDIS_802_11_LENGTH_SSID 32 #define IEEE80211_ADDR_LEN 6 /* size of 802.11 address */ #define IEEE80211_NWID_LEN 32 #define NDIS_802_11_LENGTH_RATES 8 #define NDIS_802_11_LENGTH_RATES_EX 16 #define MAC_ADDR_LENGTH 6 /*#define MAX_NUM_OF_CHS 49 */ /* 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL terminationc */ /*#define MAX_NUM_OF_CHS 54 */ /* 14 channels @2.4G + 12@UNII(lower/middle) + 16@HiperLAN2 + 11@UNII(upper) + 0 @Japan + 1 as NULL termination */ #define MAX_NUMBER_OF_EVENT 10 /* entry # in EVENT table */ #define MAX_NUMBER_OF_MAC 32 /* if MAX_MBSSID_NUM is 8, this value can't be larger than 211 */ #define MAX_NUMBER_OF_ACL 64 #define MAX_LENGTH_OF_SUPPORT_RATES 12 /* 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54 */ #define MAX_NUMBER_OF_DLS_ENTRY 4 #define RT_QUERY_SIGNAL_CONTEXT 0x0402 #define RT_SET_IAPP_PID 0x0404 #define RT_SET_APD_PID 0x0405 #define RT_SET_DEL_MAC_ENTRY 0x0406 #define RT_QUERY_EVENT_TABLE 0x0407 /* */ /* IEEE 802.11 OIDs */ /* */ #define OID_GET_SET_TOGGLE 0x8000 #define OID_GET_SET_FROM_UI 0x4000 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0103 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0104 #define OID_802_11_RSSI_TRIGGER 0x0107 #define RT_OID_802_11_RSSI 0x0108 /* rt2860 only */ #define RT_OID_802_11_RSSI_1 0x0109 /* rt2860 only */ #define RT_OID_802_11_RSSI_2 0x010A /* rt2860 only */ #define OID_802_11_NUMBER_OF_ANTENNAS 0x010B #define OID_802_11_RX_ANTENNA_SELECTED 0x010C #define OID_802_11_TX_ANTENNA_SELECTED 0x010D #define OID_802_11_SUPPORTED_RATES 0x010E #define OID_802_11_ADD_WEP 0x0112 #define OID_802_11_REMOVE_WEP 0x0113 #define OID_802_11_DISASSOCIATE 0x0114 #define OID_802_11_PRIVACY_FILTER 0x0118 #define OID_802_11_ASSOCIATION_INFORMATION 0x011E #define OID_802_11_TEST 0x011F #define RT_OID_802_11_COUNTRY_REGION 0x0507 #define OID_802_11_BSSID_LIST_SCAN 0x0508 #define OID_802_11_SSID 0x0509 #define OID_802_11_BSSID 0x050A #define RT_OID_802_11_RADIO 0x050B #define RT_OID_802_11_PHY_MODE 0x050C #define RT_OID_802_11_STA_CONFIG 0x050D #define OID_802_11_DESIRED_RATES 0x050E #define RT_OID_802_11_PREAMBLE 0x050F #define OID_802_11_WEP_STATUS 0x0510 #define OID_802_11_AUTHENTICATION_MODE 0x0511 #define OID_802_11_INFRASTRUCTURE_MODE 0x0512 #define RT_OID_802_11_RESET_COUNTERS 0x0513 #define OID_802_11_RTS_THRESHOLD 0x0514 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0515 #define OID_802_11_POWER_MODE 0x0516 #define OID_802_11_TX_POWER_LEVEL 0x0517 #define RT_OID_802_11_ADD_WPA 0x0518 #define OID_802_11_REMOVE_KEY 0x0519 #define RT_OID_802_11_QUERY_PID 0x051A #define RT_OID_802_11_QUERY_VID 0x051B #define OID_802_11_ADD_KEY 0x0520 #define OID_802_11_CONFIGURATION 0x0521 #define OID_802_11_TX_PACKET_BURST 0x0522 #define RT_OID_802_11_QUERY_NOISE_LEVEL 0x0523 #define RT_OID_802_11_EXTRA_INFO 0x0524 #define RT_OID_802_11_HARDWARE_REGISTER 0x0525 #define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS #define OID_802_11_DEAUTHENTICATION 0x0526 #define OID_802_11_DROP_UNENCRYPTED 0x0527 #define OID_802_11_MIC_FAILURE_REPORT_FRAME 0x0528 #define OID_802_11_EAP_METHOD 0x0529 #define OID_802_11_ACL_LIST 0x052A /* For 802.1x daemin using */ #ifdef DOT1X_SUPPORT #define OID_802_DOT1X_CONFIGURATION 0x0540 #define OID_802_DOT1X_PMKID_CACHE 0x0541 #define OID_802_DOT1X_RADIUS_DATA 0x0542 #define OID_802_DOT1X_WPA_KEY 0x0543 #define OID_802_DOT1X_STATIC_WEP_COPY 0x0544 #define OID_802_DOT1X_IDLE_TIMEOUT 0x0545 #endif /* DOT1X_SUPPORT */ #define RT_OID_DEVICE_NAME 0x0607 #define RT_OID_VERSION_INFO 0x0608 #define OID_802_11_BSSID_LIST 0x0609 #define OID_802_3_CURRENT_ADDRESS 0x060A #define OID_GEN_MEDIA_CONNECT_STATUS 0x060B #define RT_OID_802_11_QUERY_LINK_STATUS 0x060C #define OID_802_11_RSSI 0x060D #define OID_802_11_STATISTICS 0x060E #define OID_GEN_RCV_OK 0x060F #define OID_GEN_RCV_NO_BUFFER 0x0610 #define RT_OID_802_11_QUERY_EEPROM_VERSION 0x0611 #define RT_OID_802_11_QUERY_FIRMWARE_VERSION 0x0612 #define RT_OID_802_11_QUERY_LAST_RX_RATE 0x0613 #define RT_OID_802_11_TX_POWER_LEVEL_1 0x0614 #define RT_OID_802_11_QUERY_PIDVID 0x0615 /*for WPA_SUPPLICANT_SUPPORT */ #define OID_SET_COUNTERMEASURES 0x0616 #define OID_802_11_SET_IEEE8021X 0x0617 #define OID_802_11_SET_IEEE8021X_REQUIRE_KEY 0x0618 #define OID_802_11_PMKID 0x0620 #define RT_OID_WPA_SUPPLICANT_SUPPORT 0x0621 #define RT_OID_WE_VERSION_COMPILED 0x0622 #define RT_OID_NEW_DRIVER 0x0623 #define OID_AUTO_PROVISION_BSSID_LIST 0x0624 #define RT_OID_WPS_PROBE_REQ_IE 0x0625 #define RT_OID_802_11_SNR_0 0x0630 #define RT_OID_802_11_SNR_1 0x0631 #define RT_OID_802_11_QUERY_LAST_TX_RATE 0x0632 #define RT_OID_802_11_QUERY_HT_PHYMODE 0x0633 #define RT_OID_802_11_SET_HT_PHYMODE 0x0634 #define OID_802_11_RELOAD_DEFAULTS 0x0635 #define RT_OID_802_11_QUERY_APSD_SETTING 0x0636 #define RT_OID_802_11_SET_APSD_SETTING 0x0637 #define RT_OID_802_11_QUERY_APSD_PSM 0x0638 #define RT_OID_802_11_SET_APSD_PSM 0x0639 #define RT_OID_802_11_QUERY_DLS 0x063A #define RT_OID_802_11_SET_DLS 0x063B #define RT_OID_802_11_QUERY_DLS_PARAM 0x063C #define RT_OID_802_11_SET_DLS_PARAM 0x063D #define RT_OID_802_11_QUERY_WMM 0x063E #define RT_OID_802_11_SET_WMM 0x063F #define RT_OID_802_11_QUERY_IMME_BA_CAP 0x0640 #define RT_OID_802_11_SET_IMME_BA_CAP 0x0641 #define RT_OID_802_11_QUERY_BATABLE 0x0642 #define RT_OID_802_11_ADD_IMME_BA 0x0643 #define RT_OID_802_11_TEAR_IMME_BA 0x0644 #define RT_OID_DRIVER_DEVICE_NAME 0x0645 #define RT_OID_802_11_QUERY_DAT_HT_PHYMODE 0x0646 #define RT_OID_QUERY_MULTIPLE_CARD_SUPPORT 0x0647 #define OID_802_11_SET_PSPXLINK_MODE 0x0648 /*+++ add by woody +++*/ #define OID_802_11_SET_PASSPHRASE 0x0649 #define RT_OID_802_11_QUERY_TX_PHYMODE 0x0650 #define RT_OID_802_11_QUERY_MAP_REAL_TX_RATE 0x0678 #define RT_OID_802_11_QUERY_MAP_REAL_RX_RATE 0x0679 #define RT_OID_802_11_SNR_2 0x067A #define RT_OID_802_11_PER_BSS_STATISTICS 0x067D #ifdef TXBF_SUPPORT #define RT_OID_802_11_QUERY_TXBF_TABLE 0x067C #endif #ifdef HOSTAPD_SUPPORT #define SIOCSIWGENIE 0x8B30 #define OID_HOSTAPD_SUPPORT 0x0661 #define HOSTAPD_OID_STATIC_WEP_COPY 0x0662 #define HOSTAPD_OID_GET_1X_GROUP_KEY 0x0663 #define HOSTAPD_OID_SET_STA_AUTHORIZED 0x0664 #define HOSTAPD_OID_SET_STA_DISASSOC 0x0665 #define HOSTAPD_OID_SET_STA_DEAUTH 0x0666 #define HOSTAPD_OID_DEL_KEY 0x0667 #define HOSTAPD_OID_SET_KEY 0x0668 #define HOSTAPD_OID_SET_802_1X 0x0669 #define HOSTAPD_OID_GET_SEQ 0x0670 #define HOSTAPD_OID_GETWPAIE 0x0671 #define HOSTAPD_OID_COUNTERMEASURES 0x0672 #define HOSTAPD_OID_SET_WPAPSK 0x0673 #define HOSTAPD_OID_SET_WPS_BEACON_IE 0x0674 #define HOSTAPD_OID_SET_WPS_PROBE_RESP_IE 0x0675 #define RT_HOSTAPD_OID_HOSTAPD_SUPPORT (OID_GET_SET_TOGGLE | OID_HOSTAPD_SUPPORT) #define RT_HOSTAPD_OID_STATIC_WEP_COPY (OID_GET_SET_TOGGLE | HOSTAPD_OID_STATIC_WEP_COPY) #define RT_HOSTAPD_OID_GET_1X_GROUP_KEY (OID_GET_SET_TOGGLE | HOSTAPD_OID_GET_1X_GROUP_KEY) #define RT_HOSTAPD_OID_SET_STA_AUTHORIZED (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_STA_AUTHORIZED) #define RT_HOSTAPD_OID_SET_STA_DISASSOC (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_STA_DISASSOC) #define RT_HOSTAPD_OID_SET_STA_DEAUTH (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_STA_DEAUTH) #define RT_HOSTAPD_OID_DEL_KEY (OID_GET_SET_TOGGLE | HOSTAPD_OID_DEL_KEY) #define RT_HOSTAPD_OID_SET_KEY (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_KEY) #define RT_HOSTAPD_OID_SET_802_1X (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_802_1X) #define RT_HOSTAPD_OID_COUNTERMEASURES (OID_GET_SET_TOGGLE | HOSTAPD_OID_COUNTERMEASURES) #define RT_HOSTAPD_OID_SET_WPAPSK (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_WPAPSK) #define RT_HOSTAPD_OID_SET_WPS_BEACON_IE (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_WPS_BEACON_IE) #define RT_HOSTAPD_OID_SET_WPS_PROBE_RESP_IE (OID_GET_SET_TOGGLE | HOSTAPD_OID_SET_WPS_PROBE_RESP_IE) #define IEEE80211_IS_MULTICAST(_a) (*(_a) & 0x01) #define IEEE80211_KEYBUF_SIZE 16 #define IEEE80211_MICBUF_SIZE (8 + 8) /* space for both tx+rx keys */ #define IEEE80211_TID_SIZE 17 /* total number of TIDs */ #define IEEE80211_MLME_ASSOC 1 /* associate station */ #define IEEE80211_MLME_DISASSOC 2 /* disassociate station */ #define IEEE80211_MLME_DEAUTH 3 /* deauthenticate station */ #define IEEE80211_MLME_AUTHORIZE 4 /* authorize station */ #define IEEE80211_MLME_UNAUTHORIZE 5 /* unauthorize station */ #define IEEE80211_MLME_CLEAR_STATS 6 /* clear station statistic */ #define IEEE80211_1X_COPY_KEY 7 /* copy static-wep unicast key */ #define IEEE80211_MAX_OPT_IE 256 #define IWEVEXPIRED 0x8C04 struct ieee80211req_mlme { UINT8 im_op; /* operation to perform */ UINT8 im_ssid_len; /* length of optional ssid */ UINT16 im_reason; /* 802.11 reason code */ UINT8 im_macaddr[IEEE80211_ADDR_LEN]; UINT8 im_ssid[IEEE80211_NWID_LEN]; }; struct ieee80211req_key { UINT8 ik_type; /* key/cipher type */ UINT8 ik_pad; UINT16 ik_keyix; /* key index */ UINT8 ik_keylen; /* key length in bytes */ UINT8 ik_flags; UINT8 ik_macaddr[IEEE80211_ADDR_LEN]; UINT64 ik_keyrsc; /* key receive sequence counter */ UINT64 ik_keytsc; /* key transmit sequence counter */ UINT8 ik_keydata[IEEE80211_KEYBUF_SIZE + IEEE80211_MICBUF_SIZE]; int txkey; }; struct ieee80211req_del_key { UINT8 idk_keyix; /* key index */ UINT8 idk_macaddr[IEEE80211_ADDR_LEN]; }; struct default_group_key { UINT16 ik_keyix; /* key index */ UINT8 ik_keylen; /* key length in bytes */ UINT8 ik_keydata[IEEE80211_KEYBUF_SIZE + IEEE80211_MICBUF_SIZE]; }; struct ieee80211req_wpaie { UINT8 wpa_macaddr[IEEE80211_ADDR_LEN]; UINT8 rsn_ie[IEEE80211_MAX_OPT_IE]; }; struct hostapd_wpa_psk { struct hostapd_wpa_psk *next; int group; UCHAR psk[32]; UCHAR addr[6]; }; #endif /*HOSTAPD_SUPPORT */ #define RT_OID_802_11_QUERY_TDLS_PARAM 0x0676 #define RT_OID_802_11_QUERY_TDLS 0x0677 /* Ralink defined OIDs */ /* Dennis Lee move to platform specific */ #define RT_OID_802_11_BSSID (OID_GET_SET_TOGGLE | OID_802_11_BSSID) #define RT_OID_802_11_SSID (OID_GET_SET_TOGGLE | OID_802_11_SSID) #define RT_OID_802_11_INFRASTRUCTURE_MODE (OID_GET_SET_TOGGLE | OID_802_11_INFRASTRUCTURE_MODE) #define RT_OID_802_11_ADD_WEP (OID_GET_SET_TOGGLE | OID_802_11_ADD_WEP) #define RT_OID_802_11_ADD_KEY (OID_GET_SET_TOGGLE | OID_802_11_ADD_KEY) #define RT_OID_802_11_REMOVE_WEP (OID_GET_SET_TOGGLE | OID_802_11_REMOVE_WEP) #define RT_OID_802_11_REMOVE_KEY (OID_GET_SET_TOGGLE | OID_802_11_REMOVE_KEY) #define RT_OID_802_11_DISASSOCIATE (OID_GET_SET_TOGGLE | OID_802_11_DISASSOCIATE) #define RT_OID_802_11_AUTHENTICATION_MODE (OID_GET_SET_TOGGLE | OID_802_11_AUTHENTICATION_MODE) #define RT_OID_802_11_PRIVACY_FILTER (OID_GET_SET_TOGGLE | OID_802_11_PRIVACY_FILTER) #define RT_OID_802_11_BSSID_LIST_SCAN (OID_GET_SET_TOGGLE | OID_802_11_BSSID_LIST_SCAN) #define RT_OID_802_11_WEP_STATUS (OID_GET_SET_TOGGLE | OID_802_11_WEP_STATUS) #define RT_OID_802_11_RELOAD_DEFAULTS (OID_GET_SET_TOGGLE | OID_802_11_RELOAD_DEFAULTS) #define RT_OID_802_11_NETWORK_TYPE_IN_USE (OID_GET_SET_TOGGLE | OID_802_11_NETWORK_TYPE_IN_USE) #define RT_OID_802_11_TX_POWER_LEVEL (OID_GET_SET_TOGGLE | OID_802_11_TX_POWER_LEVEL) #define RT_OID_802_11_RSSI_TRIGGER (OID_GET_SET_TOGGLE | OID_802_11_RSSI_TRIGGER) #define RT_OID_802_11_FRAGMENTATION_THRESHOLD (OID_GET_SET_TOGGLE | OID_802_11_FRAGMENTATION_THRESHOLD) #define RT_OID_802_11_RTS_THRESHOLD (OID_GET_SET_TOGGLE | OID_802_11_RTS_THRESHOLD) #define RT_OID_802_11_RX_ANTENNA_SELECTED (OID_GET_SET_TOGGLE | OID_802_11_RX_ANTENNA_SELECTED) #define RT_OID_802_11_TX_ANTENNA_SELECTED (OID_GET_SET_TOGGLE | OID_802_11_TX_ANTENNA_SELECTED) #define RT_OID_802_11_SUPPORTED_RATES (OID_GET_SET_TOGGLE | OID_802_11_SUPPORTED_RATES) #define RT_OID_802_11_DESIRED_RATES (OID_GET_SET_TOGGLE | OID_802_11_DESIRED_RATES) #define RT_OID_802_11_CONFIGURATION (OID_GET_SET_TOGGLE | OID_802_11_CONFIGURATION) #define RT_OID_802_11_POWER_MODE (OID_GET_SET_TOGGLE | OID_802_11_POWER_MODE) #define RT_OID_802_11_SET_PSPXLINK_MODE (OID_GET_SET_TOGGLE | OID_802_11_SET_PSPXLINK_MODE) #define RT_OID_802_11_EAP_METHOD (OID_GET_SET_TOGGLE | OID_802_11_EAP_METHOD) #define RT_OID_802_11_SET_PASSPHRASE (OID_GET_SET_TOGGLE | OID_802_11_SET_PASSPHRASE) #ifdef DOT1X_SUPPORT #define RT_OID_802_DOT1X_PMKID_CACHE (OID_GET_SET_TOGGLE | OID_802_DOT1X_PMKID_CACHE) #define RT_OID_802_DOT1X_RADIUS_DATA (OID_GET_SET_TOGGLE | OID_802_DOT1X_RADIUS_DATA) #define RT_OID_802_DOT1X_WPA_KEY (OID_GET_SET_TOGGLE | OID_802_DOT1X_WPA_KEY) #define RT_OID_802_DOT1X_STATIC_WEP_COPY (OID_GET_SET_TOGGLE | OID_802_DOT1X_STATIC_WEP_COPY) #define RT_OID_802_DOT1X_IDLE_TIMEOUT (OID_GET_SET_TOGGLE | OID_802_DOT1X_IDLE_TIMEOUT) #endif /* DOT1X_SUPPORT */ #define RT_OID_802_11_SET_TDLS_PARAM (OID_GET_SET_TOGGLE | RT_OID_802_11_QUERY_TDLS_PARAM) #define RT_OID_802_11_SET_TDLS (OID_GET_SET_TOGGLE | RT_OID_802_11_QUERY_TDLS) #ifdef WAPI_SUPPORT #define OID_802_11_WAPI_PID 0x06A0 #define OID_802_11_PORT_SECURE_STATE 0x06A1 #define OID_802_11_UCAST_KEY_INFO 0x06A2 #define OID_802_11_MCAST_TXIV 0x06A3 #define OID_802_11_MCAST_KEY_INFO 0x06A4 #define OID_802_11_WAPI_CONFIGURATION 0x06A5 #define OID_802_11_WAPI_IE 0x06A6 #define RT_OID_802_11_WAPI_PID (OID_GET_SET_TOGGLE | OID_802_11_WAPI_PID) #define RT_OID_802_11_PORT_SECURE_STATE (OID_GET_SET_TOGGLE | OID_802_11_PORT_SECURE_STATE) #define RT_OID_802_11_UCAST_KEY_INFO (OID_GET_SET_TOGGLE | OID_802_11_UCAST_KEY_INFO) #define RT_OID_802_11_MCAST_TXIV (OID_GET_SET_TOGGLE | OID_802_11_MCAST_TXIV) #define RT_OID_802_11_MCAST_KEY_INFO (OID_GET_SET_TOGGLE | OID_802_11_MCAST_KEY_INFO) #define RT_OID_802_11_WAPI_CONFIGURATION (OID_GET_SET_TOGGLE | OID_802_11_WAPI_CONFIGURATION) #define RT_OID_802_11_WAPI_IE (OID_GET_SET_TOGGLE | OID_802_11_WAPI_IE) #endif /* WAPI_SUPPORT */ typedef enum _NDIS_802_11_STATUS_TYPE { Ndis802_11StatusType_Authentication, Ndis802_11StatusType_MediaStreamMode, Ndis802_11StatusType_PMKID_CandidateList, Ndis802_11StatusTypeMax /* not a real type, defined as an upper bound */ } NDIS_802_11_STATUS_TYPE, *PNDIS_802_11_STATUS_TYPE; typedef UCHAR NDIS_802_11_MAC_ADDRESS[6]; typedef struct _NDIS_802_11_STATUS_INDICATION { NDIS_802_11_STATUS_TYPE StatusType; } NDIS_802_11_STATUS_INDICATION, *PNDIS_802_11_STATUS_INDICATION; /* mask for authentication/integrity fields */ #define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS 0x0f #define NDIS_802_11_AUTH_REQUEST_REAUTH 0x01 #define NDIS_802_11_AUTH_REQUEST_KEYUPDATE 0x02 #define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR 0x06 #define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR 0x0E typedef struct _NDIS_802_11_AUTHENTICATION_REQUEST { ULONG Length; /* Length of structure */ NDIS_802_11_MAC_ADDRESS Bssid; ULONG Flags; } NDIS_802_11_AUTHENTICATION_REQUEST, *PNDIS_802_11_AUTHENTICATION_REQUEST; /*Added new types for PMKID Candidate lists. */ typedef struct _PMKID_CANDIDATE { NDIS_802_11_MAC_ADDRESS BSSID; ULONG Flags; } PMKID_CANDIDATE, *PPMKID_CANDIDATE; typedef struct _NDIS_802_11_PMKID_CANDIDATE_LIST { ULONG Version; /* Version of the structure */ ULONG NumCandidates; /* No. of pmkid candidates */ PMKID_CANDIDATE CandidateList[1]; } NDIS_802_11_PMKID_CANDIDATE_LIST, *PNDIS_802_11_PMKID_CANDIDATE_LIST; /*Flags for PMKID Candidate list structure */ #define NDIS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLED 0x01 /* Added new types for OFDM 5G and 2.4G */ typedef enum _NDIS_802_11_NETWORK_TYPE { Ndis802_11FH, Ndis802_11DS, Ndis802_11OFDM5, Ndis802_11OFDM24, Ndis802_11Automode, Ndis802_11OFDM5_N, Ndis802_11OFDM24_N, Ndis802_11NetworkTypeMax /* not a real type, defined as an upper bound */ } NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; typedef struct _NDIS_802_11_NETWORK_TYPE_LIST { UINT NumberOfItems; /* in list below, at least 1 */ NDIS_802_11_NETWORK_TYPE NetworkType[1]; } NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST; typedef enum _NDIS_802_11_POWER_MODE { Ndis802_11PowerModeCAM, Ndis802_11PowerModeMAX_PSP, Ndis802_11PowerModeFast_PSP, Ndis802_11PowerModeLegacy_PSP, Ndis802_11PowerModeMax /* not a real mode, defined as an upper bound */ } NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE; typedef ULONG NDIS_802_11_TX_POWER_LEVEL; /* in milliwatts */ /* */ /* Received Signal Strength Indication */ /* */ typedef LONG NDIS_802_11_RSSI; /* in dBm */ typedef struct _NDIS_802_11_CONFIGURATION_FH { ULONG Length; /* Length of structure */ ULONG HopPattern; /* As defined by 802.11, MSB set */ ULONG HopSet; /* to one if non-802.11 */ ULONG DwellTime; /* units are Kusec */ } NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; typedef struct _NDIS_802_11_CONFIGURATION { ULONG Length; /* Length of structure */ ULONG BeaconPeriod; /* units are Kusec */ ULONG ATIMWindow; /* units are Kusec */ ULONG DSConfig; /* Frequency, units are kHz */ NDIS_802_11_CONFIGURATION_FH FHConfig; } NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; typedef struct _NDIS_802_11_STATISTICS { ULONG Length; /* Length of structure */ LARGE_INTEGER TransmittedFragmentCount; LARGE_INTEGER MulticastTransmittedFrameCount; LARGE_INTEGER FailedCount; LARGE_INTEGER RetryCount; LARGE_INTEGER MultipleRetryCount; LARGE_INTEGER RTSSuccessCount; LARGE_INTEGER RTSFailureCount; LARGE_INTEGER ACKFailureCount; LARGE_INTEGER FrameDuplicateCount; LARGE_INTEGER ReceivedFragmentCount; LARGE_INTEGER MulticastReceivedFrameCount; LARGE_INTEGER FCSErrorCount; LARGE_INTEGER TransmittedFrameCount; LARGE_INTEGER WEPUndecryptableCount; LARGE_INTEGER TKIPLocalMICFailures; LARGE_INTEGER TKIPRemoteMICErrors; LARGE_INTEGER TKIPICVErrors; LARGE_INTEGER TKIPCounterMeasuresInvoked; LARGE_INTEGER TKIPReplays; LARGE_INTEGER CCMPFormatErrors; LARGE_INTEGER CCMPReplays; LARGE_INTEGER CCMPDecryptErrors; LARGE_INTEGER FourWayHandshakeFailures; } NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS; typedef struct _MBSS_STATISTICS { LONG TxCount; ULONG RxCount; ULONG ReceivedByteCount; ULONG TransmittedByteCount; ULONG RxErrorCount; ULONG RxDropCount; ULONG TxErrorCount; ULONG TxDropCount; ULONG ucPktsTx; ULONG ucPktsRx; ULONG mcPktsTx; ULONG mcPktsRx; ULONG bcPktsTx; ULONG bcPktsRx; } MBSS_STATISTICS, *PMBSS_STATISTICS; typedef ULONG NDIS_802_11_KEY_INDEX; typedef ULONGLONG NDIS_802_11_KEY_RSC; #ifdef DOT1X_SUPPORT #define MAX_RADIUS_SRV_NUM 2 /* 802.1x failover number */ /* The dot1x related structure. It's used to communicate with DOT1X daemon */ typedef struct GNU_PACKED _RADIUS_SRV_INFO { UINT32 radius_ip; UINT32 radius_port; UCHAR radius_key[64]; UCHAR radius_key_len; } RADIUS_SRV_INFO, *PRADIUS_SRV_INFO; typedef struct GNU_PACKED _DOT1X_BSS_INFO { UCHAR radius_srv_num; RADIUS_SRV_INFO radius_srv_info[MAX_RADIUS_SRV_NUM]; UCHAR ieee8021xWEP; /* dynamic WEP */ UCHAR key_index; UCHAR key_length; /* length of key in bytes */ UCHAR key_material[13]; UCHAR nasId[IFNAMSIZ]; UCHAR nasId_len; } DOT1X_BSS_INFO, *PDOT1X_BSS_INFO; typedef struct GNU_PACKED _DOT1X_CMM_CONF { UINT32 Length; /* Length of this structure */ UCHAR mbss_num; /* indicate multiple BSS number */ UINT32 own_ip_addr; UINT32 retry_interval; UINT32 session_timeout_interval; UINT32 quiet_interval; UCHAR EAPifname[8][IFNAMSIZ]; UCHAR EAPifname_len[8]; UCHAR PreAuthifname[8][IFNAMSIZ]; UCHAR PreAuthifname_len[8]; DOT1X_BSS_INFO Dot1xBssInfo[8]; } DOT1X_CMM_CONF, *PDOT1X_CMM_CONF; typedef struct GNU_PACKED _DOT1X_IDLE_TIMEOUT { UCHAR StaAddr[6]; UINT32 idle_timeout; } DOT1X_IDLE_TIMEOUT, *PDOT1X_IDLE_TIMEOUT; #endif /* DOT1X_SUPPORT */ #ifdef CONFIG_AP_SUPPORT typedef struct _NDIS_AP_802_11_KEY { UINT Length; /* Length of this structure */ UCHAR addr[6]; UINT KeyIndex; UINT KeyLength; /* length of key in bytes */ UCHAR KeyMaterial[1]; /* variable length depending on above field */ } NDIS_AP_802_11_KEY, *PNDIS_AP_802_11_KEY; #endif /* CONFIG_AP_SUPPORT */ #ifdef APCLI_SUPPORT #ifdef APCLI_WPA_SUPPLICANT_SUPPORT typedef struct _NDIS_APCLI_802_11_KEY { UINT Length; UINT KeyIndex; UINT KeyLength; NDIS_802_11_MAC_ADDRESS BSSID; NDIS_802_11_KEY_RSC KeyRSC; UCHAR KeyMaterial[1]; } NDIS_APCLI_802_11_KEY, *PNDIS_APCLI_802_11_KEY; #endif/* APCLI_WPA_SUPPLICANT_SUPPORT */ #endif /* APCLI_SUPPORT */ typedef struct _NDIS_802_11_REMOVE_KEY { UINT Length; /* Length of this structure */ UINT KeyIndex; NDIS_802_11_MAC_ADDRESS BSSID; } NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY; typedef struct _NDIS_802_11_WEP { UINT Length; /* Length of this structure */ UINT KeyIndex; /* 0 is the per-client key, 1-N are the */ /* global keys */ UINT KeyLength; /* length of key in bytes */ UCHAR KeyMaterial[1]; /* variable length depending on above field */ } NDIS_802_11_WEP, *PNDIS_802_11_WEP; /* Add new authentication modes */ typedef enum _NDIS_802_11_AUTHENTICATION_MODE { Ndis802_11AuthModeOpen, Ndis802_11AuthModeShared, Ndis802_11AuthModeAutoSwitch, Ndis802_11AuthModeWPA, Ndis802_11AuthModeWPAPSK, Ndis802_11AuthModeWPANone, Ndis802_11AuthModeWPA2, Ndis802_11AuthModeWPA2PSK, Ndis802_11AuthModeWPA1WPA2, Ndis802_11AuthModeWPA1PSKWPA2PSK, #ifdef WAPI_SUPPORT Ndis802_11AuthModeWAICERT, /* WAI certificate authentication */ Ndis802_11AuthModeWAIPSK, /* WAI pre-shared key */ #endif /* WAPI_SUPPORT */ Ndis802_11AuthModeMax /* Not a real mode, defined as upper bound */ } NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; typedef UCHAR NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; /* Set of 8 data rates */ typedef UCHAR NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; /* Set of 16 data rates */ typedef struct GNU_PACKED _NDIS_802_11_SSID { UINT SsidLength; /* length of SSID field below, in bytes; */ /* this can be zero. */ UCHAR Ssid[NDIS_802_11_LENGTH_SSID]; /* SSID information field */ } NDIS_802_11_SSID, *PNDIS_802_11_SSID; typedef struct GNU_PACKED _NDIS_WLAN_BSSID { ULONG Length; /* Length of this structure */ NDIS_802_11_MAC_ADDRESS MacAddress; /* BSSID */ UCHAR Reserved[2]; NDIS_802_11_SSID Ssid; /* SSID */ ULONG Privacy; /* WEP encryption requirement */ NDIS_802_11_RSSI Rssi; /* receive signal strength in dBm */ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; NDIS_802_11_CONFIGURATION Configuration; NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; NDIS_802_11_RATES SupportedRates; } NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; typedef struct GNU_PACKED _NDIS_802_11_BSSID_LIST { UINT NumberOfItems; /* in list below, at least 1 */ NDIS_WLAN_BSSID Bssid[1]; } NDIS_802_11_BSSID_LIST, *PNDIS_802_11_BSSID_LIST; typedef struct { BOOLEAN bValid; /* 1: variable contains valid value */ USHORT StaNum; UCHAR ChannelUtilization; USHORT RemainingAdmissionControl; /* in unit of 32-us */ } QBSS_LOAD_UI, *PQBSS_LOAD_UI; /* Added Capabilities, IELength and IEs for each BSSID */ typedef struct GNU_PACKED _NDIS_WLAN_BSSID_EX { ULONG Length; /* Length of this structure */ NDIS_802_11_MAC_ADDRESS MacAddress; /* BSSID */ UCHAR WpsAP; /* 0x00: not support WPS, 0x01: support normal WPS, 0x02: support Ralink auto WPS, 0x04: support Samsung WAC */ CHAR MinSNR; NDIS_802_11_SSID Ssid; /* SSID */ UINT Privacy; /* WEP encryption requirement */ NDIS_802_11_RSSI Rssi; /* receive signal */ /* strength in dBm */ NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; NDIS_802_11_CONFIGURATION Configuration; NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; NDIS_802_11_RATES_EX SupportedRates; ULONG IELength; UCHAR IEs[1]; } NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX; typedef struct GNU_PACKED _NDIS_802_11_BSSID_LIST_EX { UINT NumberOfItems; /* in list below, at least 1 */ NDIS_WLAN_BSSID_EX Bssid[1]; } NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX; typedef struct GNU_PACKED _NDIS_802_11_FIXED_IEs { UCHAR Timestamp[8]; USHORT BeaconInterval; USHORT Capabilities; } NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs; typedef struct _NDIS_802_11_VARIABLE_IEs { UCHAR ElementID; UCHAR Length; /* Number of bytes in data field */ UCHAR data[1]; } NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs; typedef ULONG NDIS_802_11_FRAGMENTATION_THRESHOLD; typedef ULONG NDIS_802_11_RTS_THRESHOLD; typedef ULONG NDIS_802_11_ANTENNA; typedef enum _NDIS_802_11_PRIVACY_FILTER { Ndis802_11PrivFilterAcceptAll, Ndis802_11PrivFilter8021xWEP } NDIS_802_11_PRIVACY_FILTER, *PNDIS_802_11_PRIVACY_FILTER; /* Added new encryption types */ /* Also aliased typedef to new name */ typedef enum _NDIS_802_11_WEP_STATUS { Ndis802_11WEPEnabled, Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, Ndis802_11WEPDisabled, Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, Ndis802_11WEPKeyAbsent, Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, Ndis802_11WEPNotSupported, Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, Ndis802_11Encryption2Enabled, Ndis802_11Encryption2KeyAbsent, Ndis802_11Encryption3Enabled, Ndis802_11Encryption3KeyAbsent, Ndis802_11Encryption4Enabled, /* TKIP or AES mix */ Ndis802_11Encryption4KeyAbsent, Ndis802_11GroupWEP40Enabled, Ndis802_11GroupWEP104Enabled, #ifdef WAPI_SUPPORT Ndis802_11EncryptionSMS4Enabled, /* WPI SMS4 support */ #endif /* WAPI_SUPPORT */ } NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; typedef enum _NDIS_802_11_RELOAD_DEFAULTS { Ndis802_11ReloadWEPKeys } NDIS_802_11_RELOAD_DEFAULTS, *PNDIS_802_11_RELOAD_DEFAULTS; #define NDIS_802_11_AI_REQFI_CAPABILITIES 1 #define NDIS_802_11_AI_REQFI_LISTENINTERVAL 2 #define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS 4 #define NDIS_802_11_AI_RESFI_CAPABILITIES 1 #define NDIS_802_11_AI_RESFI_STATUSCODE 2 #define NDIS_802_11_AI_RESFI_ASSOCIATIONID 4 typedef struct _NDIS_802_11_AI_REQFI { USHORT Capabilities; USHORT ListenInterval; NDIS_802_11_MAC_ADDRESS CurrentAPAddress; } NDIS_802_11_AI_REQFI, *PNDIS_802_11_AI_REQFI; typedef struct _NDIS_802_11_AI_RESFI { USHORT Capabilities; USHORT StatusCode; USHORT AssociationId; } NDIS_802_11_AI_RESFI, *PNDIS_802_11_AI_RESFI; typedef struct _NDIS_802_11_ASSOCIATION_INFORMATION { ULONG Length; USHORT AvailableRequestFixedIEs; NDIS_802_11_AI_REQFI RequestFixedIEs; ULONG RequestIELength; ULONG OffsetRequestIEs; USHORT AvailableResponseFixedIEs; NDIS_802_11_AI_RESFI ResponseFixedIEs; ULONG ResponseIELength; ULONG OffsetResponseIEs; } NDIS_802_11_ASSOCIATION_INFORMATION, *PNDIS_802_11_ASSOCIATION_INFORMATION; typedef struct _NDIS_802_11_AUTHENTICATION_EVENT { NDIS_802_11_STATUS_INDICATION Status; NDIS_802_11_AUTHENTICATION_REQUEST Request[1]; } NDIS_802_11_AUTHENTICATION_EVENT, *PNDIS_802_11_AUTHENTICATION_EVENT; /* typedef struct _NDIS_802_11_TEST { ULONG Length; ULONG Type; union { NDIS_802_11_AUTHENTICATION_EVENT AuthenticationEvent; NDIS_802_11_RSSI RssiTrigger; }; } NDIS_802_11_TEST, *PNDIS_802_11_TEST; */ /* 802.11 Media stream constraints, associated with OID_802_11_MEDIA_STREAM_MODE */ typedef enum _NDIS_802_11_MEDIA_STREAM_MODE { Ndis802_11MediaStreamOff, Ndis802_11MediaStreamOn, } NDIS_802_11_MEDIA_STREAM_MODE, *PNDIS_802_11_MEDIA_STREAM_MODE; /* PMKID Structures */ typedef UCHAR NDIS_802_11_PMKID_VALUE[16]; #if defined(CONFIG_STA_SUPPORT) || defined(APCLI_WPA_SUPPLICANT_SUPPORT) typedef struct _BSSID_INFO { NDIS_802_11_MAC_ADDRESS BSSID; NDIS_802_11_PMKID_VALUE PMKID; } BSSID_INFO, *PBSSID_INFO; typedef struct _NDIS_802_11_PMKID { UINT Length; UINT BSSIDInfoCount; BSSID_INFO BSSIDInfo[1]; } NDIS_802_11_PMKID, *PNDIS_802_11_PMKID; #endif /* defined(CONFIG_STA_SUPPORT) || defined(APCLI_WPA_SUPPLICANT_SUPPORT) */ #ifdef CONFIG_AP_SUPPORT #ifdef APCLI_WPA_SUPPLICANT_SUPPORT typedef struct _NDIS_APCLI_802_11_PMKID { UINT Length; UINT BSSIDInfoCount; BSSID_INFO BSSIDInfo[1]; } NDIS_APCLI_802_11_PMKID, *PNDIS_APCLI_802_11_PMKID; #endif/*APCLI_WPA_SUPPLICANT_SUPPORT*/ typedef struct _AP_BSSID_INFO { NDIS_802_11_MAC_ADDRESS MAC; NDIS_802_11_PMKID_VALUE PMKID; UCHAR PMK[32]; ULONG RefreshTime; BOOLEAN Valid; } AP_BSSID_INFO, *PAP_BSSID_INFO; #define MAX_PMKID_COUNT 8 typedef struct _NDIS_AP_802_11_PMKID { AP_BSSID_INFO BSSIDInfo[MAX_PMKID_COUNT]; } NDIS_AP_802_11_PMKID, *PNDIS_AP_802_11_PMKID; #endif /* CONFIG_AP_SUPPORT */ typedef struct _NDIS_802_11_AUTHENTICATION_ENCRYPTION { NDIS_802_11_AUTHENTICATION_MODE AuthModeSupported; NDIS_802_11_ENCRYPTION_STATUS EncryptStatusSupported; } NDIS_802_11_AUTHENTICATION_ENCRYPTION, *PNDIS_802_11_AUTHENTICATION_ENCRYPTION; typedef struct _NDIS_802_11_CAPABILITY { ULONG Length; ULONG Version; ULONG NoOfPMKIDs; ULONG NoOfAuthEncryptPairsSupported; NDIS_802_11_AUTHENTICATION_ENCRYPTION AuthenticationEncryptionSupported[1]; } NDIS_802_11_CAPABILITY, *PNDIS_802_11_CAPABILITY; #ifdef DBG /* When use private ioctl oid get/set the configuration, we can use following flags to provide specific rules when handle the cmd */ #define RTPRIV_IOCTL_FLAG_UI 0x0001 /* Notidy this private cmd send by UI. */ #define RTPRIV_IOCTL_FLAG_NODUMPMSG 0x0002 /* Notify driver cannot dump msg to stdio/stdout when run this private ioctl cmd */ #define RTPRIV_IOCTL_FLAG_NOSPACE 0x0004 /* Notify driver didn't need copy msg to caller due to the caller didn't reserve space for this cmd */ #endif /* DBG */ #ifdef SNMP_SUPPORT /*SNMP ieee 802dot11 , 2008_0220 */ /* dot11res(3) */ #define RT_OID_802_11_MANUFACTUREROUI 0x0700 #define RT_OID_802_11_MANUFACTURERNAME 0x0701 #define RT_OID_802_11_RESOURCETYPEIDNAME 0x0702 /* dot11smt(1) */ #define RT_OID_802_11_PRIVACYOPTIONIMPLEMENTED 0x0703 #define RT_OID_802_11_POWERMANAGEMENTMODE 0x0704 #define OID_802_11_WEPDEFAULTKEYVALUE 0x0705 /* read , write */ #define OID_802_11_WEPDEFAULTKEYID 0x0706 #define RT_OID_802_11_WEPKEYMAPPINGLENGTH 0x0707 #define OID_802_11_SHORTRETRYLIMIT 0x0708 #define OID_802_11_LONGRETRYLIMIT 0x0709 #define RT_OID_802_11_PRODUCTID 0x0710 #define RT_OID_802_11_MANUFACTUREID 0x0711 /* //dot11Phy(4) */ #define OID_802_11_CURRENTCHANNEL 0x0712 #endif /* SNMP_SUPPORT */ /*dot11mac */ #define RT_OID_802_11_MAC_ADDRESS 0x0713 #define OID_802_11_BUILD_CHANNEL_EX 0x0714 #define OID_802_11_GET_CH_LIST 0x0715 #define OID_802_11_GET_COUNTRY_CODE 0x0716 #define OID_802_11_GET_CHANNEL_GEOGRAPHY 0x0717 /*#define RT_OID_802_11_STATISTICS (OID_GET_SET_TOGGLE | OID_802_11_STATISTICS) */ #ifdef WSC_INCLUDED #define RT_OID_WAC_REQ 0x0736 #define RT_OID_WSC_AUTO_PROVISION_WITH_BSSID 0x0737 #define RT_OID_WSC_AUTO_PROVISION 0x0738 #ifdef WSC_LED_SUPPORT /*WPS LED MODE 10 for Dlink WPS LED */ #define RT_OID_LED_WPS_MODE10 0x0739 #endif /* WSC_LED_SUPPORT */ #endif /* WSC_INCLUDED */ #ifdef CONFIG_AP_SUPPORT #ifdef APCLI_SUPPORT #define RT_OID_APCLI_WSC_PIN_CODE 0x074A #endif /* APCLI_SUPPORT */ #endif /* CONFIG_AP_SUPPORT */ #define RT_OID_WSC_FRAGMENT_SIZE 0x074D #define RT_OID_WSC_V2_SUPPORT 0x074E #define RT_OID_WSC_CONFIG_STATUS 0x074F #define RT_OID_802_11_WSC_QUERY_PROFILE 0x0750 /* for consistency with RT61 */ #define RT_OID_WSC_QUERY_STATUS 0x0751 #define RT_OID_WSC_PIN_CODE 0x0752 #define RT_OID_WSC_UUID 0x0753 #define RT_OID_WSC_SET_SELECTED_REGISTRAR 0x0754 #define RT_OID_WSC_EAPMSG 0x0755 #define RT_OID_WSC_MANUFACTURER 0x0756 #define RT_OID_WSC_MODEL_NAME 0x0757 #define RT_OID_WSC_MODEL_NO 0x0758 #define RT_OID_WSC_SERIAL_NO 0x0759 #define RT_OID_WSC_READ_UFD_FILE 0x075A #define RT_OID_WSC_WRITE_UFD_FILE 0x075B #define RT_OID_WSC_QUERY_PEER_INFO_ON_RUNNING 0x075C #define RT_OID_WSC_MAC_ADDRESS 0x0760 #ifdef LLTD_SUPPORT /* for consistency with RT61 */ #define RT_OID_GET_PHY_MODE 0x761 #ifdef CONFIG_AP_SUPPORT #define RT_OID_GET_LLTD_ASSO_TABLE 0x762 #ifdef APCLI_SUPPORT #define RT_OID_GET_REPEATER_AP_LINEAGE 0x763 #endif /* APCLI_SUPPORT */ #endif /* CONFIG_AP_SUPPORT */ #endif /* LLTD_SUPPORT */ /* New for MeetingHouse Api support */ #define OID_MH_802_1X_SUPPORTED 0xFFEDC100 /* MIMO Tx parameter, ShortGI, MCS, STBC, etc. these are fields in TXWI. Don't change this definition!!! */ #ifdef RT65xx typedef union _HTTRANSMIT_SETTING { #ifdef RT_BIG_ENDIAN struct { USHORT MODE:3; /* Use definition MODE_xxx. */ USHORT iTxBF:1; USHORT eTxBF:1; USHORT STBC:1; /* only support in HT/VHT mode with MCS0~7 */ USHORT ShortGI:1; USHORT BW:2; /* channel bandwidth 20MHz/40/80 MHz */ USHORT MCS:7; /* MCS */ } field; #else struct { USHORT MCS:7; USHORT BW:2; USHORT ShortGI:1; USHORT STBC:1; USHORT eTxBF:1; USHORT iTxBF:1; USHORT MODE:3; } field; #endif USHORT word; } HTTRANSMIT_SETTING, *PHTTRANSMIT_SETTING; #else typedef union _HTTRANSMIT_SETTING { #ifdef RT_BIG_ENDIAN struct { USHORT MODE:2; /* Use definition MODE_xxx. */ USHORT iTxBF:1; USHORT rsv:1; USHORT eTxBF:1; USHORT STBC:2; /*SPACE */ USHORT ShortGI:1; USHORT BW:1; /*channel bandwidth 20MHz or 40 MHz */ USHORT MCS:7; /* MCS */ } field; #else struct { USHORT MCS:7; /* MCS */ USHORT BW:1; /*channel bandwidth 20MHz or 40 MHz */ USHORT ShortGI:1; USHORT STBC:2; /*SPACE */ USHORT eTxBF:1; USHORT rsv:1; USHORT iTxBF:1; USHORT MODE:2; /* Use definition MODE_xxx. */ } field; #endif USHORT word; } HTTRANSMIT_SETTING, *PHTTRANSMIT_SETTING; #endif /* RT65xx */ typedef enum _RT_802_11_PREAMBLE { Rt802_11PreambleLong, Rt802_11PreambleShort, Rt802_11PreambleAuto } RT_802_11_PREAMBLE, *PRT_802_11_PREAMBLE; typedef enum _RT_802_11_PHY_MODE { PHY_11BG_MIXED = 0, PHY_11B = 1, PHY_11A = 2, PHY_11ABG_MIXED = 3, PHY_11G = 4, #ifdef DOT11_N_SUPPORT PHY_11ABGN_MIXED = 5, /* both band 5 */ PHY_11N_2_4G = 6, /* 11n-only with 2.4G band 6 */ PHY_11GN_MIXED = 7, /* 2.4G band 7 */ PHY_11AN_MIXED = 8, /* 5G band 8 */ PHY_11BGN_MIXED = 9, /* if check 802.11b. 9 */ PHY_11AGN_MIXED = 10, /* if check 802.11b. 10 */ PHY_11N_5G = 11, /* 11n-only with 5G band 11 */ #endif /* DOT11_N_SUPPORT */ #ifdef DOT11_VHT_AC PHY_11VHT_N_ABG_MIXED = 12, /* 12 -> AC/A/AN/B/G/GN mixed */ PHY_11VHT_N_AG_MIXED = 13, /* 13 -> AC/A/AN/G/GN mixed */ PHY_11VHT_N_A_MIXED = 14, /* 14 -> AC/AN/A mixed in 5G band */ PHY_11VHT_N_MIXED = 15, /* 15 -> AC/AN mixed in 5G band */ #endif /* DOT11_VHT_AC */ PHY_MODE_MAX, } RT_802_11_PHY_MODE; #ifdef DOT11_VHT_AC #define PHY_MODE_IS_5G_BAND(__Mode) \ ((__Mode == PHY_11A) || \ (__Mode == PHY_11ABG_MIXED) || \ (__Mode == PHY_11ABGN_MIXED) || \ (__Mode == PHY_11AN_MIXED) || \ (__Mode == PHY_11AGN_MIXED) || \ (__Mode == PHY_11N_5G) ||\ (__Mode == PHY_11VHT_N_MIXED) ||\ (__Mode == PHY_11VHT_N_A_MIXED)) #elif defined(DOT11_N_SUPPORT) #define PHY_MODE_IS_5G_BAND(__Mode) \ ((__Mode == PHY_11A) || \ (__Mode == PHY_11ABG_MIXED) || \ (__Mode == PHY_11ABGN_MIXED) || \ (__Mode == PHY_11AN_MIXED) || \ (__Mode == PHY_11AGN_MIXED) || \ (__Mode == PHY_11N_5G)) #else #define PHY_MODE_IS_5G_BAND(__Mode) \ ((__Mode == PHY_11A) || \ (__Mode == PHY_11ABG_MIXED)) #endif /* DOT11_N_SUPPORT */ /* put all proprietery for-query objects here to reduce # of Query_OID */ typedef struct _RT_802_11_LINK_STATUS { ULONG CurrTxRate; /* in units of 0.5Mbps */ ULONG ChannelQuality; /* 0..100 % */ ULONG TxByteCount; /* both ok and fail */ ULONG RxByteCount; /* both ok and fail */ ULONG CentralChannel; /* 40MHz central channel number */ } RT_802_11_LINK_STATUS, *PRT_802_11_LINK_STATUS; #ifdef SYSTEM_LOG_SUPPORT typedef struct _RT_802_11_EVENT_LOG { LARGE_INTEGER SystemTime; /* timestammp via NdisGetCurrentSystemTime() */ UCHAR Addr[MAC_ADDR_LENGTH]; USHORT Event; /* EVENT_xxx */ } RT_802_11_EVENT_LOG, *PRT_802_11_EVENT_LOG; typedef struct _RT_802_11_EVENT_TABLE { ULONG Num; ULONG Rsv; /* to align Log[] at LARGE_INEGER boundary */ RT_802_11_EVENT_LOG Log[MAX_NUMBER_OF_EVENT]; } RT_802_11_EVENT_TABLE, *PRT_802_11_EVENT_TABLE; #endif /* SYSTEM_LOG_SUPPORT */ /* MIMO Tx parameter, ShortGI, MCS, STBC, etc. these are fields in TXWI. Don't change this definition!!! */ typedef union _MACHTTRANSMIT_SETTING { struct { USHORT MCS:7; /* MCS */ USHORT BW:1; /*channel bandwidth 20MHz or 40 MHz */ USHORT ShortGI:1; USHORT STBC:2; /*SPACE */ USHORT rsv:3; USHORT MODE:2; /* Use definition MODE_xxx. */ } field; USHORT word; } MACHTTRANSMIT_SETTING, *PMACHTTRANSMIT_SETTING; typedef struct _RT_802_11_MAC_ENTRY { UCHAR ApIdx; UCHAR Addr[MAC_ADDR_LENGTH]; UCHAR Aid; UCHAR Psm; /* 0:PWR_ACTIVE, 1:PWR_SAVE */ UCHAR MimoPs; /* 0:MMPS_STATIC, 1:MMPS_DYNAMIC, 3:MMPS_Enabled */ CHAR AvgRssi0; CHAR AvgRssi1; CHAR AvgRssi2; UINT32 ConnectedTime; MACHTTRANSMIT_SETTING TxRate; } RT_802_11_MAC_ENTRY, *PRT_802_11_MAC_ENTRY; typedef struct _RT_802_11_MAC_TABLE { ULONG Num; RT_802_11_MAC_ENTRY Entry[MAX_NUMBER_OF_MAC]; } RT_802_11_MAC_TABLE, *PRT_802_11_MAC_TABLE; #ifdef DOT11_N_SUPPORT #ifdef TXBF_SUPPORT typedef struct { ULONG TxSuccessCount; ULONG TxRetryCount; ULONG TxFailCount; ULONG ETxSuccessCount; ULONG ETxRetryCount; ULONG ETxFailCount; ULONG ITxSuccessCount; ULONG ITxRetryCount; ULONG ITxFailCount; } RT_COUNTER_TXBF; typedef struct { ULONG Num; RT_COUNTER_TXBF Entry[MAX_NUMBER_OF_MAC]; } RT_802_11_TXBF_TABLE; #endif /* TXBF_SUPPORT */ #endif /* DOT11_N_SUPPORT */ /* structure for query/set hardware register - MAC, BBP, RF register */ typedef struct _RT_802_11_HARDWARE_REGISTER { ULONG HardwareType; /* 0:MAC, 1:BBP, 2:RF register, 3:EEPROM */ ULONG Offset; /* Q/S register offset addr */ ULONG Data; /* R/W data buffer */ } RT_802_11_HARDWARE_REGISTER, *PRT_802_11_HARDWARE_REGISTER; typedef struct _RT_802_11_AP_CONFIG { ULONG EnableTxBurst; /* 0-disable, 1-enable */ ULONG EnableTurboRate; /* 0-disable, 1-enable 72/100mbps turbo rate */ ULONG IsolateInterStaTraffic; /* 0-disable, 1-enable isolation */ ULONG HideSsid; /* 0-disable, 1-enable hiding */ ULONG UseBGProtection; /* 0-AUTO, 1-always ON, 2-always OFF */ ULONG UseShortSlotTime; /* 0-no use, 1-use 9-us short slot time */ ULONG Rsv1; /* must be 0 */ ULONG SystemErrorBitmap; /* ignore upon SET, return system error upon QUERY */ } RT_802_11_AP_CONFIG, *PRT_802_11_AP_CONFIG; /* structure to query/set STA_CONFIG */ typedef struct _RT_802_11_STA_CONFIG { ULONG EnableTxBurst; /* 0-disable, 1-enable */ ULONG EnableTurboRate; /* 0-disable, 1-enable 72/100mbps turbo rate */ ULONG UseBGProtection; /* 0-AUTO, 1-always ON, 2-always OFF */ ULONG UseShortSlotTime; /* 0-no use, 1-use 9-us short slot time when applicable */ ULONG AdhocMode; /* 0-11b rates only (WIFI spec), 1 - b/g mixed, 2 - g only */ ULONG HwRadioStatus; /* 0-OFF, 1-ON, default is 1, Read-Only */ ULONG Rsv1; /* must be 0 */ ULONG SystemErrorBitmap; /* ignore upon SET, return system error upon QUERY */ } RT_802_11_STA_CONFIG, *PRT_802_11_STA_CONFIG; /* */ /* For OID Query or Set about BA structure */ /* */ typedef struct _OID_BACAP_STRUC { UCHAR RxBAWinLimit; UCHAR TxBAWinLimit; UCHAR Policy; /* 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use. other value invalid */ UCHAR MpduDensity; /* 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use. other value invalid */ UCHAR AmsduEnable; /*Enable AMSDU transmisstion */ UCHAR AmsduSize; /* 0:3839, 1:7935 bytes. UINT MSDUSizeToBytes[] = { 3839, 7935}; */ UCHAR MMPSmode; /* MIMO power save more, 0:static, 1:dynamic, 2:rsv, 3:mimo enable */ BOOLEAN AutoBA; /* Auto BA will automatically */ } OID_BACAP_STRUC, *POID_BACAP_STRUC; typedef struct _RT_802_11_ACL_ENTRY { UCHAR Addr[MAC_ADDR_LENGTH]; USHORT Rsv; } RT_802_11_ACL_ENTRY, *PRT_802_11_ACL_ENTRY; typedef struct GNU_PACKED _RT_802_11_ACL { ULONG Policy; /* 0-disable, 1-positive list, 2-negative list */ ULONG Num; RT_802_11_ACL_ENTRY Entry[MAX_NUMBER_OF_ACL]; } RT_802_11_ACL, *PRT_802_11_ACL; typedef struct _RT_802_11_WDS { ULONG Num; NDIS_802_11_MAC_ADDRESS Entry[24 /*MAX_NUM_OF_WDS_LINK */ ]; ULONG KeyLength; UCHAR KeyMaterial[32]; } RT_802_11_WDS, *PRT_802_11_WDS; typedef struct _RT_802_11_TX_RATES_ { UCHAR SupRateLen; UCHAR SupRate[MAX_LENGTH_OF_SUPPORT_RATES]; UCHAR ExtRateLen; UCHAR ExtRate[MAX_LENGTH_OF_SUPPORT_RATES]; } RT_802_11_TX_RATES, *PRT_802_11_TX_RATES; /* Definition of extra information code */ #define GENERAL_LINK_UP 0x0 /* Link is Up */ #define GENERAL_LINK_DOWN 0x1 /* Link is Down */ #define HW_RADIO_OFF 0x2 /* Hardware radio off */ #define SW_RADIO_OFF 0x3 /* Software radio off */ #define AUTH_FAIL 0x4 /* Open authentication fail */ #define AUTH_FAIL_KEYS 0x5 /* Shared authentication fail */ #define ASSOC_FAIL 0x6 /* Association failed */ #define EAP_MIC_FAILURE 0x7 /* Deauthencation because MIC failure */ #define EAP_4WAY_TIMEOUT 0x8 /* Deauthencation on 4-way handshake timeout */ #define EAP_GROUP_KEY_TIMEOUT 0x9 /* Deauthencation on group key handshake timeout */ #define EAP_SUCCESS 0xa /* EAP succeed */ #define DETECT_RADAR_SIGNAL 0xb /* Radar signal occur in current channel */ #define EXTRA_INFO_MAX 0xb /* Indicate Last OID */ #define EXTRA_INFO_CLEAR 0xffffffff /* This is OID setting structure. So only GF or MM as Mode. This is valid when our wirelss mode has 802.11n in use. */ typedef struct { RT_802_11_PHY_MODE PhyMode; /* */ UCHAR TransmitNo; UCHAR HtMode; /*HTMODE_GF or HTMODE_MM */ UCHAR ExtOffset; /*extension channel above or below */ UCHAR MCS; UCHAR BW; UCHAR STBC; UCHAR SHORTGI; UCHAR rsv; } OID_SET_HT_PHYMODE, *POID_SET_HT_PHYMODE; #ifdef LLTD_SUPPORT typedef struct _RT_LLTD_ASSOICATION_ENTRY { UCHAR Addr[ETH_LENGTH_OF_ADDRESS]; unsigned short MOR; /* maximum operational rate */ UCHAR phyMode; } RT_LLTD_ASSOICATION_ENTRY, *PRT_LLTD_ASSOICATION_ENTRY; typedef struct _RT_LLTD_ASSOICATION_TABLE { unsigned int Num; RT_LLTD_ASSOICATION_ENTRY Entry[MAX_NUMBER_OF_MAC]; } RT_LLTD_ASSOICATION_TABLE, *PRT_LLTD_ASSOICATION_TABLE; #endif /* LLTD_SUPPORT */ #ifdef WSC_INCLUDED #define RT_WSC_UPNP_EVENT_FLAG 0x109 #endif /* WSC_INCLUDED */ /*#define MAX_CUSTOM_LEN 128 */ typedef struct _RT_CHANNEL_LIST_INFO { UCHAR ChannelList[MAX_NUM_OF_CHS]; /* list all supported channels for site survey */ UCHAR ChannelListNum; /* number of channel in ChannelList[] */ } RT_CHANNEL_LIST_INFO, *PRT_CHANNEL_LIST_INFO; /* WSC configured credential */ typedef struct _WSC_CREDENTIAL { NDIS_802_11_SSID SSID; /* mandatory */ USHORT AuthType; /* mandatory, 1: open, 2: wpa-psk, 4: shared, 8:wpa, 0x10: wpa2, 0x20: wpa2-psk */ USHORT EncrType; /* mandatory, 1: none, 2: wep, 4: tkip, 8: aes */ UCHAR Key[64]; /* mandatory, Maximum 64 byte */ USHORT KeyLength; UCHAR MacAddr[MAC_ADDR_LENGTH]; /* mandatory, AP MAC address */ UCHAR KeyIndex; /* optional, default is 1 */ UCHAR bFromUPnP; /* TRUE: This credential is from external UPnP registrar */ UCHAR Rsvd[2]; /* Make alignment */ } WSC_CREDENTIAL, *PWSC_CREDENTIAL; /* WSC configured profiles */ typedef struct _WSC_PROFILE { UINT ProfileCnt; UINT ApplyProfileIdx; /* add by johnli, fix WPS test plan 5.1.1 */ WSC_CREDENTIAL Profile[8]; /* Support up to 8 profiles */ } WSC_PROFILE, *PWSC_PROFILE; #ifdef WAPI_SUPPORT typedef enum _WAPI_PORT_SECURE_STATE { WAPI_PORT_NOT_SECURED, WAPI_PORT_SECURED, } WAPI_PORT_SECURE_STATE, *PWAPI_PORT_SECURE_STATE; typedef struct _WAPI_PORT_SECURE_STRUCT { UCHAR Addr[MAC_ADDR_LENGTH]; USHORT state; } WAPI_PORT_SECURE_STRUCT, *PWAPI_PORT_SECURE_STRUCT; typedef struct _WAPI_UCAST_KEY_STRUCT { UCHAR Addr[MAC_ADDR_LENGTH]; USHORT key_id; UCHAR PTK[64]; /* unicast and additional key */ } WAPI_UCAST_KEY_STRUCT, *PWAPI_UCAST_KEY_STRUCT; typedef struct _WAPI_MCAST_KEY_STRUCT { UINT32 key_id; UCHAR m_tx_iv[16]; UCHAR key_announce[16]; UCHAR NMK[16]; /* notify master key */ } WAPI_MCAST_KEY_STRUCT, *PWAPI_MCAST_KEY_STRUCT; typedef struct _WAPI_WIE_STRUCT { UCHAR addr[6]; UINT32 wie_len; UCHAR wie[90]; /* wapi information element */ } WAPI_WIE_STRUCT, *PWAPI_WIE_STRUCT; #endif /* WAPI_SUPPORT */ #ifdef APCLI_SUPPORT #ifdef APCLI_WPA_SUPPLICANT_SUPPORT #define RT_ASSOC_EVENT_FLAG 0x0101 #define RT_DISASSOC_EVENT_FLAG 0x0102 #define RT_REQIE_EVENT_FLAG 0x0103 #define RT_RESPIE_EVENT_FLAG 0x0104 #define RT_ASSOCINFO_EVENT_FLAG 0x0105 #define RT_PMKIDCAND_FLAG 0x0106 #define RT_INTERFACE_DOWN 0x0107 #define RT_INTERFACE_UP 0x0108 #endif /* APCLI_WPA_SUPPLICANT_SUPPORT */ #endif /* APCLI_SUPPORT */ #ifdef RTMP_MAC_USB #define RT_OID_USB_WOW_SUSPEND 0x0920 #define RT_OID_USB_WOW_RESUME 0x0921 #endif /* RTMP_MAC_USB */ #endif /* _OID_H_ */