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