blob: dd7ea1f35bef83d00d0fa18c91f6947ab02b1ab8 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * Copyright (c) 2004, 2005 Jeroen Vreeken (pe1rxq@amsat.org)
3 *
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * version 2 as published by the Free Software Foundation.
7 *
8 * Parts of this driver have been derived from a wlan-ng version
9 * modified by ZyDAS.
10 * Copyright (C) 1999 AbsoluteValue Systems, Inc. All Rights Reserved.
11 */
12
13#ifndef _INCLUDE_ZD1201_H_
14#define _INCLUDE_ZD1201_H_
15
16#define ZD1201_NUMKEYS 4
17#define ZD1201_MAXKEYLEN 13
18#define ZD1201_MAXMULTI 16
19#define ZD1201_FRAGMAX 2500
20#define ZD1201_FRAGMIN 256
21#define ZD1201_RTSMAX 2500
22
23#define ZD1201_RXSIZE 3000
24
25struct zd1201 {
26 struct usb_device *usb;
27 int removed;
28 struct net_device *dev;
Linus Torvalds1da177e2005-04-16 15:20:36 -070029 struct iw_statistics iwstats;
30
31 int endp_in;
32 int endp_out;
33 int endp_out2;
34 struct urb *rx_urb;
35 struct urb *tx_urb;
36
37 unsigned char rxdata[ZD1201_RXSIZE];
38 int rxlen;
39 wait_queue_head_t rxdataq;
40 int rxdatas;
41 struct hlist_head fraglist;
42 unsigned char txdata[ZD1201_RXSIZE];
43
44 int ap;
45 char essid[IW_ESSID_MAX_SIZE+1];
46 int essidlen;
47 int mac_enabled;
Colin Leroya3c900b2005-04-24 16:37:15 -070048 int was_enabled;
Linus Torvalds1da177e2005-04-16 15:20:36 -070049 int monitor;
50 int encode_enabled;
51 int encode_restricted;
52 unsigned char encode_keys[ZD1201_NUMKEYS][ZD1201_MAXKEYLEN];
53 int encode_keylen[ZD1201_NUMKEYS];
54};
55
56struct zd1201_frag {
57 struct hlist_node fnode;
58 int seq;
59 struct sk_buff *skb;
60};
61
62#define ZD1201SIWHOSTAUTH SIOCIWFIRSTPRIV
63#define ZD1201GIWHOSTAUTH ZD1201SIWHOSTAUTH+1
64#define ZD1201SIWAUTHSTA SIOCIWFIRSTPRIV+2
65#define ZD1201SIWMAXASSOC SIOCIWFIRSTPRIV+4
66#define ZD1201GIWMAXASSOC ZD1201SIWMAXASSOC+1
67
68#define ZD1201_FW_TIMEOUT (1000)
69
70#define ZD1201_TX_TIMEOUT (2000)
71
72#define ZD1201_USB_CMDREQ 0
73#define ZD1201_USB_RESREQ 1
74
75#define ZD1201_CMDCODE_INIT 0x00
76#define ZD1201_CMDCODE_ENABLE 0x01
77#define ZD1201_CMDCODE_DISABLE 0x02
78#define ZD1201_CMDCODE_ALLOC 0x0a
79#define ZD1201_CMDCODE_INQUIRE 0x11
80#define ZD1201_CMDCODE_SETRXRID 0x17
81#define ZD1201_CMDCODE_ACCESS 0x21
82
83#define ZD1201_PACKET_EVENTSTAT 0x0
84#define ZD1201_PACKET_RXDATA 0x1
85#define ZD1201_PACKET_INQUIRE 0x2
86#define ZD1201_PACKET_RESOURCE 0x3
87
88#define ZD1201_ACCESSBIT 0x0100
89
90#define ZD1201_RID_CNFPORTTYPE 0xfc00
91#define ZD1201_RID_CNFOWNMACADDR 0xfc01
92#define ZD1201_RID_CNFDESIREDSSID 0xfc02
93#define ZD1201_RID_CNFOWNCHANNEL 0xfc03
94#define ZD1201_RID_CNFOWNSSID 0xfc04
95#define ZD1201_RID_CNFMAXDATALEN 0xfc07
96#define ZD1201_RID_CNFPMENABLED 0xfc09
97#define ZD1201_RID_CNFPMEPS 0xfc0a
98#define ZD1201_RID_CNFMAXSLEEPDURATION 0xfc0c
99#define ZD1201_RID_CNFDEFAULTKEYID 0xfc23
100#define ZD1201_RID_CNFDEFAULTKEY0 0xfc24
101#define ZD1201_RID_CNFDEFAULTKEY1 0xfc25
102#define ZD1201_RID_CNFDEFAULTKEY2 0xfc26
103#define ZD1201_RID_CNFDEFAULTKEY3 0xfc27
104#define ZD1201_RID_CNFWEBFLAGS 0xfc28
105#define ZD1201_RID_CNFAUTHENTICATION 0xfc2a
106#define ZD1201_RID_CNFMAXASSOCSTATIONS 0xfc2b
107#define ZD1201_RID_CNFHOSTAUTH 0xfc2e
108#define ZD1201_RID_CNFGROUPADDRESS 0xfc80
109#define ZD1201_RID_CNFFRAGTHRESHOLD 0xfc82
110#define ZD1201_RID_CNFRTSTHRESHOLD 0xfc83
111#define ZD1201_RID_TXRATECNTL 0xfc84
112#define ZD1201_RID_PROMISCUOUSMODE 0xfc85
113#define ZD1201_RID_CNFBASICRATES 0xfcb3
114#define ZD1201_RID_AUTHENTICATESTA 0xfce3
115#define ZD1201_RID_CURRENTBSSID 0xfd42
116#define ZD1201_RID_COMMSQUALITY 0xfd43
117#define ZD1201_RID_CURRENTTXRATE 0xfd44
118#define ZD1201_RID_CNFMAXTXBUFFERNUMBER 0xfda0
119#define ZD1201_RID_CURRENTCHANNEL 0xfdc1
120
121#define ZD1201_INQ_SCANRESULTS 0xf101
122
123#define ZD1201_INF_LINKSTATUS 0xf200
124#define ZD1201_INF_ASSOCSTATUS 0xf201
125#define ZD1201_INF_AUTHREQ 0xf202
126
127#define ZD1201_ASSOCSTATUS_STAASSOC 0x1
128#define ZD1201_ASSOCSTATUS_REASSOC 0x2
129#define ZD1201_ASSOCSTATUS_DISASSOC 0x3
130#define ZD1201_ASSOCSTATUS_ASSOCFAIL 0x4
131#define ZD1201_ASSOCSTATUS_AUTHFAIL 0x5
132
133#define ZD1201_PORTTYPE_IBSS 0
134#define ZD1201_PORTTYPE_BSS 1
135#define ZD1201_PORTTYPE_WDS 2
136#define ZD1201_PORTTYPE_PSEUDOIBSS 3
137#define ZD1201_PORTTYPE_AP 6
138
139#define ZD1201_RATEB1 1
140#define ZD1201_RATEB2 2
141#define ZD1201_RATEB5 4 /* 5.5 really, but 5 is shorter :) */
142#define ZD1201_RATEB11 8
143
144#define ZD1201_CNFAUTHENTICATION_OPENSYSTEM 0x0001
145#define ZD1201_CNFAUTHENTICATION_SHAREDKEY 0x0002
146
147#endif /* _INCLUDE_ZD1201_H_ */