[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