Files
m241Neelima/vxworks-6.9/target/h/drv/wlan/dot11UsrLib.h
T
2026-07-30 11:19:44 +05:30

1147 lines
51 KiB
C

/* dot11UsrLib.h - Contains the definitions required by users of DOT11 lib */
/*
* Copyright (c) 2004-2006 Wind River Systems, Inc.
*
* The right to copy, distribute, modify or otherwise make use
* of this software may be licensed only pursuant to the terms
* of an applicable Wind River license agreement.
*/
/*
Modification History
--------------------
01t,27jun08,mry Adding support for DEAUTH Ioctl
01s,11jun08,mry Adding support for tkip countermeasures ioctl
01r,02apr08,mry Adding support in Atheros driver for external supplicant to
specify external EAPOL processing (4wayHS)
01q,21feb08,mry Merging ipsupp/ipeap changes
01p,31oct07,mry Fix for WIND00109746
01o,15aug07,spw Added WIOCGACL
01n,27feb06,rb Code inspection changes
01m,14feb06,rb Removed redundant VLAN IOCTLs
01l,16nov05,rb Added IOCTLs for mSSID feature
01k,12sep05,rb Added WIOCSSCANTYPE
01j,25aug05,rb Modified channel structures for 802.11d
01j,30aug05,rb Removed legacy IOCTL definitions and added WIOCDPAIRWISEKEY
01i,19aug05,rb Added macros for turbo mode
01h,04aug05,rb Added WIOCGCHANNELLIST
01g,03aug05,rb Added WIOCSUSERAUTHCALLBACK
01f,28apr05,rb Added _BIT definition to dot11UsrLib.h; Moved encryption types
to usrLib
01e,27apr05,rb Extended DOT11_STATS for SPR 108017
01d,25apr05,rb Moved definitions needed for IOCTLs from dot11Lib.h to
dot11UsrLib.h
01c,14apr05,rb Added support fr Transmit Power Scaling (WIOCSTXPOWERSCALE)
01b,09mar05,rb Added WIOCGHWVERS
01a,21feb05,rb Initial split from dot11Lib.h
*/
/*
DESCRIPTION
This file contains all of the definitions required to manage the Wind River
Wirelss Ethernet Driver.
*/
#ifndef __INCdot11UsrLibh
#define __INCdot11UsrLibh
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#include <vxWorks.h>
/*****************************************************************************
* Public DOT11 Data structures and definitions
*****************************************************************************/
#ifndef _BIT
#define _BIT(x) (1<<(x))
#endif
/**************************************************************************
* DOT11_SSID - Structure representing an SSID
***************************************************************************/
#define DOT11_SSID_LEN 32
typedef char DOT11_SSID[DOT11_SSID_LEN + 1];
/**************************************************************************
* DOT11_ADDR - An 802.11 hardware address. Same as MAC address.
***************************************************************************/
#define DOT11_ADDR_LEN 6
typedef UINT8 DOT11_ADDR[DOT11_ADDR_LEN];
/**************************************************************************
* DOT11_RATES - A set of rates in IEEE format (units of 500 kb/s). Rates
* are listed in ascending order. If relevent, required
* rates are specified by setting bit 7, otherwise this
* bit is clear.
**************************************************************************/
#define DOT11_MAX_RATES 256
typedef struct
{
int length;
UINT8 rates[DOT11_MAX_RATES];
} _WRS_PACK_ALIGN(1) DOT11_RATES;
/* Routines for manipulating rates according to the IEEE standard */
#define DOT11_RATE(x) (((x) & 0x7f) / 2)
#define DOT11_RATE_MASK(x) (((x) & 0x7f))
#define DOT11_IS_BRATE(x) (((x) & 0x80) == 0x80)
/**************************************************************************
* DOT11_KEY - An 802.11 Encryption Key.
***************************************************************************/
typedef unsigned long int DOT11_KEY_TYPE;
#define DOT11_KEY_TYPE_NONE 0
#define DOT11_KEY_TYPE_WEP40 DOT11_CIPHPOL_WEP40
#define DOT11_KEY_TYPE_WEP104 DOT11_CIPHPOL_WEP104
#define DOT11_KEY_TYPE_TKIP DOT11_CIPHPOL_TKIP
#define DOT11_KEY_TYPE_AES DOT11_CIPHPOL_AES
#define DOT11_KEY_TYPE_MAX (DOT11_KEY_TYPE_AES + 1)
#define DOT11_WEP40_KEY_SIZE 5 /* Bytes */
#define DOT11_WEP104_KEY_SIZE 13 /* Bytes */
#define DOT11_AES_KEY_SIZE 16 /* Bytes */
#define DOT11_TKIP_KEY_SIZE 32 /* 16 Bytes key, 2x8 bytes MIC */
typedef struct
{
DOT11_KEY_TYPE keyType;
INT32 keySlot; /* Keyslot key was installed to */
UINT8 macAddr[DOT11_ADDR_LEN];
union
{
UINT8 wep40[DOT11_WEP40_KEY_SIZE];
UINT8 wep104[DOT11_WEP104_KEY_SIZE];
UINT8 aes[DOT11_AES_KEY_SIZE];
UINT8 tkip[DOT11_TKIP_KEY_SIZE];
} type;
UINT16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_KEY;
/* structure used by 4 WAY Handshake state Ioctl */
typedef struct
{
BOOL established; /* 4 WAY Handshake established or not */
UINT8 macAddr[DOT11_ADDR_LEN];
UINT16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_4WAYHSSTATE;
typedef struct
{
UINT32 reason;
UINT8 macAddr[DOT11_ADDR_LEN];
UINT16 dummy_pad; /* Make struct 4 byte aligned to avoid compiler packing issues */
} DOT11_DEAUTH_REQ;
/* This is the length of the pre-shared key for WPA and 802.11i. */
#define DOT11_PSK_LEN 64 /* bytes */
typedef UINT8 DOT11_PSK[DOT11_PSK_LEN];
#define DOT11_PASSPHRASE_LEN 63
typedef char DOT11_PASSPHRASE[DOT11_PASSPHRASE_LEN];
#define DOT11_HWVERS_BUF_LEN 256
typedef char DOT11_HWVERS_BUF[DOT11_HWVERS_BUF_LEN];
/****************************************************************************
* DOT11_CAPABILITIES - This is the Capabilities field of Management Frames as
* per 7.3.1.4 of IEEE 802.11(2003)
****************************************************************************/
typedef UINT16 DOT11_CAPABILITIES;
#define DOT11_CAP_ISESS _BIT(0)
#define DOT11_CAP_ISIBSS _BIT(1)
#define DOT11_CAP_CFPOLLABLE _BIT(2)
#define DOT11_CAP_CFPOLLREQ _BIT(3)
#define DOT11_CAP_PRIVACY _BIT(4)
#define DOT11_CAP_SHORT_PREAMBLE _BIT(5)
#define DOT11_CAP_PBCC _BIT(6)
#define DOT11_CAP_CHANNEL_AGILITY _BIT(7)
#define DOT11_CAP_SHORT_TIME_SLOT _BIT(10)
/****************************************************************************
* DOT11_COUNTRY_CODES - the list of available country codes that can be passed
* to WIOCSCOUNTRYCODE. More country codes can be found
* in ISO 3166, but this is the current list supported
* by the available hardware.
*****************************************************************************/
/* DOT11_COUNTRY_NONE can only be used as a default country on a station. If
it is set as the default country, then 802.11d MUST be used to find the
current country. If no country-advertising APs are found, then the station
will not transmit anything */
#define DOT11_COUNTRY_NONE 0
#define DOT11_COUNTRY_ALBANIA 8
#define DOT11_COUNTRY_ALGERIA 12
#define DOT11_COUNTRY_ARGENTINA 32
#define DOT11_COUNTRY_ARMENIA 51
#define DOT11_COUNTRY_AUSTRALIA 36
#define DOT11_COUNTRY_AUSTRIA 40
#define DOT11_COUNTRY_AZERBAIJAN 31
#define DOT11_COUNTRY_BAHRAIN 48
#define DOT11_COUNTRY_BELARUS 112
#define DOT11_COUNTRY_BELGIUM 56
#define DOT11_COUNTRY_BELIZE 84
#define DOT11_COUNTRY_BOLIVIA 68
#define DOT11_COUNTRY_BRAZIL 76
#define DOT11_COUNTRY_BRUNEI_DARUSSALAM 96
#define DOT11_COUNTRY_BULGARIA 100
#define DOT11_COUNTRY_CANADA 124
#define DOT11_COUNTRY_CHILE 152
#define DOT11_COUNTRY_CHINA 156
#define DOT11_COUNTRY_COLOMBIA 170
#define DOT11_COUNTRY_COSTA_RICA 188
#define DOT11_COUNTRY_CROATIA 191
#define DOT11_COUNTRY_CYPRUS 196
#define DOT11_COUNTRY_CZECH 203
#define DOT11_COUNTRY_DENMARK 208
#define DOT11_COUNTRY_DOMINICAN_REPUBLIC 214
#define DOT11_COUNTRY_ECUADOR 218
#define DOT11_COUNTRY_EGYPT 818
#define DOT11_COUNTRY_EL_SALVADOR 222
#define DOT11_COUNTRY_ESTONIA 233
#define DOT11_COUNTRY_FAEROE_ISLANDS 234
#define DOT11_COUNTRY_FINLAND 246
#define DOT11_COUNTRY_FRANCE 250
#define DOT11_COUNTRY_FRANCE2 255
#define DOT11_COUNTRY_GEORGIA 268
#define DOT11_COUNTRY_GERMANY 276
#define DOT11_COUNTRY_GREECE 300
#define DOT11_COUNTRY_GUATEMALA 320
#define DOT11_COUNTRY_HONDURAS 340
#define DOT11_COUNTRY_HONG_KONG 344
#define DOT11_COUNTRY_HUNGARY 348
#define DOT11_COUNTRY_ICELAND 352
#define DOT11_COUNTRY_INDIA 356
#define DOT11_COUNTRY_INDONESIA 360
#define DOT11_COUNTRY_IRAN 364
#define DOT11_COUNTRY_IRAQ 368
#define DOT11_COUNTRY_IRELAND 372
#define DOT11_COUNTRY_ISRAEL 376
#define DOT11_COUNTRY_ITALY 380
#define DOT11_COUNTRY_JAMAICA 388
#define DOT11_COUNTRY_JAPAN 392
#define DOT11_COUNTRY_JAPAN1 393
#define DOT11_COUNTRY_JAPAN2 394
#define DOT11_COUNTRY_JAPAN3 395
#define DOT11_COUNTRY_JAPAN4 396
#define DOT11_COUNTRY_JAPAN5 397
#define DOT11_COUNTRY_JORDAN 400
#define DOT11_COUNTRY_KAZAKHSTAN 398
#define DOT11_COUNTRY_KENYA 404
#define DOT11_COUNTRY_KOREA_NORTH 408
#define DOT11_COUNTRY_KOREA_ROC 410
#define DOT11_COUNTRY_KOREA_ROC2 411
#define DOT11_COUNTRY_KUWAIT 414
#define DOT11_COUNTRY_LATVIA 428
#define DOT11_COUNTRY_LEBANON 422
#define DOT11_COUNTRY_LIBYA 434
#define DOT11_COUNTRY_LIECHTENSTEIN 438
#define DOT11_COUNTRY_LITHUANIA 440
#define DOT11_COUNTRY_LUXEMBOURG 442
#define DOT11_COUNTRY_MACAU 446
#define DOT11_COUNTRY_MACEDONIA 807
#define DOT11_COUNTRY_MALAYSIA 458
#define DOT11_COUNTRY_MEXICO 484
#define DOT11_COUNTRY_MONACO 492
#define DOT11_COUNTRY_MOROCCO 504
#define DOT11_COUNTRY_NETHERLANDS 528
#define DOT11_COUNTRY_NEW_ZEALAND 554
#define DOT11_COUNTRY_NICARAGUA 558
#define DOT11_COUNTRY_NORWAY 578
#define DOT11_COUNTRY_OMAN 512
#define DOT11_COUNTRY_PAKISTAN 586
#define DOT11_COUNTRY_PANAMA 591
#define DOT11_COUNTRY_PARAGUAY 600
#define DOT11_COUNTRY_PERU 604
#define DOT11_COUNTRY_PHILIPPINES 608
#define DOT11_COUNTRY_POLAND 616
#define DOT11_COUNTRY_PORTUGAL 620
#define DOT11_COUNTRY_PUERTO_RICO 630
#define DOT11_COUNTRY_QATAR 634
#define DOT11_COUNTRY_ROMANIA 642
#define DOT11_COUNTRY_RUSSIA 643
#define DOT11_COUNTRY_SAUDI_ARABIA 682
#define DOT11_COUNTRY_SINGAPORE 702
#define DOT11_COUNTRY_SLOVAKIA 703
#define DOT11_COUNTRY_SLOVENIA 705
#define DOT11_COUNTRY_SOUTH_AFRICA 710
#define DOT11_COUNTRY_SPAIN 724
#define DOT11_COUNTRY_SWEDEN 752
#define DOT11_COUNTRY_SWITZERLAND 756
#define DOT11_COUNTRY_SYRIA 760
#define DOT11_COUNTRY_TAIWAN 158
#define DOT11_COUNTRY_THAILAND 764
#define DOT11_COUNTRY_TRINIDAD_Y_TOBAGO 780
#define DOT11_COUNTRY_TUNISIA 788
#define DOT11_COUNTRY_TURKEY 792
#define DOT11_COUNTRY_UAE 784
#define DOT11_COUNTRY_UKRAINE 804
#define DOT11_COUNTRY_UNITED_KINGDOM 826
#define DOT11_COUNTRY_UNITED_STATES 840
#define DOT11_COUNTRY_URUGUAY 858
#define DOT11_COUNTRY_UZBEKISTAN 860
#define DOT11_COUNTRY_VENEZUELA 862
#define DOT11_COUNTRY_VIET_NAM 704
#define DOT11_COUNTRY_YEMEN 887
#define DOT11_COUNTRY_ZIMBABWE 716
/*****************************************************************************
* Public DOT11 IOCTL Commands
*****************************************************************************/
#include "sys/ioctl.h"
/* For backwards compatability, define the "user mode" IOCTL macros manually
if they are not already defined. They should be defined in vxWorks 6.1 and
higher */
#ifndef IOC_USER
#define IOC_USER 0x8000
#endif /* IOC_USER */
#ifndef _IOU
#define _IOU(x,y) (IOC_USER | _IO(x,y))
#endif
#ifndef _IORU
#define _IORU(x,y,t) (IOC_USER | _IOR(x,y,t))
#endif
#ifndef _IOWU
#define _IOWU(x,y,t) (IOC_USER | _IOW(x,y,t))
#endif
#ifndef _IOWRU
#define _IOWRU(x,y,t) (IOC_USER | _IOWR(x,y,t))
#endif
/***************************************************************************
* WIOCGSTATS - Get Card Statistics
****************************************************************************/
typedef struct /* DOT11_STATS */
{
/* total number of packets (after reassembly) both unicast and
multicast data frames. */
UINT32 rxFrames;
/* total number of received fragments, both data and
management, multicast and unicast. */
UINT32 rxFragments;
/* total number of received multicast data fragments */
UINT32 rxMcastFragments;
/* total bytes of data received, all frame types and destinations */
unsigned long long int rxTotalBytes;
/* Number of frames erroneously retransmitted; frames with same sequence
number as the one previous */
UINT32 rxDuplicates;
/* Number of frames dropped by the hardware due to Frame CheckSum
failure */
UINT32 rxFCSError;
/* Number of frames dropped due to miscellaneous errors */
UINT32 rxHardwareError;
/* Number of frames received that were unable to be decoded, most likely
due to incorrect encryption keys */
UINT32 rxDecryptError;
/* Michael failures. This statistic only applies to TKIP frames */
UINT32 rxMicFailure;
/* Number of unencrypted frames received and dropped while encryption is
turned on */
UINT32 rxExcludeUnencrypted;
/* Number of received frames that were dropped due to the receive port
being 802.1X unauthorized */
UINT32 rxDot1xDropped;
/* Frames that were dropped because there wasn't room in the reassembly
queue, because all fragments were not received in the specified timeout
period, or beacause an out-of-order fragment was received. */
UINT32 rxCantReassemble;
/* The number of data bytes that were received in the last second, updated
every second. */
UINT32 rxBytesPerSec;
/* The nubmer of databytes received in the last sixteen seconds, updated
every sixteen seconds. */
UINT32 rxBytesPer16Sec;
/* The total number of data frames (before fragmentation) transmitted */
UINT32 txFrames;
/* The total number of fragments (data and management) transmitted */
UINT32 txFragments;
/* The total number of multicast data frames transmitted */
UINT32 txMcastFragments;
/* The total number of bytes in all packets transmitted */
unsigned long long int txTotalBytes;
/* The number of packets that were succesfully transmitted after one or
more retries */
UINT32 txRetry;
/* The number of packets that were transmitted after more than one retry */
UINT32 txRetryMultiple;
/* The number of packets that were not transmitted due to too many
retries */
UINT32 txRetryFailure;
/* The number of times a transmitted frame failed to get an ACK from the
receiver */
UINT32 txAckFailure;
/* The number of RTS frames transmitted to which a CTS was never
received */
UINT32 txRTSFailure;
/* The number of RTS frames transmitted to which a CTS was received */
UINT32 txRTSSuccess;
/* The number of egress frames dropped due to hardware failure or queue
overflow */
UINT32 txHardwareError;
/* The number of egress data frames dropped due to the 802.1X port being
unauthorized. */
UINT32 txDot1xDropped;
/* The number of data bytes transmitted in the last second, updated every
second */
UINT32 txBytesPerSec;
/* The number of data bytes transmitted in the last sixteen seconds,
updated every sixteen seconds */
UINT32 txBytesPer16Sec;
/* The number of four-way handshakes that completed successfully, as far
as this unit can tell. Note that this cannot catch errors that occured on
a station on the last frame sent to the AP */
UINT32 fourWaySuccess;
/* The number of four-way handshakes that failed at this unit. */
UINT32 fourWayFailure;
/* The number of group key exchanges that completed successfully, as far as
this unit can tell. Note that this cannot detect problems with the last
packet a station sends to the AP if this unit is a station. */
UINT32 groupExchangeSuccess;
/* The number of group key exchanges that failed */
UINT32 groupExchangeFailure;
} DOT11_STATS;
#define WIOCGSTATS _IORU('w', 0x001, DOT11_STATS)
/***************************************************************************
* WIOCGLINKSTAT - Get Link Status
****************************************************************************/
/* Link Status */
#define DOT11_LINK_SLEEP 2
#define DOT11_LINK_UP 1
#define DOT11_LINK_DOWN 0
#define WIOCGLINKSTAT _IORU('w', 0x002, UINT32)
/***************************************************************************
* WIOCGDESIREDSSID - Get Wireless Network Name
****************************************************************************/
#define WIOCGDESIREDSSID _IORU('w', 0x003, DOT11_SSID)
/***************************************************************************
* WIOCSSSID - Set Wireless Network Name
****************************************************************************/
#define WIOCSSSID _IOWU('w', 0x004, DOT11_SSID)
/***************************************************************************
* WIOCGCONNECTEDSSID - Get current BSS
****************************************************************************/
#define WIOCGCONNECTEDSSID _IORU('w', 0x005, DOT11_SSID)
/***************************************************************************
* WIOCGCONNECTEDBSSID - Get connected BSSID
****************************************************************************/
#define WIOCGCONNECTEDBSSID _IORU('w', 0x006, DOT11_ADDR)
/***************************************************************************
* WIOCGTXRATE - Get current transmit rate
****************************************************************************/
#define WIOCGTXRATE _IORU('w', 0x007, UINT32)
/***************************************************************************
* WIOCSTXRATE - Set Transmit Speed
****************************************************************************/
#define WIOCSTXRATE _IOWU('w', 0x008, DOT11_RATES)
/***************************************************************************
* WIOCGPWRMAN - Get Power Management Status
****************************************************************************/
#define WIOCGPWRMAN _IORU('w', 0x009, UINT32)
/***************************************************************************
* WIOCSPWRMAN - Set Power Management Status
****************************************************************************/
#define DOT11_PWRMAN_ENABLED TRUE
#define DOT11_PWRMAN_DISABLED FALSE
#define WIOCSPWRMAN _IOU('w', 0x00a)
/***************************************************************************
* WIOCGCOMMQUAL - Get Communications Quality
****************************************************************************/
#define WIOCGCOMMQUAL _IORU('w', 0x00b, UINT32)
/***************************************************************************
* WIOCGCARDTYPE - Get Card Type
****************************************************************************/
#define WIOCGCARDTYPE _IORU('w', 0x00c, UINT32)
/***************************************************************************
* WIOCGCHANNEL - Get Channel
****************************************************************************/
#define WIOCGCHANNEL _IORU('w', 0x00d, UINT32)
/***************************************************************************
* WIOCSCHANNEL - Set Channel
****************************************************************************/
#define WIOCSCHANNEL _IOU('w', 0x00e)
/***************************************************************************
* WIOCGWEPAVAIL - Get WEP Availability
****************************************************************************/
#define WIOCGWEPAVAIL _IORU('w', 0x00f, UINT32)
/***************************************************************************
* WIOCSWEPKEY0 - Set value for WEP KEY 0
****************************************************************************/
#define WIOCSWEPKEY0 _IOWU('w', 0x010, DOT11_KEY)
/***************************************************************************
* WIOCSWEPKEY1 - Set value for WEP KEY 1
****************************************************************************/
#define WIOCSWEPKEY1 _IOWU('w', 0x011, DOT11_KEY)
/***************************************************************************
* WIOCSWEPKEY2 - Set value for WEP KEY 2
****************************************************************************/
#define WIOCSWEPKEY2 _IOWU('w', 0x012, DOT11_KEY)
/***************************************************************************
* WIOCSWEPKEY3 - Set value for WEP KEY 3
****************************************************************************/
#define WIOCSWEPKEY3 _IOWU('w', 0x013, DOT11_KEY)
/***************************************************************************
* WIOCSWEPDEFAULTKEY - Set WEP default key
****************************************************************************/
#define WIOCSWEPDEFAULTKEY _IOU('w', 0x014)
/***************************************************************************
* WIOCGENCRYPTTYPE - Get current encryption type
****************************************************************************/
#define WIOCGENCRYPTTYPE _IORU('w', 0x015, UINT32)
/***************************************************************************
* WIOCSENCRYPTTYPE - Set current encryption type
****************************************************************************/
typedef enum
{
DOT11_ENCRYPT_NONE,
DOT11_ENCRYPT_WEP40,
DOT11_ENCRYPT_WEP104,
DOT11_ENCRYPT_MAX /* Number of entries in enumeration */
} DOT11_ENCRYPT_TYPE;
#define WIOCSENCRYPTTYPE _IOU('w', 0x016)
/***************************************************************************
* WIOCAACLSTA - Add a STA to AP authentication list
****************************************************************************/
#define WIOCAACLSTA _IOWU('w', 0x017, DOT11_ADDR)
/***************************************************************************
* WIOCDACLSTA - Delete a STA from AP auth list
****************************************************************************/
#define WIOCDACLSTA _IOWU('w', 0x018, DOT11_ADDR)
/***************************************************************************
* WIOCSEXUNENCRYPT - Set exclude unencrypted
****************************************************************************/
typedef enum
{
DOT11_EX_UNENCRYPTED, /* Exclude all unencrypted packets */
DOT11_EX_DOT1X, /* Exclude all unencrypted packets except EAPOL */
DOT11_EX_NONE /* Allow unencrypted and encrypted traffic */
} DOT11_EX_POLICY;
#define WIOCSEXUNENCRYPT _IOU('w', 0x019)
/***************************************************************************
* WIOCGEXUNENCRYPT - Get exclude unencrypted
****************************************************************************/
#define WIOCGEXUNENCRYPT _IORU('w', 0x01a, UINT32)
/***************************************************************************
* WIOCGAUTHTYPE - Get Authentication protocol UINT32 *
****************************************************************************/
#define DOT11_AUTHTYPE_OPEN 1 /* Open system authentication */
#define DOT11_AUTHTYPE_SKA 2 /* Shared key authentication */
#define DOT11_AUTHTYPE_ALL 3 /* Allow all available authentication type */
#define WIOCGAUTHTYPE _IORU('w', 0x01b, UINT32)
/***************************************************************************
* WIOCSAUTHTYPE - Set Authentication protocol UINT32
****************************************************************************/
#define WIOCSAUTHTYPE _IOU('w', 0x01c)
/***************************************************************************
* WIOCSBEACONRATE - Set rate for AP beaconing UINT32
****************************************************************************/
#define WIOCSBEACONRATE _IOU('w', 0x01e)
/***************************************************************************
* WIOCGBEACONRATE - Get rate for AP beaconing UINT32 *
****************************************************************************/
#define WIOCGBEACONRATE _IORU('w', 0x01f, UINT32)
/***************************************************************************
* WIOCGMAC - Get MAC address UNIT32 *
****************************************************************************/
#define WIOCGMAC _IORU('w', 0x020, DOT11_ADDR)
/***************************************************************************
* WIOCSCTSRTS - Set CTS/RTS UINT32
****************************************************************************/
#define DOT11_CTSRTS_MAX 2307
#define WIOCSCTSRTS _IOU('w', 0x021)
/***************************************************************************
* WIOCGCTSRTS - Get CTS/RTS UINT32 *
****************************************************************************/
#define WIOCGCTSRTS _IORU('w', 0x022, UINT32)
/***************************************************************************
* WIOCSSHORTRETRY - Set Short Retry Limit
****************************************************************************/
#define WIOCSSHORTRETRY _IOU('w', 0x023)
/***************************************************************************
* WIOCGSHORTRETRY - Get Short Retry Limit
****************************************************************************/
#define WIOCGSHORTRETRY _IORU('w', 0x024, UINT32)
/***************************************************************************
* WIOCSLONGRETRY - Set Long Retry Limit
****************************************************************************/
#define WIOCSLONGRETRY _IOU('w', 0x025)
/***************************************************************************
* WIOCGLONGRETRY - Get Long Retry Limit
****************************************************************************/
#define WIOCGLONGRETRY _IORU('w', 0x026, UINT32)
/***************************************************************************
* WIOCSFRAGTHRESH - Set Fragmentation threshold UINT32
****************************************************************************/
#define WIOCSFRAGTHRESH _IOU('w', 0x027)
/***************************************************************************
* WIOCGFRAGTHRESH - Get Fragmentation threshold UINT32 *
****************************************************************************/
#define WIOCGFRAGTHRESH _IORU('w', 0x028, UINT32)
/***************************************************************************
* WIOCSMAXTXLIFE - Set Max Transmit MSDU Life
****************************************************************************/
#define WIOCSMAXTXLIFE _IOU('w', 0x029)
/***************************************************************************
* WIOCGMAXTXLIFE - Get Max Transmit MSDU Life
****************************************************************************/
#define WIOCGMAXTXLIFE _IORU('w', 0x02a, UINT32)
/***************************************************************************
* WIOCSMAXRXLIFE - Set Max Receive Lifetime
****************************************************************************/
#define WIOCSMAXRXLIFE _IOU('w', 0x02b)
/***************************************************************************
* WIOCGMAXRXLIFE - Get Max Receive Lifetime
****************************************************************************/
#define WIOCGMAXRXLIFE _IORU('w', 0x02c, UINT32)
/***************************************************************************
* WIOCSPREAMBLE - Set preamble length UINT32
****************************************************************************/
#define WIOCSPREAMBLE _IOU('w', 0x02d)
/***************************************************************************
* WIOCGPREAMBLE - Get preamble length UINT32 *
****************************************************************************/
#define WIOCGPREAMBLE _IORU('w', 0x02e, UINT32)
/***************************************************************************
* WIOCSAUTHRESPTO - Set Authentication response timeout UINT32
****************************************************************************/
#define WIOCSAUTHRESPTO _IOU('w', 0x02f)
/***************************************************************************
* WIOCGAUTHRESPTO - Get Authentication response timeout UINT32 *
****************************************************************************/
#define WIOCGAUTHRESPTO _IORU('w', 0x030, UINT32)
/* WIOCSUNICASTKEYNUM, WIOCGUNICASTKEYNUM, WIOCSMULTICASTKEYNUM,
WIOCGMULTICASTKEYNUM are all invalid IOCTLs as of the 2.2 version. */
/***************************************************************************
* WIOCSADVSECURITY - Set advanced security options UINT32
****************************************************************************/
#define DOT11_ADVSEC_HIDE_SSID _BIT(0)
#define DOT11_ADVSEC_BLOCK_BCAST_SSID _BIT(1)
#define WIOCSADVSECURITY _IOU('w', 0x035)
/***************************************************************************
* WIOCGADVSECURITY - Get advanced security options UINT32 *
****************************************************************************/
#define WIOCGADVSECURITY _IORU('w', 0x036, UINT32)
/***************************************************************************
* WIOCSOCCUPANCY - Set Medium Occupancy Limit
****************************************************************************/
#define WIOCSOCCUPANCY _IOU('w', 0x037)
/***************************************************************************
* WIOCGOCCUPANCY - Get Medium Occupancy Limit
****************************************************************************/
#define WIOCGOCCUPANCY _IORU('w', 0x038, UINT32)
/***************************************************************************
* WIOCGCFPPOLL - Get CFP Pollable UNIT 32 *
****************************************************************************/
#define WIOCGCFPPOLL _IORU('w', 0x039, UINT32)
/***************************************************************************
* WIOCSCFPPERIOD - Set CFP Period
****************************************************************************/
#define WIOCSCFPPERIOD _IOU('w', 0x03a)
/***************************************************************************
* WIOCGCFPPERIOD - Get CFP Period
****************************************************************************/
#define WIOCGCFPPERIOD _IORU('w', 0x03b, UINT32)
/***************************************************************************
* WIOCSCFPMAX - Set CFP Max Duration
****************************************************************************/
#define WIOCSCFPMAX _IOU('w', 0x03c)
/***************************************************************************
* WIOCGCFPMAX - Get CFP Max duration
****************************************************************************/
#define WIOCGCFPMAX _IORU('w', 0x03d, UINT32)
/***************************************************************************
* WIOCSDTIMRATE - Set DTIM rate
****************************************************************************/
#define WIOCSDTIMRATE _IOU('w', 0x03e)
/***************************************************************************
* WIOCGDTIMRATE - Get DTIM rate
****************************************************************************/
#define WIOCGDTIMRATE _IORU('w', 0x03f, UINT32)
/***************************************************************************
* WIOCGSUPPTXRATE - Get Supported Tx rates
****************************************************************************/
#define WIOCGSUPPTXRATE _IORU('w', 0x040, DOT11_RATES)
/***************************************************************************
* WIOCGSUPPRXRATE - Get Supported Rx Rates
****************************************************************************/
#define WIOCGSUPPRXRATE _IORU('w', 0x041, DOT11_RATES)
/***************************************************************************
* WIOCSASSOCRESPTIME - Set association response timeout
****************************************************************************/
#define WIOCSASSOCRESPTIME _IOU('w', 0x042)
/***************************************************************************
* WIOCGASSOCRESPTIME - Get association response timeout
****************************************************************************/
#define WIOCGASSOCRESPTIME _IORU('w', 0x043, UINT32)
/***************************************************************************
* WIOCSBCASTRATE - Set Transmit Speed (Multi & broad) | UINT32
****************************************************************************/
#define WIOCSBCASTRATE _IOU('w', 0x044)
/***************************************************************************
* WIOCGBCASTRATE - Get Transmit Speed (Multi & broad) | UINT32
****************************************************************************/
#define WIOCGBCASTRATE _IORU('w', 0x045, UINT32)
/***************************************************************************
* WIOCSRADIOMODE - Set Radio Mode (allowed freqs) | UINT32
****************************************************************************/
#define DOT11_RADIO_NONE 0
#define DOT11_RADIO_11a _BIT(0)
#define DOT11_RADIO_11b _BIT(1)
#define DOT11_RADIO_11g _BIT(2)
#define DOT11_RADIO_TURBOg _BIT(3)
#define DOT11_RADIO_TURBOa _BIT(4)
#define DOT11_RADIO_ANY 0x1f
#define WIOCSRADIOMODE _IOU('w', 0x046)
/***************************************************************************
* WIOCGRADIOMODE - Get Radio Mode (allowed freqs) | UINT32 *
****************************************************************************/
#define WIOCGRADIOMODE _IORU('w', 0x047, UINT32)
/***************************************************************************
* WIOCSDOT11MODE - Set Dot11 Mode (SME mode) | UINT32
****************************************************************************/
#define DOT11_MODE_NONE 0
#define DOT11_MODE_ESS 1
#define DOT11_MODE_IBSS 2
#define DOT11_MODE_AP 3
#define WIOCSDOT11MODE _IOU('w', 0x048)
/***************************************************************************
* WIOCGDOT11MODE - Get Dot11 Mode (SME mode) | UINT32 *
****************************************************************************/
#define WIOCGDOT11MODE _IORU('w', 0x049, UINT32)
/***************************************************************************
* WIOCSACLMODE - Set the Access Control List Mode | UINT32
****************************************************************************/
#define DOT11_ACL_DISABLED 0
#define DOT11_ACL_ALLOW 1
#define DOT11_ACL_DENY 2
#define WIOCSACLMODE _IOU('w', 0x04a)
/***************************************************************************
* WIOCGACLMODE - Set the Access Control List Mode | UINT32
****************************************************************************/
#define WIOCGACLMODE _IORU('w', 0x04b, UINT32)
/***************************************************************************
* WIOCGWEPDEFAULTKEY - Set WEP default key UINT32
****************************************************************************/
#define WIOCGWEPDEFAULTKEY _IORU('w', 0x04c, UINT32)
/***************************************************************************
* WIOCSDESIREDSSID - Set Wireless Network Name char *
****************************************************************************/
#define WIOCSDESIREDSSID _IOWU('w', 0x04d, DOT11_SSID)
/***************************************************************************
* WIOCUNSUPPORTED - Used to force an ERROR code from the IOCTL
****************************************************************************/
#define WIOCUNSUPPORTED _IOU('w', 0x04e)
/***************************************************************************
* WIOCAPAIRWISEKEY - Adds a pairwise key and returns the keyslot in the passed structure
****************************************************************************/
#define WIOCAPAIRWISEKEY _IOWU('w', 0x04f, DOT11_KEY)
/***************************************************************************
* WIOCSSECPOL - Set the available security policies
****************************************************************************/
#define DOT11_SECPOL_NONE 0
#define DOT11_SECPOL_TSN _BIT(0)
#define DOT11_SECPOL_WPA _BIT(1)
#define DOT11_SECPOL_11i _BIT(2)
#define WIOCSSECPOL _IOU('w', 0x050)
/***************************************************************************
* WIOCGSECPOL - Gt the available security policies
****************************************************************************/
#define WIOCGSECPOL _IORU('w', 0x051, UINT32)
/***************************************************************************
* WIOCSAUTHPOL - Set the available authentication policies
****************************************************************************/
#define DOT11_AUTHPOL_NONE 0
#define DOT11_AUTHPOL_8021X _BIT(0)
#define DOT11_AUTHPOL_PSK _BIT(1)
#define DOT11_AUTHPOL_MAX (DOT11_AUTHPOL_PSK + 1)
#define WIOCSAUTHPOL _IOU('w', 0x052)
/***************************************************************************
* WIOCGAUTHPOL - Get the available authentication policies
****************************************************************************/
#define WIOCGAUTHPOL _IORU('w', 0x053, UINT32)
/***************************************************************************
* WIOCSCIPHPOL - Set the available cipher suites
****************************************************************************/
#define DOT11_CIPHPOL_NONE 0
#define DOT11_CIPHPOL_WEP40 _BIT(0)
#define DOT11_CIPHPOL_WEP104 _BIT(1)
#define DOT11_CIPHPOL_TKIP _BIT(2)
#define DOT11_CIPHPOL_AES _BIT(3)
#define DOT11_CIPHPOL_MAX (DOT11_CIPHPOL_AES + 1)
#define WIOCSCIPHPOL _IOU('w', 0x054)
/***************************************************************************
* WIOCGCIPHPOL - Get the available cipher suites
****************************************************************************/
#define WIOCGCIPHPOL _IORU('w', 0x055, UINT32)
/***************************************************************************
* WIOCSPSK - Set the pre-shared key
****************************************************************************/
#define WIOCSPSK _IOWU('w', 0x56, DOT11_PSK)
/***************************************************************************
* WIOCSPASSPHRASE - Sets the pre-shared key using a passphrase
****************************************************************************/
#define WIOCSPASSPHRASE _IOWU('w', 0x57, DOT11_PASSPHRASE)
/***************************************************************************
* WIOCBSSSCAN - Performs a BSS scan and waits for the results
****************************************************************************/
typedef struct
{
/* SSID of the detected BSS. empty string if SSID is hidden. */
char ssid[DOT11_SSID_LEN + 1];
UINT8 macAddr[DOT11_ADDR_LEN];
/* 802.11 capabilities field. See DOT11_CAP_... macros */
UINT16 capabilities;
DOT11_RATES rates;
UINT16 beaconInterval;
int channel;
UINT8 ssi;
} DOT11_SCAN_RESULTS;
typedef struct
{
/* The SSID to search for */
char ssid[DOT11_SSID_LEN + 1];
/* The number of entries in the pre-allocated array */
int maxResults;
/* The pointer to the pre-allocated array in which to put the results */
DOT11_SCAN_RESULTS * pResults;
/* After WIOCBSSCAN is called, the number of results placed in the array */
int numResults;
} DOT11_SCAN_REQ;
#define WIOCBSSSCAN _IOWRU('w', 0x058, DOT11_SCAN_REQ)
/***************************************************************************
* WIOCSCOUNTRYCODE - Sets the current country code
****************************************************************************/
#define WIOCSCOUNTRYCODE _IOU('w', 0x059)
/***************************************************************************
* WIOCGCOUNTRYCODE - Returns the current country code
****************************************************************************/
#define WIOCGCOUNTRYCODE _IORU('w', 0x5a, UINT32)
/***************************************************************************
* WIOCS80211D - Enable 802.11d support
****************************************************************************/
#define WIOCS80211D _IOU('w', 0x5b)
/***************************************************************************
* WIOCG80211D - Returns current status of 802.11d
****************************************************************************/
#define WIOCG80211D _IORU('w', 0x5c, UINT32)
#define WIOCSBULK _IOU('w', 0x5d)
/***************************************************************************
*WIOCGHWVERS - Returns hardware information string
****************************************************************************/
#define WIOCGHWVERS _IORU('w', 0x5e, DOT11_HWVERS_BUF)
/***************************************************************************
* WIOCGTXPOWERSCALE - Gets the current tx power scaling factor
****************************************************************************/
#define WIOCGTXPOWERSCALE _IORU('w', 0x5f, UINT32)
/***************************************************************************
* WIOCSTXPOWERSCALE - Sets the current tx power scaling factor
****************************************************************************/
#define DOT11_TXPOWER_MAX 0
#define DOT11_TXPOWER_66 1
#define DOT11_TXPOWER_50 2
#define DOT11_TXPOWER_33 3
#define DOT11_TXPOWER_MIN 4
#define WIOCSTXPOWERSCALE _IOU('w', 0x60)
/***************************************************************************
* WIOCSUSERAUTHCALLBACK - Sets the current user authentication callback
****************************************************************************/
#define DOT11_CALLBACK_CONNECT (1) /* Callback called due to association*/
#define DOT11_CALLBACK_DISCONNECT (2) /* Callback called due to disassociation*/
#define WIOCSUSERAUTHCALLBACK _IOW('w', 0x61, FUNCPTR)
/***************************************************************************
* WIOCDPAIRWISEKEY - Removes a WEP key mapping key added by WIOCAPAIRWISEKEY
****************************************************************************/
#define WIOCDPAIRWISEKEY _IOWU('w', 0x62, DOT11_ADDR)
/***************************************************************************
* WIOCGCHANNELLIST - Returns a list of the channels supported by the current
* country code.
****************************************************************************/
/* The maximum number of channels in a channel list */
#define DOT11_MAX_CHANNELS 64
typedef struct
{
int channel;
int freq;
UINT32 mode;
BOOL activeScanAllowed;
} DOT11_CHANNEL_INFO;
typedef struct
{
int numChannels;
DOT11_CHANNEL_INFO channels[DOT11_MAX_CHANNELS];
} DOT11_CHANNEL_LIST;
#define WIOCGCHANNELLIST _IOWRU('w', 0x63, DOT11_CHANNEL_LIST)
/***************************************************************************
* WIOCSSCANTYPE - Enables active and/or passive scanning for ESS/IBSS modes
****************************************************************************/
/* Values for sme.scanType. One or both of these values can be set */
#define DOT11_SCANTYPE_ACTIVE _BIT(0)
#define DOT11_SCANTYPE_PASSIVE _BIT(1)
#define WIOCSSCANTYPE _IOU('w', 0x64)
/***************************************************************************
* WIOCGSCANTYPE - Returns current scan types in use.
****************************************************************************/
#define WIOCGSCANTYPE _IORU('w', 0x65, UINT32)
/**************************************************************
* WIOCSBSS - Set the current BSS being configured
**************************************************************/
#define WIOCSBSS _IOU('w', 0x66)
/**************************************************************
* WIOCGBSS - Get the current BSS being configured
**************************************************************/
#define WIOCGBSS _IORU('w', 0x67, UINT32)
/**************************************************************
* WIOCABSS - Create a new BSS and return it's number
**************************************************************/
#define WIOCABSS _IORU('w', 0x68, UINT32)
/**************************************************************
* WIOCDBSS - Delete the specified BSS
**************************************************************/
#define WIOCDBSS _IOU('w', 0x69)
/**************************************************************
* WIOCSMBSSADDRBITS - Set the bits used for mBSSIDs
**************************************************************/
#define WIOCSMBSSADDRBITS _IOU('w', 0x6a)
/**************************************************************
* WIOCSASSOCLIMIT - Sets number of stations allowed to assoc this BSS
**************************************************************/
#define WIOCSASSOCLIMIT _IOU('w', 0x6b)
/**************************************************************
* WIOCSVLAN - Enables / disables VLAN operation in AP mode
**************************************************************/
#define WIOCSVLAN _IOU('w', 0x6c)
/**************************************************************
* WIOCGVLAN - Returns VLAN status
**************************************************************/
#define WIOCGVLAN _IORU('w', 0x6d, UINT32)
/***************************************************************************
* WIOCSBRSSITHR: Sets the current BRSSI Threshold
****************************************************************************/
#define WIOCSBRSSITHR _IOU('w', 0x6e)
/***************************************************************************
* WIOCGRBSSITHR: Returns the current BRSSI Threshold
****************************************************************************/
#define WIOCGBRSSITHR _IORU('w', 0x6f, UINT32)
/***************************************************************************
* WIOCGACL - Get Access Control List
****************************************************************************/
#define DOT11_KSL_MAX_HASH 256
typedef struct
{
int numStations;
DOT11_ADDR macAddr[DOT11_ADDR_LEN];
} DOT11_ACL;
#define WIOCGACL _IOWRU('w', 0x070, DOT11_ACL)
#define WIOCS4WAYHSSTATE _IOWRU('w', 0x071, DOT11_4WAYHSSTATE)
/***************************************************************************
* WIOCSEXTRSN - MRY: If set, let external supp handle eapol and 4way handshake
****************************************************************************/
#define WIOCSEXTRSN _IOWRU('w', 0x072, UINT32)
/***************************************************************************
* WIOCSTKIPCMSTART: Start the TKIP countermeasures
****************************************************************************/
#define WIOCSTKIPCMSTART _IOWU('w', 0x073, DOT11_ADDR)
/***************************************************************************
* WIOCSDEAUTH: Trigger a Deauthentication with a reason
****************************************************************************/
#define WIOCSDEAUTH _IOWU('w', 0x74, DOT11_DEAUTH_REQ)
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __INCdot11UsrLibh */