1 /* 2 * osDot11.h 3 * 4 * Copyright(c) 1998 - 2009 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 struct _OS_802_11_FIXED_IEs 207 { 208 TI_UINT8 TimeStamp[8]; 209 TI_UINT16 BeaconInterval; 210 TI_UINT16 Capabilities; 211 } OS_802_11_FIXED_IEs, *POS_802_11_FIXED_IEs; 212 213 typedef struct _OS_802_11_VARIABLE_IEs 214 { 215 TI_UINT8 ElementID; 216 TI_UINT8 Length; /* Number of bytes in data field*/ 217 TI_UINT8 data[1]; 218 } OS_802_11_VARIABLE_IEs, *POS_802_11_VARIABLE_IEs; 219 220 typedef struct _OS_802_11_BSSID 221 { 222 TI_UINT32 Length; 223 TMacAddr MacAddress; 224 TI_UINT16 Capabilities; 225 OS_802_11_SSID Ssid; 226 TI_UINT32 Privacy; 227 OS_802_11_RSSI Rssi; 228 OS_802_11_NETWORK_TYPE NetworkTypeInUse; 229 OS_802_11_CONFIGURATION Configuration; 230 OS_802_11_NETWORK_MODE InfrastructureMode; 231 OS_802_11_RATES SupportedRates; 232 } OS_802_11_BSSID, *POS_802_11_BSSID; 233 234 typedef struct _OS_802_11_BSSID_LIST 235 { 236 TI_UINT32 NumberOfItems; 237 OS_802_11_BSSID Bssid[1]; 238 } OS_802_11_BSSID_LIST, *POS_802_11_BSSID_LIST; 239 240 241 typedef struct _OS_802_11_BSSID_EX 242 { 243 TI_UINT32 Length; 244 TMacAddr MacAddress; 245 TI_UINT16 Capabilities; 246 OS_802_11_SSID Ssid; 247 TI_UINT32 Privacy; 248 OS_802_11_RSSI Rssi; 249 OS_802_11_NETWORK_TYPE NetworkTypeInUse; 250 OS_802_11_CONFIGURATION Configuration; 251 OS_802_11_NETWORK_MODE InfrastructureMode; 252 OS_802_11_RATES_EX SupportedRates; 253 TI_UINT32 IELength; 254 TI_UINT8 IEs[1]; 255 } OS_802_11_BSSID_EX, *POS_802_11_BSSID_EX, OS_WLAN_BSSID_EX, *POS_WLAN_BSSID_EX; 256 257 typedef struct _OS_802_11_BSSID_LIST_EX 258 { 259 TI_UINT32 NumberOfItems; 260 OS_802_11_BSSID_EX Bssid[1]; 261 } OS_802_11_BSSID_LIST_EX, *POS_802_11_BSSID_LIST_EX; 262 263 264 typedef TI_UINT32 OS_802_11_FRAGMENTATION_THRESHOLD; 265 typedef TI_UINT32 OS_802_11_RTS_THRESHOLD; 266 typedef TI_UINT32 OS_802_11_ANTENNA; 267 268 269 /*Length */ 270 /* Specifies the length of the NDIS_802_11_WEP structure in bytes. */ 271 /*KeyIndex */ 272 /* Specifies which key to add or remove. The global keys are represented */ 273 /* by values of zero to n. When the most significant bit is set to 1, */ 274 /* it indicates the key used to transmit to the access point. */ 275 /*KeyLength */ 276 /* Specifies the length of the KeyMaterial character array in bytes. */ 277 /*KeyMaterial */ 278 /* Specifies an arraythat identifies the WEP key. The length of this array is */ 279 /* variable and depends upon the value of the KeyLength member. */ 280 281 typedef TI_UINT32 OS_802_11_KEY_INDEX; 282 typedef struct _OS_802_11_WEP 283 { 284 TI_UINT32 Length; 285 TI_UINT32 KeyIndex; 286 TI_UINT32 KeyLength; 287 TI_UINT8 KeyMaterial [32]; 288 } OS_802_11_WEP, *POS_802_11_WEP; 289 290 /* Key mapping keys require a BSSID*/ 291 /*typedef tiUINT64 OS_802_11_KEY_RSC;*/ 292 293 typedef struct _OS_802_11_KEY 294 { 295 TI_UINT32 Length; /* Length of this structure*/ 296 TI_UINT32 KeyIndex; 297 TI_UINT32 KeyLength; /* length of key in bytes*/ 298 TMacAddr BSSID; 299 OS_802_11_KEY_RSC KeyRSC; 300 TI_UINT8 KeyMaterial[32]; /* variable length depending on above field*/ 301 } OS_802_11_KEY, *POS_802_11_KEY; 302 303 typedef struct _OS_802_11_REMOVE_KEY 304 { 305 TI_UINT32 Length; /* Length of this structure*/ 306 TI_UINT32 KeyIndex; 307 TMacAddr BSSID; 308 } OS_802_11_REMOVE_KEY, *POS_802_11_REMOVE_KEY; 309 310 #define OS_802_11_AI_REQFI_CAPABILITIES 1 311 #define OS_802_11_AI_REQFI_LISTENINTERVAL 2 312 #define OS_802_11_AI_REQFI_CURRENTAPADDRESS 4 313 314 315 #define OS_802_11_AI_RESFI_CAPABILITIES 1 316 #define OS_802_11_AI_RESFI_STATUSCODE 2 317 #define OS_802_11_AI_RESFI_ASSOCIATIONID 4 318 319 typedef struct _OS_802_11_AI_REQFI 320 { 321 TI_UINT16 Capabilities; 322 TI_UINT16 ListenInterval; 323 TMacAddr CurrentAPAddress; 324 #ifndef _WINDOWS 325 TI_UINT16 reserved; /* added for packing */ 326 #endif 327 } OS_802_11_AI_REQFI; 328 329 typedef struct _OS_802_11_AI_RESFI 330 { 331 TI_UINT16 Capabilities; 332 TI_UINT16 StatusCode; 333 TI_UINT16 AssociationId; 334 #ifndef _WINDOWS 335 TI_UINT16 reserved; /* added for packing */ 336 #endif 337 } OS_802_11_AI_RESFI; 338 339 typedef struct _OS_802_11_ASSOCIATION_INFORMATION 340 { 341 TI_UINT32 Length; 342 TI_UINT16 AvailableRequestFixedIEs; 343 OS_802_11_AI_REQFI RequestFixedIEs; 344 TI_UINT32 RequestIELength; 345 TI_UINT32 OffsetRequestIEs; 346 TI_UINT16 AvailableResponseFixedIEs; 347 OS_802_11_AI_RESFI ResponseFixedIEs; 348 TI_UINT32 ResponseIELength; 349 TI_UINT32 OffsetResponseIEs; 350 351 } OS_802_11_ASSOCIATION_INFORMATION, *POS_802_11_ASSOCIATION_INFORMATION; 352 353 354 /* supported EAP types*/ 355 typedef enum _OS_802_11_EAP_TYPES 356 { 357 OS_EAP_TYPE_NONE = -1, 358 OS_EAP_TYPE_MD5_CHALLENGE = 4, 359 OS_EAP_TYPE_GENERIC_TOKEN_CARD = 6, 360 OS_EAP_TYPE_TLS = 13, 361 OS_EAP_TYPE_LEAP = 17, 362 OS_EAP_TYPE_TTLS = 21, 363 OS_EAP_TYPE_PEAP = 25, 364 OS_EAP_TYPE_MS_CHAP_V2 = 26, 365 OS_EAP_TYPE_FAST = 43 366 } OS_802_11_EAP_TYPES; 367 368 /* encryption type*/ 369 typedef enum _OS_802_11_ENCRYPTION_TYPES 370 { 371 OS_ENCRYPTION_TYPE_NONE = 0, 372 OS_ENCRYPTION_TYPE_WEP, 373 OS_ENCRYPTION_TYPE_TKIP, 374 OS_ENCRYPTION_TYPE_AES 375 } OS_802_11_ENCRYPTION_TYPES; 376 377 /* Key type*/ 378 typedef enum _OS_802_11_KEY_TYPES 379 { 380 OS_KEY_TYPE_STATIC = 0, 381 OS_KEY_TYPE_DYNAMIC 382 } OS_802_11_KEY_TYPES; 383 384 /* ELP mode*/ 385 typedef enum _OS_802_11_ELP_MODES 386 { 387 OS_ELP_MODE_DISABLE, 388 OS_ELP_MODE_SYNC, 389 OS_ELP_MODE_NON_SYNC 390 } OS_802_11_ELP_MODES; 391 392 /* Roaming mode*/ 393 typedef enum _OS_802_11_ROAMING_MODES 394 { 395 OS_ROAMING_MODE_DISABLE, 396 OS_ROAMING_MODE_ENABLE 397 } OS_802_11_ROAMING_MODES; 398 399 typedef enum _OS_802_11_POWER_PROFILE 400 { 401 OS_POWER_MODE_AUTO, 402 OS_POWER_MODE_ACTIVE, 403 OS_POWER_MODE_SHORT_DOZE, 404 OS_POWER_MODE_LONG_DOZE 405 } OS_802_11_POWER_PROFILE; 406 407 typedef enum _OS_802_11_POWER_LEVELS 408 { 409 OS_POWER_LEVEL_ELP, 410 OS_POWER_LEVEL_PD, 411 OS_POWER_LEVEL_AWAKE 412 } OS_802_11_POWER_LEVELS; 413 414 415 typedef enum _OS_802_11_BEACON_FILTER_MODE 416 { 417 OS_BEACON_FILTER_MODE_INACTIVE, 418 OS_BEACON_FILTER_MODE_ACTIVE 419 } OS_802_11_BEACON_FILTER_MODE; 420 421 422 typedef enum _OS_802_11_SCAN_TYPES 423 { 424 OS_SCAN_TYPE_PASSIVE, 425 OS_SCAN_TYPE_BROADCAST, 426 OS_SCAN_TYPE_UNICAST 427 } OS_802_11_SCAN_TYPES; 428 429 typedef enum _OS_802_11_VOICE_DELIVERY_PROTOCOL 430 { 431 OS_VOICE_DELIVERY_PROTOCOL_DISABLED, 432 OS_VOICE_DELIVERY_PROTOCOL_PS_POLL 433 } OS_802_11_VOICE_DELIVERY_PROTOCOL; 434 435 typedef struct _OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS 436 { 437 TI_UINT32 uHighThreshold; 438 TI_UINT32 uLowThreshold; 439 TI_UINT32 TestInterval; 440 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_PARAMS; 441 442 typedef struct{ 443 TI_UINT32 uHighOrLowThresholdFlag; /* high or low */ 444 TI_UINT32 uAboveOrBelowFlag; /* direction of crossing */ 445 } OS_802_11_TRAFFIC_INTENSITY_THRESHOLD_CROSS_INDICATION_PARAMS; 446 447 typedef TI_UINT8 OS_802_11_PMKID_VALUE[16]; 448 449 typedef struct _OS_BSSIDInfo 450 { 451 TMacAddr BSSID; 452 OS_802_11_PMKID_VALUE PMKID; 453 } OS_BSSIDInfo, *POS_BSSIDInfo; 454 455 typedef struct _OS_802_11_PMKID 456 { 457 TI_UINT32 Length; 458 TI_UINT32 BSSIDInfoCount; 459 OS_BSSIDInfo osBSSIDInfo[1]; 460 } OS_802_11_PMKID, *POS_802_11_PMKID; 461 462 typedef enum _OS_802_11_WEP_STATUS 463 { 464 os802_11WEPEnabled = 0, 465 os802_11Encryption1Enabled = os802_11WEPEnabled, 466 os802_11WEPDisabled, 467 os802_11EncryptionDisabled = os802_11WEPDisabled, 468 os802_11WEPKeyAbsent, 469 os802_11Encryption1KeyAbsent = os802_11WEPKeyAbsent, 470 os802_11WEPNotSupported, 471 os802_11EncryptionNotSupported = os802_11WEPNotSupported, 472 os802_11Encryption2Enabled, 473 os802_11Encryption2KeyAbsent, 474 os802_11Encryption3Enabled, 475 os802_11Encryption3KeyAbsent 476 } OS_802_11_WEP_STATUS, OS_802_11_ENCRYPTION_STATUS; 477 478 /*os802_11AuthModeOpen */ 479 /* Specifies 802.11 open authentication mode. There are no checks when accepting */ 480 /* clients in this mode. */ 481 /*os802_11AuthModeShared */ 482 /* Specifies 802.11 shared authentication that uses a pre-shared wired equivalent */ 483 /* privacy (WEP) key. */ 484 /*os802_11AuthModeAutoSwitch */ 485 /* Specifies auto-switch mode. When using auto-switch mode, the NIC tries 802.11 shared */ 486 /* authentication mode first. If shared mode fails, the NIC attempts to use 802.11 open */ 487 /* authentication mode. */ 488 489 typedef enum _OS_802_11_AUTHENTICATION_MODE 490 { 491 os802_11AuthModeOpen, 492 os802_11AuthModeShared, 493 os802_11AuthModeAutoSwitch, 494 os802_11AuthModeWPA, 495 os802_11AuthModeWPAPSK, 496 os802_11AuthModeWPANone, 497 os802_11AuthModeWPA2, 498 os802_11AuthModeWPA2PSK, 499 os802_11AuthModeMax 500 } OS_802_11_AUTHENTICATION_MODE; 501 502 503 /*os802_11PrivFilterAcceptAll */ 504 /* Specifies an open mode. In this mode, the NIC accepts any packet if the packet */ 505 /* is not encrypted or if the NIC successfully decrypts it. */ 506 /*os802_11PrivFilter8021xWEP */ 507 /* Specifies a filtering mode. In the 802.1X filtering mode, 802.1X packets are */ 508 /* accepted even if they are not encrypted. However, the NIC accepts nothing else */ 509 /* unless it is encrypted using WEP. */ 510 typedef enum _OS_802_11_PRIVACY_FILTER 511 { 512 os802_11PrivFilterAcceptAll, 513 os802_11PrivFilter8021xWEP 514 } OS_802_11_PRIVACY_FILTER; 515 516 typedef enum _OS_802_11_RELOAD_DEFAULTS 517 { 518 os802_11ReloadWEPKeys 519 } OS_802_11_RELOAD_DEFAULTS, *POS_802_11_RELOAD_DEFAULTS; 520 521 typedef enum _OS_802_11_STATUS_TYPE 522 { 523 os802_11StatusType_Authentication, 524 os802_11StatusType_PMKID_CandidateList = 2, 525 os802_11StatusTypeMax /* not a real type, defined as an upper bound */ 526 } OS_802_11_STATUS_TYPE, *POS_802_11_STATUS_TYPE; 527 528 typedef struct _OS_802_11_STATUS_INDICATION 529 { 530 OS_802_11_STATUS_TYPE StatusType; 531 } OS_802_11_STATUS_INDICATION, *POS_802_11_STATUS_INDICATION; 532 533 534 typedef struct _OS_802_11_AUTHENTICATION_REQUEST 535 { 536 TI_UINT32 Length; /* Length of this structure*/ 537 TMacAddr BSSID; 538 TI_UINT32 Flags; 539 } OS_802_11_AUTHENTICATION_REQUEST, *POS_802_11_AUTHENTICATION_REQUEST; 540 541 typedef enum 542 { 543 OS_DISASSOC_STATUS_UNSPECIFIED = 0, 544 OS_DISASSOC_STATUS_AUTH_REJECT = 1, 545 OS_DISASSOC_STATUS_ASSOC_REJECT = 2, 546 OS_DISASSOC_STATUS_SECURITY_FAILURE = 3, 547 OS_DISASSOC_STATUS_AP_DEAUTHENTICATE = 4, 548 OS_DISASSOC_STATUS_AP_DISASSOCIATE = 5, 549 OS_DISASSOC_STATUS_ROAMING_TRIGGER = 6 550 551 } OS_802_11_DISASSOCIATE_REASON_E; 552 553 typedef struct 554 { 555 OS_802_11_DISASSOCIATE_REASON_E eDisAssocType; 556 TI_UINT32 uStatusCode; 557 } OS_802_11_DISASSOCIATE_REASON_T; 558 559 560 561 #define OS_802_11_PMKID_CANDIDATE_PREAUTH_ENABLE 0x01 562 563 typedef struct _OS_802_11_PMKID_CANDIDATE 564 { 565 TMacAddr BSSID; 566 TI_UINT32 Flags; 567 } OS_802_11_PMKID_CANDIDATE, *POS_802_11_PMKID_CANDIDATE; 568 569 typedef struct _OS_802_11_PMKID_CANDIDATELIST 570 { 571 TI_UINT32 Version; /* Version of the structure*/ 572 TI_UINT32 NumCandidates; /* No. of pmkid candidates*/ 573 OS_802_11_PMKID_CANDIDATE CandidateList[1]; 574 } OS_802_11_PMKID_CANDIDATELIST, *POS_802_11_PMKID_CANDIDATELIST; 575 576 577 typedef TI_UINT8 OS_802_11_MAC_PMKID_VALUE[16]; 578 579 typedef struct _OS_802_11_BSSIDInfo 580 { 581 TMacAddr BSSID; 582 OS_802_11_MAC_PMKID_VALUE PMKID; 583 } OS_802_11_BSSIDInfo, *POS_802_11_BSSIDInfo; 584 585 586 typedef struct _OS_802_11_AUTH_ENCRYPTION 587 { 588 OS_802_11_AUTHENTICATION_MODE AuthModeSupported; 589 OS_802_11_ENCRYPTION_STATUS EncryptionStatusSupported; 590 } OS_802_11_AUTH_ENCRYPTION, *POS_802_11_AUTH_ENCRYPTION; 591 592 593 typedef struct _OS_802_11_CAPABILITY 594 { 595 TI_UINT32 Length; 596 TI_UINT32 Version; 597 TI_UINT32 NoOfPmKIDs; 598 TI_UINT32 NoOfAuthEncryptPairsSupported; 599 OS_802_11_AUTH_ENCRYPTION AuthEncryptionSupported[1]; 600 601 } OS_802_11_CAPABILITY, *POS_802_11_CAPABILITY; 602 603 #define OID_CAPABILITY_VERSION 2 604 605 606 607 typedef enum _OS_802_11_REG_DOMAIN 608 { 609 os802_11_Domain_FCC = 0x10, 610 os802_11_Domain_IC = 0x20, 611 os802_11_Domain_ETSI = 0x30, 612 os802_11_Domain_Spain = 0x31, 613 os802_11_Domain_France = 0x32, 614 os802_11_Domain_MKK = 0x40, 615 os802_11_Domain_MKK1 = 0x41, 616 os802_11_Domain_US = 0x50, 617 os802_11_Domain_WB = 0x51, 618 os802_11_Domain_EXWB = 0x52 619 } OS_802_11_REG_DOMAIN; 620 621 622 623 #define OID_TI_VERSION 0xFF080001 624 625 626 /* propritary OIDs used by FUNK supplicant for WPA Mixed mode support*/ 627 /* WPA2 MIxed mode OIDs */ 628 #define CGUID_FSW_802_11_AVAILABLE_OPTIONS {0x1a905534, 0xe71f, 0x46d1, {0xa2, 0xcb, 0xa5, 0x57, 0x01, 0x76, 0x38, 0xfd}} 629 #define CGUID_FSW_802_11_OPTIONS {0xdc7a51b7, 0x2236, 0x467d, {0xb1, 0x55, 0x03, 0x50, 0x42, 0x04, 0xcf, 0x30}} 630 631 #define OID_FSW_802_11_AVAILABLE_OPTIONS 0xFF010237 632 #define OID_FSW_802_11_OPTIONS 0xFF010238 633 634 635 636 /**/ 637 /* IEEE 802.11 OIDs*/ 638 /**/ 639 #define OID_802_11_BSSID 0x0D010101 640 #define OID_802_11_SSID 0x0D010102 641 #define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108 642 #define OID_802_11_ADD_WEP 0x0D010113 643 #define OID_802_11_REMOVE_WEP 0x0D010114 644 #define OID_802_11_DISASSOCIATE 0x0D010115 645 #define OID_802_11_AUTHENTICATION_MODE 0x0D010118 646 #define OID_802_11_PRIVACY_FILTER 0x0D010119 647 #define OID_802_11_BSSID_LIST_SCAN 0x0D01011A 648 #define OID_802_11_WEP_STATUS 0x0D01011B 649 #define OID_802_11_RELOAD_DEFAULTS 0x0D01011C 650 #define OID_802_11_ADD_KEY 0x0D01011D 651 #define OID_802_11_REMOVE_KEY 0x0D01011E 652 #define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F 653 #define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203 654 #define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204 655 #define OID_802_11_TX_POWER_LEVEL 0x0D010205 656 #define OID_802_11_RSSI 0x0D010206 657 #define OID_802_11_RSSI_TRIGGER 0x0D010207 658 #define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209 659 #define OID_802_11_RTS_THRESHOLD 0x0D01020A 660 #define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B 661 #define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C 662 #define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D 663 #define OID_802_11_SUPPORTED_RATES 0x0D01020E 664 #define OID_802_11_DESIRED_RATES 0x0D010210 665 #define OID_802_11_CONFIGURATION 0x0D010211 666 #define OID_802_11_STATISTICS 0x0D020212 667 #define OID_802_11_POWER_MODE 0x0D010216 668 #define OID_802_11_BSSID_LIST 0x0D010217 669 670 671 #ifndef _USER_MODE 672 #include "osdot11nousermode.h" 673 #endif 674 675 676 677 678 /* AnyWPA mode flags used in propritary FUNK suplicant OIDs*/ 679 680 #define OS_802_11_OPTION_ENABLE_PROMOTE_MODE 0x00000001 /*bit 0*/ 681 #define OS_802_11_OPTION_ENABLE_PROMOTE_CIPHER 0x00000002 /*bit 1*/ 682 #define OS_802_11_OPTION_DISABLE_PROMOTE_MODE 0 683 #define OS_802_11_OPTION_ENABLE_ALL 0x00000003 684 685 #endif 686