1/* 2 * This program is free software; you can redistribute it and/or 3 * modify it under the terms of the GNU General Public License as 4 * published by the Free Software Foundation; either version 2 of 5 * the License, or (at your option) any later version. 6 * 7 * This program is distributed in the hope that it will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this program; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 15 * MA 02111-1307 USA 16 */ 17/* vi: set sw=4 ts=4 sts=4: */ 18/* 19 * stapriv.h -- definitions and structures used by station.c privately 20 * 21 * Copyright (c) Ralink Technology Corporation All Rights Reserved. 22 * 23 * $Id: stapriv.h,v 1.13 2007-07-26 11:22:24 yy Exp $ 24 */ 25 26#include "linux/autoconf.h" 27 28#define NDIS_802_11_LENGTH_SSID 32 29#define NDIS_802_11_LENGTH_RATES 8 30#define NDIS_802_11_LENGTH_RATES_EX 16 31 32// BW 33#define BW_20 0 34#define BW_40 1 35// SHORTGI 36#define GI_400 1 // only support in HT mode 37#define GI_800 0 38 39#define WPA_OUI_TYPE 0x01F25000 40#define WPA_OUI 0x00F25000 41#define WPA_OUI_1 0x00030000 42#define WPA2_OUI 0x00AC0F00 43#define CISCO_OUI 0x00964000 44 45 46typedef unsigned long NDIS_802_11_FRAGMENTATION_THRESHOLD; 47typedef unsigned long NDIS_802_11_RTS_THRESHOLD; 48typedef unsigned long NDIS_802_11_TX_POWER_LEVEL; // in milliwatts 49typedef unsigned long long NDIS_802_11_KEY_RSC; 50 51#define MAX_TX_POWER_LEVEL 100 /* mW */ 52#define MAX_RTS_THRESHOLD 2347 /* byte count */ 53 54#define PACKED __attribute__ ((packed)) 55 56#define A_SHA_DIGEST_LEN 20 57typedef struct 58{ 59 unsigned int H[5]; 60 unsigned int W[80]; 61 int lenW; 62 unsigned int sizeHi,sizeLo; 63} A_SHA_CTX; 64 65typedef struct PACKED _NDIS_802_11_SSID 66{ 67 unsigned int SsidLength; // length of SSID field below, in bytes; 68 // this can be zero. 69 unsigned char Ssid[NDIS_802_11_LENGTH_SSID]; // SSID information field 70} NDIS_802_11_SSID, *PNDIS_802_11_SSID; 71 72typedef struct _RT_802_11_STA_CONFIG { 73 unsigned long EnableTxBurst; // 0-disable, 1-enable 74 unsigned long EnableTurboRate; // 0-disable, 1-enable 72/100mbps turbo rate 75 unsigned long UseBGProtection; // 0-AUTO, 1-always ON, 2-always OFF 76 unsigned long UseShortSlotTime; // 0-no use, 1-use 9-us short slot time when applicable 77 unsigned long AdhocMode; // 0-11b rates only (WIFI spec), 1 - b/g mixed, 2 - g only 78 unsigned long HwRadioStatus; // 0-OFF, 1-ON, default is 1, Read-Only 79 unsigned long Rsv1; // must be 0 80 unsigned long SystemErrorBitmap; // ignore upon SET, return system error upon QUERY 81} RT_802_11_STA_CONFIG, *PRT_802_11_STA_CONFIG; 82 83typedef struct _NDIS_802_11_CONFIGURATION_FH 84{ 85 unsigned long Length; // Length of structure 86 unsigned long HopPattern; // As defined by 802.11, MSB set 87 unsigned long HopSet; // to one if non-802.11 88 unsigned long DwellTime; // units are Kusec 89} NDIS_802_11_CONFIGURATION_FH, *PNDIS_802_11_CONFIGURATION_FH; 90 91typedef struct _NDIS_802_11_CONFIGURATION 92{ 93 unsigned long Length; // Length of structure 94 unsigned long BeaconPeriod; // units are Kusec 95 unsigned long ATIMWindow; // units are Kusec 96 unsigned long DSConfig; // Frequency, units are kHz 97 NDIS_802_11_CONFIGURATION_FH FHConfig; 98} NDIS_802_11_CONFIGURATION, *PNDIS_802_11_CONFIGURATION; 99 100typedef struct _RT_802_11_LINK_STATUS { 101 unsigned long CurrTxRate; // in units of 0.5Mbps 102 unsigned long ChannelQuality; // 0..100 % 103 unsigned long TxByteCount; // both ok and fail 104 unsigned long RxByteCount; // both ok and fail 105 unsigned long CentralChannel; // 40MHz central channel number 106} RT_802_11_LINK_STATUS, *PRT_802_11_LINK_STATUS; 107 108typedef struct _PAIR_CHANNEL_FREQ_ENTRY 109{ 110 unsigned long lChannel; 111 unsigned long lFreq; 112} PAIR_CHANNEL_FREQ_ENTRY, *PPAIR_CHANNEL_FREQ_ENTRY; 113 114typedef union _HTTRANSMIT_SETTING { 115 struct { 116 unsigned short MCS:7; // MCS 117 unsigned short BW:1; //channel bandwidth 20MHz or 40 MHz 118 unsigned short ShortGI:1; 119 unsigned short STBC:2; //SPACE 120 unsigned short rsv:3; 121 unsigned short MODE:2; // 0: CCK, 1:OFDM, 2:Mixedmode, 3:GreenField 122 } field; 123 unsigned short word; 124} HTTRANSMIT_SETTING, *PHTTRANSMIT_SETTING; 125 126typedef union _LARGE_INTEGER { 127 struct { 128 unsigned long LowPart; 129 long HighPart; 130 }; 131 struct { 132 unsigned long LowPart; 133 long HighPart; 134 } u; 135 signed long long QuadPart; 136} LARGE_INTEGER; 137 138typedef struct _NDIS_802_11_STATISTICS 139{ 140 unsigned long Length; // Length of structure 141 LARGE_INTEGER TransmittedFragmentCount; 142 LARGE_INTEGER MulticastTransmittedFrameCount; 143 LARGE_INTEGER FailedCount; 144 LARGE_INTEGER RetryCount; 145 LARGE_INTEGER MultipleRetryCount; 146 LARGE_INTEGER RTSSuccessCount; 147 LARGE_INTEGER RTSFailureCount; 148 LARGE_INTEGER ACKFailureCount; 149 LARGE_INTEGER FrameDuplicateCount; 150 LARGE_INTEGER ReceivedFragmentCount; 151 LARGE_INTEGER MulticastReceivedFrameCount; 152 LARGE_INTEGER FCSErrorCount; 153 LARGE_INTEGER TKIPLocalMICFailures; 154 LARGE_INTEGER TKIPRemoteMICErrors; 155 LARGE_INTEGER TKIPICVErrors; 156 LARGE_INTEGER TKIPCounterMeasuresInvoked; 157 LARGE_INTEGER TKIPReplays; 158 LARGE_INTEGER CCMPFormatErrors; 159 LARGE_INTEGER CCMPReplays; 160 LARGE_INTEGER CCMPDecryptErrors; 161 LARGE_INTEGER FourWayHandshakeFailures; 162} NDIS_802_11_STATISTICS, *PNDIS_802_11_STATISTICS; 163 164typedef struct _RT_VERSION_INFO { 165 unsigned char DriverVersionW; 166 unsigned char DriverVersionX; 167 unsigned char DriverVersionY; 168 unsigned char DriverVersionZ; 169 unsigned int DriverBuildYear; 170 unsigned int DriverBuildMonth; 171 unsigned int DriverBuildDay; 172} RT_VERSION_INFO, *PRT_VERSION_INFO; 173 174//Block ACK 175#define TID_SIZE 8 176 177typedef enum _REC_BLOCKACK_STATUS 178{ 179 Recipient_NONE=0, 180 Recipient_USED, 181 Recipient_HandleRes, 182 Recipient_Accept 183} REC_BLOCKACK_STATUS, *PREC_BLOCKACK_STATUS; 184 185typedef enum _ORI_BLOCKACK_STATUS 186{ 187 Originator_NONE=0, 188 Originator_USED, 189 Originator_WaitRes, 190 Originator_Done 191} ORI_BLOCKACK_STATUS, *PORI_BLOCKACK_STATUS; 192 193//For QureyBATableOID use 194typedef struct _OID_BA_REC_ENTRY 195{ 196 unsigned char MACAddr[6]; 197 unsigned char BaBitmap; // if (BaBitmap&(1<<TID)), this session with{MACAddr, TID}exists, so read BufSize[TID] for BufferSize 198 unsigned char rsv; 199 unsigned char BufSize[8]; 200 REC_BLOCKACK_STATUS REC_BA_Status[8]; 201} OID_BA_REC_ENTRY, *POID_BA_REC_ENTRY; 202 203//For QureyBATableOID use 204typedef struct _OID_BA_ORI_ENTRY 205{ 206 unsigned char MACAddr[6]; 207 unsigned char BaBitmap; // if (BaBitmap&(1<<TID)), this session with{MACAddr, TID}exists, so read BufSize[TID] for BufferSize, read ORI_BA_Status[TID] for status 208 unsigned char rsv; 209 unsigned char BufSize[8]; 210 ORI_BLOCKACK_STATUS ORI_BA_Status[8]; 211} OID_BA_ORI_ENTRY, *POID_BA_ORI_ENTRY; 212 213//For SetBATable use 214typedef struct { 215 unsigned char IsRecipient; 216 unsigned char MACAddr[6]; 217 unsigned char TID; 218 unsigned char BufSize; 219 unsigned short TimeOut; 220 unsigned char AllTid; // If True, delete all TID for BA sessions with this MACaddr. 221} OID_ADD_BA_ENTRY, *POID_ADD_BA_ENTRY; 222 223typedef struct _QUERYBA_TABLE 224{ 225 OID_BA_ORI_ENTRY BAOriEntry[32]; 226 OID_BA_REC_ENTRY BARecEntry[32]; 227 unsigned char OriNum;// Number of below BAOriEntry 228 unsigned char RecNum;// Number of below BARecEntry 229} QUERYBA_TABLE, *PQUERYBA_TABLE; 230 231// Received Signal Strength Indication 232typedef long NDIS_802_11_RSSI; // in dBm 233 234// Added new types for OFDM 5G and 2.4G 235typedef enum _NDIS_802_11_NETWORK_TYPE 236{ 237 Ndis802_11FH, 238 Ndis802_11DS, 239 Ndis802_11OFDM5, 240 Ndis802_11OFDM24, 241 Ndis802_11Automode, 242 Ndis802_11OFDM5_N, 243 Ndis802_11OFDM24_N, 244 Ndis802_11OFDM5_VHT, 245 Ndis802_11NetworkTypeMax // not a real type, defined as an upper bound 246} NDIS_802_11_NETWORK_TYPE, *PNDIS_802_11_NETWORK_TYPE; 247 248typedef enum _NDIS_802_11_NETWORK_INFRASTRUCTURE 249{ 250 Ndis802_11IBSS, 251 Ndis802_11Infrastructure, 252 Ndis802_11AutoUnknown, 253 Ndis802_11InfrastructureMax // Not a real value, defined as upper bound 254} NDIS_802_11_NETWORK_INFRASTRUCTURE, *PNDIS_802_11_NETWORK_INFRASTRUCTURE; 255 256typedef unsigned char NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES]; // Set of 8 data rates 257typedef unsigned char NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX]; // Set of 16 data rates 258 259typedef struct PACKED _NDIS_WLAN_BSSID 260{ 261 unsigned long Length; // Length of this structure 262 unsigned char MacAddress[6]; // BSSID 263 unsigned char Reserved[2]; 264 NDIS_802_11_SSID Ssid; // SSID 265 unsigned long Privacy; // WEP encryption requirement 266 NDIS_802_11_RSSI Rssi; // receive signal 267 // strength in dBm 268 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; 269 NDIS_802_11_CONFIGURATION Configuration; 270 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; 271 NDIS_802_11_RATES SupportedRates; 272} NDIS_WLAN_BSSID, *PNDIS_WLAN_BSSID; 273 274// Added Capabilities, IELength and IEs for each BSSID 275typedef struct PACKED _NDIS_WLAN_BSSID_EX 276{ 277 unsigned long Length; // Length of this structure 278 unsigned char MacAddress[6]; // BSSID 279 unsigned char Reserved[2]; 280 NDIS_802_11_SSID Ssid; // SSID 281 unsigned int Privacy; // WEP encryption requirement 282 NDIS_802_11_RSSI Rssi; // receive signal 283 // strength in dBm 284 NDIS_802_11_NETWORK_TYPE NetworkTypeInUse; 285 NDIS_802_11_CONFIGURATION Configuration; 286 NDIS_802_11_NETWORK_INFRASTRUCTURE InfrastructureMode; 287 NDIS_802_11_RATES_EX SupportedRates; 288 unsigned long IELength; 289 unsigned char IEs[1]; 290} NDIS_WLAN_BSSID_EX, *PNDIS_WLAN_BSSID_EX; 291 292typedef struct PACKED _NDIS_802_11_BSSID_LIST_EX 293{ 294 unsigned int NumberOfItems; // in list below, at least 1 295 NDIS_WLAN_BSSID_EX Bssid[1]; 296} NDIS_802_11_BSSID_LIST_EX, *PNDIS_802_11_BSSID_LIST_EX; 297 298typedef struct PACKED _NDIS_802_11_FIXED_IEs 299{ 300 unsigned char Timestamp[8]; 301 unsigned short BeaconInterval; 302 unsigned short Capabilities; 303} NDIS_802_11_FIXED_IEs, *PNDIS_802_11_FIXED_IEs; 304 305typedef struct PACKED _NDIS_802_11_VARIABLE_IEs 306{ 307 unsigned char ElementID; 308 unsigned char Length; // Number of bytes in data field 309 unsigned char data[1]; 310} NDIS_802_11_VARIABLE_IEs, *PNDIS_802_11_VARIABLE_IEs; 311 312typedef struct _NDIS_802_11_NETWORK_TYPE_LIST 313{ 314 unsigned int NumberOfItems; // in list below, at least 1 315 NDIS_802_11_NETWORK_TYPE NetworkType [1]; 316} NDIS_802_11_NETWORK_TYPE_LIST, *PNDIS_802_11_NETWORK_TYPE_LIST; 317 318//For OID Query or Set about BA structure 319typedef struct _OID_BACAP_STRUC { 320 unsigned char RxBAWinLimit; 321 unsigned char TxBAWinLimit; 322 unsigned char Policy; // 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use. other value invalid 323 unsigned char MpduDensity;// 0: DELAY_BA 1:IMMED_BA (//BA Policy subfiled value in ADDBA frame) 2:BA-not use. other value invalid 324 unsigned char AmsduEnable;//Enable AMSDU transmisstion 325 unsigned char AmsduSize; // 0:3839, 1:7935 bytes. unsigned int MSDUSizeToBytes[] = { 3839, 7935}; 326 unsigned char MMPSmode; // MIMO power save more, 0:static, 1:dynamic, 2:rsv, 3:mimo enable 327 unsigned char AutoBA; // Auto BA will automatically , BOOLEAN 328} OID_BACAP_STRUC, *POID_BACAP_STRUC; 329 330typedef enum _RT_802_11_PHY_MODE { 331 PHY_11BG_MIXED = 0, 332 PHY_11B, 333 PHY_11A, 334 PHY_11ABG_MIXED, 335 PHY_11G, 336 PHY_11ABGN_MIXED, // both band 5 337 PHY_11N, // 6 338 PHY_11GN_MIXED, // 2.4G band 7 339 PHY_11AN_MIXED, // 5G band 8 340 PHY_11BGN_MIXED, // if check 802.11b. 9 341 PHY_11AGN_MIXED, // if check 802.11b. 10 342 PHY_11N_5G, // 11 343 PHY_11VHT_N_ABG_MIXED, 344 PHY_11VHT_N_AG_MIXED, 345 PHY_11VHT_N_A_MIXED,// 14 346 PHY_11VHT_N_MIXED, 347 PHY_MODE_MAX 348} RT_802_11_PHY_MODE; 349 350enum WIFI_MODE{ 351 WMODE_INVALID = 0, 352 WMODE_A = 1 << 0, 353 WMODE_B = 1 << 1, 354 WMODE_G = 1 << 2, 355 WMODE_GN = 1 << 3, 356 WMODE_AN = 1 << 4, 357 WMODE_AC = 1 << 5, 358 WMODE_COMP = 6, /* total types of supported wireless mode, add this value once yow add new type */ 359}; 360 361 362typedef struct { 363 RT_802_11_PHY_MODE PhyMode; 364 unsigned char TransmitNo; 365 unsigned char HtMode; //HTMODE_GF or HTMODE_MM 366 unsigned char ExtOffset; //extension channel above or below 367 unsigned char MCS; 368 unsigned char BW; 369 unsigned char STBC; 370 unsigned char SHORTGI; 371 unsigned char rsv; 372} OID_SET_HT_PHYMODE, *POID_SET_HT_PHYMODE; 373 374#define MAX_NUM_OF_DLS_ENTRY 4 375// structure for DLS 376typedef struct _RT_802_11_DLS { 377 unsigned short TimeOut; // unit: second , set by UI 378 unsigned short CountDownTimer; // unit: second , used by driver only 379 unsigned char MacAddr[6]; // set by UI 380 unsigned char Status; // 0: none, 1: wait STAkey, 2: finish DLS setup, set by driver only 381 unsigned char Valid; // 1: valid, 0: invalid, set by UI, use to setup or tear down DLS link 382} RT_802_11_DLS, *PRT_802_11_DLS; 383 384typedef enum _RT_802_11_DLS_MODE { 385 DLS_NONE, 386 DLS_WAIT_KEY, 387 DLS_FINISH } RT_802_11_DLS_MODE; 388 389typedef enum _NDIS_802_11_AUTHENTICATION_MODE 390{ 391 Ndis802_11AuthModeOpen, 392 Ndis802_11AuthModeShared, 393 Ndis802_11AuthModeAutoSwitch, 394 Ndis802_11AuthModeWPA, 395 Ndis802_11AuthModeWPAPSK, 396 Ndis802_11AuthModeWPANone, 397 Ndis802_11AuthModeWPA2, 398 Ndis802_11AuthModeWPA2PSK, 399 Ndis802_11AuthModeMax // Not a real mode, defined as upper bound 400} NDIS_802_11_AUTHENTICATION_MODE, *PNDIS_802_11_AUTHENTICATION_MODE; 401 402typedef enum _NDIS_802_11_WEP_STATUS 403{ 404 Ndis802_11WEPEnabled, 405 Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled, 406 Ndis802_11WEPDisabled, 407 Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled, 408 Ndis802_11WEPKeyAbsent, 409 Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent, 410 Ndis802_11WEPNotSupported, 411 Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported, 412 Ndis802_11Encryption2Enabled, 413 Ndis802_11Encryption2KeyAbsent, 414 Ndis802_11Encryption3Enabled, 415 Ndis802_11Encryption3KeyAbsent 416} NDIS_802_11_WEP_STATUS, *PNDIS_802_11_WEP_STATUS, 417 NDIS_802_11_ENCRYPTION_STATUS, *PNDIS_802_11_ENCRYPTION_STATUS; 418 419typedef enum _NDIS_802_11_POWER_MODE 420{ 421 Ndis802_11PowerModeCAM, 422 Ndis802_11PowerModeMAX_PSP, 423 Ndis802_11PowerModeFast_PSP, 424 Ndis802_11PowerModeMax // not a real mode, defined as an upper bound 425} NDIS_802_11_POWER_MODE, *PNDIS_802_11_POWER_MODE; 426 427typedef enum _RT_802_11_PREAMBLE { 428 Rt802_11PreambleLong, 429 Rt802_11PreambleShort, 430 Rt802_11PreambleAuto 431} RT_802_11_PREAMBLE, *PRT_802_11_PREAMBLE; 432 433#ifdef WPA_SUPPLICANT_SUPPORT 434#define IDENTITY_LENGTH 32 435#define CERT_PATH_LENGTH 64 436#define PRIVATE_KEY_PATH_LENGTH 64 437 438typedef enum _RT_WPA_SUPPLICANT_KEY_MGMT { 439 Rtwpa_supplicantKeyMgmtWPAPSK, 440 Rtwpa_supplicantKeyMgmtWPAEAP, 441 Rtwpa_supplicantKeyMgmtIEEE8021X, 442 Rtwpa_supplicantKeyMgmtNONE 443} RT_WPA_SUPPLICANT_KEY_MGMT, *PRT_WPA_SUPPLICANT_KEY_MGMT; 444 445typedef enum _RT_WPA_SUPPLICANT_EAP { 446 Rtwpa_supplicantEAPMD5, 447 Rtwpa_supplicantEAPMSCHAPV2, 448 Rtwpa_supplicantEAPOTP, 449 Rtwpa_supplicantEAPGTC, 450 Rtwpa_supplicantEAPTLS, 451 Rtwpa_supplicantEAPPEAP, 452 Rtwpa_supplicantEAPTTLS, 453 Rtwpa_supplicantEAPNONE 454} RT_WPA_SUPPLICANT_EAP, *PRT_WPA_SUPPLICANT_EAP; 455 456typedef enum _RT_WPA_SUPPLICANT_TUNNEL { 457 Rtwpa_supplicantTUNNELMSCHAP, 458 Rtwpa_supplicantTUNNELMSCHAPV2, 459 Rtwpa_supplicantTUNNELPAP, 460 Rtwpa_supplicantTUNNENONE 461} RT_WPA_SUPPLICANT_TUNNEL, *PRT_WPA_SUPPLICANT_TUNNEL; 462#endif 463 464typedef struct _RT_PROFILE_SETTING { 465 unsigned int ProfileDataType; //0x18140201 466 unsigned char Profile[32+1]; 467 unsigned char SSID[NDIS_802_11_LENGTH_SSID+1]; 468 unsigned int SsidLen; 469 unsigned int Channel; 470 NDIS_802_11_AUTHENTICATION_MODE Authentication; //Ndis802_11AuthModeOpen, Ndis802_11AuthModeShared, Ndis802_11AuthModeWPAPSK 471 NDIS_802_11_WEP_STATUS Encryption; //Ndis802_11WEPEnabled, Ndis802_11WEPDisabled, Ndis802_11Encryption2Enabled, Ndis802_11Encryption3Enabled 472 NDIS_802_11_NETWORK_INFRASTRUCTURE NetworkType; 473 unsigned int KeyDefaultId; 474 unsigned int Key1Type; 475 unsigned int Key2Type; 476 unsigned int Key3Type; 477 unsigned int Key4Type; 478 unsigned int Key1Length; 479 unsigned int Key2Length; 480 unsigned int Key3Length; 481 unsigned int Key4Length; 482 char Key1[26+1]; 483 char Key2[26+1]; 484 char Key3[26+1]; 485 char Key4[26+1]; 486 char WpaPsk[64+1]; //[32+1]; 487 unsigned int TransRate; 488 unsigned int TransPower; 489 char RTSCheck; //boolean 490 unsigned int RTS; 491 char FragmentCheck; //boolean 492 unsigned int Fragment; 493 NDIS_802_11_POWER_MODE PSmode; 494 RT_802_11_PREAMBLE PreamType; 495 unsigned int AntennaRx; 496 unsigned int AntennaTx; 497 unsigned int CountryRegion; 498 //Advance 499 //RT_802_11_TX_RATES ConfigSta; 500 unsigned int AdhocMode; 501 //unsigned char reserved[64]; 502 unsigned int Active; // 0 is the profile is set as connection profile, 1 is not. 503#ifdef WPA_SUPPLICANT_SUPPORT 504 RT_WPA_SUPPLICANT_KEY_MGMT KeyMgmt; 505 RT_WPA_SUPPLICANT_EAP EAP; 506 unsigned char Identity[IDENTITY_LENGTH]; 507 unsigned char Password[32]; 508 unsigned char CACert[CERT_PATH_LENGTH]; 509 unsigned char ClientCert[CERT_PATH_LENGTH]; 510 unsigned char PrivateKey[PRIVATE_KEY_PATH_LENGTH]; 511 unsigned char PrivateKeyPassword[32]; 512 //unsigned int EapolFlag; 513 //RT_WPA_SUPPLICANT_PROTO Proto; 514 //RT_WPA_SUPPLICANT_PAIRWISE Pairwise; 515 //RT_WPA_SUPPLICANT_GROUP group; 516 //unsigned char Phase1[32]; 517 RT_WPA_SUPPLICANT_TUNNEL Tunnel; 518#endif 519 struct _RT_PROFILE_SETTING *Next; 520} RT_PROFILE_SETTING, *PRT_PROFILE_SETTING; 521 522// move to station.c 523//PRT_PROFILE_SETTING selectedProfileSetting = NULL, headerProfileSetting = NULL, currentProfileSetting = NULL; 524 525typedef struct _NDIS_802_11_REMOVE_KEY 526{ 527 unsigned int Length; // Length of this structure 528 unsigned int KeyIndex; 529 unsigned char BSSID[6]; 530} NDIS_802_11_REMOVE_KEY, *PNDIS_802_11_REMOVE_KEY; 531 532// Key mapping keys require a BSSID 533typedef struct _NDIS_802_11_KEY 534{ 535 unsigned int Length; // Length of this structure 536 unsigned int KeyIndex; 537 unsigned int KeyLength; // length of key in bytes 538 unsigned char BSSID[6]; 539 NDIS_802_11_KEY_RSC KeyRSC; 540 unsigned char KeyMaterial[1]; // variable length depending on above field 541} NDIS_802_11_KEY, *PNDIS_802_11_KEY; 542 543typedef struct _NDIS_802_11_WEP { 544 unsigned int Length; // Length of this structure 545 unsigned int KeyIndex; // 0 is the per-client key, 1-N are the global keys 546 unsigned int KeyLength; // length of key in bytes 547 unsigned char KeyMaterial[1];// variable length depending on above field 548} NDIS_802_11_WEP, *PNDIS_802_11_WEP; 549 550 551 552