• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
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 
25 struct zd1201 {
26 	struct usb_device	*usb;
27 	int			removed;
28 	struct net_device	*dev;
29 	struct net_device_stats stats;
30 	struct iw_statistics	iwstats;
31 
32 	int			endp_in;
33 	int			endp_out;
34 	int			endp_out2;
35 	struct urb		*rx_urb;
36 	struct urb		*tx_urb;
37 
38 	unsigned char 		rxdata[ZD1201_RXSIZE];
39 	int			rxlen;
40 	wait_queue_head_t	rxdataq;
41 	int			rxdatas;
42 	struct hlist_head	fraglist;
43 	unsigned char		txdata[ZD1201_RXSIZE];
44 
45 	int			ap;
46 	char			essid[IW_ESSID_MAX_SIZE+1];
47 	int			essidlen;
48 	int			mac_enabled;
49 	int			was_enabled;
50 	int			monitor;
51 	int			encode_enabled;
52 	int			encode_restricted;
53 	unsigned char		encode_keys[ZD1201_NUMKEYS][ZD1201_MAXKEYLEN];
54 	int			encode_keylen[ZD1201_NUMKEYS];
55 };
56 
57 struct zd1201_frag {
58 	struct hlist_node	fnode;
59 	int			seq;
60 	struct sk_buff		*skb;
61 };
62 
63 #define ZD1201SIWHOSTAUTH SIOCIWFIRSTPRIV
64 #define ZD1201GIWHOSTAUTH ZD1201SIWHOSTAUTH+1
65 #define ZD1201SIWAUTHSTA SIOCIWFIRSTPRIV+2
66 #define ZD1201SIWMAXASSOC SIOCIWFIRSTPRIV+4
67 #define ZD1201GIWMAXASSOC ZD1201SIWMAXASSOC+1
68 
69 #define ZD1201_FW_TIMEOUT	(1000)
70 
71 #define ZD1201_TX_TIMEOUT	(2000)
72 
73 #define ZD1201_USB_CMDREQ	0
74 #define ZD1201_USB_RESREQ	1
75 
76 #define	ZD1201_CMDCODE_INIT	0x00
77 #define ZD1201_CMDCODE_ENABLE	0x01
78 #define ZD1201_CMDCODE_DISABLE	0x02
79 #define ZD1201_CMDCODE_ALLOC	0x0a
80 #define ZD1201_CMDCODE_INQUIRE	0x11
81 #define ZD1201_CMDCODE_SETRXRID	0x17
82 #define ZD1201_CMDCODE_ACCESS	0x21
83 
84 #define ZD1201_PACKET_EVENTSTAT	0x0
85 #define ZD1201_PACKET_RXDATA	0x1
86 #define ZD1201_PACKET_INQUIRE	0x2
87 #define ZD1201_PACKET_RESOURCE	0x3
88 
89 #define ZD1201_ACCESSBIT	0x0100
90 
91 #define ZD1201_RID_CNFPORTTYPE		0xfc00
92 #define ZD1201_RID_CNFOWNMACADDR	0xfc01
93 #define ZD1201_RID_CNFDESIREDSSID	0xfc02
94 #define ZD1201_RID_CNFOWNCHANNEL	0xfc03
95 #define ZD1201_RID_CNFOWNSSID		0xfc04
96 #define ZD1201_RID_CNFMAXDATALEN	0xfc07
97 #define ZD1201_RID_CNFPMENABLED		0xfc09
98 #define ZD1201_RID_CNFPMEPS		0xfc0a
99 #define ZD1201_RID_CNFMAXSLEEPDURATION	0xfc0c
100 #define ZD1201_RID_CNFDEFAULTKEYID	0xfc23
101 #define ZD1201_RID_CNFDEFAULTKEY0	0xfc24
102 #define ZD1201_RID_CNFDEFAULTKEY1	0xfc25
103 #define ZD1201_RID_CNFDEFAULTKEY2	0xfc26
104 #define ZD1201_RID_CNFDEFAULTKEY3	0xfc27
105 #define ZD1201_RID_CNFWEBFLAGS		0xfc28
106 #define ZD1201_RID_CNFAUTHENTICATION	0xfc2a
107 #define ZD1201_RID_CNFMAXASSOCSTATIONS	0xfc2b
108 #define ZD1201_RID_CNFHOSTAUTH		0xfc2e
109 #define ZD1201_RID_CNFGROUPADDRESS	0xfc80
110 #define ZD1201_RID_CNFFRAGTHRESHOLD	0xfc82
111 #define ZD1201_RID_CNFRTSTHRESHOLD	0xfc83
112 #define ZD1201_RID_TXRATECNTL		0xfc84
113 #define ZD1201_RID_PROMISCUOUSMODE	0xfc85
114 #define ZD1201_RID_CNFBASICRATES	0xfcb3
115 #define ZD1201_RID_AUTHENTICATESTA	0xfce3
116 #define ZD1201_RID_CURRENTBSSID		0xfd42
117 #define ZD1201_RID_COMMSQUALITY		0xfd43
118 #define ZD1201_RID_CURRENTTXRATE	0xfd44
119 #define ZD1201_RID_CNFMAXTXBUFFERNUMBER	0xfda0
120 #define ZD1201_RID_CURRENTCHANNEL	0xfdc1
121 
122 #define ZD1201_INQ_SCANRESULTS		0xf101
123 
124 #define ZD1201_INF_LINKSTATUS		0xf200
125 #define ZD1201_INF_ASSOCSTATUS		0xf201
126 #define ZD1201_INF_AUTHREQ		0xf202
127 
128 #define ZD1201_ASSOCSTATUS_STAASSOC	0x1
129 #define ZD1201_ASSOCSTATUS_REASSOC	0x2
130 #define ZD1201_ASSOCSTATUS_DISASSOC	0x3
131 #define ZD1201_ASSOCSTATUS_ASSOCFAIL	0x4
132 #define ZD1201_ASSOCSTATUS_AUTHFAIL	0x5
133 
134 #define ZD1201_PORTTYPE_IBSS		0
135 #define ZD1201_PORTTYPE_BSS		1
136 #define ZD1201_PORTTYPE_WDS		2
137 #define ZD1201_PORTTYPE_PSEUDOIBSS	3
138 #define ZD1201_PORTTYPE_AP		6
139 
140 #define ZD1201_RATEB1	1
141 #define ZD1201_RATEB2	2
142 #define ZD1201_RATEB5	4	/* 5.5 really, but 5 is shorter :) */
143 #define ZD1201_RATEB11	8
144 
145 #define ZD1201_CNFAUTHENTICATION_OPENSYSTEM	0x0001
146 #define ZD1201_CNFAUTHENTICATION_SHAREDKEY	0x0002
147 
148 #endif /* _INCLUDE_ZD1201_H_ */
149