ieee80211_regdomain.h 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787
  1. /* $OpenBSD: ieee80211_regdomain.h,v 1.8 2005/12/18 17:59:59 reyk Exp $ */
  2. /*
  3. * Copyright (c) 2004, 2005 Reyk Floeter <reyk@openbsd.org>
  4. *
  5. * Permission to use, copy, modify, and distribute this software for any
  6. * purpose with or without fee is hereby granted, provided that the above
  7. * copyright notice and this permission notice appear in all copies.
  8. *
  9. * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  10. * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  11. * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  12. * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  13. * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  14. * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  15. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  16. */
  17. #ifndef _NET80211_IEEE80211_REGDOMAIN_H_
  18. #define _NET80211_IEEE80211_REGDOMAIN_H_
  19. typedef u_int32_t ieee80211_regdomain_t;
  20. enum ieee80211_regdomain {
  21. DMN_DEFAULT = 0x00,
  22. DMN_NULL_WORLD = 0x03,
  23. DMN_NULL_ETSIB = 0x07,
  24. DMN_NULL_ETSIC = 0x08,
  25. DMN_FCC1_FCCA = 0x10,
  26. DMN_FCC1_WORLD = 0x11,
  27. DMN_FCC2_FCCA = 0x20,
  28. DMN_FCC2_WORLD = 0x21,
  29. DMN_FCC2_ETSIC = 0x22,
  30. DMN_FRANCE_NULL = 0x31,
  31. DMN_FCC3_FCCA = 0x3A,
  32. DMN_ETSI1_WORLD = 0x37,
  33. DMN_ETSI3_ETSIA = 0x32,
  34. DMN_ETSI2_WORLD = 0x35,
  35. DMN_ETSI3_WORLD = 0x36,
  36. DMN_ETSI4_WORLD = 0x30,
  37. DMN_ETSI4_ETSIC = 0x38,
  38. DMN_ETSI5_WORLD = 0x39,
  39. DMN_ETSI6_WORLD = 0x34,
  40. DMN_ETSI_NULL = 0x33,
  41. DMN_MKK1_MKKA = 0x40,
  42. DMN_MKK1_MKKB = 0x41,
  43. DMN_APL4_WORLD = 0x42,
  44. DMN_MKK2_MKKA = 0x43,
  45. DMN_APL_NULL = 0x44,
  46. DMN_APL2_WORLD = 0x45,
  47. DMN_APL2_APLC = 0x46,
  48. DMN_APL3_WORLD = 0x47,
  49. DMN_MKK1_FCCA = 0x48,
  50. DMN_APL2_APLD = 0x49,
  51. DMN_MKK1_MKKA1 = 0x4A,
  52. DMN_MKK1_MKKA2 = 0x4B,
  53. DMN_APL1_WORLD = 0x52,
  54. DMN_APL1_FCCA = 0x53,
  55. DMN_APL1_APLA = 0x54,
  56. DMN_APL1_ETSIC = 0x55,
  57. DMN_APL2_ETSIC = 0x56,
  58. DMN_APL5_WORLD = 0x58,
  59. DMN_WOR0_WORLD = 0x60,
  60. DMN_WOR1_WORLD = 0x61,
  61. DMN_WOR2_WORLD = 0x62,
  62. DMN_WOR3_WORLD = 0x63,
  63. DMN_WOR4_WORLD = 0x64,
  64. DMN_WOR5_ETSIC = 0x65,
  65. DMN_WOR01_WORLD = 0x66,
  66. DMN_WOR02_WORLD = 0x67,
  67. DMN_EU1_WORLD = 0x68,
  68. DMN_WOR9_WORLD = 0x69,
  69. DMN_WORA_WORLD = 0x6A,
  70. DMN_APL1 = 0xf0000001,
  71. DMN_APL2 = 0xf0000002,
  72. DMN_APL3 = 0xf0000004,
  73. DMN_APL4 = 0xf0000008,
  74. DMN_APL5 = 0xf0000010,
  75. DMN_ETSI1 = 0xf0000020,
  76. DMN_ETSI2 = 0xf0000040,
  77. DMN_ETSI3 = 0xf0000080,
  78. DMN_ETSI4 = 0xf0000100,
  79. DMN_ETSI5 = 0xf0000200,
  80. DMN_ETSI6 = 0xf0000400,
  81. DMN_ETSIA = 0xf0000800,
  82. DMN_ETSIB = 0xf0001000,
  83. DMN_ETSIC = 0xf0002000,
  84. DMN_FCC1 = 0xf0004000,
  85. DMN_FCC2 = 0xf0008000,
  86. DMN_FCC3 = 0xf0010000,
  87. DMN_FCCA = 0xf0020000,
  88. DMN_APLD = 0xf0040000,
  89. DMN_MKK1 = 0xf0080000,
  90. DMN_MKK2 = 0xf0100000,
  91. DMN_MKKA = 0xf0200000,
  92. DMN_NULL = 0xf0400000,
  93. DMN_WORLD = 0xf0800000,
  94. DMN_DEBUG = 0xf1000000 /* used for debugging */
  95. };
  96. #define IEEE80211_DMN(_d) ((_d) & ~0xf0000000)
  97. struct ieee80211_regdomainname {
  98. u_int32_t rn_domain;
  99. const char *rn_name;
  100. };
  101. #define IEEE80211_REGDOMAIN_NAMES { \
  102. { DMN_APL1, "APL1" }, \
  103. { DMN_APL1_APLA, "APL1A" }, \
  104. { DMN_APL1_ETSIC, "APL1_ETSIC" }, \
  105. { DMN_APL1_FCCA, "APL1_FCCA" }, \
  106. { DMN_APL1_WORLD, "APL1W" }, \
  107. { DMN_APL2, "APL2" }, \
  108. { DMN_APL2_APLC, "APL2C" }, \
  109. { DMN_APL2_APLD, "APL2D" }, \
  110. { DMN_APL2_ETSIC, "APL2_ETSIC" }, \
  111. { DMN_APL2_WORLD, "APL2W" }, \
  112. { DMN_APL3, "APL3" }, \
  113. { DMN_APL3_WORLD, "APL3W" }, \
  114. { DMN_APL4, "APL4" }, \
  115. { DMN_APL4_WORLD, "APL4W" }, \
  116. { DMN_APL5, "APL5" }, \
  117. { DMN_APL5_WORLD, "APL5W" }, \
  118. { DMN_APLD, "APLD" }, \
  119. { DMN_APL_NULL, "APL" }, \
  120. { DMN_DEBUG, "DEBUG" }, \
  121. { DMN_ETSI1, "ETSI1" }, \
  122. { DMN_ETSI1_WORLD, "ETSI1W" }, \
  123. { DMN_ETSI2, "ETSI2" }, \
  124. { DMN_ETSI2_WORLD, "ETSI2W" }, \
  125. { DMN_ETSI3, "ETSI3" }, \
  126. { DMN_ETSI3_ETSIA, "ETSI3A" }, \
  127. { DMN_ETSI3_WORLD, "ETSI3W," }, \
  128. { DMN_ETSI4, "ETSI4" }, \
  129. { DMN_ETSI4_ETSIC, "ETSI4C" }, \
  130. { DMN_ETSI4_WORLD, "ETSI4W" }, \
  131. { DMN_ETSI5, "ETSI5" }, \
  132. { DMN_ETSI5_WORLD, "ETSI5W" }, \
  133. { DMN_ETSI6, "ETSI6" }, \
  134. { DMN_ETSI6_WORLD, "ETSI6W" }, \
  135. { DMN_ETSIA, "ETSIA" }, \
  136. { DMN_ETSIB, "ETSIB" }, \
  137. { DMN_ETSIC, "ETSIC" }, \
  138. { DMN_ETSI_NULL, "ETSI" }, \
  139. { DMN_EU1_WORLD, "EU1W" }, \
  140. { DMN_FCC1, "FCC1" }, \
  141. { DMN_FCC1_FCCA, "FCC1A" }, \
  142. { DMN_FCC1_WORLD, "FCC1W" }, \
  143. { DMN_FCC2, "FCC2" }, \
  144. { DMN_FCC2_ETSIC, "FCC2C" }, \
  145. { DMN_FCC2_FCCA, "FCC2A" }, \
  146. { DMN_FCC2_WORLD, "FCC2W" }, \
  147. { DMN_FCC3, "FCC3" }, \
  148. { DMN_FCC3_FCCA, "FCC3A" }, \
  149. { DMN_FCCA, "FCCA" }, \
  150. { DMN_FRANCE_NULL, "FRANCE" }, \
  151. { DMN_MKK1, "MKK1" }, \
  152. { DMN_MKK1_FCCA, "MKK1_FCCA" }, \
  153. { DMN_MKK1_MKKA, "MKK1A" }, \
  154. { DMN_MKK1_MKKA1, "MKK1A1" }, \
  155. { DMN_MKK1_MKKA2, "MKK1A2" }, \
  156. { DMN_MKK1_MKKB, "MKK1B" }, \
  157. { DMN_MKK2, "MKK2" }, \
  158. { DMN_MKK2_MKKA, "MKK2A" }, \
  159. { DMN_MKKA, "MKKA" }, \
  160. { DMN_DEFAULT, "NONE" }, \
  161. { DMN_NULL, "NONE" }, \
  162. { DMN_NULL_ETSIB, "ETSIB" }, \
  163. { DMN_NULL_ETSIC, "ETSIC" }, \
  164. { DMN_WOR01_WORLD, "WOR01W" }, \
  165. { DMN_WOR02_WORLD, "WOR02W" }, \
  166. { DMN_WOR0_WORLD, "WOR0W" }, \
  167. { DMN_WOR1_WORLD, "WOR1W" }, \
  168. { DMN_WOR2_WORLD, "WOR2W" }, \
  169. { DMN_WOR3_WORLD, "WOR3W" }, \
  170. { DMN_WOR4_WORLD, "WOR4W" }, \
  171. { DMN_WOR5_ETSIC, "WOR5_ETSIC" }, \
  172. { DMN_WOR9_WORLD, "WOR9W" }, \
  173. { DMN_WORA_WORLD, "WORAW" }, \
  174. { DMN_NULL_WORLD, "WORLD" }, \
  175. { DMN_WORLD, "WORLD" } \
  176. }
  177. struct ieee80211_regdomainmap {
  178. u_int16_t rm_domain;
  179. u_int32_t rm_domain_5ghz;
  180. u_int32_t rm_domain_2ghz;
  181. };
  182. #define IEEE80211_REGDOMAIN_MAP { \
  183. { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG }, \
  184. { DMN_NULL_WORLD, DMN_NULL, DMN_WORLD }, \
  185. { DMN_NULL_ETSIB, DMN_NULL, DMN_ETSIB }, \
  186. { DMN_NULL_ETSIC, DMN_NULL, DMN_ETSIC }, \
  187. { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA }, \
  188. { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD }, \
  189. { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA }, \
  190. { DMN_FCC2_WORLD, DMN_FCC2, DMN_WORLD }, \
  191. { DMN_FCC2_ETSIC, DMN_FCC2, DMN_ETSIC }, \
  192. { DMN_FRANCE_NULL, DMN_ETSI3, DMN_ETSI3 }, \
  193. { DMN_FCC3_FCCA, DMN_FCC3, DMN_WORLD }, \
  194. { DMN_ETSI1_WORLD, DMN_ETSI1, DMN_WORLD }, \
  195. { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD }, \
  196. { DMN_ETSI2_WORLD, DMN_ETSI2, DMN_WORLD }, \
  197. { DMN_ETSI3_WORLD, DMN_ETSI3, DMN_WORLD }, \
  198. { DMN_ETSI4_WORLD, DMN_ETSI4, DMN_WORLD }, \
  199. { DMN_ETSI4_ETSIC, DMN_ETSI4, DMN_ETSIC }, \
  200. { DMN_ETSI5_WORLD, DMN_ETSI5, DMN_WORLD }, \
  201. { DMN_ETSI6_WORLD, DMN_ETSI6, DMN_WORLD }, \
  202. { DMN_ETSI_NULL, DMN_ETSI1, DMN_ETSI1 }, \
  203. { DMN_MKK1_MKKA, DMN_MKK1, DMN_MKKA }, \
  204. { DMN_MKK1_MKKB, DMN_MKK1, DMN_MKKA }, \
  205. { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD }, \
  206. { DMN_MKK2_MKKA, DMN_MKK2, DMN_MKKA }, \
  207. { DMN_APL_NULL, DMN_APL1, DMN_NULL }, \
  208. { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD }, \
  209. { DMN_APL2_APLC, DMN_APL2, DMN_WORLD }, \
  210. { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD }, \
  211. { DMN_MKK1_FCCA, DMN_MKK1, DMN_FCCA }, \
  212. { DMN_APL2_APLD, DMN_APL2, DMN_APLD }, \
  213. { DMN_MKK1_MKKA1, DMN_MKK1, DMN_MKKA }, \
  214. { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA }, \
  215. { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD }, \
  216. { DMN_APL1_FCCA, DMN_APL1, DMN_FCCA }, \
  217. { DMN_APL1_APLA, DMN_APL1, DMN_WORLD }, \
  218. { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC }, \
  219. { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC }, \
  220. { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD }, \
  221. { DMN_WOR0_WORLD, DMN_WORLD, DMN_WORLD }, \
  222. { DMN_WOR1_WORLD, DMN_WORLD, DMN_WORLD }, \
  223. { DMN_WOR2_WORLD, DMN_WORLD, DMN_WORLD }, \
  224. { DMN_WOR3_WORLD, DMN_WORLD, DMN_WORLD }, \
  225. { DMN_WOR4_WORLD, DMN_WORLD, DMN_WORLD }, \
  226. { DMN_WOR5_ETSIC, DMN_WORLD, DMN_WORLD }, \
  227. { DMN_WOR01_WORLD, DMN_WORLD, DMN_WORLD }, \
  228. { DMN_WOR02_WORLD, DMN_WORLD, DMN_WORLD }, \
  229. { DMN_EU1_WORLD, DMN_ETSI1, DMN_WORLD }, \
  230. { DMN_WOR9_WORLD, DMN_WORLD, DMN_WORLD }, \
  231. { DMN_WORA_WORLD, DMN_WORLD, DMN_WORLD }, \
  232. }
  233. enum ieee80211_countrycode {
  234. CTRY_DEFAULT = 0, /* Default domain (NA) */
  235. CTRY_ALBANIA = 8, /* Albania */
  236. CTRY_ALGERIA = 12, /* Algeria */
  237. CTRY_ARGENTINA = 32, /* Argentina */
  238. CTRY_ARMENIA = 51, /* Armenia */
  239. CTRY_AUSTRALIA = 36, /* Australia */
  240. CTRY_AUSTRIA = 40, /* Austria */
  241. CTRY_AZERBAIJAN = 31, /* Azerbaijan */
  242. CTRY_BAHRAIN = 48, /* Bahrain */
  243. CTRY_BELARUS = 112, /* Belarus */
  244. CTRY_BELGIUM = 56, /* Belgium */
  245. CTRY_BELIZE = 84, /* Belize */
  246. CTRY_BOLIVIA = 68, /* Bolivia */
  247. CTRY_BRAZIL = 76, /* Brazil */
  248. CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */
  249. CTRY_BULGARIA = 100, /* Bulgaria */
  250. CTRY_CANADA = 124, /* Canada */
  251. CTRY_CHILE = 152, /* Chile */
  252. CTRY_CHINA = 156, /* People's Republic of China */
  253. CTRY_COLOMBIA = 170, /* Colombia */
  254. CTRY_COSTA_RICA = 188, /* Costa Rica */
  255. CTRY_CROATIA = 191, /* Croatia */
  256. CTRY_CYPRUS = 196, /* Cyprus */
  257. CTRY_CZECH = 203, /* Czech Republic */
  258. CTRY_DENMARK = 208, /* Denmark */
  259. CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */
  260. CTRY_ECUADOR = 218, /* Ecuador */
  261. CTRY_EGYPT = 818, /* Egypt */
  262. CTRY_EL_SALVADOR = 222, /* El Salvador */
  263. CTRY_ESTONIA = 233, /* Estonia */
  264. CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */
  265. CTRY_FINLAND = 246, /* Finland */
  266. CTRY_FRANCE = 250, /* France */
  267. CTRY_FRANCE2 = 255, /* France2 */
  268. CTRY_GEORGIA = 268, /* Georgia */
  269. CTRY_GERMANY = 276, /* Germany */
  270. CTRY_GREECE = 300, /* Greece */
  271. CTRY_GUATEMALA = 320, /* Guatemala */
  272. CTRY_HONDURAS = 340, /* Honduras */
  273. CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */
  274. CTRY_HUNGARY = 348, /* Hungary */
  275. CTRY_ICELAND = 352, /* Iceland */
  276. CTRY_INDIA = 356, /* India */
  277. CTRY_INDONESIA = 360, /* Indonesia */
  278. CTRY_IRAN = 364, /* Iran */
  279. CTRY_IRAQ = 368, /* Iraq */
  280. CTRY_IRELAND = 372, /* Ireland */
  281. CTRY_ISRAEL = 376, /* Israel */
  282. CTRY_ITALY = 380, /* Italy */
  283. CTRY_JAMAICA = 388, /* Jamaica */
  284. CTRY_JAPAN = 392, /* Japan */
  285. CTRY_JAPAN1 = 393, /* Japan (JP1) */
  286. CTRY_JAPAN2 = 394, /* Japan (JP0) */
  287. CTRY_JAPAN3 = 395, /* Japan (JP1-1) */
  288. CTRY_JAPAN4 = 396, /* Japan (JE1) */
  289. CTRY_JAPAN5 = 397, /* Japan (JE2) */
  290. CTRY_JORDAN = 400, /* Jordan */
  291. CTRY_KAZAKHSTAN = 398, /* Kazakhstan */
  292. CTRY_KENYA = 404, /* Kenya */
  293. CTRY_KOREA_NORTH = 408, /* North Korea */
  294. CTRY_KOREA_ROC = 410, /* South Korea */
  295. CTRY_KOREA_ROC2 = 411, /* South Korea */
  296. CTRY_KUWAIT = 414, /* Kuwait */
  297. CTRY_LATVIA = 428, /* Latvia */
  298. CTRY_LEBANON = 422, /* Lebanon */
  299. CTRY_LIBYA = 434, /* Libya */
  300. CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */
  301. CTRY_LITHUANIA = 440, /* Lithuania */
  302. CTRY_LUXEMBOURG = 442, /* Luxembourg */
  303. CTRY_MACAU = 446, /* Macau */
  304. CTRY_MACEDONIA = 807, /* Republic of Macedonia */
  305. CTRY_MALAYSIA = 458, /* Malaysia */
  306. CTRY_MEXICO = 484, /* Mexico */
  307. CTRY_MONACO = 492, /* Principality of Monaco */
  308. CTRY_MOROCCO = 504, /* Morocco */
  309. CTRY_NETHERLANDS = 528, /* Netherlands */
  310. CTRY_NEW_ZEALAND = 554, /* New Zealand */
  311. CTRY_NICARAGUA = 558, /* Nicaragua */
  312. CTRY_NORWAY = 578, /* Norway */
  313. CTRY_OMAN = 512, /* Oman */
  314. CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */
  315. CTRY_PANAMA = 591, /* Panama */
  316. CTRY_PARAGUAY = 600, /* Paraguay */
  317. CTRY_PERU = 604, /* Peru */
  318. CTRY_PHILIPPINES = 608, /* Republic of the Philippines */
  319. CTRY_POLAND = 616, /* Poland */
  320. CTRY_PORTUGAL = 620, /* Portugal */
  321. CTRY_PUERTO_RICO = 630, /* Puerto Rico */
  322. CTRY_QATAR = 634, /* Qatar */
  323. CTRY_ROMANIA = 642, /* Romania */
  324. CTRY_RUSSIA = 643, /* Russia */
  325. CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */
  326. CTRY_SINGAPORE = 702, /* Singapore */
  327. CTRY_SLOVAKIA = 703, /* Slovak Republic */
  328. CTRY_SLOVENIA = 705, /* Slovenia */
  329. CTRY_SOUTH_AFRICA = 710, /* South Africa */
  330. CTRY_SPAIN = 724, /* Spain */
  331. CTRY_SRI_LANKA = 728, /* Sri Lanka */
  332. CTRY_SWEDEN = 752, /* Sweden */
  333. CTRY_SWITZERLAND = 756, /* Switzerland */
  334. CTRY_SYRIA = 760, /* Syria */
  335. CTRY_TAIWAN = 158, /* Taiwan */
  336. CTRY_THAILAND = 764, /* Thailand */
  337. CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */
  338. CTRY_TUNISIA = 788, /* Tunisia */
  339. CTRY_TURKEY = 792, /* Turkey */
  340. CTRY_UAE = 784, /* U.A.E. */
  341. CTRY_UKRAINE = 804, /* Ukraine */
  342. CTRY_UNITED_KINGDOM = 826, /* United Kingdom */
  343. CTRY_UNITED_STATES = 840, /* United States */
  344. CTRY_URUGUAY = 858, /* Uruguay */
  345. CTRY_UZBEKISTAN = 860, /* Uzbekistan */
  346. CTRY_VENEZUELA = 862, /* Venezuela */
  347. CTRY_VIET_NAM = 704, /* Viet Nam */
  348. CTRY_YEMEN = 887, /* Yemen */
  349. CTRY_ZIMBABWE = 716, /* Zimbabwe */
  350. };
  351. struct ieee80211_countryname {
  352. u_int16_t cn_code;
  353. const char *cn_name;
  354. u_int32_t cn_domain;
  355. };
  356. #define IEEE80211_REGDOMAIN_COUNTRY_NAMES { \
  357. { CTRY_DEFAULT, "00", DMN_DEFAULT }, \
  358. { CTRY_UAE, "ae", DMN_NULL_WORLD }, \
  359. { CTRY_ALBANIA, "al", DMN_NULL_WORLD }, \
  360. { CTRY_ARMENIA, "am", DMN_ETSI4_WORLD }, \
  361. { CTRY_ARGENTINA, "ar", DMN_APL3_WORLD }, \
  362. { CTRY_AUSTRIA, "at", DMN_ETSI5_WORLD }, \
  363. { CTRY_AUSTRALIA, "au", DMN_FCC2_WORLD }, \
  364. { CTRY_AZERBAIJAN, "az", DMN_ETSI4_WORLD }, \
  365. { CTRY_BELGIUM, "be", DMN_ETSI4_WORLD }, \
  366. { CTRY_BULGARIA, "bg", DMN_ETSI6_WORLD }, \
  367. { CTRY_BAHRAIN, "bh", DMN_NULL_WORLD }, \
  368. { CTRY_BRUNEI_DARUSSALAM, "bn", DMN_APL1_WORLD }, \
  369. { CTRY_BOLIVIA, "bo", DMN_APL1_ETSIC }, \
  370. { CTRY_BRAZIL, "br", DMN_NULL_ETSIC }, \
  371. { CTRY_BELARUS, "by", DMN_NULL_WORLD }, \
  372. { CTRY_BELIZE, "bz", DMN_NULL_ETSIC }, \
  373. { CTRY_CANADA, "ca", DMN_FCC2_FCCA }, \
  374. { CTRY_SWITZERLAND, "ch", DMN_ETSI2_WORLD }, \
  375. { CTRY_CHILE, "cl", DMN_APL5_WORLD }, \
  376. { CTRY_CHINA, "cn", DMN_APL1_WORLD }, \
  377. { CTRY_COLOMBIA, "co", DMN_FCC1_FCCA }, \
  378. { CTRY_COSTA_RICA, "cr", DMN_NULL_WORLD }, \
  379. { CTRY_CYPRUS, "cy", DMN_ETSI1_WORLD }, \
  380. { CTRY_CZECH, "cz", DMN_ETSI3_WORLD }, \
  381. { CTRY_GERMANY, "de", DMN_ETSI1_WORLD }, \
  382. { CTRY_DENMARK, "dk", DMN_ETSI1_WORLD }, \
  383. { CTRY_DOMINICAN_REPUBLIC, "do", DMN_FCC1_FCCA }, \
  384. { CTRY_ALGERIA, "dz", DMN_NULL_WORLD }, \
  385. { CTRY_ECUADOR, "ec", DMN_NULL_WORLD }, \
  386. { CTRY_ESTONIA, "ee", DMN_ETSI1_WORLD }, \
  387. { CTRY_EGYPT, "eg", DMN_NULL_WORLD }, \
  388. { CTRY_SPAIN, "es", DMN_ETSI1_WORLD }, \
  389. { CTRY_FRANCE2, "f2", DMN_ETSI3_WORLD }, \
  390. { CTRY_FINLAND, "fi", DMN_ETSI1_WORLD }, \
  391. { CTRY_FAEROE_ISLANDS, "fo", DMN_NULL_WORLD }, \
  392. { CTRY_FRANCE, "fr", DMN_ETSI3_WORLD }, \
  393. { CTRY_GEORGIA, "ge", DMN_ETSI4_WORLD }, \
  394. { CTRY_GREECE, "gr", DMN_NULL_WORLD }, \
  395. { CTRY_GUATEMALA, "gt", DMN_FCC1_FCCA }, \
  396. { CTRY_HONG_KONG, "hk", DMN_FCC2_WORLD }, \
  397. { CTRY_HONDURAS, "hn", DMN_NULL_WORLD }, \
  398. { CTRY_CROATIA, "hr", DMN_ETSI3_WORLD }, \
  399. { CTRY_HUNGARY, "hu", DMN_ETSI2_WORLD }, \
  400. { CTRY_INDONESIA, "id", DMN_NULL_WORLD }, \
  401. { CTRY_IRELAND, "ie", DMN_ETSI1_WORLD }, \
  402. { CTRY_ISRAEL, "il", DMN_NULL_WORLD }, \
  403. { CTRY_INDIA, "in", DMN_NULL_WORLD }, \
  404. { CTRY_IRAQ, "iq", DMN_NULL_WORLD }, \
  405. { CTRY_IRAN, "ir", DMN_APL1_WORLD }, \
  406. { CTRY_ICELAND, "is", DMN_ETSI1_WORLD }, \
  407. { CTRY_ITALY, "it", DMN_ETSI1_WORLD }, \
  408. { CTRY_JAPAN1, "j1", DMN_MKK1_MKKB }, \
  409. { CTRY_JAPAN2, "j2", DMN_MKK1_FCCA }, \
  410. { CTRY_JAPAN3, "j3", DMN_MKK2_MKKA }, \
  411. { CTRY_JAPAN4, "j4", DMN_MKK1_MKKA1 }, \
  412. { CTRY_JAPAN5, "j5", DMN_MKK1_MKKA2 }, \
  413. { CTRY_JAMAICA, "jm", DMN_NULL_WORLD }, \
  414. { CTRY_JORDAN, "jo", DMN_NULL_WORLD }, \
  415. { CTRY_JAPAN, "jp", DMN_MKK1_MKKA }, \
  416. { CTRY_KOREA_ROC2, "k2", DMN_APL2_APLD }, \
  417. { CTRY_KENYA, "ke", DMN_NULL_WORLD }, \
  418. { CTRY_KOREA_NORTH, "kp", DMN_APL2_WORLD }, \
  419. { CTRY_KOREA_ROC, "kr", DMN_APL2_WORLD }, \
  420. { CTRY_KUWAIT, "kw", DMN_NULL_WORLD }, \
  421. { CTRY_KAZAKHSTAN, "kz", DMN_NULL_WORLD }, \
  422. { CTRY_LEBANON, "lb", DMN_NULL_WORLD }, \
  423. { CTRY_LIECHTENSTEIN, "li", DMN_ETSI2_WORLD }, \
  424. { CTRY_SRI_LANKA, "lk", DMN_NULL_WORLD }, \
  425. { CTRY_LITHUANIA, "lt", DMN_ETSI1_WORLD }, \
  426. { CTRY_LUXEMBOURG, "lu", DMN_ETSI1_WORLD }, \
  427. { CTRY_LATVIA, "lv", DMN_NULL_WORLD }, \
  428. { CTRY_LIBYA, "ly", DMN_NULL_WORLD }, \
  429. { CTRY_MOROCCO, "ma", DMN_NULL_WORLD }, \
  430. { CTRY_MONACO, "mc", DMN_ETSI4_WORLD }, \
  431. { CTRY_MACEDONIA, "mk", DMN_NULL_WORLD }, \
  432. { CTRY_MACAU, "mo", DMN_FCC2_WORLD }, \
  433. { CTRY_MEXICO, "mx", DMN_FCC1_FCCA }, \
  434. { CTRY_MALAYSIA, "my", DMN_NULL_WORLD }, \
  435. { CTRY_NICARAGUA, "ni", DMN_NULL_WORLD }, \
  436. { CTRY_NETHERLANDS, "nl", DMN_ETSI1_WORLD }, \
  437. { CTRY_NORWAY, "no", DMN_ETSI1_WORLD }, \
  438. { CTRY_NEW_ZEALAND, "nz", DMN_FCC2_ETSIC }, \
  439. { CTRY_OMAN, "om", DMN_NULL_WORLD }, \
  440. { CTRY_PANAMA, "pa", DMN_FCC1_FCCA }, \
  441. { CTRY_PERU, "pe", DMN_NULL_WORLD }, \
  442. { CTRY_PHILIPPINES, "ph", DMN_FCC1_WORLD }, \
  443. { CTRY_PAKISTAN, "pk", DMN_NULL_WORLD }, \
  444. { CTRY_POLAND, "pl", DMN_ETSI1_WORLD }, \
  445. { CTRY_PUERTO_RICO, "pr", DMN_FCC1_FCCA }, \
  446. { CTRY_PORTUGAL, "pt", DMN_ETSI1_WORLD }, \
  447. { CTRY_PARAGUAY, "py", DMN_NULL_WORLD }, \
  448. { CTRY_QATAR, "qa", DMN_NULL_WORLD }, \
  449. { CTRY_ROMANIA, "ro", DMN_NULL_WORLD }, \
  450. { CTRY_RUSSIA, "ru", DMN_NULL_WORLD }, \
  451. { CTRY_SAUDI_ARABIA, "sa", DMN_NULL_WORLD }, \
  452. { CTRY_SWEDEN, "se", DMN_ETSI1_WORLD }, \
  453. { CTRY_SINGAPORE, "sg", DMN_APL4_WORLD }, \
  454. { CTRY_SLOVENIA, "si", DMN_ETSI1_WORLD }, \
  455. { CTRY_SLOVAKIA, "sk", DMN_ETSI3_WORLD }, \
  456. { CTRY_EL_SALVADOR, "sv", DMN_NULL_WORLD }, \
  457. { CTRY_SYRIA, "sy", DMN_NULL_WORLD }, \
  458. { CTRY_THAILAND, "th", DMN_APL2_WORLD }, \
  459. { CTRY_TUNISIA, "tn", DMN_ETSI3_WORLD }, \
  460. { CTRY_TURKEY, "tr", DMN_ETSI3_WORLD }, \
  461. { CTRY_TRINIDAD_Y_TOBAGO, "tt", DMN_ETSI4_WORLD }, \
  462. { CTRY_TAIWAN, "tw", DMN_APL3_WORLD }, \
  463. { CTRY_UKRAINE, "ua", DMN_NULL_WORLD }, \
  464. { CTRY_UNITED_KINGDOM, "uk", DMN_ETSI1_WORLD }, \
  465. { CTRY_UNITED_STATES, "us", DMN_FCC1_FCCA }, \
  466. { CTRY_URUGUAY, "uy", DMN_APL2_WORLD }, \
  467. { CTRY_UZBEKISTAN, "uz", DMN_FCC3_FCCA }, \
  468. { CTRY_VENEZUELA, "ve", DMN_APL2_ETSIC }, \
  469. { CTRY_VIET_NAM, "vn", DMN_NULL_WORLD }, \
  470. { CTRY_YEMEN, "ye", DMN_NULL_WORLD }, \
  471. { CTRY_SOUTH_AFRICA, "za", DMN_ETSI1_WORLD }, \
  472. { CTRY_ZIMBABWE, "zw", DMN_NULL_WORLD }, \
  473. }
  474. enum ieee80211_ctl {
  475. CTL_11A = 0x00,
  476. CTL_11B = 0x01,
  477. CTL_11G = 0x02,
  478. CTL_TURBO = 0x03,
  479. CTL_TURBO_G = 0x04,
  480. CTL_FCC = 0x10,
  481. CTL_ETSI = 0x30,
  482. CTL_MKK = 0x40,
  483. CTL_NONE = 0xff
  484. };
  485. #define IEEE80211_CHANNELS_2GHZ_MIN 2412 /* 2GHz channel 1 */
  486. #define IEEE80211_CHANNELS_2GHZ_MAX 2732 /* 2GHz channel 26 */
  487. struct ieee80211_regchannel {
  488. u_int16_t rc_channel;
  489. u_int32_t rc_domain;
  490. u_int32_t rc_mode;
  491. };
  492. #define IEEE80211_CHANNELS_2GHZ { \
  493. { 2412, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  494. { 2417, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  495. { 2422, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  496. { 2427, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  497. { 2432, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  498. { 2437, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  499. { 2442, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  500. { 2447, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  501. { 2452, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  502. { 2457, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  503. { 2462, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  504. { 2467, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  505. { 2472, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  506. \
  507. { 2432, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  508. { 2437, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
  509. IEEE80211_CHAN_TURBO }, \
  510. { 2442, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  511. \
  512. { 2412, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  513. { 2417, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  514. { 2422, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  515. { 2427, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  516. { 2432, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  517. { 2437, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
  518. IEEE80211_CHAN_TURBO }, \
  519. { 2442, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  520. { 2447, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  521. { 2452, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  522. { 2457, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  523. { 2462, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  524. { 2467, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  525. { 2472, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  526. \
  527. { 2412, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  528. { 2417, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  529. { 2422, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  530. { 2427, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  531. { 2432, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  532. { 2437, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
  533. IEEE80211_CHAN_TURBO }, \
  534. { 2442, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  535. { 2447, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  536. { 2452, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  537. { 2457, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  538. { 2462, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  539. \
  540. { 2412, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  541. { 2417, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  542. { 2422, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  543. { 2427, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  544. { 2432, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  545. { 2437, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  546. { 2442, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  547. { 2447, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  548. { 2452, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  549. { 2457, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  550. { 2462, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  551. { 2467, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  552. { 2472, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  553. { 2484, DMN_MKKA, IEEE80211_CHAN_CCK }, \
  554. \
  555. { 2412, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  556. { 2417, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  557. { 2422, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  558. { 2427, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  559. { 2432, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  560. { 2437, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
  561. IEEE80211_CHAN_TURBO }, \
  562. { 2442, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  563. { 2447, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  564. { 2452, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  565. { 2457, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  566. { 2462, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  567. { 2467, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  568. { 2472, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
  569. }
  570. #define IEEE80211_CHANNELS_5GHZ_MIN 5005 /* 5GHz channel 1 */
  571. #define IEEE80211_CHANNELS_5GHZ_MAX 6100 /* 5GHz channel 220 */
  572. #define IEEE80211_CHANNELS_5GHZ { \
  573. { 5745, DMN_APL1, IEEE80211_CHAN_OFDM }, \
  574. { 5765, DMN_APL1, IEEE80211_CHAN_OFDM }, \
  575. { 5785, DMN_APL1, IEEE80211_CHAN_OFDM }, \
  576. { 5805, DMN_APL1, IEEE80211_CHAN_OFDM }, \
  577. { 5825, DMN_APL1, IEEE80211_CHAN_OFDM }, \
  578. \
  579. { 5745, DMN_APL2, IEEE80211_CHAN_OFDM }, \
  580. { 5765, DMN_APL2, IEEE80211_CHAN_OFDM }, \
  581. { 5785, DMN_APL2, IEEE80211_CHAN_OFDM }, \
  582. { 5805, DMN_APL2, IEEE80211_CHAN_OFDM }, \
  583. \
  584. { 5280, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  585. { 5300, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  586. { 5320, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  587. { 5745, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  588. { 5765, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  589. { 5785, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  590. { 5805, DMN_APL3, IEEE80211_CHAN_OFDM }, \
  591. \
  592. { 5180, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  593. { 5200, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  594. { 5220, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  595. { 5240, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  596. { 5745, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  597. { 5765, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  598. { 5785, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  599. { 5805, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  600. { 5825, DMN_APL4, IEEE80211_CHAN_OFDM }, \
  601. \
  602. { 5745, DMN_APL5, IEEE80211_CHAN_OFDM }, \
  603. { 5765, DMN_APL5, IEEE80211_CHAN_OFDM }, \
  604. { 5785, DMN_APL5, IEEE80211_CHAN_OFDM }, \
  605. { 5805, DMN_APL5, IEEE80211_CHAN_OFDM }, \
  606. { 5825, DMN_APL5, IEEE80211_CHAN_OFDM }, \
  607. \
  608. { 5180, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  609. { 5200, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  610. { 5220, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  611. { 5240, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  612. { 5260, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  613. { 5280, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  614. { 5300, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  615. { 5320, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  616. { 5500, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  617. { 5520, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  618. { 5540, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  619. { 5560, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  620. { 5580, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  621. { 5600, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  622. { 5620, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  623. { 5640, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  624. { 5660, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  625. { 5680, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  626. { 5700, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
  627. \
  628. { 5180, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
  629. { 5200, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
  630. { 5220, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
  631. { 5240, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
  632. \
  633. { 5180, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  634. { 5200, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  635. { 5220, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  636. { 5240, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  637. { 5260, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  638. { 5280, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  639. { 5300, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  640. { 5320, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
  641. \
  642. { 5180, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  643. { 5200, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  644. { 5220, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  645. { 5240, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  646. { 5260, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  647. { 5280, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  648. { 5300, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  649. { 5320, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
  650. \
  651. { 5180, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
  652. { 5200, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
  653. { 5220, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
  654. { 5240, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
  655. \
  656. { 5180, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  657. { 5200, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  658. { 5220, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  659. { 5240, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  660. { 5260, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  661. { 5280, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  662. { 5500, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  663. { 5520, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  664. { 5540, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  665. { 5560, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  666. { 5580, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  667. { 5600, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  668. { 5620, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  669. { 5640, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  670. { 5660, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  671. { 5680, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  672. { 5700, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
  673. \
  674. { 5180, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  675. { 5200, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  676. { 5210, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  677. { 5220, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  678. { 5240, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  679. { 5250, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  680. { 5260, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  681. { 5280, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  682. { 5290, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  683. { 5300, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  684. { 5320, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  685. { 5745, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  686. { 5760, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  687. { 5765, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  688. { 5785, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  689. { 5800, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  690. { 5805, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  691. { 5825, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
  692. \
  693. { 5180, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  694. { 5200, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  695. { 5220, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  696. { 5240, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  697. { 5260, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  698. { 5280, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  699. { 5300, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  700. { 5320, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  701. { 5745, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  702. { 5765, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  703. { 5785, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  704. { 5805, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  705. { 5825, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
  706. \
  707. { 5180, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  708. { 5200, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  709. { 5210, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  710. { 5220, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  711. { 5240, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  712. { 5250, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  713. { 5260, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  714. { 5280, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  715. { 5290, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  716. { 5300, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  717. { 5320, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  718. { 5500, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  719. { 5520, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  720. { 5540, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  721. { 5560, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  722. { 5580, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  723. { 5600, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  724. { 5620, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  725. { 5640, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  726. { 5660, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  727. { 5680, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  728. { 5700, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  729. { 5745, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  730. { 5760, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  731. { 5765, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  732. { 5785, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  733. { 5800, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
  734. { 5805, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  735. { 5825, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
  736. \
  737. { 5170, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
  738. { 5190, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
  739. { 5210, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
  740. { 5230, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
  741. \
  742. { 5040, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  743. { 5060, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  744. { 5080, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  745. { 5170, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  746. { 5190, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  747. { 5210, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  748. { 5230, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
  749. \
  750. { 5180, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
  751. { 5200, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
  752. { 5220, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
  753. { 5240, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
  754. }
  755. __BEGIN_DECLS
  756. extern u_int16_t ieee80211_name2countrycode(const char *);
  757. extern u_int32_t ieee80211_name2regdomain(const char *);
  758. extern const char *ieee80211_countrycode2name(u_int16_t);
  759. extern const char *ieee80211_regdomain2name(u_int32_t);
  760. extern u_int32_t ieee80211_regdomain2flag(u_int16_t, u_int16_t);
  761. extern u_int32_t ieee80211_countrycode2regdomain(u_int16_t);
  762. __END_DECLS
  763. #endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */