1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#if !defined(_ISL_OID_H)
22#define _ISL_OID_H
23
24
25
26
27
28
29struct obj_ssid {
30 u8 length;
31 char octets[33];
32} __attribute__ ((packed));
33
34struct obj_key {
35 u8 type;
36 u8 length;
37 char key[32];
38} __attribute__ ((packed));
39
40struct obj_mlme {
41 u8 address[6];
42 u16 id;
43 u16 state;
44 u16 code;
45} __attribute__ ((packed));
46
47struct obj_mlmeex {
48 u8 address[6];
49 u16 id;
50 u16 state;
51 u16 code;
52 u16 size;
53 u8 data[0];
54} __attribute__ ((packed));
55
56struct obj_buffer {
57 u32 size;
58 u32 addr;
59} __attribute__ ((packed));
60
61struct obj_bss {
62 u8 address[6];
63 int:16;
64
65 char state;
66 char reserved;
67 short age;
68
69 char quality;
70 char rssi;
71
72 struct obj_ssid ssid;
73 short channel;
74 char beacon_period;
75 char dtim_period;
76 short capinfo;
77 short rates;
78 short basic_rates;
79 int:16;
80} __attribute__ ((packed));
81
82struct obj_bsslist {
83 u32 nr;
84 struct obj_bss bsslist[0];
85} __attribute__ ((packed));
86
87struct obj_frequencies {
88 u16 nr;
89 u16 mhz[0];
90} __attribute__ ((packed));
91
92struct obj_attachment {
93 char type;
94 char reserved;
95 short id;
96 short size;
97 char data[0];
98} __attribute__((packed));
99
100
101
102
103
104static inline void
105__bug_on_wrong_struct_sizes(void)
106{
107 BUILD_BUG_ON(sizeof (struct obj_ssid) != 34);
108 BUILD_BUG_ON(sizeof (struct obj_key) != 34);
109 BUILD_BUG_ON(sizeof (struct obj_mlme) != 12);
110 BUILD_BUG_ON(sizeof (struct obj_mlmeex) != 14);
111 BUILD_BUG_ON(sizeof (struct obj_buffer) != 8);
112 BUILD_BUG_ON(sizeof (struct obj_bss) != 60);
113 BUILD_BUG_ON(sizeof (struct obj_bsslist) != 4);
114 BUILD_BUG_ON(sizeof (struct obj_frequencies) != 2);
115}
116
117enum dot11_state_t {
118 DOT11_STATE_NONE = 0,
119 DOT11_STATE_AUTHING = 1,
120 DOT11_STATE_AUTH = 2,
121 DOT11_STATE_ASSOCING = 3,
122
123 DOT11_STATE_ASSOC = 5,
124 DOT11_STATE_IBSS = 6,
125 DOT11_STATE_WDS = 7
126};
127
128enum dot11_bsstype_t {
129 DOT11_BSSTYPE_NONE = 0,
130 DOT11_BSSTYPE_INFRA = 1,
131 DOT11_BSSTYPE_IBSS = 2,
132 DOT11_BSSTYPE_ANY = 3
133};
134
135enum dot11_auth_t {
136 DOT11_AUTH_NONE = 0,
137 DOT11_AUTH_OS = 1,
138 DOT11_AUTH_SK = 2,
139 DOT11_AUTH_BOTH = 3
140};
141
142enum dot11_mlme_t {
143 DOT11_MLME_AUTO = 0,
144 DOT11_MLME_INTERMEDIATE = 1,
145 DOT11_MLME_EXTENDED = 2
146};
147
148enum dot11_priv_t {
149 DOT11_PRIV_WEP = 0,
150 DOT11_PRIV_TKIP = 1
151};
152
153
154
155
156
157
158
159
160
161enum dot11_maxframeburst_t {
162
163 DOT11_MAXFRAMEBURST_OFF = 0,
164 DOT11_MAXFRAMEBURST_MIXED_SAFE = 650,
165 DOT11_MAXFRAMEBURST_IDEAL = 1300,
166 DOT11_MAXFRAMEBURST_MAX = 5000,
167
168
169
170
171
172};
173
174
175
176
177
178
179
180
181enum dot11_preamblesettings_t {
182 DOT11_PREAMBLESETTING_LONG = 0,
183
184 DOT11_PREAMBLESETTING_SHORT = 1,
185
186 DOT11_PREAMBLESETTING_DYNAMIC = 2
187
188};
189
190
191
192
193
194enum dot11_slotsettings_t {
195 DOT11_SLOTSETTINGS_LONG = 0,
196
197 DOT11_SLOTSETTINGS_SHORT = 1,
198
199 DOT11_SLOTSETTINGS_DYNAMIC = 2
200
201};
202
203
204
205
206
207
208
209
210
211
212
213
214enum do11_nonerpstatus_t {
215 DOT11_ERPSTAT_NONEPRESENT = 0,
216 DOT11_ERPSTAT_USEPROTECTION = 1
217};
218
219
220
221
222
223
224enum dot11_nonerpprotection_t {
225 DOT11_NONERP_NEVER = 0,
226 DOT11_NONERP_ALWAYS = 1,
227 DOT11_NONERP_DYNAMIC = 2
228};
229
230
231
232
233enum dot11_profile_t {
234
235 DOT11_PROFILE_B_ONLY = 0,
236
237
238
239
240
241
242 DOT11_PROFILE_MIXED_G_WIFI = 1,
243
244
245
246
247
248
249 DOT11_PROFILE_MIXED_LONG = 2,
250
251 DOT11_PROFILE_G_ONLY = 3,
252
253 DOT11_PROFILE_TEST = 4,
254
255
256
257
258
259 DOT11_PROFILE_B_WIFI = 5,
260
261 DOT11_PROFILE_A_ONLY = 6,
262
263
264
265 DOT11_PROFILE_MIXED_SHORT = 7
266
267};
268
269
270
271
272enum oid_inl_conformance_t {
273 OID_INL_CONFORMANCE_NONE = 0,
274 OID_INL_CONFORMANCE_STRICT = 1,
275 OID_INL_CONFORMANCE_FLEXIBLE = 2,
276
277
278};
279
280enum oid_inl_mode_t {
281 INL_MODE_NONE = -1,
282 INL_MODE_PROMISCUOUS = 0,
283 INL_MODE_CLIENT = 1,
284 INL_MODE_AP = 2,
285 INL_MODE_SNIFFER = 3
286};
287
288enum oid_inl_config_t {
289 INL_CONFIG_NOTHING = 0x00,
290 INL_CONFIG_MANUALRUN = 0x01,
291 INL_CONFIG_FRAMETRAP = 0x02,
292 INL_CONFIG_RXANNEX = 0x04,
293 INL_CONFIG_TXANNEX = 0x08,
294 INL_CONFIG_WDS = 0x10
295};
296
297enum oid_inl_phycap_t {
298 INL_PHYCAP_2400MHZ = 1,
299 INL_PHYCAP_5000MHZ = 2,
300 INL_PHYCAP_FAA = 0x80000000,
301};
302
303
304enum oid_num_t {
305 GEN_OID_MACADDRESS = 0,
306 GEN_OID_LINKSTATE,
307 GEN_OID_WATCHDOG,
308 GEN_OID_MIBOP,
309 GEN_OID_OPTIONS,
310 GEN_OID_LEDCONFIG,
311
312
313 DOT11_OID_BSSTYPE,
314 DOT11_OID_BSSID,
315 DOT11_OID_SSID,
316 DOT11_OID_STATE,
317 DOT11_OID_AID,
318 DOT11_OID_COUNTRYSTRING,
319 DOT11_OID_SSIDOVERRIDE,
320
321 DOT11_OID_MEDIUMLIMIT,
322 DOT11_OID_BEACONPERIOD,
323 DOT11_OID_DTIMPERIOD,
324 DOT11_OID_ATIMWINDOW,
325 DOT11_OID_LISTENINTERVAL,
326 DOT11_OID_CFPPERIOD,
327 DOT11_OID_CFPDURATION,
328
329 DOT11_OID_AUTHENABLE,
330 DOT11_OID_PRIVACYINVOKED,
331 DOT11_OID_EXUNENCRYPTED,
332 DOT11_OID_DEFKEYID,
333 DOT11_OID_DEFKEYX,
334 DOT11_OID_STAKEY,
335 DOT11_OID_REKEYTHRESHOLD,
336 DOT11_OID_STASC,
337
338 DOT11_OID_PRIVTXREJECTED,
339 DOT11_OID_PRIVRXPLAIN,
340 DOT11_OID_PRIVRXFAILED,
341 DOT11_OID_PRIVRXNOKEY,
342
343 DOT11_OID_RTSTHRESH,
344 DOT11_OID_FRAGTHRESH,
345 DOT11_OID_SHORTRETRIES,
346 DOT11_OID_LONGRETRIES,
347 DOT11_OID_MAXTXLIFETIME,
348 DOT11_OID_MAXRXLIFETIME,
349 DOT11_OID_AUTHRESPTIMEOUT,
350 DOT11_OID_ASSOCRESPTIMEOUT,
351
352 DOT11_OID_ALOFT_TABLE,
353 DOT11_OID_ALOFT_CTRL_TABLE,
354 DOT11_OID_ALOFT_RETREAT,
355 DOT11_OID_ALOFT_PROGRESS,
356 DOT11_OID_ALOFT_FIXEDRATE,
357 DOT11_OID_ALOFT_RSSIGRAPH,
358 DOT11_OID_ALOFT_CONFIG,
359
360 DOT11_OID_VDCFX,
361 DOT11_OID_MAXFRAMEBURST,
362
363 DOT11_OID_PSM,
364 DOT11_OID_CAMTIMEOUT,
365 DOT11_OID_RECEIVEDTIMS,
366 DOT11_OID_ROAMPREFERENCE,
367
368 DOT11_OID_BRIDGELOCAL,
369 DOT11_OID_CLIENTS,
370 DOT11_OID_CLIENTSASSOCIATED,
371 DOT11_OID_CLIENTX,
372
373 DOT11_OID_CLIENTFIND,
374 DOT11_OID_WDSLINKADD,
375 DOT11_OID_WDSLINKREMOVE,
376 DOT11_OID_EAPAUTHSTA,
377 DOT11_OID_EAPUNAUTHSTA,
378 DOT11_OID_DOT1XENABLE,
379 DOT11_OID_MICFAILURE,
380 DOT11_OID_REKEYINDICATE,
381
382 DOT11_OID_MPDUTXSUCCESSFUL,
383 DOT11_OID_MPDUTXONERETRY,
384 DOT11_OID_MPDUTXMULTIPLERETRIES,
385 DOT11_OID_MPDUTXFAILED,
386 DOT11_OID_MPDURXSUCCESSFUL,
387 DOT11_OID_MPDURXDUPS,
388 DOT11_OID_RTSSUCCESSFUL,
389 DOT11_OID_RTSFAILED,
390 DOT11_OID_ACKFAILED,
391 DOT11_OID_FRAMERECEIVES,
392 DOT11_OID_FRAMEERRORS,
393 DOT11_OID_FRAMEABORTS,
394 DOT11_OID_FRAMEABORTSPHY,
395
396 DOT11_OID_SLOTTIME,
397 DOT11_OID_CWMIN,
398 DOT11_OID_CWMAX,
399 DOT11_OID_ACKWINDOW,
400 DOT11_OID_ANTENNARX,
401 DOT11_OID_ANTENNATX,
402 DOT11_OID_ANTENNADIVERSITY,
403 DOT11_OID_CHANNEL,
404 DOT11_OID_EDTHRESHOLD,
405 DOT11_OID_PREAMBLESETTINGS,
406 DOT11_OID_RATES,
407 DOT11_OID_CCAMODESUPPORTED,
408 DOT11_OID_CCAMODE,
409 DOT11_OID_RSSIVECTOR,
410 DOT11_OID_OUTPUTPOWERTABLE,
411 DOT11_OID_OUTPUTPOWER,
412 DOT11_OID_SUPPORTEDRATES,
413 DOT11_OID_FREQUENCY,
414 DOT11_OID_SUPPORTEDFREQUENCIES,
415 DOT11_OID_NOISEFLOOR,
416 DOT11_OID_FREQUENCYACTIVITY,
417 DOT11_OID_IQCALIBRATIONTABLE,
418 DOT11_OID_NONERPPROTECTION,
419 DOT11_OID_SLOTSETTINGS,
420 DOT11_OID_NONERPTIMEOUT,
421 DOT11_OID_PROFILES,
422 DOT11_OID_EXTENDEDRATES,
423
424 DOT11_OID_DEAUTHENTICATE,
425 DOT11_OID_AUTHENTICATE,
426 DOT11_OID_DISASSOCIATE,
427 DOT11_OID_ASSOCIATE,
428 DOT11_OID_SCAN,
429 DOT11_OID_BEACON,
430 DOT11_OID_PROBE,
431 DOT11_OID_DEAUTHENTICATEEX,
432 DOT11_OID_AUTHENTICATEEX,
433 DOT11_OID_DISASSOCIATEEX,
434 DOT11_OID_ASSOCIATEEX,
435 DOT11_OID_REASSOCIATE,
436 DOT11_OID_REASSOCIATEEX,
437
438 DOT11_OID_NONERPSTATUS,
439
440 DOT11_OID_STATIMEOUT,
441 DOT11_OID_MLMEAUTOLEVEL,
442 DOT11_OID_BSSTIMEOUT,
443 DOT11_OID_ATTACHMENT,
444 DOT11_OID_PSMBUFFER,
445
446 DOT11_OID_BSSS,
447 DOT11_OID_BSSX,
448 DOT11_OID_BSSFIND,
449 DOT11_OID_BSSLIST,
450
451 OID_INL_TUNNEL,
452 OID_INL_MEMADDR,
453 OID_INL_MEMORY,
454 OID_INL_MODE,
455 OID_INL_COMPONENT_NR,
456 OID_INL_VERSION,
457 OID_INL_INTERFACE_ID,
458 OID_INL_COMPONENT_ID,
459 OID_INL_CONFIG,
460 OID_INL_DOT11D_CONFORMANCE,
461 OID_INL_PHYCAPABILITIES,
462 OID_INL_OUTPUTPOWER,
463
464 OID_NUM_LAST
465};
466
467#define OID_FLAG_CACHED 0x80
468#define OID_FLAG_TYPE 0x7f
469
470#define OID_TYPE_U32 0x01
471#define OID_TYPE_SSID 0x02
472#define OID_TYPE_KEY 0x03
473#define OID_TYPE_BUFFER 0x04
474#define OID_TYPE_BSS 0x05
475#define OID_TYPE_BSSLIST 0x06
476#define OID_TYPE_FREQUENCIES 0x07
477#define OID_TYPE_MLME 0x08
478#define OID_TYPE_MLMEEX 0x09
479#define OID_TYPE_ADDR 0x0A
480#define OID_TYPE_RAW 0x0B
481#define OID_TYPE_ATTACH 0x0C
482
483
484
485
486
487struct oid_t {
488 enum oid_num_t oid;
489 short range;
490 short size;
491 char flags;
492};
493
494union oid_res_t {
495 void *ptr;
496 u32 u;
497};
498
499#define IWMAX_BITRATES 20
500#define IWMAX_BSS 24
501#define IWMAX_FREQ 30
502#define PRIV_STR_SIZE 1024
503
504#endif
505
506