1cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar/******************************************************************************
2cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
3cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * Copyright(c) 2007 - 2010 Realtek Corporation. All rights reserved.
4cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
5cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * This program is free software; you can redistribute it and/or modify it
6cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * under the terms of version 2 of the GNU General Public License as
7cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * published by the Free Software Foundation.
8cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
9cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * This program is distributed in the hope that it will be useful, but WITHOUT
10cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * more details.
13cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
14cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * You should have received a copy of the GNU General Public License along with
15cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * this program; if not, write to the Free Software Foundation, Inc.,
16cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
17cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
18cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * Modifications for inclusion into the Linux staging tree are
19cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * Copyright(c) 2010 Larry Finger. All rights reserved.
20cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
21cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * Contact information:
22cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * WLAN FAE <wlanfae@realtek.com>
23cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar * Larry Finger <Larry.Finger@lwfinger.net>
24cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar *
25cf3e6881e38d348c7eabcb354631ae646d115c1fAli Bahar ******************************************************************************/
262865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#ifndef __WLAN_BSSDEF_H__
272865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define __WLAN_BSSDEF_H__
282865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
292865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define MAX_IE_SZ	768
302865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
312865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_LENGTH_SSID         32
322865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_LENGTH_RATES        8
332865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_LENGTH_RATES_EX     16
342865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
352865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/* Set of 8 data rates*/
362865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingertypedef unsigned char   NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
372865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/* Set of 16 data rates */
382865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingertypedef unsigned char   NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
392865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
402865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct ndis_802_11_ssid {
410593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 SsidLength;
420593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  Ssid[32];
432865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
442865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
452865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum NDIS_802_11_NETWORK_TYPE {
460593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11FH,
470593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11DS,
480593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11OFDM5,
490593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11OFDM24,
500593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11NetworkTypeMax /* not a real type, defined as an upper bound*/
512865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
522865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
532865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_CONFIGURATION_FH {
540593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;             /* Length of structure */
550593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 HopPattern;         /* As defined by 802.11, MSB set */
560593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 HopSet;             /* to one if non-802.11 */
570593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 DwellTime;          /* units are Kusec */
582865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
592865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
602865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/*
612865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	FW will only save the channel number in DSConfig.
622865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	ODI Handler will convert the channel number to freq. number.
632865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger*/
642865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_CONFIGURATION {
650593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;             /* Length of structure */
660593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 BeaconPeriod;       /* units are Kusec */
670593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 ATIMWindow;         /* units are Kusec */
680593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 DSConfig;           /* Frequency, units are kHz */
690593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct NDIS_802_11_CONFIGURATION_FH FHConfig;
702865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
712865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
722865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum NDIS_802_11_NETWORK_INFRASTRUCTURE {
730593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11IBSS,
740593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Infrastructure,
750593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AutoUnknown,
760593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11InfrastructureMax, /*Not a real value,defined as upper bound*/
770593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11APMode
782865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
792865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
802865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_FIXED_IEs {
810593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  Timestamp[8];
820593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 BeaconInterval;
830593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 Capabilities;
842865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
852865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
862865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/*
872865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * Length is the 4 bytes multiples of the sume of
882865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * 6 * sizeof (unsigned char) + 2 + sizeof (ndis_802_11_ssid) + sizeof (u32)
892865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * + sizeof (s32) + sizeof (NDIS_802_11_NETWORK_TYPE)
902865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * + sizeof (struct NDIS_802_11_CONFIGURATION)
912865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * + sizeof (NDIS_802_11_RATES_EX) + IELength
922865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
932865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * Except the IELength, all other fields are fixed length. Therefore, we can
942865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger * define a macro to present the partial sum.
952865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger */
962865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
972865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct ndis_wlan_bssid_ex {
980593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;
990593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned char  MacAddress[6];
1000593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  Reserved[2];
1010593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct ndis_802_11_ssid  Ssid;
1020593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Privacy;
1030593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	s32 Rssi;
1040593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
1050593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct NDIS_802_11_CONFIGURATION  Configuration;
1060593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
1070593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	NDIS_802_11_RATES_EX  SupportedRates;
1080593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 IELength;
1090593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	/*(timestamp, beacon interval, and capability information) */
1100593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8 IEs[MAX_IE_SZ];
1112865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1122865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1132865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum NDIS_802_11_AUTHENTICATION_MODE {
1140593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeOpen,
1150593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeShared,
1160593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeAutoSwitch,
1170593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeWPA,
1180593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeWPAPSK,
1190593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeWPANone,
1200593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11AuthModeMax      /* Not a real mode, defined as upper bound */
1212865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1222865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1232865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum {
1240593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11WEPEnabled,
1250593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
1260593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11WEPDisabled,
1270593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
1280593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11WEPKeyAbsent,
1290593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
1300593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11WEPNotSupported,
1310593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
1320593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption2Enabled,
1330593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption2KeyAbsent,
1340593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption3Enabled,
1350593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	Ndis802_11Encryption3KeyAbsent
1362865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1372865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1382865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_REQFI_CAPABILITIES      1
1392865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_REQFI_LISTENINTERVAL    2
1402865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS  4
1412865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1422865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_RESFI_CAPABILITIES      1
1432865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_RESFI_STATUSCODE        2
1442865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AI_RESFI_ASSOCIATIONID     4
1452865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1462865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_AI_REQFI {
1470593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 Capabilities;
1480593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 ListenInterval;
1490593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned char CurrentAPAddress[6];
1502865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1512865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1522865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_AI_RESFI {
1530593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 Capabilities;
1540593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 StatusCode;
1550593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 AssociationId;
1562865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1572865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1582865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_ASSOCIATION_INFORMATION {
1590593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;
1600593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 AvailableRequestFixedIEs;
1610593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct NDIS_802_11_AI_REQFI RequestFixedIEs;
1620593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 RequestIELength;
1630593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 OffsetRequestIEs;
1640593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u16 AvailableResponseFixedIEs;
1650593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct NDIS_802_11_AI_RESFI ResponseFixedIEs;
1660593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 ResponseIELength;
1670593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 OffsetResponseIEs;
1682865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1692865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1702865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/* Key mapping keys require a BSSID*/
1712865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_KEY {
1720593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;			/* Length of this structure */
1730593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 KeyIndex;
1740593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 KeyLength;			/* length of key in bytes */
1750593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned char BSSID[6];
1760593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned long long KeyRSC;
1770593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  KeyMaterial[32];		/* variable length */
1782865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1792865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1802865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_REMOVE_KEY {
1810593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;			/* Length of this structure */
1820593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 KeyIndex;
1830593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned char BSSID[6];
1842865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1852865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1862865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct NDIS_802_11_WEP {
1870593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;		  /* Length of this structure */
1880593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 KeyIndex;		  /* 0 is the per-client key,
1890593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid				   * 1-N are the global keys */
1900593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 KeyLength;		  /* length of key in bytes */
1910593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  KeyMaterial[16];      /* variable length depending on above field */
1922865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
1932865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
1942865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/* mask for authentication/integrity fields */
1952865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS        0x0f
1962865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AUTH_REQUEST_REAUTH			0x01
1972865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE		0x02
1982865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR		0x06
1992865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR		0x0E
2002865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2012865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/* MIC check time, 60 seconds. */
2022865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define MIC_CHECK_TIME	60000000
2032865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2042865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#ifndef Ndis802_11APMode
2052865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define Ndis802_11APMode (Ndis802_11InfrastructureMax+1)
2062865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#endif
2072865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2082865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct	wlan_network {
2092865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	struct list_head list;
2102865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	int	network_type;	/*refer to ieee80211.h for WIRELESS_11A/B/G */
2112865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	int	fixed;		/* set to fixed when not to be removed asi
2122865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger				 * site-surveying */
2132865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	unsigned int	last_scanned; /*timestamp for the network */
2142865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	int	aid;		/*will only be valid when a BSS is joined. */
2152865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	int	join_res;
2162865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	struct ndis_wlan_bssid_ex network; /*must be the last item */
2172865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
2182865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2192865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum VRTL_CARRIER_SENSE {
2200593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	DISABLE_VCS,
2210593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	ENABLE_VCS,
2220593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	AUTO_VCS
2232865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
2242865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2252865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum VCS_TYPE {
2260593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	NONE_VCS,
2270593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	RTS_CTS,
2280593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	CTS_TO_SELF
2292865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
2302865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2312865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define PWR_CAM 0
2322865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define PWR_MINPS 1
2332865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define PWR_MAXPS 2
2342865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define PWR_UAPSD 3
2352865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define PWR_VOIP 4
2362865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2372865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerenum UAPSD_MAX_SP {
2382865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger	NO_LIMIT,
2390593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	TWO_MSDU,
2400593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	FOUR_MSDU,
2410593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	SIX_MSDU
2422865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
2432865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2442865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NUM_PRE_AUTH_KEY 16
2452865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY
2462865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2472865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger/*
2482865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger *	WPA2
2492865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger */
2502865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Fingerstruct wlan_bssid_ex {
2510593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Length;
2520593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	unsigned char  MacAddress[6];
2530593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  Reserved[2];
2540593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct ndis_802_11_ssid  Ssid;
2550593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 Privacy;
2560593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	s32 Rssi;
2570593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
2580593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	struct NDIS_802_11_CONFIGURATION  Configuration;
2590593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
2600593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	NDIS_802_11_RATES_EX  SupportedRates;
2610593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u32 IELength;
2620593758e4b71836d3a95714b626d273ee51173e0Javier M. Mellid	u8  IEs[MAX_IE_SZ];	/* (timestamp, beacon interval, and capability
2632865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger				 * information) */
2642865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger};
2652865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
2662865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger#endif /* #ifndef WLAN_BSSDEF_H_ */
2672865d42c78a9121caad52cb02d1fbb7f5cdbc4efLarry Finger
268