[contrib] introduce libiwinfo, splitted apart from LuCI for general usage
[project/luci.git] / contrib / package / iwinfo / src / include / madwifi.h
1 /*
2 * Header bits derived from MadWifi source:
3 * Copyright (c) 2001 Atsushi Onoe
4 * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
5 * All rights reserved.
6 *
7 * Distributed under the terms of the GPLv2 license.
8 *
9 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
10 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
11 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
12 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
13 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
14 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
15 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
16 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
17 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
18 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
19 */
20
21 #ifndef _MADWIFI_H
22 #define _MADWIFI_H
23
24 /* ieee80211.h */
25 #define IEEE80211_ADDR_LEN 6
26 #define IEEE80211_RATE_VAL 0x7f
27
28
29 /* ieee80211_crypto.h */
30 #define IEEE80211_KEYBUF_SIZE 16
31 #define IEEE80211_MICBUF_SIZE 16
32 #define IEEE80211_TID_SIZE 17
33
34 #define IEEE80211_CIPHER_WEP 0
35 #define IEEE80211_CIPHER_TKIP 1
36 #define IEEE80211_CIPHER_AES_OCB 2
37 #define IEEE80211_CIPHER_AES_CCM 3
38 #define IEEE80211_CIPHER_CKIP 5
39 #define IEEE80211_CIPHER_NONE 6
40 #define IEEE80211_CIPHER_MAX (IEEE80211_CIPHER_NONE + 1)
41
42
43 /* ieee80211_ioctl.h */
44 #define IEEE80211_KEY_DEFAULT 0x80
45 #define IEEE80211_CHAN_MAX 255
46 #define IEEE80211_CHAN_BYTES 32
47 #define IEEE80211_RATE_MAXSIZE 15
48
49 #define IEEE80211_IOCTL_GETKEY (SIOCDEVPRIVATE+3)
50 #define IEEE80211_IOCTL_STA_STATS (SIOCDEVPRIVATE+5)
51 #define IEEE80211_IOCTL_STA_INFO (SIOCDEVPRIVATE+6)
52
53 #define IEEE80211_IOCTL_GETPARAM (SIOCIWFIRSTPRIV+1)
54 #define IEEE80211_IOCTL_GETMODE (SIOCIWFIRSTPRIV+3)
55 #define IEEE80211_IOCTL_GETCHANLIST (SIOCIWFIRSTPRIV+7)
56 #define IEEE80211_IOCTL_GETCHANINFO (SIOCIWFIRSTPRIV+13)
57
58 enum {
59 IEEE80211_PARAM_AUTHMODE = 3, /* authentication mode */
60 IEEE80211_PARAM_MCASTCIPHER = 5, /* multicast/default cipher */
61 IEEE80211_PARAM_MCASTKEYLEN = 6, /* multicast key length */
62 IEEE80211_PARAM_UCASTCIPHERS = 7, /* unicast cipher suites */
63 IEEE80211_PARAM_WPA = 10, /* WPA mode (0,1,2) */
64 };
65
66 /*
67 * Authentication mode.
68 */
69 enum ieee80211_authmode {
70 IEEE80211_AUTH_NONE = 0,
71 IEEE80211_AUTH_OPEN = 1, /* open */
72 IEEE80211_AUTH_SHARED = 2, /* shared-key */
73 IEEE80211_AUTH_8021X = 3, /* 802.1x */
74 IEEE80211_AUTH_AUTO = 4, /* auto-select/accept */
75 /* NB: these are used only for ioctls */
76 IEEE80211_AUTH_WPA = 5, /* WPA/RSN w/ 802.1x/PSK */
77 };
78
79 struct ieee80211_channel {
80 u_int16_t ic_freq; /* setting in MHz */
81 u_int16_t ic_flags; /* see below */
82 u_int8_t ic_ieee; /* IEEE channel number */
83 int8_t ic_maxregpower; /* maximum regulatory tx power in dBm */
84 int8_t ic_maxpower; /* maximum tx power in dBm */
85 int8_t ic_minpower; /* minimum tx power in dBm */
86 u_int8_t ic_scanflags;
87 u_int8_t ic_idletime; /* phy idle time in % */
88 };
89
90 struct ieee80211req_key {
91 u_int8_t ik_type; /* key/cipher type */
92 u_int8_t ik_pad;
93 u_int16_t ik_keyix; /* key index */
94 u_int8_t ik_keylen; /* key length in bytes */
95 u_int8_t ik_flags;
96 u_int8_t ik_macaddr[IEEE80211_ADDR_LEN];
97 u_int64_t ik_keyrsc; /* key receive sequence counter */
98 u_int64_t ik_keytsc; /* key transmit sequence counter */
99 u_int8_t ik_keydata[IEEE80211_KEYBUF_SIZE+IEEE80211_MICBUF_SIZE];
100 };
101
102 struct ieee80211req_chanlist {
103 u_int8_t ic_channels[IEEE80211_CHAN_BYTES];
104 };
105
106 struct ieee80211req_chaninfo {
107 u_int ic_nchans;
108 struct ieee80211_channel ic_chans[IEEE80211_CHAN_MAX];
109 };
110
111 struct ieee80211req_sta_info {
112 u_int16_t isi_len; /* length (mult of 4) */
113 u_int16_t isi_freq; /* MHz */
114 u_int16_t isi_flags; /* channel flags */
115 u_int16_t isi_state; /* state flags */
116 u_int8_t isi_authmode; /* authentication algorithm */
117 u_int8_t isi_rssi;
118 int8_t isi_noise;
119 u_int16_t isi_capinfo; /* capabilities */
120 u_int8_t isi_athflags; /* Atheros capabilities */
121 u_int8_t isi_erp; /* ERP element */
122 u_int8_t isi_macaddr[IEEE80211_ADDR_LEN];
123 u_int8_t isi_nrates; /* negotiated rates */
124 u_int8_t isi_rates[IEEE80211_RATE_MAXSIZE];
125 u_int8_t isi_txrate; /* index to isi_rates[] */
126 u_int16_t isi_ie_len; /* IE length */
127 u_int16_t isi_associd; /* assoc response */
128 u_int16_t isi_txpower; /* current tx power */
129 u_int16_t isi_vlan; /* vlan tag */
130 u_int16_t isi_txseqs[17]; /* seq to be transmitted */
131 u_int16_t isi_rxseqs[17]; /* seq previous for qos frames*/
132 u_int16_t isi_inact; /* inactivity timer */
133 u_int8_t isi_uapsd; /* UAPSD queues */
134 u_int8_t isi_opmode; /* sta operating mode */
135 };
136
137 /*
138 * Country/Region Codes from MS WINNLS.H
139 * Numbering from ISO 3166
140 * XXX belongs elsewhere
141 */
142
143 enum CountryCode {
144 CTRY_ALBANIA = 8, /* Albania */
145 CTRY_ALGERIA = 12, /* Algeria */
146 CTRY_ARGENTINA = 32, /* Argentina */
147 CTRY_ARMENIA = 51, /* Armenia */
148 CTRY_AUSTRALIA = 36, /* Australia */
149 CTRY_AUSTRIA = 40, /* Austria */
150 CTRY_AZERBAIJAN = 31, /* Azerbaijan */
151 CTRY_BAHRAIN = 48, /* Bahrain */
152 CTRY_BELARUS = 112, /* Belarus */
153 CTRY_BELGIUM = 56, /* Belgium */
154 CTRY_BELIZE = 84, /* Belize */
155 CTRY_BOLIVIA = 68, /* Bolivia */
156 CTRY_BRAZIL = 76, /* Brazil */
157 CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
158 CTRY_BULGARIA = 100, /* Bulgaria */
159 CTRY_CANADA = 124, /* Canada */
160 CTRY_CHILE = 152, /* Chile */
161 CTRY_CHINA = 156, /* People's Republic of China */
162 CTRY_COLOMBIA = 170, /* Colombia */
163 CTRY_COSTA_RICA = 188, /* Costa Rica */
164 CTRY_CROATIA = 191, /* Croatia */
165 CTRY_CYPRUS = 196,
166 CTRY_CZECH = 203, /* Czech Republic */
167 CTRY_DENMARK = 208, /* Denmark */
168 CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
169 CTRY_ECUADOR = 218, /* Ecuador */
170 CTRY_EGYPT = 818, /* Egypt */
171 CTRY_EL_SALVADOR = 222, /* El Salvador */
172 CTRY_ESTONIA = 233, /* Estonia */
173 CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
174 CTRY_FINLAND = 246, /* Finland */
175 CTRY_FRANCE = 250, /* France */
176 CTRY_FRANCE2 = 255, /* France2 */
177 CTRY_GEORGIA = 268, /* Georgia */
178 CTRY_GERMANY = 276, /* Germany */
179 CTRY_GREECE = 300, /* Greece */
180 CTRY_GUATEMALA = 320, /* Guatemala */
181 CTRY_HONDURAS = 340, /* Honduras */
182 CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
183 CTRY_HUNGARY = 348, /* Hungary */
184 CTRY_ICELAND = 352, /* Iceland */
185 CTRY_INDIA = 356, /* India */
186 CTRY_INDONESIA = 360, /* Indonesia */
187 CTRY_IRAN = 364, /* Iran */
188 CTRY_IRAQ = 368, /* Iraq */
189 CTRY_IRELAND = 372, /* Ireland */
190 CTRY_ISRAEL = 376, /* Israel */
191 CTRY_ITALY = 380, /* Italy */
192 CTRY_JAMAICA = 388, /* Jamaica */
193 CTRY_JAPAN = 392, /* Japan */
194 CTRY_JAPAN1 = 393, /* Japan (JP1) */
195 CTRY_JAPAN2 = 394, /* Japan (JP0) */
196 CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
197 CTRY_JAPAN4 = 396, /* Japan (JE1) */
198 CTRY_JAPAN5 = 397, /* Japan (JE2) */
199 CTRY_JAPAN6 = 399, /* Japan (JP6) */
200 CTRY_JAPAN7 = 900, /* Japan */
201 CTRY_JAPAN8 = 901, /* Japan */
202 CTRY_JAPAN9 = 902, /* Japan */
203 CTRY_JAPAN10 = 903, /* Japan */
204 CTRY_JAPAN11 = 904, /* Japan */
205 CTRY_JAPAN12 = 905, /* Japan */
206 CTRY_JAPAN13 = 906, /* Japan */
207 CTRY_JAPAN14 = 907, /* Japan */
208 CTRY_JAPAN15 = 908, /* Japan */
209 CTRY_JAPAN16 = 909, /* Japan */
210 CTRY_JAPAN17 = 910, /* Japan */
211 CTRY_JAPAN18 = 911, /* Japan */
212 CTRY_JAPAN19 = 912, /* Japan */
213 CTRY_JAPAN20 = 913, /* Japan */
214 CTRY_JAPAN21 = 914, /* Japan */
215 CTRY_JAPAN22 = 915, /* Japan */
216 CTRY_JAPAN23 = 916, /* Japan */
217 CTRY_JAPAN24 = 917, /* Japan */
218 CTRY_JAPAN25 = 918, /* Japan */
219 CTRY_JAPAN26 = 919, /* Japan */
220 CTRY_JAPAN27 = 920, /* Japan */
221 CTRY_JAPAN28 = 921, /* Japan */
222 CTRY_JAPAN29 = 922, /* Japan */
223 CTRY_JAPAN30 = 923, /* Japan */
224 CTRY_JAPAN31 = 924, /* Japan */
225 CTRY_JAPAN32 = 925, /* Japan */
226 CTRY_JAPAN33 = 926, /* Japan */
227 CTRY_JAPAN34 = 927, /* Japan */
228 CTRY_JAPAN35 = 928, /* Japan */
229 CTRY_JAPAN36 = 929, /* Japan */
230 CTRY_JAPAN37 = 930, /* Japan */
231 CTRY_JAPAN38 = 931, /* Japan */
232 CTRY_JAPAN39 = 932, /* Japan */
233 CTRY_JAPAN40 = 933, /* Japan */
234 CTRY_JAPAN41 = 934, /* Japan */
235 CTRY_JAPAN42 = 935, /* Japan */
236 CTRY_JAPAN43 = 936, /* Japan */
237 CTRY_JAPAN44 = 937, /* Japan */
238 CTRY_JAPAN45 = 938, /* Japan */
239 CTRY_JAPAN46 = 939, /* Japan */
240 CTRY_JAPAN47 = 940, /* Japan */
241 CTRY_JAPAN48 = 941, /* Japan */
242 CTRY_JORDAN = 400, /* Jordan */
243 CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
244 CTRY_KENYA = 404, /* Kenya */
245 CTRY_KOREA_NORTH = 408, /* North Korea */
246 CTRY_KOREA_ROC = 410, /* South Korea */
247 CTRY_KOREA_ROC2 = 411, /* South Korea */
248 CTRY_KUWAIT = 414, /* Kuwait */
249 CTRY_LATVIA = 428, /* Latvia */
250 CTRY_LEBANON = 422, /* Lebanon */
251 CTRY_LIBYA = 434, /* Libya */
252 CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
253 CTRY_LITHUANIA = 440, /* Lithuania */
254 CTRY_LUXEMBOURG = 442, /* Luxembourg */
255 CTRY_MACAU = 446, /* Macau */
256 CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */
257 CTRY_MALAYSIA = 458, /* Malaysia */
258 CTRY_MEXICO = 484, /* Mexico */
259 CTRY_MONACO = 492, /* Principality of Monaco */
260 CTRY_MOROCCO = 504, /* Morocco */
261 CTRY_NETHERLANDS = 528, /* Netherlands */
262 CTRY_NEW_ZEALAND = 554, /* New Zealand */
263 CTRY_NICARAGUA = 558, /* Nicaragua */
264 CTRY_NORWAY = 578, /* Norway */
265 CTRY_OMAN = 512, /* Oman */
266 CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
267 CTRY_PANAMA = 591, /* Panama */
268 CTRY_PARAGUAY = 600, /* Paraguay */
269 CTRY_PERU = 604, /* Peru */
270 CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
271 CTRY_POLAND = 616, /* Poland */
272 CTRY_PORTUGAL = 620, /* Portugal */
273 CTRY_PUERTO_RICO = 630, /* Puerto Rico */
274 CTRY_QATAR = 634, /* Qatar */
275 CTRY_ROMANIA = 642, /* Romania */
276 CTRY_RUSSIA = 643, /* Russia */
277 CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
278 CTRY_SINGAPORE = 702, /* Singapore */
279 CTRY_SLOVAKIA = 703, /* Slovak Republic */
280 CTRY_SLOVENIA = 705, /* Slovenia */
281 CTRY_SOUTH_AFRICA = 710, /* South Africa */
282 CTRY_SPAIN = 724, /* Spain */
283 CTRY_SWEDEN = 752, /* Sweden */
284 CTRY_SWITZERLAND = 756, /* Switzerland */
285 CTRY_SYRIA = 760, /* Syria */
286 CTRY_TAIWAN = 158, /* Taiwan */
287 CTRY_THAILAND = 764, /* Thailand */
288 CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
289 CTRY_TUNISIA = 788, /* Tunisia */
290 CTRY_TURKEY = 792, /* Turkey */
291 CTRY_UAE = 784, /* U.A.E. */
292 CTRY_UKRAINE = 804, /* Ukraine */
293 CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
294 CTRY_UNITED_STATES = 840, /* United States */
295 CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/
296 CTRY_URUGUAY = 858, /* Uruguay */
297 CTRY_UZBEKISTAN = 860, /* Uzbekistan */
298 CTRY_VENEZUELA = 862, /* Venezuela */
299 CTRY_VIET_NAM = 704, /* Viet Nam */
300 CTRY_YEMEN = 887, /* Yemen */
301 CTRY_ZIMBABWE = 716 /* Zimbabwe */
302 };
303
304
305 #endif