1 /* $OpenBSD: ieee80211_regdomain.h,v 1.9 2016/01/12 09:28:09 stsp Exp $ */
2
3 /*
4 * Copyright (c) 2004, 2005 Reyk Floeter <reyk@openbsd.org>
5 *
6 * Permission to use, copy, modify, and distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #ifndef _NET80211_IEEE80211_REGDOMAIN_H_
20 #define _NET80211_IEEE80211_REGDOMAIN_H_
21
22 typedef u_int32_t ieee80211_regdomain_t;
23
24 enum ieee80211_regdomain {
25 DMN_DEFAULT = 0x00,
26 DMN_NULL_WORLD = 0x03,
27 DMN_NULL_ETSIB = 0x07,
28 DMN_NULL_ETSIC = 0x08,
29 DMN_FCC1_FCCA = 0x10,
30 DMN_FCC1_WORLD = 0x11,
31 DMN_FCC2_FCCA = 0x20,
32 DMN_FCC2_WORLD = 0x21,
33 DMN_FCC2_ETSIC = 0x22,
34 DMN_FRANCE_NULL = 0x31,
35 DMN_FCC3_FCCA = 0x3A,
36 DMN_ETSI1_WORLD = 0x37,
37 DMN_ETSI3_ETSIA = 0x32,
38 DMN_ETSI2_WORLD = 0x35,
39 DMN_ETSI3_WORLD = 0x36,
40 DMN_ETSI4_WORLD = 0x30,
41 DMN_ETSI4_ETSIC = 0x38,
42 DMN_ETSI5_WORLD = 0x39,
43 DMN_ETSI6_WORLD = 0x34,
44 DMN_ETSI_NULL = 0x33,
45 DMN_MKK1_MKKA = 0x40,
46 DMN_MKK1_MKKB = 0x41,
47 DMN_APL4_WORLD = 0x42,
48 DMN_MKK2_MKKA = 0x43,
49 DMN_APL_NULL = 0x44,
50 DMN_APL2_WORLD = 0x45,
51 DMN_APL2_APLC = 0x46,
52 DMN_APL3_WORLD = 0x47,
53 DMN_MKK1_FCCA = 0x48,
54 DMN_APL2_APLD = 0x49,
55 DMN_MKK1_MKKA1 = 0x4A,
56 DMN_MKK1_MKKA2 = 0x4B,
57 DMN_APL1_WORLD = 0x52,
58 DMN_APL1_FCCA = 0x53,
59 DMN_APL1_APLA = 0x54,
60 DMN_APL1_ETSIC = 0x55,
61 DMN_APL2_ETSIC = 0x56,
62 DMN_APL5_WORLD = 0x58,
63 DMN_WOR0_WORLD = 0x60,
64 DMN_WOR1_WORLD = 0x61,
65 DMN_WOR2_WORLD = 0x62,
66 DMN_WOR3_WORLD = 0x63,
67 DMN_WOR4_WORLD = 0x64,
68 DMN_WOR5_ETSIC = 0x65,
69 DMN_WOR01_WORLD = 0x66,
70 DMN_WOR02_WORLD = 0x67,
71 DMN_EU1_WORLD = 0x68,
72 DMN_WOR9_WORLD = 0x69,
73 DMN_WORA_WORLD = 0x6A,
74
75 DMN_APL1 = 0xf0000001,
76 DMN_APL2 = 0xf0000002,
77 DMN_APL3 = 0xf0000004,
78 DMN_APL4 = 0xf0000008,
79 DMN_APL5 = 0xf0000010,
80 DMN_ETSI1 = 0xf0000020,
81 DMN_ETSI2 = 0xf0000040,
82 DMN_ETSI3 = 0xf0000080,
83 DMN_ETSI4 = 0xf0000100,
84 DMN_ETSI5 = 0xf0000200,
85 DMN_ETSI6 = 0xf0000400,
86 DMN_ETSIA = 0xf0000800,
87 DMN_ETSIB = 0xf0001000,
88 DMN_ETSIC = 0xf0002000,
89 DMN_FCC1 = 0xf0004000,
90 DMN_FCC2 = 0xf0008000,
91 DMN_FCC3 = 0xf0010000,
92 DMN_FCCA = 0xf0020000,
93 DMN_APLD = 0xf0040000,
94 DMN_MKK1 = 0xf0080000,
95 DMN_MKK2 = 0xf0100000,
96 DMN_MKKA = 0xf0200000,
97 DMN_NULL = 0xf0400000,
98 DMN_WORLD = 0xf0800000,
99 DMN_DEBUG = 0xf1000000 /* used for debugging */
100 };
101
102 #define IEEE80211_DMN(_d) ((_d) & ~0xf0000000)
103
104 struct ieee80211_regdomainname {
105 u_int32_t rn_domain;
106 const char *rn_name;
107 };
108
109 #define IEEE80211_REGDOMAIN_NAMES { \
110 { DMN_APL1, "APL1" }, \
111 { DMN_APL1_APLA, "APL1A" }, \
112 { DMN_APL1_ETSIC, "APL1_ETSIC" }, \
113 { DMN_APL1_FCCA, "APL1_FCCA" }, \
114 { DMN_APL1_WORLD, "APL1W" }, \
115 { DMN_APL2, "APL2" }, \
116 { DMN_APL2_APLC, "APL2C" }, \
117 { DMN_APL2_APLD, "APL2D" }, \
118 { DMN_APL2_ETSIC, "APL2_ETSIC" }, \
119 { DMN_APL2_WORLD, "APL2W" }, \
120 { DMN_APL3, "APL3" }, \
121 { DMN_APL3_WORLD, "APL3W" }, \
122 { DMN_APL4, "APL4" }, \
123 { DMN_APL4_WORLD, "APL4W" }, \
124 { DMN_APL5, "APL5" }, \
125 { DMN_APL5_WORLD, "APL5W" }, \
126 { DMN_APLD, "APLD" }, \
127 { DMN_APL_NULL, "APL" }, \
128 { DMN_DEBUG, "DEBUG" }, \
129 { DMN_ETSI1, "ETSI1" }, \
130 { DMN_ETSI1_WORLD, "ETSI1W" }, \
131 { DMN_ETSI2, "ETSI2" }, \
132 { DMN_ETSI2_WORLD, "ETSI2W" }, \
133 { DMN_ETSI3, "ETSI3" }, \
134 { DMN_ETSI3_ETSIA, "ETSI3A" }, \
135 { DMN_ETSI3_WORLD, "ETSI3W," }, \
136 { DMN_ETSI4, "ETSI4" }, \
137 { DMN_ETSI4_ETSIC, "ETSI4C" }, \
138 { DMN_ETSI4_WORLD, "ETSI4W" }, \
139 { DMN_ETSI5, "ETSI5" }, \
140 { DMN_ETSI5_WORLD, "ETSI5W" }, \
141 { DMN_ETSI6, "ETSI6" }, \
142 { DMN_ETSI6_WORLD, "ETSI6W" }, \
143 { DMN_ETSIA, "ETSIA" }, \
144 { DMN_ETSIB, "ETSIB" }, \
145 { DMN_ETSIC, "ETSIC" }, \
146 { DMN_ETSI_NULL, "ETSI" }, \
147 { DMN_EU1_WORLD, "EU1W" }, \
148 { DMN_FCC1, "FCC1" }, \
149 { DMN_FCC1_FCCA, "FCC1A" }, \
150 { DMN_FCC1_WORLD, "FCC1W" }, \
151 { DMN_FCC2, "FCC2" }, \
152 { DMN_FCC2_ETSIC, "FCC2C" }, \
153 { DMN_FCC2_FCCA, "FCC2A" }, \
154 { DMN_FCC2_WORLD, "FCC2W" }, \
155 { DMN_FCC3, "FCC3" }, \
156 { DMN_FCC3_FCCA, "FCC3A" }, \
157 { DMN_FCCA, "FCCA" }, \
158 { DMN_FRANCE_NULL, "FRANCE" }, \
159 { DMN_MKK1, "MKK1" }, \
160 { DMN_MKK1_FCCA, "MKK1_FCCA" }, \
161 { DMN_MKK1_MKKA, "MKK1A" }, \
162 { DMN_MKK1_MKKA1, "MKK1A1" }, \
163 { DMN_MKK1_MKKA2, "MKK1A2" }, \
164 { DMN_MKK1_MKKB, "MKK1B" }, \
165 { DMN_MKK2, "MKK2" }, \
166 { DMN_MKK2_MKKA, "MKK2A" }, \
167 { DMN_MKKA, "MKKA" }, \
168 { DMN_DEFAULT, "NONE" }, \
169 { DMN_NULL, "NONE" }, \
170 { DMN_NULL_ETSIB, "ETSIB" }, \
171 { DMN_NULL_ETSIC, "ETSIC" }, \
172 { DMN_WOR01_WORLD, "WOR01W" }, \
173 { DMN_WOR02_WORLD, "WOR02W" }, \
174 { DMN_WOR0_WORLD, "WOR0W" }, \
175 { DMN_WOR1_WORLD, "WOR1W" }, \
176 { DMN_WOR2_WORLD, "WOR2W" }, \
177 { DMN_WOR3_WORLD, "WOR3W" }, \
178 { DMN_WOR4_WORLD, "WOR4W" }, \
179 { DMN_WOR5_ETSIC, "WOR5_ETSIC" }, \
180 { DMN_WOR9_WORLD, "WOR9W" }, \
181 { DMN_WORA_WORLD, "WORAW" }, \
182 { DMN_NULL_WORLD, "WORLD" }, \
183 { DMN_WORLD, "WORLD" } \
184 }
185
186 struct ieee80211_regdomainmap {
187 u_int16_t rm_domain;
188 u_int32_t rm_domain_5ghz;
189 u_int32_t rm_domain_2ghz;
190 };
191
192 #define IEEE80211_REGDOMAIN_MAP { \
193 { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG }, \
194 { DMN_NULL_WORLD, DMN_NULL, DMN_WORLD }, \
195 { DMN_NULL_ETSIB, DMN_NULL, DMN_ETSIB }, \
196 { DMN_NULL_ETSIC, DMN_NULL, DMN_ETSIC }, \
197 { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA }, \
198 { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD }, \
199 { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA }, \
200 { DMN_FCC2_WORLD, DMN_FCC2, DMN_WORLD }, \
201 { DMN_FCC2_ETSIC, DMN_FCC2, DMN_ETSIC }, \
202 { DMN_FRANCE_NULL, DMN_ETSI3, DMN_ETSI3 }, \
203 { DMN_FCC3_FCCA, DMN_FCC3, DMN_WORLD }, \
204 { DMN_ETSI1_WORLD, DMN_ETSI1, DMN_WORLD }, \
205 { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD }, \
206 { DMN_ETSI2_WORLD, DMN_ETSI2, DMN_WORLD }, \
207 { DMN_ETSI3_WORLD, DMN_ETSI3, DMN_WORLD }, \
208 { DMN_ETSI4_WORLD, DMN_ETSI4, DMN_WORLD }, \
209 { DMN_ETSI4_ETSIC, DMN_ETSI4, DMN_ETSIC }, \
210 { DMN_ETSI5_WORLD, DMN_ETSI5, DMN_WORLD }, \
211 { DMN_ETSI6_WORLD, DMN_ETSI6, DMN_WORLD }, \
212 { DMN_ETSI_NULL, DMN_ETSI1, DMN_ETSI1 }, \
213 { DMN_MKK1_MKKA, DMN_MKK1, DMN_MKKA }, \
214 { DMN_MKK1_MKKB, DMN_MKK1, DMN_MKKA }, \
215 { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD }, \
216 { DMN_MKK2_MKKA, DMN_MKK2, DMN_MKKA }, \
217 { DMN_APL_NULL, DMN_APL1, DMN_NULL }, \
218 { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD }, \
219 { DMN_APL2_APLC, DMN_APL2, DMN_WORLD }, \
220 { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD }, \
221 { DMN_MKK1_FCCA, DMN_MKK1, DMN_FCCA }, \
222 { DMN_APL2_APLD, DMN_APL2, DMN_APLD }, \
223 { DMN_MKK1_MKKA1, DMN_MKK1, DMN_MKKA }, \
224 { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA }, \
225 { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD }, \
226 { DMN_APL1_FCCA, DMN_APL1, DMN_FCCA }, \
227 { DMN_APL1_APLA, DMN_APL1, DMN_WORLD }, \
228 { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC }, \
229 { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC }, \
230 { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD }, \
231 { DMN_WOR0_WORLD, DMN_WORLD, DMN_WORLD }, \
232 { DMN_WOR1_WORLD, DMN_WORLD, DMN_WORLD }, \
233 { DMN_WOR2_WORLD, DMN_WORLD, DMN_WORLD }, \
234 { DMN_WOR3_WORLD, DMN_WORLD, DMN_WORLD }, \
235 { DMN_WOR4_WORLD, DMN_WORLD, DMN_WORLD }, \
236 { DMN_WOR5_ETSIC, DMN_WORLD, DMN_WORLD }, \
237 { DMN_WOR01_WORLD, DMN_WORLD, DMN_WORLD }, \
238 { DMN_WOR02_WORLD, DMN_WORLD, DMN_WORLD }, \
239 { DMN_EU1_WORLD, DMN_ETSI1, DMN_WORLD }, \
240 { DMN_WOR9_WORLD, DMN_WORLD, DMN_WORLD }, \
241 { DMN_WORA_WORLD, DMN_WORLD, DMN_WORLD }, \
242 }
243
244 enum ieee80211_countrycode {
245 CTRY_DEFAULT = 0, /* Default domain (NA) */
246 CTRY_ALBANIA = 8, /* Albania */
247 CTRY_ALGERIA = 12, /* Algeria */
248 CTRY_ARGENTINA = 32, /* Argentina */
249 CTRY_ARMENIA = 51, /* Armenia */
250 CTRY_AUSTRALIA = 36, /* Australia */
251 CTRY_AUSTRIA = 40, /* Austria */
252 CTRY_AZERBAIJAN = 31, /* Azerbaijan */
253 CTRY_BAHRAIN = 48, /* Bahrain */
254 CTRY_BELARUS = 112, /* Belarus */
255 CTRY_BELGIUM = 56, /* Belgium */
256 CTRY_BELIZE = 84, /* Belize */
257 CTRY_BOLIVIA = 68, /* Bolivia */
258 CTRY_BRAZIL = 76, /* Brazil */
259 CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
260 CTRY_BULGARIA = 100, /* Bulgaria */
261 CTRY_CANADA = 124, /* Canada */
262 CTRY_CHILE = 152, /* Chile */
263 CTRY_CHINA = 156, /* People's Republic of China */
264 CTRY_COLOMBIA = 170, /* Colombia */
265 CTRY_COSTA_RICA = 188, /* Costa Rica */
266 CTRY_CROATIA = 191, /* Croatia */
267 CTRY_CYPRUS = 196, /* Cyprus */
268 CTRY_CZECH = 203, /* Czech Republic */
269 CTRY_DENMARK = 208, /* Denmark */
270 CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
271 CTRY_ECUADOR = 218, /* Ecuador */
272 CTRY_EGYPT = 818, /* Egypt */
273 CTRY_EL_SALVADOR = 222, /* El Salvador */
274 CTRY_ESTONIA = 233, /* Estonia */
275 CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
276 CTRY_FINLAND = 246, /* Finland */
277 CTRY_FRANCE = 250, /* France */
278 CTRY_FRANCE2 = 255, /* France2 */
279 CTRY_GEORGIA = 268, /* Georgia */
280 CTRY_GERMANY = 276, /* Germany */
281 CTRY_GREECE = 300, /* Greece */
282 CTRY_GUATEMALA = 320, /* Guatemala */
283 CTRY_HONDURAS = 340, /* Honduras */
284 CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
285 CTRY_HUNGARY = 348, /* Hungary */
286 CTRY_ICELAND = 352, /* Iceland */
287 CTRY_INDIA = 356, /* India */
288 CTRY_INDONESIA = 360, /* Indonesia */
289 CTRY_IRAN = 364, /* Iran */
290 CTRY_IRAQ = 368, /* Iraq */
291 CTRY_IRELAND = 372, /* Ireland */
292 CTRY_ISRAEL = 376, /* Israel */
293 CTRY_ITALY = 380, /* Italy */
294 CTRY_JAMAICA = 388, /* Jamaica */
295 CTRY_JAPAN = 392, /* Japan */
296 CTRY_JAPAN1 = 393, /* Japan (JP1) */
297 CTRY_JAPAN2 = 394, /* Japan (JP0) */
298 CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
299 CTRY_JAPAN4 = 396, /* Japan (JE1) */
300 CTRY_JAPAN5 = 397, /* Japan (JE2) */
301 CTRY_JORDAN = 400, /* Jordan */
302 CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
303 CTRY_KENYA = 404, /* Kenya */
304 CTRY_KOREA_NORTH = 408, /* North Korea */
305 CTRY_KOREA_ROC = 410, /* South Korea */
306 CTRY_KOREA_ROC2 = 411, /* South Korea */
307 CTRY_KUWAIT = 414, /* Kuwait */
308 CTRY_LATVIA = 428, /* Latvia */
309 CTRY_LEBANON = 422, /* Lebanon */
310 CTRY_LIBYA = 434, /* Libya */
311 CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
312 CTRY_LITHUANIA = 440, /* Lithuania */
313 CTRY_LUXEMBOURG = 442, /* Luxembourg */
314 CTRY_MACAU = 446, /* Macau */
315 CTRY_MACEDONIA = 807, /* Republic of Macedonia */
316 CTRY_MALAYSIA = 458, /* Malaysia */
317 CTRY_MEXICO = 484, /* Mexico */
318 CTRY_MONACO = 492, /* Principality of Monaco */
319 CTRY_MOROCCO = 504, /* Morocco */
320 CTRY_NETHERLANDS = 528, /* Netherlands */
321 CTRY_NEW_ZEALAND = 554, /* New Zealand */
322 CTRY_NICARAGUA = 558, /* Nicaragua */
323 CTRY_NORWAY = 578, /* Norway */
324 CTRY_OMAN = 512, /* Oman */
325 CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
326 CTRY_PANAMA = 591, /* Panama */
327 CTRY_PARAGUAY = 600, /* Paraguay */
328 CTRY_PERU = 604, /* Peru */
329 CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
330 CTRY_POLAND = 616, /* Poland */
331 CTRY_PORTUGAL = 620, /* Portugal */
332 CTRY_PUERTO_RICO = 630, /* Puerto Rico */
333 CTRY_QATAR = 634, /* Qatar */
334 CTRY_ROMANIA = 642, /* Romania */
335 CTRY_RUSSIA = 643, /* Russia */
336 CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
337 CTRY_SINGAPORE = 702, /* Singapore */
338 CTRY_SLOVAKIA = 703, /* Slovak Republic */
339 CTRY_SLOVENIA = 705, /* Slovenia */
340 CTRY_SOUTH_AFRICA = 710, /* South Africa */
341 CTRY_SPAIN = 724, /* Spain */
342 CTRY_SRI_LANKA = 728, /* Sri Lanka */
343 CTRY_SWEDEN = 752, /* Sweden */
344 CTRY_SWITZERLAND = 756, /* Switzerland */
345 CTRY_SYRIA = 760, /* Syria */
346 CTRY_TAIWAN = 158, /* Taiwan */
347 CTRY_THAILAND = 764, /* Thailand */
348 CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
349 CTRY_TUNISIA = 788, /* Tunisia */
350 CTRY_TURKEY = 792, /* Turkey */
351 CTRY_UAE = 784, /* U.A.E. */
352 CTRY_UKRAINE = 804, /* Ukraine */
353 CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
354 CTRY_UNITED_STATES = 840, /* United States */
355 CTRY_URUGUAY = 858, /* Uruguay */
356 CTRY_UZBEKISTAN = 860, /* Uzbekistan */
357 CTRY_VENEZUELA = 862, /* Venezuela */
358 CTRY_VIET_NAM = 704, /* Viet Nam */
359 CTRY_YEMEN = 887, /* Yemen */
360 CTRY_ZIMBABWE = 716, /* Zimbabwe */
361 };
362
363 struct ieee80211_countryname {
364 u_int16_t cn_code;
365 const char *cn_name;
366 u_int32_t cn_domain;
367 };
368
369 #define IEEE80211_REGDOMAIN_COUNTRY_NAMES { \
370 { CTRY_DEFAULT, "00", DMN_DEFAULT }, \
371 { CTRY_UAE, "ae", DMN_NULL_WORLD }, \
372 { CTRY_ALBANIA, "al", DMN_NULL_WORLD }, \
373 { CTRY_ARMENIA, "am", DMN_ETSI4_WORLD }, \
374 { CTRY_ARGENTINA, "ar", DMN_APL3_WORLD }, \
375 { CTRY_AUSTRIA, "at", DMN_ETSI5_WORLD }, \
376 { CTRY_AUSTRALIA, "au", DMN_FCC2_WORLD }, \
377 { CTRY_AZERBAIJAN, "az", DMN_ETSI4_WORLD }, \
378 { CTRY_BELGIUM, "be", DMN_ETSI4_WORLD }, \
379 { CTRY_BULGARIA, "bg", DMN_ETSI6_WORLD }, \
380 { CTRY_BAHRAIN, "bh", DMN_NULL_WORLD }, \
381 { CTRY_BRUNEI_DARUSSALAM, "bn", DMN_APL1_WORLD }, \
382 { CTRY_BOLIVIA, "bo", DMN_APL1_ETSIC }, \
383 { CTRY_BRAZIL, "br", DMN_NULL_ETSIC }, \
384 { CTRY_BELARUS, "by", DMN_NULL_WORLD }, \
385 { CTRY_BELIZE, "bz", DMN_NULL_ETSIC }, \
386 { CTRY_CANADA, "ca", DMN_FCC2_FCCA }, \
387 { CTRY_SWITZERLAND, "ch", DMN_ETSI2_WORLD }, \
388 { CTRY_CHILE, "cl", DMN_APL5_WORLD }, \
389 { CTRY_CHINA, "cn", DMN_APL1_WORLD }, \
390 { CTRY_COLOMBIA, "co", DMN_FCC1_FCCA }, \
391 { CTRY_COSTA_RICA, "cr", DMN_NULL_WORLD }, \
392 { CTRY_CYPRUS, "cy", DMN_ETSI1_WORLD }, \
393 { CTRY_CZECH, "cz", DMN_ETSI3_WORLD }, \
394 { CTRY_GERMANY, "de", DMN_ETSI1_WORLD }, \
395 { CTRY_DENMARK, "dk", DMN_ETSI1_WORLD }, \
396 { CTRY_DOMINICAN_REPUBLIC, "do", DMN_FCC1_FCCA }, \
397 { CTRY_ALGERIA, "dz", DMN_NULL_WORLD }, \
398 { CTRY_ECUADOR, "ec", DMN_NULL_WORLD }, \
399 { CTRY_ESTONIA, "ee", DMN_ETSI1_WORLD }, \
400 { CTRY_EGYPT, "eg", DMN_NULL_WORLD }, \
401 { CTRY_SPAIN, "es", DMN_ETSI1_WORLD }, \
402 { CTRY_FRANCE2, "f2", DMN_ETSI3_WORLD }, \
403 { CTRY_FINLAND, "fi", DMN_ETSI1_WORLD }, \
404 { CTRY_FAEROE_ISLANDS, "fo", DMN_NULL_WORLD }, \
405 { CTRY_FRANCE, "fr", DMN_ETSI3_WORLD }, \
406 { CTRY_GEORGIA, "ge", DMN_ETSI4_WORLD }, \
407 { CTRY_GREECE, "gr", DMN_NULL_WORLD }, \
408 { CTRY_GUATEMALA, "gt", DMN_FCC1_FCCA }, \
409 { CTRY_HONG_KONG, "hk", DMN_FCC2_WORLD }, \
410 { CTRY_HONDURAS, "hn", DMN_NULL_WORLD }, \
411 { CTRY_CROATIA, "hr", DMN_ETSI3_WORLD }, \
412 { CTRY_HUNGARY, "hu", DMN_ETSI2_WORLD }, \
413 { CTRY_INDONESIA, "id", DMN_NULL_WORLD }, \
414 { CTRY_IRELAND, "ie", DMN_ETSI1_WORLD }, \
415 { CTRY_ISRAEL, "il", DMN_NULL_WORLD }, \
416 { CTRY_INDIA, "in", DMN_NULL_WORLD }, \
417 { CTRY_IRAQ, "iq", DMN_NULL_WORLD }, \
418 { CTRY_IRAN, "ir", DMN_APL1_WORLD }, \
419 { CTRY_ICELAND, "is", DMN_ETSI1_WORLD }, \
420 { CTRY_ITALY, "it", DMN_ETSI1_WORLD }, \
421 { CTRY_JAPAN1, "j1", DMN_MKK1_MKKB }, \
422 { CTRY_JAPAN2, "j2", DMN_MKK1_FCCA }, \
423 { CTRY_JAPAN3, "j3", DMN_MKK2_MKKA }, \
424 { CTRY_JAPAN4, "j4", DMN_MKK1_MKKA1 }, \
425 { CTRY_JAPAN5, "j5", DMN_MKK1_MKKA2 }, \
426 { CTRY_JAMAICA, "jm", DMN_NULL_WORLD }, \
427 { CTRY_JORDAN, "jo", DMN_NULL_WORLD }, \
428 { CTRY_JAPAN, "jp", DMN_MKK1_MKKA }, \
429 { CTRY_KOREA_ROC2, "k2", DMN_APL2_APLD }, \
430 { CTRY_KENYA, "ke", DMN_NULL_WORLD }, \
431 { CTRY_KOREA_NORTH, "kp", DMN_APL2_WORLD }, \
432 { CTRY_KOREA_ROC, "kr", DMN_APL2_WORLD }, \
433 { CTRY_KUWAIT, "kw", DMN_NULL_WORLD }, \
434 { CTRY_KAZAKHSTAN, "kz", DMN_NULL_WORLD }, \
435 { CTRY_LEBANON, "lb", DMN_NULL_WORLD }, \
436 { CTRY_LIECHTENSTEIN, "li", DMN_ETSI2_WORLD }, \
437 { CTRY_SRI_LANKA, "lk", DMN_NULL_WORLD }, \
438 { CTRY_LITHUANIA, "lt", DMN_ETSI1_WORLD }, \
439 { CTRY_LUXEMBOURG, "lu", DMN_ETSI1_WORLD }, \
440 { CTRY_LATVIA, "lv", DMN_NULL_WORLD }, \
441 { CTRY_LIBYA, "ly", DMN_NULL_WORLD }, \
442 { CTRY_MOROCCO, "ma", DMN_NULL_WORLD }, \
443 { CTRY_MONACO, "mc", DMN_ETSI4_WORLD }, \
444 { CTRY_MACEDONIA, "mk", DMN_NULL_WORLD }, \
445 { CTRY_MACAU, "mo", DMN_FCC2_WORLD }, \
446 { CTRY_MEXICO, "mx", DMN_FCC1_FCCA }, \
447 { CTRY_MALAYSIA, "my", DMN_NULL_WORLD }, \
448 { CTRY_NICARAGUA, "ni", DMN_NULL_WORLD }, \
449 { CTRY_NETHERLANDS, "nl", DMN_ETSI1_WORLD }, \
450 { CTRY_NORWAY, "no", DMN_ETSI1_WORLD }, \
451 { CTRY_NEW_ZEALAND, "nz", DMN_FCC2_ETSIC }, \
452 { CTRY_OMAN, "om", DMN_NULL_WORLD }, \
453 { CTRY_PANAMA, "pa", DMN_FCC1_FCCA }, \
454 { CTRY_PERU, "pe", DMN_NULL_WORLD }, \
455 { CTRY_PHILIPPINES, "ph", DMN_FCC1_WORLD }, \
456 { CTRY_PAKISTAN, "pk", DMN_NULL_WORLD }, \
457 { CTRY_POLAND, "pl", DMN_ETSI1_WORLD }, \
458 { CTRY_PUERTO_RICO, "pr", DMN_FCC1_FCCA }, \
459 { CTRY_PORTUGAL, "pt", DMN_ETSI1_WORLD }, \
460 { CTRY_PARAGUAY, "py", DMN_NULL_WORLD }, \
461 { CTRY_QATAR, "qa", DMN_NULL_WORLD }, \
462 { CTRY_ROMANIA, "ro", DMN_NULL_WORLD }, \
463 { CTRY_RUSSIA, "ru", DMN_NULL_WORLD }, \
464 { CTRY_SAUDI_ARABIA, "sa", DMN_NULL_WORLD }, \
465 { CTRY_SWEDEN, "se", DMN_ETSI1_WORLD }, \
466 { CTRY_SINGAPORE, "sg", DMN_APL4_WORLD }, \
467 { CTRY_SLOVENIA, "si", DMN_ETSI1_WORLD }, \
468 { CTRY_SLOVAKIA, "sk", DMN_ETSI3_WORLD }, \
469 { CTRY_EL_SALVADOR, "sv", DMN_NULL_WORLD }, \
470 { CTRY_SYRIA, "sy", DMN_NULL_WORLD }, \
471 { CTRY_THAILAND, "th", DMN_APL2_WORLD }, \
472 { CTRY_TUNISIA, "tn", DMN_ETSI3_WORLD }, \
473 { CTRY_TURKEY, "tr", DMN_ETSI3_WORLD }, \
474 { CTRY_TRINIDAD_Y_TOBAGO, "tt", DMN_ETSI4_WORLD }, \
475 { CTRY_TAIWAN, "tw", DMN_APL3_WORLD }, \
476 { CTRY_UKRAINE, "ua", DMN_NULL_WORLD }, \
477 { CTRY_UNITED_KINGDOM, "uk", DMN_ETSI1_WORLD }, \
478 { CTRY_UNITED_STATES, "us", DMN_FCC1_FCCA }, \
479 { CTRY_URUGUAY, "uy", DMN_APL2_WORLD }, \
480 { CTRY_UZBEKISTAN, "uz", DMN_FCC3_FCCA }, \
481 { CTRY_VENEZUELA, "ve", DMN_APL2_ETSIC }, \
482 { CTRY_VIET_NAM, "vn", DMN_NULL_WORLD }, \
483 { CTRY_YEMEN, "ye", DMN_NULL_WORLD }, \
484 { CTRY_SOUTH_AFRICA, "za", DMN_ETSI1_WORLD }, \
485 { CTRY_ZIMBABWE, "zw", DMN_NULL_WORLD }, \
486 }
487
488 enum ieee80211_ctl {
489 CTL_11A = 0x00,
490 CTL_11B = 0x01,
491 CTL_11G = 0x02,
492 CTL_TURBO = 0x03,
493 CTL_TURBO_G = 0x04,
494 CTL_FCC = 0x10,
495 CTL_ETSI = 0x30,
496 CTL_MKK = 0x40,
497 CTL_NONE = 0xff
498 };
499
500 #define IEEE80211_CHANNELS_2GHZ_MIN 2412 /* 2GHz channel 1 */
501 #define IEEE80211_CHANNELS_2GHZ_MAX 2732 /* 2GHz channel 26 */
502
503 struct ieee80211_regchannel {
504 u_int16_t rc_channel;
505 u_int32_t rc_domain;
506 u_int32_t rc_mode;
507 };
508
509 #define IEEE80211_CHANNELS_2GHZ { \
510 { 2412, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
511 { 2417, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
512 { 2422, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
513 { 2427, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
514 { 2432, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
515 { 2437, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
516 { 2442, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
517 { 2447, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
518 { 2452, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
519 { 2457, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
520 { 2462, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
521 { 2467, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
522 { 2472, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
523 \
524 { 2432, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
525 { 2442, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
526 \
527 { 2412, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
528 { 2417, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
529 { 2422, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
530 { 2427, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
531 { 2432, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
532 { 2442, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
533 { 2447, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
534 { 2452, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
535 { 2457, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
536 { 2462, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
537 { 2467, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
538 { 2472, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
539 \
540 { 2412, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
541 { 2417, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
542 { 2422, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
543 { 2427, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
544 { 2432, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
545 { 2442, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
546 { 2447, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
547 { 2452, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
548 { 2457, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
549 { 2462, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
550 \
551 { 2412, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
552 { 2417, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
553 { 2422, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
554 { 2427, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
555 { 2432, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
556 { 2437, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
557 { 2442, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
558 { 2447, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
559 { 2452, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
560 { 2457, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
561 { 2462, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
562 { 2467, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
563 { 2472, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
564 { 2484, DMN_MKKA, IEEE80211_CHAN_CCK }, \
565 \
566 { 2412, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
567 { 2417, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
568 { 2422, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
569 { 2427, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
570 { 2432, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
571 { 2442, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
572 { 2447, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
573 { 2452, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
574 { 2457, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
575 { 2462, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
576 { 2467, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
577 { 2472, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
578 }
579
580 #define IEEE80211_CHANNELS_5GHZ_MIN 5005 /* 5GHz channel 1 */
581 #define IEEE80211_CHANNELS_5GHZ_MAX 6100 /* 5GHz channel 220 */
582
583 #define IEEE80211_CHANNELS_5GHZ { \
584 { 5745, DMN_APL1, IEEE80211_CHAN_OFDM }, \
585 { 5765, DMN_APL1, IEEE80211_CHAN_OFDM }, \
586 { 5785, DMN_APL1, IEEE80211_CHAN_OFDM }, \
587 { 5805, DMN_APL1, IEEE80211_CHAN_OFDM }, \
588 { 5825, DMN_APL1, IEEE80211_CHAN_OFDM }, \
589 \
590 { 5745, DMN_APL2, IEEE80211_CHAN_OFDM }, \
591 { 5765, DMN_APL2, IEEE80211_CHAN_OFDM }, \
592 { 5785, DMN_APL2, IEEE80211_CHAN_OFDM }, \
593 { 5805, DMN_APL2, IEEE80211_CHAN_OFDM }, \
594 \
595 { 5280, DMN_APL3, IEEE80211_CHAN_OFDM }, \
596 { 5300, DMN_APL3, IEEE80211_CHAN_OFDM }, \
597 { 5320, DMN_APL3, IEEE80211_CHAN_OFDM }, \
598 { 5745, DMN_APL3, IEEE80211_CHAN_OFDM }, \
599 { 5765, DMN_APL3, IEEE80211_CHAN_OFDM }, \
600 { 5785, DMN_APL3, IEEE80211_CHAN_OFDM }, \
601 { 5805, DMN_APL3, IEEE80211_CHAN_OFDM }, \
602 \
603 { 5180, DMN_APL4, IEEE80211_CHAN_OFDM }, \
604 { 5200, DMN_APL4, IEEE80211_CHAN_OFDM }, \
605 { 5220, DMN_APL4, IEEE80211_CHAN_OFDM }, \
606 { 5240, DMN_APL4, IEEE80211_CHAN_OFDM }, \
607 { 5745, DMN_APL4, IEEE80211_CHAN_OFDM }, \
608 { 5765, DMN_APL4, IEEE80211_CHAN_OFDM }, \
609 { 5785, DMN_APL4, IEEE80211_CHAN_OFDM }, \
610 { 5805, DMN_APL4, IEEE80211_CHAN_OFDM }, \
611 { 5825, DMN_APL4, IEEE80211_CHAN_OFDM }, \
612 \
613 { 5745, DMN_APL5, IEEE80211_CHAN_OFDM }, \
614 { 5765, DMN_APL5, IEEE80211_CHAN_OFDM }, \
615 { 5785, DMN_APL5, IEEE80211_CHAN_OFDM }, \
616 { 5805, DMN_APL5, IEEE80211_CHAN_OFDM }, \
617 { 5825, DMN_APL5, IEEE80211_CHAN_OFDM }, \
618 \
619 { 5180, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
620 { 5200, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
621 { 5220, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
622 { 5240, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
623 { 5260, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
624 { 5280, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
625 { 5300, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
626 { 5320, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
627 { 5500, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
628 { 5520, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
629 { 5540, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
630 { 5560, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
631 { 5580, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
632 { 5600, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
633 { 5620, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
634 { 5640, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
635 { 5660, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
636 { 5680, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
637 { 5700, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
638 \
639 { 5180, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
640 { 5200, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
641 { 5220, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
642 { 5240, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
643 \
644 { 5180, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
645 { 5200, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
646 { 5220, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
647 { 5240, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
648 { 5260, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
649 { 5280, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
650 { 5300, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
651 { 5320, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
652 \
653 { 5180, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
654 { 5200, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
655 { 5220, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
656 { 5240, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
657 { 5260, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
658 { 5280, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
659 { 5300, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
660 { 5320, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
661 \
662 { 5180, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
663 { 5200, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
664 { 5220, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
665 { 5240, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
666 \
667 { 5180, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
668 { 5200, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
669 { 5220, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
670 { 5240, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
671 { 5260, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
672 { 5280, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
673 { 5500, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
674 { 5520, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
675 { 5540, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
676 { 5560, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
677 { 5580, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
678 { 5600, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
679 { 5620, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
680 { 5640, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
681 { 5660, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
682 { 5680, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
683 { 5700, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
684 \
685 { 5180, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
686 { 5200, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
687 { 5220, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
688 { 5240, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
689 { 5260, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
690 { 5280, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
691 { 5300, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
692 { 5320, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
693 { 5745, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
694 { 5765, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
695 { 5785, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
696 { 5805, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
697 { 5825, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
698 \
699 { 5180, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
700 { 5200, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
701 { 5220, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
702 { 5240, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
703 { 5260, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
704 { 5280, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
705 { 5300, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
706 { 5320, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
707 { 5745, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
708 { 5765, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
709 { 5785, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
710 { 5805, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
711 { 5825, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
712 \
713 { 5180, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
714 { 5200, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
715 { 5220, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
716 { 5240, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
717 { 5260, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
718 { 5280, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
719 { 5300, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
720 { 5320, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
721 { 5500, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
722 { 5520, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
723 { 5540, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
724 { 5560, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
725 { 5580, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
726 { 5600, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
727 { 5620, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
728 { 5640, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
729 { 5660, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
730 { 5680, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
731 { 5700, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
732 { 5745, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
733 { 5765, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
734 { 5785, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
735 { 5805, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
736 { 5825, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
737 \
738 { 5170, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
739 { 5190, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
740 { 5210, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
741 { 5230, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
742 \
743 { 5040, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
744 { 5060, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
745 { 5080, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
746 { 5170, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
747 { 5190, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
748 { 5210, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
749 { 5230, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
750 \
751 { 5180, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
752 { 5200, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
753 { 5220, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
754 { 5240, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
755 }
756
757 __BEGIN_DECLS
758
759 extern u_int16_t ieee80211_name2countrycode(const char *);
760 extern u_int32_t ieee80211_name2regdomain(const char *);
761 extern const char *ieee80211_countrycode2name(u_int16_t);
762 extern const char *ieee80211_regdomain2name(u_int32_t);
763 extern u_int32_t ieee80211_regdomain2flag(u_int16_t, u_int16_t);
764 extern u_int32_t ieee80211_countrycode2regdomain(u_int16_t);
765
766 __END_DECLS
767
768 #endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */
Cache object: 02b5faaeb09228b47488cf312a3cf96a
|