00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef _NET80211_IEEE80211_REGDOMAIN_H_
00020 #define _NET80211_IEEE80211_REGDOMAIN_H_
00021
00022 typedef u_int32_t ieee80211_regdomain_t;
00023
00024 enum ieee80211_regdomain {
00025 DMN_DEFAULT = 0x00,
00026 DMN_NULL_WORLD = 0x03,
00027 DMN_NULL_ETSIB = 0x07,
00028 DMN_NULL_ETSIC = 0x08,
00029 DMN_FCC1_FCCA = 0x10,
00030 DMN_FCC1_WORLD = 0x11,
00031 DMN_FCC2_FCCA = 0x20,
00032 DMN_FCC2_WORLD = 0x21,
00033 DMN_FCC2_ETSIC = 0x22,
00034 DMN_FRANCE_NULL = 0x31,
00035 DMN_FCC3_FCCA = 0x3A,
00036 DMN_ETSI1_WORLD = 0x37,
00037 DMN_ETSI3_ETSIA = 0x32,
00038 DMN_ETSI2_WORLD = 0x35,
00039 DMN_ETSI3_WORLD = 0x36,
00040 DMN_ETSI4_WORLD = 0x30,
00041 DMN_ETSI4_ETSIC = 0x38,
00042 DMN_ETSI5_WORLD = 0x39,
00043 DMN_ETSI6_WORLD = 0x34,
00044 DMN_ETSI_NULL = 0x33,
00045 DMN_MKK1_MKKA = 0x40,
00046 DMN_MKK1_MKKB = 0x41,
00047 DMN_APL4_WORLD = 0x42,
00048 DMN_MKK2_MKKA = 0x43,
00049 DMN_APL_NULL = 0x44,
00050 DMN_APL2_WORLD = 0x45,
00051 DMN_APL2_APLC = 0x46,
00052 DMN_APL3_WORLD = 0x47,
00053 DMN_MKK1_FCCA = 0x48,
00054 DMN_APL2_APLD = 0x49,
00055 DMN_MKK1_MKKA1 = 0x4A,
00056 DMN_MKK1_MKKA2 = 0x4B,
00057 DMN_APL1_WORLD = 0x52,
00058 DMN_APL1_FCCA = 0x53,
00059 DMN_APL1_APLA = 0x54,
00060 DMN_APL1_ETSIC = 0x55,
00061 DMN_APL2_ETSIC = 0x56,
00062 DMN_APL5_WORLD = 0x58,
00063 DMN_WOR0_WORLD = 0x60,
00064 DMN_WOR1_WORLD = 0x61,
00065 DMN_WOR2_WORLD = 0x62,
00066 DMN_WOR3_WORLD = 0x63,
00067 DMN_WOR4_WORLD = 0x64,
00068 DMN_WOR5_ETSIC = 0x65,
00069 DMN_WOR01_WORLD = 0x66,
00070 DMN_WOR02_WORLD = 0x67,
00071 DMN_EU1_WORLD = 0x68,
00072 DMN_WOR9_WORLD = 0x69,
00073 DMN_WORA_WORLD = 0x6A,
00074
00075 DMN_APL1 = 0xf0000001,
00076 DMN_APL2 = 0xf0000002,
00077 DMN_APL3 = 0xf0000004,
00078 DMN_APL4 = 0xf0000008,
00079 DMN_APL5 = 0xf0000010,
00080 DMN_ETSI1 = 0xf0000020,
00081 DMN_ETSI2 = 0xf0000040,
00082 DMN_ETSI3 = 0xf0000080,
00083 DMN_ETSI4 = 0xf0000100,
00084 DMN_ETSI5 = 0xf0000200,
00085 DMN_ETSI6 = 0xf0000400,
00086 DMN_ETSIA = 0xf0000800,
00087 DMN_ETSIB = 0xf0001000,
00088 DMN_ETSIC = 0xf0002000,
00089 DMN_FCC1 = 0xf0004000,
00090 DMN_FCC2 = 0xf0008000,
00091 DMN_FCC3 = 0xf0010000,
00092 DMN_FCCA = 0xf0020000,
00093 DMN_APLD = 0xf0040000,
00094 DMN_MKK1 = 0xf0080000,
00095 DMN_MKK2 = 0xf0100000,
00096 DMN_MKKA = 0xf0200000,
00097 DMN_NULL = 0xf0400000,
00098 DMN_WORLD = 0xf0800000,
00099 DMN_DEBUG = 0xf1000000
00100 };
00101
00102 #define IEEE80211_DMN(_d) ((_d) & ~0xf0000000)
00103
00104 struct ieee80211_regdomainname {
00105 u_int32_t rn_domain;
00106 const char *rn_name;
00107 };
00108
00109 #define IEEE80211_REGDOMAIN_NAMES { \
00110 { DMN_APL1, "APL1" }, \
00111 { DMN_APL1_APLA, "APL1A" }, \
00112 { DMN_APL1_ETSIC, "APL1_ETSIC" }, \
00113 { DMN_APL1_FCCA, "APL1_FCCA" }, \
00114 { DMN_APL1_WORLD, "APL1W" }, \
00115 { DMN_APL2, "APL2" }, \
00116 { DMN_APL2_APLC, "APL2C" }, \
00117 { DMN_APL2_APLD, "APL2D" }, \
00118 { DMN_APL2_ETSIC, "APL2_ETSIC" }, \
00119 { DMN_APL2_WORLD, "APL2W" }, \
00120 { DMN_APL3, "APL3" }, \
00121 { DMN_APL3_WORLD, "APL3W" }, \
00122 { DMN_APL4, "APL4" }, \
00123 { DMN_APL4_WORLD, "APL4W" }, \
00124 { DMN_APL5, "APL5" }, \
00125 { DMN_APL5_WORLD, "APL5W" }, \
00126 { DMN_APLD, "APLD" }, \
00127 { DMN_APL_NULL, "APL" }, \
00128 { DMN_DEBUG, "DEBUG" }, \
00129 { DMN_ETSI1, "ETSI1" }, \
00130 { DMN_ETSI1_WORLD, "ETSI1W" }, \
00131 { DMN_ETSI2, "ETSI2" }, \
00132 { DMN_ETSI2_WORLD, "ETSI2W" }, \
00133 { DMN_ETSI3, "ETSI3" }, \
00134 { DMN_ETSI3_ETSIA, "ETSI3A" }, \
00135 { DMN_ETSI3_WORLD, "ETSI3W," }, \
00136 { DMN_ETSI4, "ETSI4" }, \
00137 { DMN_ETSI4_ETSIC, "ETSI4C" }, \
00138 { DMN_ETSI4_WORLD, "ETSI4W" }, \
00139 { DMN_ETSI5, "ETSI5" }, \
00140 { DMN_ETSI5_WORLD, "ETSI5W" }, \
00141 { DMN_ETSI6, "ETSI6" }, \
00142 { DMN_ETSI6_WORLD, "ETSI6W" }, \
00143 { DMN_ETSIA, "ETSIA" }, \
00144 { DMN_ETSIB, "ETSIB" }, \
00145 { DMN_ETSIC, "ETSIC" }, \
00146 { DMN_ETSI_NULL, "ETSI" }, \
00147 { DMN_EU1_WORLD, "EU1W" }, \
00148 { DMN_FCC1, "FCC1" }, \
00149 { DMN_FCC1_FCCA, "FCC1A" }, \
00150 { DMN_FCC1_WORLD, "FCC1W" }, \
00151 { DMN_FCC2, "FCC2" }, \
00152 { DMN_FCC2_ETSIC, "FCC2C" }, \
00153 { DMN_FCC2_FCCA, "FCC2A" }, \
00154 { DMN_FCC2_WORLD, "FCC2W" }, \
00155 { DMN_FCC3, "FCC3" }, \
00156 { DMN_FCC3_FCCA, "FCC3A" }, \
00157 { DMN_FCCA, "FCCA" }, \
00158 { DMN_FRANCE_NULL, "FRANCE" }, \
00159 { DMN_MKK1, "MKK1" }, \
00160 { DMN_MKK1_FCCA, "MKK1_FCCA" }, \
00161 { DMN_MKK1_MKKA, "MKK1A" }, \
00162 { DMN_MKK1_MKKA1, "MKK1A1" }, \
00163 { DMN_MKK1_MKKA2, "MKK1A2" }, \
00164 { DMN_MKK1_MKKB, "MKK1B" }, \
00165 { DMN_MKK2, "MKK2" }, \
00166 { DMN_MKK2_MKKA, "MKK2A" }, \
00167 { DMN_MKKA, "MKKA" }, \
00168 { DMN_DEFAULT, "NONE" }, \
00169 { DMN_NULL, "NONE" }, \
00170 { DMN_NULL_ETSIB, "ETSIB" }, \
00171 { DMN_NULL_ETSIC, "ETSIC" }, \
00172 { DMN_WOR01_WORLD, "WOR01W" }, \
00173 { DMN_WOR02_WORLD, "WOR02W" }, \
00174 { DMN_WOR0_WORLD, "WOR0W" }, \
00175 { DMN_WOR1_WORLD, "WOR1W" }, \
00176 { DMN_WOR2_WORLD, "WOR2W" }, \
00177 { DMN_WOR3_WORLD, "WOR3W" }, \
00178 { DMN_WOR4_WORLD, "WOR4W" }, \
00179 { DMN_WOR5_ETSIC, "WOR5_ETSIC" }, \
00180 { DMN_WOR9_WORLD, "WOR9W" }, \
00181 { DMN_WORA_WORLD, "WORAW" }, \
00182 { DMN_NULL_WORLD, "WORLD" }, \
00183 { DMN_WORLD, "WORLD" } \
00184 }
00185
00186 struct ieee80211_regdomainmap {
00187 u_int16_t rm_domain;
00188 u_int32_t rm_domain_5ghz;
00189 u_int32_t rm_domain_2ghz;
00190 };
00191
00192 #define IEEE80211_REGDOMAIN_MAP { \
00193 { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG }, \
00194 { DMN_NULL_WORLD, DMN_NULL, DMN_WORLD }, \
00195 { DMN_NULL_ETSIB, DMN_NULL, DMN_ETSIB }, \
00196 { DMN_NULL_ETSIC, DMN_NULL, DMN_ETSIC }, \
00197 { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA }, \
00198 { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD }, \
00199 { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA }, \
00200 { DMN_FCC2_WORLD, DMN_FCC2, DMN_WORLD }, \
00201 { DMN_FCC2_ETSIC, DMN_FCC2, DMN_ETSIC }, \
00202 { DMN_FRANCE_NULL, DMN_ETSI3, DMN_ETSI3 }, \
00203 { DMN_FCC3_FCCA, DMN_FCC3, DMN_WORLD }, \
00204 { DMN_ETSI1_WORLD, DMN_ETSI1, DMN_WORLD }, \
00205 { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD }, \
00206 { DMN_ETSI2_WORLD, DMN_ETSI2, DMN_WORLD }, \
00207 { DMN_ETSI3_WORLD, DMN_ETSI3, DMN_WORLD }, \
00208 { DMN_ETSI4_WORLD, DMN_ETSI4, DMN_WORLD }, \
00209 { DMN_ETSI4_ETSIC, DMN_ETSI4, DMN_ETSIC }, \
00210 { DMN_ETSI5_WORLD, DMN_ETSI5, DMN_WORLD }, \
00211 { DMN_ETSI6_WORLD, DMN_ETSI6, DMN_WORLD }, \
00212 { DMN_ETSI_NULL, DMN_ETSI1, DMN_ETSI1 }, \
00213 { DMN_MKK1_MKKA, DMN_MKK1, DMN_MKKA }, \
00214 { DMN_MKK1_MKKB, DMN_MKK1, DMN_MKKA }, \
00215 { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD }, \
00216 { DMN_MKK2_MKKA, DMN_MKK2, DMN_MKKA }, \
00217 { DMN_APL_NULL, DMN_APL1, DMN_NULL }, \
00218 { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD }, \
00219 { DMN_APL2_APLC, DMN_APL2, DMN_WORLD }, \
00220 { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD }, \
00221 { DMN_MKK1_FCCA, DMN_MKK1, DMN_FCCA }, \
00222 { DMN_APL2_APLD, DMN_APL2, DMN_APLD }, \
00223 { DMN_MKK1_MKKA1, DMN_MKK1, DMN_MKKA }, \
00224 { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA }, \
00225 { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD }, \
00226 { DMN_APL1_FCCA, DMN_APL1, DMN_FCCA }, \
00227 { DMN_APL1_APLA, DMN_APL1, DMN_WORLD }, \
00228 { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC }, \
00229 { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC }, \
00230 { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD }, \
00231 { DMN_WOR0_WORLD, DMN_WORLD, DMN_WORLD }, \
00232 { DMN_WOR1_WORLD, DMN_WORLD, DMN_WORLD }, \
00233 { DMN_WOR2_WORLD, DMN_WORLD, DMN_WORLD }, \
00234 { DMN_WOR3_WORLD, DMN_WORLD, DMN_WORLD }, \
00235 { DMN_WOR4_WORLD, DMN_WORLD, DMN_WORLD }, \
00236 { DMN_WOR5_ETSIC, DMN_WORLD, DMN_WORLD }, \
00237 { DMN_WOR01_WORLD, DMN_WORLD, DMN_WORLD }, \
00238 { DMN_WOR02_WORLD, DMN_WORLD, DMN_WORLD }, \
00239 { DMN_EU1_WORLD, DMN_ETSI1, DMN_WORLD }, \
00240 { DMN_WOR9_WORLD, DMN_WORLD, DMN_WORLD }, \
00241 { DMN_WORA_WORLD, DMN_WORLD, DMN_WORLD }, \
00242 }
00243
00244 #ifndef CTRY_DEFAULT
00245 #define CTRY_DEFAULT 0
00246 #endif
00247
00248 enum ieee80211_countrycode {
00249 CTRY_ALBANIA = 8,
00250 CTRY_ALGERIA = 12,
00251 CTRY_ARGENTINA = 32,
00252 CTRY_ARMENIA = 51,
00253 CTRY_AUSTRALIA = 36,
00254 CTRY_AUSTRIA = 40,
00255 CTRY_AZERBAIJAN = 31,
00256 CTRY_BAHRAIN = 48,
00257 CTRY_BELARUS = 112,
00258 CTRY_BELGIUM = 56,
00259 CTRY_BELIZE = 84,
00260 CTRY_BOLIVIA = 68,
00261 CTRY_BRAZIL = 76,
00262 CTRY_BRUNEI_DARUSSALAM = 96,
00263 CTRY_BULGARIA = 100,
00264 CTRY_CANADA = 124,
00265 CTRY_CHILE = 152,
00266 CTRY_CHINA = 156,
00267 CTRY_COLOMBIA = 170,
00268 CTRY_COSTA_RICA = 188,
00269 CTRY_CROATIA = 191,
00270 CTRY_CYPRUS = 196,
00271 CTRY_CZECH = 203,
00272 CTRY_DENMARK = 208,
00273 CTRY_DOMINICAN_REPUBLIC = 214,
00274 CTRY_ECUADOR = 218,
00275 CTRY_EGYPT = 818,
00276 CTRY_EL_SALVADOR = 222,
00277 CTRY_ESTONIA = 233,
00278 CTRY_FAEROE_ISLANDS = 234,
00279 CTRY_FINLAND = 246,
00280 CTRY_FRANCE = 250,
00281 CTRY_FRANCE2 = 255,
00282 CTRY_GEORGIA = 268,
00283 CTRY_GERMANY = 276,
00284 CTRY_GREECE = 300,
00285 CTRY_GUATEMALA = 320,
00286 CTRY_HONDURAS = 340,
00287 CTRY_HONG_KONG = 344,
00288 CTRY_HUNGARY = 348,
00289 CTRY_ICELAND = 352,
00290 CTRY_INDIA = 356,
00291 CTRY_INDONESIA = 360,
00292 CTRY_IRAN = 364,
00293 CTRY_IRAQ = 368,
00294 CTRY_IRELAND = 372,
00295 CTRY_ISRAEL = 376,
00296 CTRY_ITALY = 380,
00297 CTRY_JAMAICA = 388,
00298 CTRY_JAPAN = 392,
00299 CTRY_JAPAN1 = 393,
00300 CTRY_JAPAN2 = 394,
00301 CTRY_JAPAN3 = 395,
00302 CTRY_JAPAN4 = 396,
00303 CTRY_JAPAN5 = 397,
00304 CTRY_JORDAN = 400,
00305 CTRY_KAZAKHSTAN = 398,
00306 CTRY_KENYA = 404,
00307 CTRY_KOREA_NORTH = 408,
00308 CTRY_KOREA_ROC = 410,
00309 CTRY_KOREA_ROC2 = 411,
00310 CTRY_KUWAIT = 414,
00311 CTRY_LATVIA = 428,
00312 CTRY_LEBANON = 422,
00313 CTRY_LIBYA = 434,
00314 CTRY_LIECHTENSTEIN = 438,
00315 CTRY_LITHUANIA = 440,
00316 CTRY_LUXEMBOURG = 442,
00317 CTRY_MACAU = 446,
00318 CTRY_MACEDONIA = 807,
00319 CTRY_MALAYSIA = 458,
00320 CTRY_MEXICO = 484,
00321 CTRY_MONACO = 492,
00322 CTRY_MOROCCO = 504,
00323 CTRY_NETHERLANDS = 528,
00324 CTRY_NEW_ZEALAND = 554,
00325 CTRY_NICARAGUA = 558,
00326 CTRY_NORWAY = 578,
00327 CTRY_OMAN = 512,
00328 CTRY_PAKISTAN = 586,
00329 CTRY_PANAMA = 591,
00330 CTRY_PARAGUAY = 600,
00331 CTRY_PERU = 604,
00332 CTRY_PHILIPPINES = 608,
00333 CTRY_POLAND = 616,
00334 CTRY_PORTUGAL = 620,
00335 CTRY_PUERTO_RICO = 630,
00336 CTRY_QATAR = 634,
00337 CTRY_ROMANIA = 642,
00338 CTRY_RUSSIA = 643,
00339 CTRY_SAUDI_ARABIA = 682,
00340 CTRY_SINGAPORE = 702,
00341 CTRY_SLOVAKIA = 703,
00342 CTRY_SLOVENIA = 705,
00343 CTRY_SOUTH_AFRICA = 710,
00344 CTRY_SPAIN = 724,
00345 CTRY_SRI_LANKA = 728,
00346 CTRY_SWEDEN = 752,
00347 CTRY_SWITZERLAND = 756,
00348 CTRY_SYRIA = 760,
00349 CTRY_TAIWAN = 158,
00350 CTRY_THAILAND = 764,
00351 CTRY_TRINIDAD_Y_TOBAGO = 780,
00352 CTRY_TUNISIA = 788,
00353 CTRY_TURKEY = 792,
00354 CTRY_UAE = 784,
00355 CTRY_UKRAINE = 804,
00356 CTRY_UNITED_KINGDOM = 826,
00357 CTRY_UNITED_STATES = 840,
00358 CTRY_URUGUAY = 858,
00359 CTRY_UZBEKISTAN = 860,
00360 CTRY_VENEZUELA = 862,
00361 CTRY_VIET_NAM = 704,
00362 CTRY_YEMEN = 887,
00363 CTRY_ZIMBABWE = 716,
00364 };
00365
00366 struct ieee80211_countryname {
00367 u_int16_t cn_code;
00368 const char *cn_name;
00369 u_int32_t cn_domain;
00370 };
00371
00372 #define IEEE80211_REGDOMAIN_COUNTRY_NAMES { \
00373 { CTRY_DEFAULT, "00", DMN_DEFAULT }, \
00374 { CTRY_UAE, "ae", DMN_NULL_WORLD }, \
00375 { CTRY_ALBANIA, "al", DMN_NULL_WORLD }, \
00376 { CTRY_ARMENIA, "am", DMN_ETSI4_WORLD }, \
00377 { CTRY_ARGENTINA, "ar", DMN_APL3_WORLD }, \
00378 { CTRY_AUSTRIA, "at", DMN_ETSI5_WORLD }, \
00379 { CTRY_AUSTRALIA, "au", DMN_FCC2_WORLD }, \
00380 { CTRY_AZERBAIJAN, "az", DMN_ETSI4_WORLD }, \
00381 { CTRY_BELGIUM, "be", DMN_ETSI4_WORLD }, \
00382 { CTRY_BULGARIA, "bg", DMN_ETSI6_WORLD }, \
00383 { CTRY_BAHRAIN, "bh", DMN_NULL_WORLD }, \
00384 { CTRY_BRUNEI_DARUSSALAM, "bn", DMN_APL1_WORLD }, \
00385 { CTRY_BOLIVIA, "bo", DMN_APL1_ETSIC }, \
00386 { CTRY_BRAZIL, "br", DMN_NULL_ETSIC }, \
00387 { CTRY_BELARUS, "by", DMN_NULL_WORLD }, \
00388 { CTRY_BELIZE, "bz", DMN_NULL_ETSIC }, \
00389 { CTRY_CANADA, "ca", DMN_FCC2_FCCA }, \
00390 { CTRY_SWITZERLAND, "ch", DMN_ETSI2_WORLD }, \
00391 { CTRY_CHILE, "cl", DMN_APL5_WORLD }, \
00392 { CTRY_CHINA, "cn", DMN_APL1_WORLD }, \
00393 { CTRY_COLOMBIA, "co", DMN_FCC1_FCCA }, \
00394 { CTRY_COSTA_RICA, "cr", DMN_NULL_WORLD }, \
00395 { CTRY_CYPRUS, "cy", DMN_ETSI1_WORLD }, \
00396 { CTRY_CZECH, "cz", DMN_ETSI3_WORLD }, \
00397 { CTRY_GERMANY, "de", DMN_ETSI1_WORLD }, \
00398 { CTRY_DENMARK, "dk", DMN_ETSI1_WORLD }, \
00399 { CTRY_DOMINICAN_REPUBLIC, "do", DMN_FCC1_FCCA }, \
00400 { CTRY_ALGERIA, "dz", DMN_NULL_WORLD }, \
00401 { CTRY_ECUADOR, "ec", DMN_NULL_WORLD }, \
00402 { CTRY_ESTONIA, "ee", DMN_ETSI1_WORLD }, \
00403 { CTRY_EGYPT, "eg", DMN_NULL_WORLD }, \
00404 { CTRY_SPAIN, "es", DMN_ETSI1_WORLD }, \
00405 { CTRY_FRANCE2, "f2", DMN_ETSI3_WORLD }, \
00406 { CTRY_FINLAND, "fi", DMN_ETSI1_WORLD }, \
00407 { CTRY_FAEROE_ISLANDS, "fo", DMN_NULL_WORLD }, \
00408 { CTRY_FRANCE, "fr", DMN_ETSI3_WORLD }, \
00409 { CTRY_GEORGIA, "ge", DMN_ETSI4_WORLD }, \
00410 { CTRY_GREECE, "gr", DMN_NULL_WORLD }, \
00411 { CTRY_GUATEMALA, "gt", DMN_FCC1_FCCA }, \
00412 { CTRY_HONG_KONG, "hk", DMN_FCC2_WORLD }, \
00413 { CTRY_HONDURAS, "hn", DMN_NULL_WORLD }, \
00414 { CTRY_CROATIA, "hr", DMN_ETSI3_WORLD }, \
00415 { CTRY_HUNGARY, "hu", DMN_ETSI2_WORLD }, \
00416 { CTRY_INDONESIA, "id", DMN_NULL_WORLD }, \
00417 { CTRY_IRELAND, "ie", DMN_ETSI1_WORLD }, \
00418 { CTRY_ISRAEL, "il", DMN_NULL_WORLD }, \
00419 { CTRY_INDIA, "in", DMN_NULL_WORLD }, \
00420 { CTRY_IRAQ, "iq", DMN_NULL_WORLD }, \
00421 { CTRY_IRAN, "ir", DMN_APL1_WORLD }, \
00422 { CTRY_ICELAND, "is", DMN_ETSI1_WORLD }, \
00423 { CTRY_ITALY, "it", DMN_ETSI1_WORLD }, \
00424 { CTRY_JAPAN1, "j1", DMN_MKK1_MKKB }, \
00425 { CTRY_JAPAN2, "j2", DMN_MKK1_FCCA }, \
00426 { CTRY_JAPAN3, "j3", DMN_MKK2_MKKA }, \
00427 { CTRY_JAPAN4, "j4", DMN_MKK1_MKKA1 }, \
00428 { CTRY_JAPAN5, "j5", DMN_MKK1_MKKA2 }, \
00429 { CTRY_JAMAICA, "jm", DMN_NULL_WORLD }, \
00430 { CTRY_JORDAN, "jo", DMN_NULL_WORLD }, \
00431 { CTRY_JAPAN, "jp", DMN_MKK1_MKKA }, \
00432 { CTRY_KOREA_ROC2, "k2", DMN_APL2_APLD }, \
00433 { CTRY_KENYA, "ke", DMN_NULL_WORLD }, \
00434 { CTRY_KOREA_NORTH, "kp", DMN_APL2_WORLD }, \
00435 { CTRY_KOREA_ROC, "kr", DMN_APL2_WORLD }, \
00436 { CTRY_KUWAIT, "kw", DMN_NULL_WORLD }, \
00437 { CTRY_KAZAKHSTAN, "kz", DMN_NULL_WORLD }, \
00438 { CTRY_LEBANON, "lb", DMN_NULL_WORLD }, \
00439 { CTRY_LIECHTENSTEIN, "li", DMN_ETSI2_WORLD }, \
00440 { CTRY_SRI_LANKA, "lk", DMN_NULL_WORLD }, \
00441 { CTRY_LITHUANIA, "lt", DMN_ETSI1_WORLD }, \
00442 { CTRY_LUXEMBOURG, "lu", DMN_ETSI1_WORLD }, \
00443 { CTRY_LATVIA, "lv", DMN_NULL_WORLD }, \
00444 { CTRY_LIBYA, "ly", DMN_NULL_WORLD }, \
00445 { CTRY_MOROCCO, "ma", DMN_NULL_WORLD }, \
00446 { CTRY_MONACO, "mc", DMN_ETSI4_WORLD }, \
00447 { CTRY_MACEDONIA, "mk", DMN_NULL_WORLD }, \
00448 { CTRY_MACAU, "mo", DMN_FCC2_WORLD }, \
00449 { CTRY_MEXICO, "mx", DMN_FCC1_FCCA }, \
00450 { CTRY_MALAYSIA, "my", DMN_NULL_WORLD }, \
00451 { CTRY_NICARAGUA, "ni", DMN_NULL_WORLD }, \
00452 { CTRY_NETHERLANDS, "nl", DMN_ETSI1_WORLD }, \
00453 { CTRY_NORWAY, "no", DMN_ETSI1_WORLD }, \
00454 { CTRY_NEW_ZEALAND, "nz", DMN_FCC2_ETSIC }, \
00455 { CTRY_OMAN, "om", DMN_NULL_WORLD }, \
00456 { CTRY_PANAMA, "pa", DMN_FCC1_FCCA }, \
00457 { CTRY_PERU, "pe", DMN_NULL_WORLD }, \
00458 { CTRY_PHILIPPINES, "ph", DMN_FCC1_WORLD }, \
00459 { CTRY_PAKISTAN, "pk", DMN_NULL_WORLD }, \
00460 { CTRY_POLAND, "pl", DMN_ETSI1_WORLD }, \
00461 { CTRY_PUERTO_RICO, "pr", DMN_FCC1_FCCA }, \
00462 { CTRY_PORTUGAL, "pt", DMN_ETSI1_WORLD }, \
00463 { CTRY_PARAGUAY, "py", DMN_NULL_WORLD }, \
00464 { CTRY_QATAR, "qa", DMN_NULL_WORLD }, \
00465 { CTRY_ROMANIA, "ro", DMN_NULL_WORLD }, \
00466 { CTRY_RUSSIA, "ru", DMN_NULL_WORLD }, \
00467 { CTRY_SAUDI_ARABIA, "sa", DMN_NULL_WORLD }, \
00468 { CTRY_SWEDEN, "se", DMN_ETSI1_WORLD }, \
00469 { CTRY_SINGAPORE, "sg", DMN_APL4_WORLD }, \
00470 { CTRY_SLOVENIA, "si", DMN_ETSI1_WORLD }, \
00471 { CTRY_SLOVAKIA, "sk", DMN_ETSI3_WORLD }, \
00472 { CTRY_EL_SALVADOR, "sv", DMN_NULL_WORLD }, \
00473 { CTRY_SYRIA, "sy", DMN_NULL_WORLD }, \
00474 { CTRY_THAILAND, "th", DMN_APL2_WORLD }, \
00475 { CTRY_TUNISIA, "tn", DMN_ETSI3_WORLD }, \
00476 { CTRY_TURKEY, "tr", DMN_ETSI3_WORLD }, \
00477 { CTRY_TRINIDAD_Y_TOBAGO, "tt", DMN_ETSI4_WORLD }, \
00478 { CTRY_TAIWAN, "tw", DMN_APL3_WORLD }, \
00479 { CTRY_UKRAINE, "ua", DMN_NULL_WORLD }, \
00480 { CTRY_UNITED_KINGDOM, "uk", DMN_ETSI1_WORLD }, \
00481 { CTRY_UNITED_STATES, "us", DMN_FCC1_FCCA }, \
00482 { CTRY_URUGUAY, "uy", DMN_APL2_WORLD }, \
00483 { CTRY_UZBEKISTAN, "uz", DMN_FCC3_FCCA }, \
00484 { CTRY_VENEZUELA, "ve", DMN_APL2_ETSIC }, \
00485 { CTRY_VIET_NAM, "vn", DMN_NULL_WORLD }, \
00486 { CTRY_YEMEN, "ye", DMN_NULL_WORLD }, \
00487 { CTRY_SOUTH_AFRICA, "za", DMN_ETSI1_WORLD }, \
00488 { CTRY_ZIMBABWE, "zw", DMN_NULL_WORLD }, \
00489 }
00490
00491 enum ieee80211_ctl {
00492 CTL_11A = 0x00,
00493 CTL_11B = 0x01,
00494 CTL_11G = 0x02,
00495 CTL_TURBO = 0x03,
00496 CTL_TURBO_G = 0x04,
00497 CTL_FCC = 0x10,
00498 CTL_ETSI = 0x30,
00499 CTL_MKK = 0x40,
00500 CTL_NONEA = 0xff
00501 };
00502
00503 #define IEEE80211_CHANNELS_2GHZ_MIN 2412
00504 #define IEEE80211_CHANNELS_2GHZ_MAX 2732
00505
00506 struct ieee80211_regchannel {
00507 u_int16_t rc_channel;
00508 u_int32_t rc_domain;
00509 u_int32_t rc_mode;
00510 };
00511
00512 #define IEEE80211_CHANNELS_2GHZ { \
00513 { 2412, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00514 { 2417, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00515 { 2422, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00516 { 2427, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00517 { 2432, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00518 { 2437, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00519 { 2442, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00520 { 2447, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00521 { 2452, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00522 { 2457, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00523 { 2462, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00524 { 2467, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00525 { 2472, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00526 { 2477, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00527 { 2482, DMN_FCC1, IEEE80211_CHAN_2GHZ | IEEE80211_CHAN_CCK | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_DYN }, \
00528 }
00529
00530 #define IEEE80211_CHANNELS_5GHZ_MIN 5005
00531 #define IEEE80211_CHANNELS_5GHZ_MAX 6100
00532
00533 #define IEEE80211_CHANNELS_5GHZ { \
00534 { 5180, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00535 { 5200, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00536 { 5210, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO },\
00537 { 5220, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00538 { 5240, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00539 { 5250, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO },\
00540 { 5260, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00541 { 5280, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00542 { 5290, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO },\
00543 { 5300, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00544 { 5320, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00545 { 5745, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00546 { 5760, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO },\
00547 { 5765, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00548 { 5785, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00549 { 5800, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM | IEEE80211_CHAN_TURBO },\
00550 { 5805, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00551 { 5825, DMN_FCC1, IEEE80211_CHAN_5GHZ | IEEE80211_CHAN_OFDM },\
00552 }
00553
00554 extern u_int16_t ieee80211_name2countrycode(const char *);
00555 extern u_int32_t ieee80211_name2regdomain(const char *);
00556 extern const char *ieee80211_countrycode2name(u_int16_t);
00557 extern const char *ieee80211_regdomain2name(u_int32_t);
00558 extern u_int32_t ieee80211_regdomain2flag(u_int16_t, u_int16_t);
00559 extern u_int32_t ieee80211_countrycode2regdomain(u_int16_t);
00560
00561 #endif