Merge branch 'master' of http://xazz.no-ip.info/projects/acx-mac80211
[acx-mac80211.git] / acx_ie.h
blob6865964adcbf970e00fd2ca2a25e416c465f0083
1 /*
2 * Copyright (C) 2008 The ACX100 Open Source Project
3 * <acx100-devel@lists.sourceforge.net>
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as
7 * published by the Free Software Foundation; either version 2 of the
8 * License, or (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * General Public License for more details.
15 * You should have received a copy of the GNU General Public
16 * License along with this program; if not, write to the
17 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 * Boston, MA 02111-1307, USA.
20 * This header contains the definitions of the Information Elements (IE)
23 #ifndef _ACX_IE_H_
24 #define _ACX_IE_H_
26 /* Information Elements: Network Parameters, Static Configuration Entities */
27 /* these are handled by real_cfgtable in firmware "Rev 1.5.0" (FW150) */
28 //DEF_IE(1xx_IE_UNKNOWN_00 ,0x0000, -1); /* mapped to cfgInvalid in FW150 */
29 #define ACX100_IE_ACX_TIMER (0x0001)
30 #define ACX100_IE_ACX_TIMER_LEN (0x10)
31 /* TNETW1450: length 0x18!! */
32 #define ACX1xx_IE_POWER_MGMT (0x0002)
33 #define ACX1xx_IE_POWER_MGMT_LEN (0x06)
34 #define ACX1xx_IE_QUEUE_CONFIG (0x0003)
35 #define ACX1xx_IE_QUEUE_CONFIG_LEN (0x1c)
36 #define ACX100_IE_BLOCK_SIZE (0x0004)
37 #define ACX100_IE_BLOCK_SIZE_LEN (0x02)
38 /* later firmware versions only? */
39 #define ACX1FF_IE_SLOT_TIME (0x0004)
40 #define ACX1FF_IE_SLOT_TIME_LEN (0x08)
41 #define ACX1xx_IE_MEMORY_CONFIG_OPTIONS (0x0005)
42 #define ACX1xx_IE_MEMORY_CONFIG_OPTIONS_LEN (0x14)
43 #define ACX1FF_IE_QUEUE_HEAD (0x0005)
44 #define ACX1FF_IE_QUEUE_HEAD_LEN (0x14 /* FIXME: length? */)
45 /* TNETW1450: length 2 */
46 #define ACX1xx_IE_RATE_FALLBACK (0x0006)
47 #define ACX1xx_IE_RATE_FALLBACK_LEN (0x01)
48 #define ACX100_IE_WEP_OPTIONS (0x0007)
49 #define ACX100_IE_WEP_OPTIONS_LEN (0x03)
50 #define ACX111_IE_RADIO_BAND (0x0007)
51 #define ACX111_IE_RADIO_BAND_LEN (-1)
52 /* later firmware versions; TNETW1450 only? */
53 #define ACX1FF_IE_TIMING_CFG (0x0007)
54 #define ACX1FF_IE_TIMING_CFG_LEN (-1)
55 /* huh? */
56 #define ACX100_IE_SSID (0x0008)
57 #define ACX100_IE_SSID_LEN (0x20)
58 /* huh? TNETW1450 has length 0x40!! */
59 #define ACX1xx_IE_MEMORY_MAP (0x0008)
60 #define ACX1xx_IE_MEMORY_MAP_LEN (0x28)
61 /* mapped to cfgInvalid in FW150 */
62 #define ACX1xx_IE_SCAN_STATUS (0x0009)
63 #define ACX1xx_IE_SCAN_STATUS_LEN (0x04)
64 #define ACX1xx_IE_ASSOC_ID (0x000a)
65 #define ACX1xx_IE_ASSOC_ID_LEN (0x02)
66 /* mapped to cfgInvalid in FW150 */
67 #define ACX1xx_IE_UNKNOWN_0B (0x000b)
68 #define ACX1xx_IE_UNKNOWN_0B_LEN (-1)
69 /* later firmware versions; TNETW1450 only? */
70 #define ACX1FF_IE_TX_POWER_LEVEL_TABLE (0x000b)
71 #define ACX1FF_IE_TX_POWER_LEVEL_TABLE_LEN (0x18)
72 /* very small implementation in FW150! */
73 #define ACX100_IE_UNKNOWN_0C (0x000c)
74 #define ACX100_IE_UNKNOWN_0C_LEN (-1)
76 * ACX100 has an equivalent struct in the cmd mailbox directly after reset.
77 * 0x14c seems extremely large, will trash stack on failure (memset!)
78 * in case of small input struct --> OOPS!
80 #define ACX111_IE_CONFIG_OPTIONS (0x000c)
81 #define ACX111_IE_CONFIG_OPTIONS_LEN (0x14c)
82 #define ACX1xx_IE_FWREV (0x000d)
83 #define ACX1xx_IE_FWREV_LEN (0x18)
84 #define ACX1xx_IE_FCS_ERROR_COUNT (0x000e)
85 #define ACX1xx_IE_FCS_ERROR_COUNT_LEN (0x04)
86 #define ACX1xx_IE_MEDIUM_USAGE (0x000f)
87 #define ACX1xx_IE_MEDIUM_USAGE_LEN (0x08)
88 #define ACX1xx_IE_RXCONFIG (0x0010)
89 #define ACX1xx_IE_RXCONFIG_LEN (0x04)
90 /* NONBINARY: large implementation in FW150! link quality readings or so? */
91 #define ACX100_IE_UNKNOWN_11 (0x0011)
92 #define ACX100_IE_UNKNOWN_11_LEN (-1)
93 #define ACX111_IE_QUEUE_THRESH (0x0011)
94 #define ACX111_IE_QUEUE_THRESH_LEN (-1)
95 /* NONBINARY: VERY large implementation in FW150!! */
96 #define ACX100_IE_UNKNOWN_12 (0x0012)
97 #define ACX100_IE_UNKNOWN_12_LEN (-1)
98 #define ACX111_IE_BSS_POWER_SAVE (0x0012)
99 #define ACX111_IE_BSS_POWER_SAVE_LEN (/* -1 */ 2)
100 /* TNETW1450: length 0x134!! */
101 #define ACX1xx_IE_FIRMWARE_STATISTICS (0x0013)
102 #define ACX1xx_IE_FIRMWARE_STATISTICS_LEN (0x9c)
103 /* later firmware versions, TNETW1450 only? */
104 #define ACX1FF_IE_RX_INTR_CONFIG (0x0014)
105 #define ACX1FF_IE_RX_INTR_CONFIG_LEN (0x14)
106 #define ACX1xx_IE_FEATURE_CONFIG (0x0015)
107 #define ACX1xx_IE_FEATURE_CONFIG_LEN (0x08)
108 /* for rekeying. really len=4?? */
109 #define ACX111_IE_KEY_CHOOSE (0x0016)
110 #define ACX111_IE_KEY_CHOOSE_LEN (0x04)
111 /* later firmware versions, TNETW1450 only? */
112 #define ACX1FF_IE_MISC_CONFIG_TABLE (0x0017)
113 #define ACX1FF_IE_MISC_CONFIG_TABLE_LEN (0x04)
114 /* later firmware versions, TNETW1450 only? */
115 #define ACX1FF_IE_WONE_CONFIG (0x0018)
116 #define ACX1FF_IE_WONE_CONFIG_LEN (-1)
117 /* later firmware versions, TNETW1450 only? */
118 #define ACX1FF_IE_TID_CONFIG (0x001a)
119 #define ACX1FF_IE_TID_CONFIG_LEN (0x2c)
120 /* later firmware versions, TNETW1450 only? */
121 #define ACX1FF_IE_CALIB_ASSESSMENT (0x001e)
122 #define ACX1FF_IE_CALIB_ASSESSMENT_LEN (0x04)
123 /* later firmware versions, TNETW1450 only? */
124 #define ACX1FF_IE_BEACON_FILTER_OPTIONS (0x001f)
125 #define ACX1FF_IE_BEACON_FILTER_OPTIONS_LEN (0x02)
126 /* later firmware versions, TNETW1450 only? */
127 #define ACX1FF_IE_LOW_RSSI_THRESH_OPT (0x0020)
128 #define ACX1FF_IE_LOW_RSSI_THRESH_OPT_LEN (0x04)
129 /* later firmware versions, TNETW1450 only? */
130 #define ACX1FF_IE_NOISE_HISTOGRAM_RESULTS (0x0021)
131 #define ACX1FF_IE_NOISE_HISTOGRAM_RESULTS_LEN (0x30)
132 /* later firmware versions, TNETW1450 only? */
133 #define ACX1FF_IE_PACKET_DETECT_THRESH (0x0023)
134 #define ACX1FF_IE_PACKET_DETECT_THRESH_LEN (0x04)
135 /* later firmware versions, TNETW1450 only? */
136 #define ACX1FF_IE_TX_CONFIG_OPTIONS (0x0024)
137 #define ACX1FF_IE_TX_CONFIG_OPTIONS_LEN (0x04)
138 /* later firmware versions, TNETW1450 only? */
139 #define ACX1FF_IE_CCA_THRESHOLD (0x0025)
140 #define ACX1FF_IE_CCA_THRESHOLD_LEN (0x02)
141 /* later firmware versions, TNETW1450 only? */
142 #define ACX1FF_IE_EVENT_MASK (0x0026)
143 #define ACX1FF_IE_EVENT_MASK_LEN (0x08)
144 /* later firmware versions, TNETW1450 only? */
145 #define ACX1FF_IE_DTIM_PERIOD (0x0027)
146 #define ACX1FF_IE_DTIM_PERIOD_LEN (0x02)
147 /* later firmware versions; maybe TNETW1450 only? */
148 #define ACX1FF_IE_ACI_CONFIG_SET (0x0029)
149 #define ACX1FF_IE_ACI_CONFIG_SET_LEN (0x06)
150 /* later firmware versions; maybe TNETW1450 only? */
151 #define ACX1FF_IE_EEPROM_VER (0x0030)
152 #define ACX1FF_IE_EEPROM_VER_LEN (0x04)
153 #define ACX1xx_IE_DOT11_STATION_ID (0x1001)
154 #define ACX1xx_IE_DOT11_STATION_ID_LEN (0x06)
155 /* mapped to cfgInvalid in FW150 */
156 #define ACX100_IE_DOT11_UNKNOWN_1002 (0x1002)
157 #define ACX100_IE_DOT11_UNKNOWN_1002_LEN (-1)
158 /* mapped to cfgInvalid in FW150; TNETW1450 has length 2!! */
159 #define ACX111_IE_DOT11_FRAG_THRESH (0x1002)
160 #define ACX111_IE_DOT11_FRAG_THRESH_LEN (-1)
161 /* mapped to cfgInvalid in FW150 */
162 #define ACX100_IE_DOT11_BEACON_PERIOD (0x1003)
163 #define ACX100_IE_DOT11_BEACON_PERIOD_LEN (0x02)
164 /* mapped to cfgInvalid in FW150 */
165 #define ACX1xx_IE_DOT11_DTIM_PERIOD (0x1004)
166 #define ACX1xx_IE_DOT11_DTIM_PERIOD_LEN (-1)
167 /* later firmware versions; maybe TNETW1450 only? */
168 #define ACX1FF_IE_DOT11_MAX_RX_LIFETIME (0x1004)
169 #define ACX1FF_IE_DOT11_MAX_RX_LIFETIME_LEN (-1)
170 /* TNETW1450: length 2 */
171 #define ACX1xx_IE_DOT11_SHORT_RETRY_LIMIT (0x1005)
172 #define ACX1xx_IE_DOT11_SHORT_RETRY_LIMIT_LEN (0x01)
173 /* TNETW1450: length 2 */
174 #define ACX1xx_IE_DOT11_LONG_RETRY_LIMIT (0x1006)
175 #define ACX1xx_IE_DOT11_LONG_RETRY_LIMIT_LEN (0x01)
176 /* configure default keys; TNETW1450 has length 0x24!! */
177 #define ACX100_IE_DOT11_WEP_DEFAULT_KEY_WRITE (0x1007)
178 #define ACX100_IE_DOT11_WEP_DEFAULT_KEY_WRITE_LEN (0x20)
179 #define ACX1xx_IE_DOT11_MAX_XMIT_MSDU_LIFETIME (0x1008)
180 #define ACX1xx_IE_DOT11_MAX_XMIT_MSDU_LIFETIME_LEN (0x04)
181 #define ACX1xx_IE_DOT11_GROUP_ADDR (0x1009)
182 #define ACX1xx_IE_DOT11_GROUP_ADDR_LEN (-1)
183 #define ACX1xx_IE_DOT11_CURRENT_REG_DOMAIN (0x100a)
184 #define ACX1xx_IE_DOT11_CURRENT_REG_DOMAIN_LEN (0x02)
185 /* It's harmless to have larger struct. Use USB case always. */
186 /* in fact len=1 for PCI */
187 #define ACX1xx_IE_DOT11_CURRENT_ANTENNA (0x100b)
188 #define ACX1xx_IE_DOT11_CURRENT_ANTENNA_LEN (0x02)
189 /* mapped to cfgInvalid in FW150 */
190 #define ACX1xx_IE_DOT11_UNKNOWN_100C (0x100c)
191 #define ACX1xx_IE_DOT11_UNKNOWN_100C_LEN (-1)
192 /* TNETW1450 has length 2!! */
193 #define ACX1xx_IE_DOT11_TX_POWER_LEVEL (0x100d)
194 #define ACX1xx_IE_DOT11_TX_POWER_LEVEL_LEN (0x01)
195 /* in fact len=1 for PCI */
196 #define ACX1xx_IE_DOT11_CURRENT_CCA_MODE (0x100e)
197 #define ACX1xx_IE_DOT11_CURRENT_CCA_MODE_LEN (0x02)
198 /* USB doesn't return anything - len==0?! */
199 #define ACX100_IE_DOT11_ED_THRESHOLD (0x100f)
200 #define ACX100_IE_DOT11_ED_THRESHOLD_LEN (0x04)
201 /* set default key ID; TNETW1450: length 2 */
202 #define ACX1xx_IE_DOT11_WEP_DEFAULT_KEY_SET (0x1010)
203 #define ACX1xx_IE_DOT11_WEP_DEFAULT_KEY_SET_LEN (0x01)
204 /* mapped to cfgInvalid in FW150 */
205 #define ACX100_IE_DOT11_UNKNOWN_1011 (0x1011)
206 #define ACX100_IE_DOT11_UNKNOWN_1011_LEN (-1)
207 /* later firmware versions; maybe TNETW1450 only? */
208 #define ACX1FF_IE_DOT11_CURR_5GHZ_REGDOM (0x1011)
209 #define ACX1FF_IE_DOT11_CURR_5GHZ_REGDOM_LEN (-1)
210 /* mapped to cfgInvalid in FW150 */
211 #define ACX100_IE_DOT11_UNKNOWN_1012 (0x1012)
212 #define ACX100_IE_DOT11_UNKNOWN_1012_LEN (-1)
213 /* mapped to cfgInvalid in FW150 */
214 #define ACX100_IE_DOT11_UNKNOWN_1013 (0x1013)
215 #define ACX100_IE_DOT11_UNKNOWN_1013_LEN (-1)
217 #endif /* _ACX_IE_H_ */