PageRenderTime 19ms CodeModel.GetById 11ms app.highlight 7ms RepoModel.GetById 0ms app.codeStats 0ms

/drivers/staging/rtl8712/wlan_bssdef.h

https://bitbucket.org/cyanogenmod/android_kernel_asus_tf300t
C Header | 242 lines | 183 code | 33 blank | 26 comment | 0 complexity | 0524999baecc3dbef61772cfbe3ef6bf MD5 | raw file
Possible License(s): LGPL-2.0, AGPL-1.0, GPL-2.0
  1#ifndef __WLAN_BSSDEF_H__
  2#define __WLAN_BSSDEF_H__
  3
  4#define MAX_IE_SZ	768
  5
  6#define NDIS_802_11_LENGTH_SSID         32
  7#define NDIS_802_11_LENGTH_RATES        8
  8#define NDIS_802_11_LENGTH_RATES_EX     16
  9
 10/* Set of 8 data rates*/
 11typedef unsigned char   NDIS_802_11_RATES[NDIS_802_11_LENGTH_RATES];
 12/* Set of 16 data rates */
 13typedef unsigned char   NDIS_802_11_RATES_EX[NDIS_802_11_LENGTH_RATES_EX];
 14
 15struct ndis_802_11_ssid {
 16	u32 SsidLength;
 17	u8  Ssid[32];
 18};
 19
 20enum NDIS_802_11_NETWORK_TYPE {
 21	Ndis802_11FH,
 22	Ndis802_11DS,
 23	Ndis802_11OFDM5,
 24	Ndis802_11OFDM24,
 25	Ndis802_11NetworkTypeMax /* not a real type, defined as an upper bound*/
 26};
 27
 28struct NDIS_802_11_CONFIGURATION_FH {
 29	u32 Length;             /* Length of structure */
 30	u32 HopPattern;         /* As defined by 802.11, MSB set */
 31	u32 HopSet;             /* to one if non-802.11 */
 32	u32 DwellTime;          /* units are Kusec */
 33};
 34
 35/*
 36	FW will only save the channel number in DSConfig.
 37	ODI Handler will convert the channel number to freq. number.
 38*/
 39struct NDIS_802_11_CONFIGURATION {
 40	u32 Length;             /* Length of structure */
 41	u32 BeaconPeriod;       /* units are Kusec */
 42	u32 ATIMWindow;         /* units are Kusec */
 43	u32 DSConfig;           /* Frequency, units are kHz */
 44	struct NDIS_802_11_CONFIGURATION_FH FHConfig;
 45};
 46
 47enum NDIS_802_11_NETWORK_INFRASTRUCTURE {
 48	Ndis802_11IBSS,
 49	Ndis802_11Infrastructure,
 50	Ndis802_11AutoUnknown,
 51	Ndis802_11InfrastructureMax, /*Not a real value,defined as upper bound*/
 52	Ndis802_11APMode
 53};
 54
 55struct NDIS_802_11_FIXED_IEs {
 56	u8  Timestamp[8];
 57	u16 BeaconInterval;
 58	u16 Capabilities;
 59};
 60
 61/*
 62 * Length is the 4 bytes multiples of the sume of
 63 * 6 * sizeof (unsigned char) + 2 + sizeof (ndis_802_11_ssid) + sizeof (u32)
 64 * + sizeof (s32) + sizeof (NDIS_802_11_NETWORK_TYPE)
 65 * + sizeof (struct NDIS_802_11_CONFIGURATION)
 66 * + sizeof (NDIS_802_11_RATES_EX) + IELength
 67
 68 * Except the IELength, all other fields are fixed length. Therefore, we can
 69 * define a macro to present the partial sum.
 70 */
 71
 72struct ndis_wlan_bssid_ex {
 73	u32 Length;
 74	unsigned char  MacAddress[6];
 75	u8  Reserved[2];
 76	struct ndis_802_11_ssid  Ssid;
 77	u32 Privacy;
 78	s32 Rssi;
 79	enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
 80	struct NDIS_802_11_CONFIGURATION  Configuration;
 81	enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
 82	NDIS_802_11_RATES_EX  SupportedRates;
 83	u32 IELength;
 84	/*(timestamp, beacon interval, and capability information) */
 85	u8 IEs[MAX_IE_SZ];
 86};
 87
 88enum NDIS_802_11_AUTHENTICATION_MODE {
 89	Ndis802_11AuthModeOpen,
 90	Ndis802_11AuthModeShared,
 91	Ndis802_11AuthModeAutoSwitch,
 92	Ndis802_11AuthModeWPA,
 93	Ndis802_11AuthModeWPAPSK,
 94	Ndis802_11AuthModeWPANone,
 95	Ndis802_11AuthModeMax      /* Not a real mode, defined as upper bound */
 96};
 97
 98enum {
 99	Ndis802_11WEPEnabled,
100	Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
101	Ndis802_11WEPDisabled,
102	Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
103	Ndis802_11WEPKeyAbsent,
104	Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
105	Ndis802_11WEPNotSupported,
106	Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
107	Ndis802_11Encryption2Enabled,
108	Ndis802_11Encryption2KeyAbsent,
109	Ndis802_11Encryption3Enabled,
110	Ndis802_11Encryption3KeyAbsent
111};
112
113#define NDIS_802_11_AI_REQFI_CAPABILITIES      1
114#define NDIS_802_11_AI_REQFI_LISTENINTERVAL    2
115#define NDIS_802_11_AI_REQFI_CURRENTAPADDRESS  4
116
117#define NDIS_802_11_AI_RESFI_CAPABILITIES      1
118#define NDIS_802_11_AI_RESFI_STATUSCODE        2
119#define NDIS_802_11_AI_RESFI_ASSOCIATIONID     4
120
121struct NDIS_802_11_AI_REQFI {
122	u16 Capabilities;
123	u16 ListenInterval;
124	unsigned char CurrentAPAddress[6];
125};
126
127struct NDIS_802_11_AI_RESFI {
128	u16 Capabilities;
129	u16 StatusCode;
130	u16 AssociationId;
131};
132
133struct NDIS_802_11_ASSOCIATION_INFORMATION {
134	u32 Length;
135	u16 AvailableRequestFixedIEs;
136	struct NDIS_802_11_AI_REQFI RequestFixedIEs;
137	u32 RequestIELength;
138	u32 OffsetRequestIEs;
139	u16 AvailableResponseFixedIEs;
140	struct NDIS_802_11_AI_RESFI ResponseFixedIEs;
141	u32 ResponseIELength;
142	u32 OffsetResponseIEs;
143};
144
145/* Key mapping keys require a BSSID*/
146struct NDIS_802_11_KEY {
147	u32 Length;			/* Length of this structure */
148	u32 KeyIndex;
149	u32 KeyLength;			/* length of key in bytes */
150	unsigned char BSSID[6];
151	unsigned long long KeyRSC;
152	u8  KeyMaterial[32];		/* variable length */
153};
154
155struct NDIS_802_11_REMOVE_KEY {
156	u32 Length;			/* Length of this structure */
157	u32 KeyIndex;
158	unsigned char BSSID[6];
159};
160
161struct NDIS_802_11_WEP {
162	u32 Length;		  /* Length of this structure */
163	u32 KeyIndex;		  /* 0 is the per-client key,
164				   * 1-N are the global keys */
165	u32 KeyLength;		  /* length of key in bytes */
166	u8  KeyMaterial[16];      /* variable length depending on above field */
167};
168
169/* mask for authentication/integrity fields */
170#define NDIS_802_11_AUTH_REQUEST_AUTH_FIELDS        0x0f
171#define NDIS_802_11_AUTH_REQUEST_REAUTH			0x01
172#define NDIS_802_11_AUTH_REQUEST_KEYUPDATE		0x02
173#define NDIS_802_11_AUTH_REQUEST_PAIRWISE_ERROR		0x06
174#define NDIS_802_11_AUTH_REQUEST_GROUP_ERROR		0x0E
175
176/* MIC check time, 60 seconds. */
177#define MIC_CHECK_TIME	60000000
178
179#ifndef Ndis802_11APMode
180#define Ndis802_11APMode (Ndis802_11InfrastructureMax+1)
181#endif
182
183struct	wlan_network {
184	struct list_head list;
185	int	network_type;	/*refer to ieee80211.h for WIRELESS_11A/B/G */
186	int	fixed;		/* set to fixed when not to be removed asi
187				 * site-surveying */
188	unsigned int	last_scanned; /*timestamp for the network */
189	int	aid;		/*will only be valid when a BSS is joined. */
190	int	join_res;
191	struct ndis_wlan_bssid_ex network; /*must be the last item */
192};
193
194enum VRTL_CARRIER_SENSE {
195	DISABLE_VCS,
196	ENABLE_VCS,
197	AUTO_VCS
198};
199
200enum VCS_TYPE {
201	NONE_VCS,
202	RTS_CTS,
203	CTS_TO_SELF
204};
205
206#define PWR_CAM 0
207#define PWR_MINPS 1
208#define PWR_MAXPS 2
209#define PWR_UAPSD 3
210#define PWR_VOIP 4
211
212enum UAPSD_MAX_SP {
213	NO_LIMIT,
214	TWO_MSDU,
215	FOUR_MSDU,
216	SIX_MSDU
217};
218
219#define NUM_PRE_AUTH_KEY 16
220#define NUM_PMKID_CACHE NUM_PRE_AUTH_KEY
221
222/*
223 *	WPA2
224 */
225struct wlan_bssid_ex {
226	u32 Length;
227	unsigned char  MacAddress[6];
228	u8  Reserved[2];
229	struct ndis_802_11_ssid  Ssid;
230	u32 Privacy;
231	s32 Rssi;
232	enum NDIS_802_11_NETWORK_TYPE  NetworkTypeInUse;
233	struct NDIS_802_11_CONFIGURATION  Configuration;
234	enum NDIS_802_11_NETWORK_INFRASTRUCTURE  InfrastructureMode;
235	NDIS_802_11_RATES_EX  SupportedRates;
236	u32 IELength;
237	u8  IEs[MAX_IE_SZ];	/* (timestamp, beacon interval, and capability
238				 * information) */
239};
240
241#endif /* #ifndef WLAN_BSSDEF_H_ */
242