xref: /haiku/src/libs/compat/openbsd_wlan/net80211/ieee80211_regdomain.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
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_ */
769