1 /* 2 * osDot11.h 3 * 4 * Copyright(c) 1998 - 2010 Texas Instruments. All rights reserved. 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 11 * * Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * * Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in 15 * the documentation and/or other materials provided with the 16 * distribution. 17 * * Neither the name Texas Instruments nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 35 /*--------------------------------------------------------------------------*/ 36 /* Module: osDot11.h */ 37 /**/ 38 /* Purpose: */ 39 /**/ 40 /*--------------------------------------------------------------------------*/ 41 #ifndef __OSDOT11_H__ 42 #define __OSDOT11_H__ 43 44 #include "tidef.h" 45 #include "tiQosTypes.h" 46 47 48 #define OS_STATUS_MEDIA_SPECIFIC_INDICATION ((NDIS_STATUS)0x40010012L) 49 50 #define OS_802_11_REQUEST_REAUTH 0x01 51 #define OS_802_11_REQUEST_KEYUPDATE 0x02 52 #define OS_802_11_REQUEST_PAIRWISE_ERROR 0x06 53 #define OS_802_11_REQUEST_GROUP_ERROR 0x0E 54 55 #define OS_802_11_SSID_FIRST_VALID_CHAR 32 56 57 #define OS_802_11_SSID_JUNK(str,len) \ 58 ((len) > 2 && \ 59 (unsigned char)(str)[0] < OS_802_11_SSID_FIRST_VALID_CHAR && \ 60 (unsigned char)(str)[1] < OS_802_11_SSID_FIRST_VALID_CHAR && \ 61 (unsigned char)(str)[2] < OS_802_11_SSID_FIRST_VALID_CHAR) 62 63 64 /**/ 65 /* Per-packet information for Ieee8021QInfo.*/ 66 /**/ 67 typedef struct _OS_PACKET_8021Q_INFO 68 { 69 union 70 { 71 struct 72 { 73 TI_UINT32 UserPriority:3; /* 802.1p priority */ 74 TI_UINT32 CanonicalFormatId:1; /* always 0*/ 75 TI_UINT32 VlanId:12; /* VLAN Identification*/ 76 TI_UINT32 Reserved:16; /* set to 0*/ 77 } TagHeader; 78 79 void* Value; 80 }u; 81 } OS_PACKET_8021Q_INFO, *POS_PACKET_8021Q_INFO; 82 83 84 typedef TI_UINT64 OS_802_11_KEY_RSC; 85 86 typedef struct _OS_802_11_SSID 87 { 88 TI_UINT32 SsidLength; 89 TI_UINT8 Ssid[32]; 90 } OS_802_11_SSID, *POS_802_11_SSID; 91 92 typedef enum _OS_802_11_NETWORK_TYPE 93 { 94 os802_11FH, 95 os802_11DS, 96 os802_11OFDM5, 97 os802_11OFDM24, 98 os802_11Automode, 99 os802_11NetworkTypeMax 100 } OS_802_11_NETWORK_TYPE; 101 102 typedef struct _OS_802_11_NETWORK_TYPE_LIST 103 { 104 TI_UINT32 NumberOfItems; 105 OS_802_11_NETWORK_TYPE NetworkType [1]; 106 } OS_802_11_NETWORK_TYPE_LIST, *POS_802_11_NETWORK_TYPE_LIST; 107 108 typedef enum _OS_802_11_POWER_MODE 109 { 110 /*Continuous access mode (CAM). */ 111 /*When the power mode is set to CAM, the device is always on. */ 112 os802_11PowerModeCAM, 113 114 /*Specifies maximum (MAX) power saving. A power mode of MAX */ 115 /*results in the greatest power savings for the 802.11 NIC radio. */ 116 os802_11PowerModeMAX_PSP, 117 118 /*Specifies fast power-saving mode. This power mode provides */ 119 /*the best combination of network performance and power usage. */ 120 os802_11PowerModeFast_PSP, 121 os802_11PowerModeMax 122 } OS_802_11_POWER_MODE; 123 124 /*specified in milliwatts (mW).*/ 125 typedef TI_UINT32 OS_802_11_TX_POWER_LEVEL; 126 /*Normal value from -10 and -200*/ 127 typedef TI_INT32 OS_802_11_RSSI; 128 129 /*Length */ 130 131 /* Specifies the length of the OS_802_11_CONFIGURATION_FH structure in bytes. */ 132 /*HopPattern*/ 133 /* Specifies the hop pattern used to determine the hop sequence. */ 134 /* As defined by the 802.11 standard, the layer management entity (LME) of */ 135 /* the physical layer uses a hop pattern to determine the hop sequence. */ 136 /*HopSet*/ 137 /* Specifies a set of patterns. The LME of the physical layer uses these */ 138 /* patterns to determine the hop sequence. */ 139 /*DwellTime*/ 140 /* Specifies the maximum period of time during which the transmitter */ 141 /* should remain fixed on a channel. This interval is described in Kµsec (1024 µsec). */ 142 typedef struct _OS_802_11_CONFIGURATION_FH 143 { 144 TI_UINT32 Length; 145 TI_UINT32 HopPattern; 146 TI_UINT32 HopSet; 147 TI_UINT32 DwellTime; 148 } OS_802_11_CONFIGURATION_FH, *POS_802_11_CONFIGURATION_FH; 149 150 /*Length */ 151 152 /* Specifies the length of the NDIS_802_11_CONFIGURATION structure in bytes. */ 153 /*BeaconPeriod */ 154 /* Specifies the interval between beacon message transmissions. */ 155 /* This value is specified in Kµsec (1024 µsec). */ 156 /*ATIMWindow */ 157 /* Specifies the announcement traffic information message (ATIM) window in */ 158 /* Kµsec (1024 µsec). The ATIM window is a short time period immediately */ 159 /* after the transmission of each beacon in an IBSS configuration. */ 160 /* During the ATIM window, any station can indicate the need to transfer data */ 161 /* to another station during the following data-transmission window. */ 162 /*DSConfig */ 163 /* Specifies the frequency of the selected channel in kHz. */ 164 /*FHConfig */ 165 /* Specifies the frequency hopping configuration in an OS_802_11_CONFIGURATION_FH structure. */ 166 typedef struct _OS_802_11_CONFIGURATION 167 { 168 TI_UINT32 Length; 169 TI_UINT32 BeaconPeriod; 170 TI_UINT32 ATIMWindow; 171 union 172 { 173 TI_UINT32 DSConfig; 174 TI_UINT32 channel; 175 } Union; 176 OS_802_11_CONFIGURATION_FH FHConfig; 177 } OS_802_11_CONFIGURATION, *POS_802_11_CONFIGURATION; 178 179 /*Ndis802_11IBSS */ 180 /* Specifies the independent basic service set (IBSS) mode. */ 181 /* This mode is also known as ad hoc mode. */ 182 /*Ndis802_11Infrastructure */ 183 /* Specifies the infrastructure mode. */ 184 /*Ndis802_11AutoUnknown */ 185 /* Specifies an automatic mode. In this mode, the 802.11 NIC can switch */ 186 /* between ad hoc and infrastructure modes as required. */ 187 /*Ndis802_11HighSpeedIBSS*/ 188 /* Specifies proprietary ad hoc mode that works only PBCC.*/ 189 typedef enum _OS_802_11_NETWORK_MODE 190 { 191 os802_11IBSS, 192 os802_11Infrastructure, 193 os802_11AutoUnknown, 194 os802_11HighSpeedIBSS, 195 os802_11InfrastructureMax 196 } OS_802_11_NETWORK_MODE, OS_802_11_NETWORK_INFRASTRUCTURE,*POS_802_11_NETWORK_INFRASTRUCTURE; 197 198 /**/ 199 /*The rates array contains a set of eight octets. */ 200 /*Each octet contains a desired data rate in units of .5 Mbps.*/ 201 /**/ 202 typedef TI_UINT8 OS_802_11_RATES[8]; 203 204 typedef TI_UINT8 OS_802_11_RATES_EX[16]; 205 206 typedef TI_UINT8 OS_802_11_N_RATES[32]; 207 208 typedef struct _OS_802_11_FIXED_IEs 209 { 210 TI_UINT8 TimeStamp[8]; 211 TI_UINT16 BeaconInterval; 212 TI_UINT16 Capabilities; 213 } OS_802_11_FIXED_IEs, *POS_802_11_FIXED_IEs; 214 215 typedef struct _OS_802_11_VARIABLE_IEs 216 { 217 TI_UINT8 ElementID; 218 TI_UINT8 Length; /* Number of bytes in data field*/ 219 TI_UINT8 data[1]; 220 } OS_802_11_VARIABLE_IEs, *POS_802_11_VARIABLE_IEs; 221 222 typedef struct _OS_802_11_BSSID 223 { 224 TI_UINT32 Length; 225 TMacAddr MacAddress; 226 TI_UINT16 Capabilities; 227 OS_802_11_SSID Ssid; 228 TI_UINT32 Privacy; 229 OS_802_11_RSSI Rssi; 230 OS_802_11_NETWORK_TYPE NetworkTypeInUse; 231 OS_802_11_CONFIGURATION Configuration; 232 OS_802_11_NETWORK_MODE InfrastructureMode; 233 OS_802_11_RATES SupportedRates; 234 } OS_802_11_BSSID, *POS_802_11_BSSID; 235 236 typedef struct _OS_802_11_BSSID_LIST 237 { 238 TI_UINT32 NumberOfItems; 239 OS_802_11_BSSID Bssid[1]; 240 } OS_802_11_BSSID_LIST, *POS_802_11_BSSID_LIST; 241 242 243 typedef struct _OS_802_11_BSSID_EX 244 { 245 TI_UINT32 Length; 246 TMacAddr MacAddress; 247 TI_UINT16 Capabilities; 248 OS_802_11_SSID Ssid; 249 TI_UINT32 Privacy; 250 OS_802_11_RSSI Rssi; 251 OS_802_11_NETWORK_TYPE NetworkTypeInUse; 252 OS_802_11_CONFIGURATION Configuration; 253 OS_802_11_NETWORK_MODE InfrastructureMode; 254 OS_802_11_RATES_EX SupportedRates; 255 TI_UINT32 IELength; 256 TI_UINT8 IEs[1]; 257 } OS_802_11_BSSID_EX, *POS_802_11_BSSID_EX, OS_WLAN_BSSID_EX, *POS_WLAN_BSSID_EX; 258 259 typedef struct _OS_802_11_BSSID_LIST_EX 260 { 261 TI_UINT32 NumberOfItems; 262 OS_802_11_BSSID_EX Bssid[1]; 263 } OS_802_11_BSSID_LIST_EX, *POS_802_11_BSSID_LIST_EX; 264 265 266 typedef TI_UINT32 OS_802_11_FRAGMENTATION_THRESHOLD; 267 typedef TI_UINT32 OS_802_11_RTS_THRESHOLD; 268 typedef TI_UINT32 OS_802_11_ANTENNA; 269 270 271 /*Length */ 272 /* Specifies the length of the NDIS_802_11_WEP structure in bytes. */ 273 /*KeyIndex */ 274 /* Specifies which key to add or remove. The global keys are represented */ 275 /* by values of zero to n. When the most significant bit is set to 1, */ 276 /* it indicates the key used to transmit to the access point. */ 277 /*KeyLength */ 278 /* Specifies the length of the KeyMaterial character array in bytes. */ 279 /*KeyMaterial */ 280 /* Specifies an arraythat identifies the WEP key. The length of this array is */ 281 /* variable and depends upon the value of the KeyLength member. */ 282 283 typedef TI_UINT32 OS_802_11_KEY_INDEX; 284 typedef struct _OS_802_11_WEP 285 { 286 TI_UINT32 Length; 287 TI_UINT32 KeyIndex; 288 TI_UINT32 KeyLength; 289 TI_UINT8 KeyMaterial [32]; 290 } OS_802_11_WEP, *POS_802_11_WEP; 291 292 /* Key mapping keys require a BSSID*/ 293 /*typedef tiUINT64 OS_802_11_KEY_RSC;*/ 294 295 typedef struct _OS_802_11_KEY 296 { 297 TI_UINT32 Length; /* Length of this structure*/ 298 TI_UINT32 KeyIndex; 299 TI_UINT32 KeyLength; /* length of key in bytes*/ 300 TMacAddr BSSID; 301 OS_802_11_KEY_RSC KeyRSC; 302 TI_UINT8 KeyMaterial[32]; /* variable length depending on above field*/ 303 } OS_802_11_KEY, *POS_802_11_KEY; 304 305 typedef struct _OS_802_11_REMOVE_KEY 306 { 307 TI_UINT32 Length; /* Length of this structure*/ 308 TI_UINT32 KeyIndex; 309 TMacAddr BSSID; 310 } OS_802_11_REMOVE_KEY, *POS_802_11_REMOVE_KEY; 311 312 #define OS_802_11_AI_REQFI_CAPABILITIES 1 313 #define OS_802_11_AI_REQFI_LISTENINTERVAL 2 314 #define OS_802_11_AI_REQFI_CURRENTAPADDRESS 4 315 316 317 #define OS_802_11_AI_RESFI_CAPABILITIES 1 318 #define OS_802_11_AI_RESFI_STATUSCODE 2 319 #define OS_802_11_AI_RESFI_ASSOCIATIONID 4 320 321 typedef struct _OS_802_11_AI_REQFI 322 { 323 TI_UINT16 Capabilities; 324 TI_UINT16 ListenInterval; 325 TMacAddr CurrentAPAddress; 326 #ifndef _WINDOWS 327 TI_UINT16 reserved; /* added for packing */ 328 #endif 329 } OS_802_11_AI_REQFI; 330 331 typedef struct _OS_802_11_AI_RESFI 332 { 333 TI_UINT16 Capabilities; 334 TI_UINT16 StatusCode; 335 TI_UINT16 AssociationId; 336 #ifndef _WINDOWS 337 TI_UINT16 reserved; /* added for packing */ 338 #endif 339 } OS_802_11_AI_RESFI; 340 341 typedef struct _OS_802_11_ASSOCIATION_INFORMATION 342 { 343 TI_UINT32 Length; 344 TI_UINT16 AvailableRequestFixedIEs; 345 OS_802_11_AI_REQFI RequestFixedIEs; 346 TI_UINT32 RequestIELength; 347 TI_UINT32 OffsetRequestIEs; 348 TI_UINT16 AvailableResponseFixedIEs; 349 OS_802_11_AI_RESFI ResponseFixedIEs; 350 TI_UINT32 ResponseIELength; 351 TI_UINT32 OffsetResponseIEs; 352 353 } OS_802_11_ASSOCIATION_INFORMATION, *POS_802_11_ASSOCIATION_INFORMATION; 354 355 356 /* supported EAP types*/ 357 typedef enum _OS_802_11_EAP_TYPES 358 { 359 OS_EAP_TYPE_NONE = -1, 360 OS_EAP_TYPE_MD5_CHALLENGE = 4, 361 OS_EAP_TYPE_GENERIC_TOKEN_CARD = 6, 362 OS_EAP_TYPE_TLS = 13, 363 OS_EAP_TYPE_LEAP = 17, 364 OS_EAP_TYPE_TTLS = 21, 365 OS_EAP_TYPE_PEAP = 25, 366 OS_EAP_TYPE_MS_CHAP_V2 = 26, 367 OS_EAP_TYPE_FAST = 43 368 } OS_802_11_EAP_TYPES; 369 370 /* encryption type*/ 371 typedef enum _OS_802_11_ENCRYPTION_TYPES 372 { 373 OS_ENCRYPTION_TYPE_NONE = 0, 374 OS_ENCRYPTION_TYPE_WEP, 375 OS_ENCRYPTION_TYPE_TKIP, 376 OS_ENCRYPTION_TYPE_AES 377 } OS_802_11_ENCRYPTION_TYPES; 378 379 /* Key type*/ 380 typedef enum _OS_802_11_KEY_TYPES 381 { 382 OS_KEY_TYPE_STATIC = 0, 383 OS_KEY_TYPE_DYNAMIC 384 } OS_802_11_KEY_TYPES; 385 386 /* ELP mode*/ 387 typedef enum _OS_802_11_ELP_MODES 388 { 389 OS_ELP_MODE_DISABLE, 390 OS_ELP_MODE_SYNC, 391 OS_ELP_MODE_NON_SYNC 392 } OS_802_11_ELP_MODES; 393 394 /* Roaming mode*/ 395 typedef enum _OS_802_11_ROAMING_MODES 396 { 397 OS_ROAMING_MODE_DISABLE, 398 OS_ROAMING_MODE_ENABLE 399 } OS_802_11_ROAMING_MODES; 400 401 typedef enum _OS_802_11_POWER_PROFILE 402 { 403 OS_POWER_MODE_AUTO, 404 OS_POWER_MODE_ACTIVE, 405 OS_POWER_MODE_SHORT_DOZE, 406 OS_POWER_MODE_LONG_DOZE 407 } OS_802_11_POWER_PROFILE; 408 409 typedef enum _OS_802_11_POWER_LEVELS 410 { 411 OS_POWER_LEVEL_ELP, 412 OS_POWER_LEVEL_PD, 413 OS_POWER_LEVEL_AWAKE 414 } OS_802_11_POWER_LEVELS; 415 416 417 typedef enum _OS_802_11_BEACON_FILTER_MODE 418 { 419 OS_BEACON_FILTER_MODE_INACTIVE, 420 OS_BEACON_FILTER_MODE_ACTIVE 421 } OS_802_11_BEACON_FILTER_MODE; 422 423 424 typedef enum _OS_802_11_SCAN_TYPES 425 { 426 OS_SCAN_TYPE_PASSIVE, 427 OS_SCAN_TYPE_BROADCAST, 428 OS_SCAN_TYPE_UNICAST 429 } OS_802_11_SCAN_TYPES; 430 431 typedef enum _OS_802_11_VOICE_DELIVERY_PROTOCOL 432 { 433 OS_VOICE_DELIVERY_PROTOCOL_DISABLED, 434 OS_VOICE_DELIVERY_PROTOCOL_PS_POLL 435 } OS_802_11_VOICE_DELIVERY_PROTOCOL; 436 437 typedef struct _OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS 438 { 439 TI_UINT32 uHighThreshold; 440 TI_UINT32 uLowThreshold; 441 TI_UINT32 TestInterval; 442 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS; 443 444 typedef struct{ 445 TI_UINT32 uHighOrLowThresholdFlag; /* high or low */ 446 TI_UINT32 uAboveOrBelowFlag; /* direction of crossing */ 447 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS; 448 449 typedef TI_UINT8 OS_802_11_PMKID_VALUE[16]; 450 451 typedef struct _OS_BSSIDInfo 452 { 453 TMacAddr BSSID; 454 OS_802_11_PMKID_VALUE PMKID; 455 } OS_BSSIDInfo, *POS_BSSIDInfo; 456 457 typedef struct _OS_802_11_PMKID 458 { 459 TI_UINT32 Length; 460 TI_UINT32 BSSIDInfoCount; 461 OS_BSSIDInfo osBSSIDInfo[1]; 462 } OS_802_11_PMKID, *POS_802_11_PMKID; 463 464 typedef enum _OS_802_11_WEP_STATUS 465 { 466 os802_11WEPEnabled = 0, 467 os802_11Encryption1Enabled = os802_11WEPEnabled, 468 os802_11WEPDisabled, 469 os802_11EncryptionDisabled = os802_11WEPDisabled, 470 os802_11WEPKeyAbsent, 471 os802_11Encryption1KeyAbsent = os802_11WEPKeyAbsent, 472 os802_11WEPNotSupported, 473 os802_11EncryptionNotSupported = os802_11WEPNotSupported, 474 os802_11Encryption2Enabled, 475 os802_11Encryption2KeyAbsent, 476 os802_11Encryption3Enabled, 477 os802_11Encryption3KeyAbsent 478 } OS_802_11_WEP_STATUS, OS_802_11_ENCRYPTION_STATUS; 479 480 /*os802_11AuthModeOpen */ 481 /* Specifies 802.11 open authentication mode. There are no checks when accepting */ 482 /* clients in this mode. */ 483 /*os802_11AuthModeShared */ 484 /* Specifies 802.11 shared authentication that uses a pre-shared wired equivalent */ 485 /* privacy (WEP) key. */ 486 /*os802_11AuthModeAutoSwitch */ 487 /* Specifies auto-switch mode. When using auto-switch mode, the NIC tries 802.11 shared */ 488 /* authentication mode first. If shared mode fails, the NIC attempts to use 802.11 open */ 489 /* authentication mode. */ 490 491 typedef enum _OS_802_11_AUTHENTICATION_MODE 492 { 493 os802_11AuthModeOpen, 494 os802_11AuthModeShared, 495 os802_11AuthModeAutoSwitch, 496 os802_11AuthModeWPA, 497 os802_11AuthModeWPAPSK, 498 os802_11AuthModeWPANone, 499 os802_11AuthModeWPA2, 500 os802_11AuthModeWPA2PSK, 501 os802_11AuthModeMax 502 } OS_802_11_AUTHENTICATION_MODE; 503 504 505 /*os802_11PrivFilterAcceptAll */ 506 /* Specifies an open mode. In this mode, the NIC accepts any packet if the packet */ 507 /* is not encrypted or if the NIC successfully decrypts it. */ 508 /*os802_11PrivFilter8021xWEP */ 509 /* Specifies a filtering mode. In the 802.1X filtering mode, 802.1X packets are */ 510 /* accepted even if they are not encrypted. However, the NIC accepts nothing else */ 511 /* unless it is encrypted using WEP. */ 512 typedef enum _OS_802_11_PRIVACY_FILTER 513 { 514 os802_11PrivFilterAcceptAll, 515 os802_11PrivFilter8021xWEP 516 } OS_802_11_PRIVACY_FILTER; 517 518 typedef enum _OS_802_11_RELOAD_DEFAULTS 519 { 520 os802_11ReloadWEPKeys 521 } OS_802_11_RELOAD_DEFAULTS, *POS_802_11_RELOAD_DEFAULTS; 522 523 typedef enum _OS_802_11_STATUS_TYPE 524 { 525 os802_11StatusType_Authentication, 526 os802_11StatusType_PMKID_CandidateList = 2, 527 os802_11StatusTypeMax /* not a real type, defined as an upper bound */ 528 } OS_802_11_STATUS_TYPE, *POS_802_11_STATUS_TYPE; 529 530 typedef struct _OS_802_11_STATUS_INDICATION 531 { 532 OS_802_11_STATUS_TYPE StatusType; 533 } OS_802_11_STATUS_INDICATION, *POS_802_11_STATUS_INDICATION; 534 535 536 typedef struct _OS_802_11_AUTHENTICATION_REQUEST 537 { 538 TI_UINT32 Length; /* Length of this structure*/ 539 TMacAddr BSSID; 540 TI_UINT32 Flags; 541 } OS_802_11_AUTHENTICATION_REQUEST, *POS_802_11_AUTHENTICATION_REQUEST; 542 543 typedef enum 544 { 545 OS_DISASSOC_STATUS_UNSPECIFIED = 0, 546 OS_DISASSOC_STATUS_AUTH_REJECT = 1, 547 OS_DISASSOC_STATUS_ASSOC_REJECT = 2, 548 OS_DISASSOC_STATUS_SECURITY_FAILURE = 3, 549 OS_DISASSOC_STATUS_AP_DEAUTHENTICATE = 4, 550 OS_DISASSOC_STATUS_AP_DISASSOCIATE = 5, 551 OS_DISASSOC_STATUS_ROAMING_TRIGGER = 6 552 553 } OS_802_11_DISASSOCIATE_REASON_E; 554 555 typedef struct 556 { 557 OS_802_11_DISASSOCIATE_REASON_E eDisAssocType; 558 TI_UINT32 uStatusCode; 559 } OS_802_11_DISASSOCIATE_REASON_T; 560 561 562 563 #define OS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLE 0x01 564 565 typedef struct _OS_802_11_PMKID_CANDIDATE 566 { 567 TMacAddr BSSID; 568 TI_UINT32 Flags; 569 } OS_802_11_PMKID_CANDIDATE, *POS_802_11_PMKID_CANDIDATE; 570 571 typedef struct _OS_802_11_PMKID_CANDIDATELIST 572 { 573 TI_UINT32 Version; /* Version of the structure*/ 574 TI_UINT32 NumCandidates; /* No. of pmkid candidates*/ 575 OS_802_11_PMKID_CANDIDATE CandidateList[1]; 576 } OS_802_11_PMKID_CANDIDATELIST, *POS_802_11_PMKID_CANDIDATELIST; 577 578 579 typedef TI_UINT8 OS_802_11_MAC_PMKID_VALUE[16]; 580 581 typedef struct _OS_802_11_BSSIDInfo 582 { 583 TMacAddr BSSID; 584 OS_802_11_MAC_PMKID_VALUE PMKID; 585 } OS_802_11_BSSIDInfo, *POS_802_11_BSSIDInfo; 586 587 588 typedef struct _OS_802_11_AUTH_ENCRYPTION 589 { 590 OS_802_11_AUTHENTICATION_MODE AuthModeSupported; 591 OS_802_11_ENCRYPTION_STATUS EncryptionStatusSupported; 592 } OS_802_11_AUTH_ENCRYPTION, *POS_802_11_AUTH_ENCRYPTION; 593 594 595 typedef struct _OS_802_11_CAPABILITY 596 { 597 TI_UINT32 Length; 598 TI_UINT32 Version; 599 TI_UINT32 NoOfPmKIDs; 600 TI_UINT32 NoOfAuthEncryptPairsSupported; 601 OS_802_11_AUTH_ENCRYPTION AuthEncryptionSupported[1]; 602 603 } OS_802_11_CAPABILITY, *POS_802_11_CAPABILITY; 604 605 #define OID_CAPABILITY_VERSION 2 606 607 608 609 typedef enum _OS_802_11_REG_DOMAIN 610 { 611 os802_11_Domain_FCC = 0x10, 612 os802_11_Domain_IC = 0x20, 613 os802_11_Domain_ETSI = 0x30, 614 os802_11_Domain_Spain = 0x31, 615 os802_11_Domain_France = 0x32, 616 os802_11_Domain_MKK = 0x40, 617 os802_11_Domain_MKK1 = 0x41, 618 os802_11_Domain_US = 0x50, 619 os802_11_Domain_WB = 0x51, 620 os802_11_Domain_EXWB = 0x52 621 } OS_802_11_REG_DOMAIN; 622 623 624 625 #define OID_TI_VERSION 0xFF080001 626 627 628 /* propritary OIDs used by FUNK supplicant for WPA Mixed mode support*/ 629 /* WPA2 MIxed mode OIDs */ 630 #define CGUID_FSW_802_11_AVAILABLE_OPTIONS {0x1a905534, 0xe71f, 0x46d1, {0xa2, 0xcb, 0xa5, 0x57, 0x01, 0x76, 0x38, 0xfd}} 631 #define CGUID_FSW_802_11_OPTIONS {0xdc7a51b7, 0x2236, 0x467d, {0xb1, 0x55, 0x03, 0x50, 0x42, 0x04, 0xcf, 0x30}} 632 633 #define OID_FSW_802_11_AVAILABLE_OPTIONS 0xFF010237 634 #define OID_FSW_802_11_OPTIONS 0xFF010238 635 636 637 638 /**/ 639 /* IEEE 802.11 OIDs*/ 640 /**/ 641 #define OID_802_11_BSSID 0x0D010101 642 #define OID_802_11_SSID 0x0D010102 643 #define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 644 #define OID_802_11_ADD_WEP 0x0D010113 645 #define OID_802_11_REMOVE_WEP 0x0D010114 646 #define OID_802_11_DISASSOCIATE 0x0D010115 647 #define OID_802_11_AUTHENTICATION_MODE 0x0D010118 648 #define OID_802_11_PRIVACY_FILTER 0x0D010119 649 #define OID_802_11_BSSID_LIST_SCAN 0x0D01011A 650 #define OID_802_11_WEP_STATUS 0x0D01011B 651 #define OID_802_11_RELOAD_DEFAULTS 0x0D01011C 652 #define OID_802_11_ADD_KEY 0x0D01011D 653 #define OID_802_11_REMOVE_KEY 0x0D01011E 654 #define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F 655 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 656 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 657 #define OID_802_11_TX_POWER_LEVEL 0x0D010205 658 #define OID_802_11_RSSI 0x0D010206 659 #define OID_802_11_RSSI_TRIGGER 0x0D010207 660 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 661 #define OID_802_11_RTS_THRESHOLD 0x0D01020A 662 #define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B 663 #define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C 664 #define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D 665 #define OID_802_11_SUPPORTED_RATES 0x0D01020E 666 #define OID_802_11_DESIRED_RATES 0x0D010210 667 #define OID_802_11_CONFIGURATION 0x0D010211 668 #define OID_802_11_STATISTICS 0x0D020212 669 #define OID_802_11_POWER_MODE 0x0D010216 670 #define OID_802_11_BSSID_LIST 0x0D010217 671 672 673 #ifndef _USER_MODE 674 #include "osdot11nousermode.h" 675 #endif 676 677 678 679 680 /* AnyWPA mode flags used in propritary FUNK suplicant OIDs*/ 681 682 #define OS_802_11_OPTION_ENABLE_PROMOTE_MODE 0x00000001 /*bit 0*/ 683 #define OS_802_11_OPTION_ENABLE_PROMOTE_CIPHER 0x00000002 /*bit 1*/ 684 #define OS_802_11_OPTION_DISABLE_PROMOTE_MODE 0 685 #define OS_802_11_OPTION_ENABLE_ALL 0x00000003 686 687 #endif 688