Remove empty DragonFly CVS IDs.
[dragonfly.git] / sys / netproto / 802_11 / ieee80211_regdomain.h
blob8636f6f3e844262f8a1e7c6fd30875ec231fb676
1 /*-
2 * Copyright (c) 2005-2008 Sam Leffler, Errno Consulting
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
17 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 * $FreeBSD: head/sys/net80211/ieee80211_regdomain.h 187799 2009-01-27 23:09:55Z sam $
27 #ifndef _NET80211_IEEE80211_REGDOMAIN_H_
28 #define _NET80211_IEEE80211_REGDOMAIN_H_
31 * 802.11 regulatory domain definitions.
35 * ISO 3166 Country/Region Codes
36 * http://ftp.ics.uci.edu/pub/ietf/http/related/iso3166.txt
38 enum ISOCountryCode {
39 CTRY_AFGHANISTAN = 4,
40 CTRY_ALBANIA = 8, /* Albania */
41 CTRY_ALGERIA = 12, /* Algeria */
42 CTRY_AMERICAN_SAMOA = 16,
43 CTRY_ANDORRA = 20,
44 CTRY_ANGOLA = 24,
45 CTRY_ANGUILLA = 660,
46 CTRY_ANTARTICA = 10,
47 CTRY_ANTIGUA = 28, /* Antigua and Barbuda */
48 CTRY_ARGENTINA = 32, /* Argentina */
49 CTRY_ARMENIA = 51, /* Armenia */
50 CTRY_ARUBA = 533, /* Aruba */
51 CTRY_AUSTRALIA = 36, /* Australia */
52 CTRY_AUSTRIA = 40, /* Austria */
53 CTRY_AZERBAIJAN = 31, /* Azerbaijan */
54 CTRY_BAHAMAS = 44, /* Bahamas */
55 CTRY_BAHRAIN = 48, /* Bahrain */
56 CTRY_BANGLADESH = 50, /* Bangladesh */
57 CTRY_BARBADOS = 52,
58 CTRY_BELARUS = 112, /* Belarus */
59 CTRY_BELGIUM = 56, /* Belgium */
60 CTRY_BELIZE = 84,
61 CTRY_BENIN = 204,
62 CTRY_BERMUDA = 60,
63 CTRY_BHUTAN = 64,
64 CTRY_BOLIVIA = 68, /* Bolivia */
65 CTRY_BOSNIA_AND_HERZEGOWINA = 70,
66 CTRY_BOTSWANA = 72,
67 CTRY_BOUVET_ISLAND = 74,
68 CTRY_BRAZIL = 76, /* Brazil */
69 CTRY_BRITISH_INDIAN_OCEAN_TERRITORY = 86,
70 CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
71 CTRY_BULGARIA = 100, /* Bulgaria */
72 CTRY_BURKINA_FASO = 854,
73 CTRY_BURUNDI = 108,
74 CTRY_CAMBODIA = 116,
75 CTRY_CAMEROON = 120,
76 CTRY_CANADA = 124, /* Canada */
77 CTRY_CAPE_VERDE = 132,
78 CTRY_CAYMAN_ISLANDS = 136,
79 CTRY_CENTRAL_AFRICAN_REPUBLIC = 140,
80 CTRY_CHAD = 148,
81 CTRY_CHILE = 152, /* Chile */
82 CTRY_CHINA = 156, /* People's Republic of China */
83 CTRY_CHRISTMAS_ISLAND = 162,
84 CTRY_COCOS_ISLANDS = 166,
85 CTRY_COLOMBIA = 170, /* Colombia */
86 CTRY_COMOROS = 174,
87 CTRY_CONGO = 178,
88 CTRY_COOK_ISLANDS = 184,
89 CTRY_COSTA_RICA = 188, /* Costa Rica */
90 CTRY_COTE_DIVOIRE = 384,
91 CTRY_CROATIA = 191, /* Croatia (local name: Hrvatska) */
92 CTRY_CYPRUS = 196, /* Cyprus */
93 CTRY_CZECH = 203, /* Czech Republic */
94 CTRY_DENMARK = 208, /* Denmark */
95 CTRY_DJIBOUTI = 262,
96 CTRY_DOMINICA = 212,
97 CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
98 CTRY_EAST_TIMOR = 626,
99 CTRY_ECUADOR = 218, /* Ecuador */
100 CTRY_EGYPT = 818, /* Egypt */
101 CTRY_EL_SALVADOR = 222, /* El Salvador */
102 CTRY_EQUATORIAL_GUINEA = 226,
103 CTRY_ERITREA = 232,
104 CTRY_ESTONIA = 233, /* Estonia */
105 CTRY_ETHIOPIA = 210,
106 CTRY_FALKLAND_ISLANDS = 238, /* (Malvinas) */
107 CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
108 CTRY_FIJI = 242,
109 CTRY_FINLAND = 246, /* Finland */
110 CTRY_FRANCE = 250, /* France */
111 CTRY_FRANCE2 = 255, /* France (Metropolitan) */
112 CTRY_FRENCH_GUIANA = 254,
113 CTRY_FRENCH_POLYNESIA = 258,
114 CTRY_FRENCH_SOUTHERN_TERRITORIES = 260,
115 CTRY_GABON = 266,
116 CTRY_GAMBIA = 270,
117 CTRY_GEORGIA = 268, /* Georgia */
118 CTRY_GERMANY = 276, /* Germany */
119 CTRY_GHANA = 288,
120 CTRY_GIBRALTAR = 292,
121 CTRY_GREECE = 300, /* Greece */
122 CTRY_GREENLAND = 304,
123 CTRY_GRENADA = 308,
124 CTRY_GUADELOUPE = 312,
125 CTRY_GUAM = 316,
126 CTRY_GUATEMALA = 320, /* Guatemala */
127 CTRY_GUINEA = 324,
128 CTRY_GUINEA_BISSAU = 624,
129 CTRY_GUYANA = 328,
130 /* XXX correct remainder */
131 CTRY_HAITI = 332,
132 CTRY_HONDURAS = 340, /* Honduras */
133 CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
134 CTRY_HUNGARY = 348, /* Hungary */
135 CTRY_ICELAND = 352, /* Iceland */
136 CTRY_INDIA = 356, /* India */
137 CTRY_INDONESIA = 360, /* Indonesia */
138 CTRY_IRAN = 364, /* Iran */
139 CTRY_IRAQ = 368, /* Iraq */
140 CTRY_IRELAND = 372, /* Ireland */
141 CTRY_ISRAEL = 376, /* Israel */
142 CTRY_ITALY = 380, /* Italy */
143 CTRY_JAMAICA = 388, /* Jamaica */
144 CTRY_JAPAN = 392, /* Japan */
145 CTRY_JORDAN = 400, /* Jordan */
146 CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
147 CTRY_KENYA = 404, /* Kenya */
148 CTRY_KOREA_NORTH = 408, /* North Korea */
149 CTRY_KOREA_ROC = 410, /* South Korea */
150 CTRY_KOREA_ROC2 = 411, /* South Korea */
151 CTRY_KUWAIT = 414, /* Kuwait */
152 CTRY_LATVIA = 428, /* Latvia */
153 CTRY_LEBANON = 422, /* Lebanon */
154 CTRY_LIBYA = 434, /* Libya */
155 CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
156 CTRY_LITHUANIA = 440, /* Lithuania */
157 CTRY_LUXEMBOURG = 442, /* Luxembourg */
158 CTRY_MACAU = 446, /* Macau */
159 CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */
160 CTRY_MALAYSIA = 458, /* Malaysia */
161 CTRY_MALTA = 470, /* Malta */
162 CTRY_MEXICO = 484, /* Mexico */
163 CTRY_MONACO = 492, /* Principality of Monaco */
164 CTRY_MOROCCO = 504, /* Morocco */
165 CTRY_NEPAL = 524, /* Nepal */
166 CTRY_NETHERLANDS = 528, /* Netherlands */
167 CTRY_NEW_ZEALAND = 554, /* New Zealand */
168 CTRY_NICARAGUA = 558, /* Nicaragua */
169 CTRY_NORWAY = 578, /* Norway */
170 CTRY_OMAN = 512, /* Oman */
171 CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
172 CTRY_PANAMA = 591, /* Panama */
173 CTRY_PARAGUAY = 600, /* Paraguay */
174 CTRY_PERU = 604, /* Peru */
175 CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
176 CTRY_POLAND = 616, /* Poland */
177 CTRY_PORTUGAL = 620, /* Portugal */
178 CTRY_PUERTO_RICO = 630, /* Puerto Rico */
179 CTRY_QATAR = 634, /* Qatar */
180 CTRY_ROMANIA = 642, /* Romania */
181 CTRY_RUSSIA = 643, /* Russia */
182 CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
183 CTRY_SINGAPORE = 702, /* Singapore */
184 CTRY_SLOVAKIA = 703, /* Slovak Republic */
185 CTRY_SLOVENIA = 705, /* Slovenia */
186 CTRY_SOUTH_AFRICA = 710, /* South Africa */
187 CTRY_SPAIN = 724, /* Spain */
188 CTRY_SRILANKA = 144, /* Sri Lanka */
189 CTRY_SWEDEN = 752, /* Sweden */
190 CTRY_SWITZERLAND = 756, /* Switzerland */
191 CTRY_SYRIA = 760, /* Syria */
192 CTRY_TAIWAN = 158, /* Taiwan */
193 CTRY_THAILAND = 764, /* Thailand */
194 CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
195 CTRY_TUNISIA = 788, /* Tunisia */
196 CTRY_TURKEY = 792, /* Turkey */
197 CTRY_UAE = 784, /* U.A.E. */
198 CTRY_UKRAINE = 804, /* Ukraine */
199 CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
200 CTRY_UNITED_STATES = 840, /* United States */
201 CTRY_URUGUAY = 858, /* Uruguay */
202 CTRY_UZBEKISTAN = 860, /* Uzbekistan */
203 CTRY_VENEZUELA = 862, /* Venezuela */
204 CTRY_VIET_NAM = 704, /* Viet Nam */
205 CTRY_YEMEN = 887, /* Yemen */
206 CTRY_ZIMBABWE = 716, /* Zimbabwe */
208 /* NB: from here down not listed in 3166; they come from Atheros */
209 CTRY_DEBUG = 0x1ff, /* debug */
210 CTRY_DEFAULT = 0, /* default */
212 CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/
213 CTRY_KOREA_ROC3 = 412, /* South Korea */
215 CTRY_JAPAN1 = 393, /* Japan (JP1) */
216 CTRY_JAPAN2 = 394, /* Japan (JP0) */
217 CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
218 CTRY_JAPAN4 = 396, /* Japan (JE1) */
219 CTRY_JAPAN5 = 397, /* Japan (JE2) */
220 CTRY_JAPAN6 = 399, /* Japan (JP6) */
221 CTRY_JAPAN7 = 4007, /* Japan (J7) */
222 CTRY_JAPAN8 = 4008, /* Japan (J8) */
223 CTRY_JAPAN9 = 4009, /* Japan (J9) */
224 CTRY_JAPAN10 = 4010, /* Japan (J10) */
225 CTRY_JAPAN11 = 4011, /* Japan (J11) */
226 CTRY_JAPAN12 = 4012, /* Japan (J12) */
227 CTRY_JAPAN13 = 4013, /* Japan (J13) */
228 CTRY_JAPAN14 = 4014, /* Japan (J14) */
229 CTRY_JAPAN15 = 4015, /* Japan (J15) */
230 CTRY_JAPAN16 = 4016, /* Japan (J16) */
231 CTRY_JAPAN17 = 4017, /* Japan (J17) */
232 CTRY_JAPAN18 = 4018, /* Japan (J18) */
233 CTRY_JAPAN19 = 4019, /* Japan (J19) */
234 CTRY_JAPAN20 = 4020, /* Japan (J20) */
235 CTRY_JAPAN21 = 4021, /* Japan (J21) */
236 CTRY_JAPAN22 = 4022, /* Japan (J22) */
237 CTRY_JAPAN23 = 4023, /* Japan (J23) */
238 CTRY_JAPAN24 = 4024, /* Japan (J24) */
241 enum RegdomainCode {
242 SKU_FCC = 0x10, /* FCC, aka United States */
243 SKU_CA = 0x20, /* North America, aka Canada */
244 SKU_ETSI = 0x30, /* Europe */
245 SKU_ETSI2 = 0x32, /* Europe w/o HT40 in 5GHz */
246 SKU_ETSI3 = 0x33, /* Europe - channel 36 */
247 SKU_FCC3 = 0x3a, /* FCC w/5470 band, 11h, DFS */
248 SKU_JAPAN = 0x40,
249 SKU_KOREA = 0x45,
250 SKU_APAC = 0x50, /* Asia Pacific */
251 SKU_APAC2 = 0x51, /* Asia Pacific w/ DFS on mid-band */
252 SKU_APAC3 = 0x5d, /* Asia Pacific w/o ISM band */
253 SKU_ROW = 0x81, /* China/Taiwan/Rest of World */
254 SKU_NONE = 0xf0, /* "Region Free" */
255 SKU_DEBUG = 0x1ff,
257 /* NB: from here down private */
258 SKU_SR9 = 0x0298, /* Ubiquiti SR9 (900MHz/GSM) */
259 SKU_XR9 = 0x0299, /* Ubiquiti XR9 (900MHz/GSM) */
260 SKU_GZ901 = 0x029a, /* Zcomax GZ-901 (900MHz/GSM) */
263 #if defined(__KERNEL__) || defined(_KERNEL)
264 struct ieee80211com;
265 void ieee80211_regdomain_attach(struct ieee80211com *);
266 void ieee80211_regdomain_detach(struct ieee80211com *);
267 struct ieee80211vap;
268 void ieee80211_regdomain_vattach(struct ieee80211vap *);
269 void ieee80211_regdomain_vdetach(struct ieee80211vap *);
271 struct ieee80211_regdomain;
272 int ieee80211_init_channels(struct ieee80211com *,
273 const struct ieee80211_regdomain *, const uint8_t bands[]);
274 struct ieee80211_channel;
275 void ieee80211_sort_channels(struct ieee80211_channel *chans, int nchans);
276 struct ieee80211_appie;
277 struct ieee80211_appie *ieee80211_alloc_countryie(struct ieee80211com *);
278 struct ieee80211_regdomain_req;
279 int ieee80211_setregdomain(struct ieee80211vap *,
280 struct ieee80211_regdomain_req *);
281 #endif /* defined(__KERNEL__) || defined(_KERNEL) */
282 #endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */