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
22typedef u_int32_t ieee80211_regdomain_t;
23
24enum 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
104struct 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
186struct 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
244enum 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
363struct 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
488enum 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
503struct 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
759extern u_int16_t	 ieee80211_name2countrycode(const char *);
760extern u_int32_t	 ieee80211_name2regdomain(const char *);
761extern const char	*ieee80211_countrycode2name(u_int16_t);
762extern const char	*ieee80211_regdomain2name(u_int32_t);
763extern u_int32_t	 ieee80211_regdomain2flag(u_int16_t, u_int16_t);
764extern u_int32_t	 ieee80211_countrycode2regdomain(u_int16_t);
765
766__END_DECLS
767
768#endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */
769