1 /* 2 * Copyright (c) 2017-2018 The Linux Foundation. All rights reserved. 3 * 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 /** 21 * DOC: reg_db.c 22 * This file provides regulatory data base 23 */ 24 25 #include <qdf_types.h> 26 #include <qdf_trace.h> 27 #include "reg_db.h" 28 29 enum country_code { 30 CTRY_AFGHANISTAN = 4, 31 CTRY_ALBANIA = 8, 32 CTRY_ALGERIA = 12, 33 CTRY_AMERICAN_SAMOA = 16, 34 CTRY_ANGUILLA = 660, 35 CTRY_ARGENTINA = 32, 36 CTRY_ARMENIA = 51, 37 CTRY_ARUBA = 533, 38 CTRY_AUSTRALIA = 36, 39 CTRY_AUSTRIA = 40, 40 CTRY_AZERBAIJAN = 31, 41 CTRY_BAHAMAS = 44, 42 CTRY_BAHRAIN = 48, 43 CTRY_BANGLADESH = 50, 44 CTRY_BARBADOS = 52, 45 CTRY_BELARUS = 112, 46 CTRY_BELGIUM = 56, 47 CTRY_BELIZE = 84, 48 CTRY_BERMUDA = 60, 49 CTRY_BHUTAN = 64, 50 CTRY_BOLIVIA = 68, 51 CTRY_BOSNIA_HERZ = 70, 52 CTRY_BRAZIL = 76, 53 CTRY_BRUNEI_DARUSSALAM = 96, 54 CTRY_BULGARIA = 100, 55 CTRY_BURKINA_FASO = 854, 56 CTRY_CAMBODIA = 116, 57 CTRY_CANADA = 124, 58 CTRY_CAYMAN_ISLANDS = 136, 59 CTRY_CENTRAL_AFRICA_REPUBLIC = 140, 60 CTRY_CHAD = 148, 61 CTRY_CHILE = 152, 62 CTRY_CHINA = 156, 63 CTRY_CHRISTMAS_ISLAND = 162, 64 CTRY_COLOMBIA = 170, 65 CTRY_COSTA_RICA = 188, 66 CTRY_COTE_DIVOIRE = 384, 67 CTRY_CROATIA = 191, 68 CTRY_CYPRUS = 196, 69 CTRY_CZECH = 203, 70 CTRY_DENMARK = 208, 71 CTRY_DOMINICA = 212, 72 CTRY_DOMINICAN_REPUBLIC = 214, 73 CTRY_ECUADOR = 218, 74 CTRY_EGYPT = 818, 75 CTRY_EL_SALVADOR = 222, 76 CTRY_ESTONIA = 233, 77 CTRY_ETHIOPIA = 231, 78 CTRY_FINLAND = 246, 79 CTRY_FRANCE = 250, 80 CTRY_FRENCH_GUIANA = 254, 81 CTRY_FRENCH_POLYNESIA = 258, 82 CTRY_GEORGIA = 268, 83 CTRY_GERMANY = 276, 84 CTRY_GHANA = 288, 85 CTRY_GIBRALTAR = 292, 86 CTRY_GREECE = 300, 87 CTRY_GREENLAND = 304, 88 CTRY_GRENADA = 308, 89 CTRY_GUADELOUPE = 312, 90 CTRY_GUAM = 316, 91 CTRY_GUATEMALA = 320, 92 CTRY_GUYANA = 328, 93 CTRY_HAITI = 332, 94 CTRY_HONDURAS = 340, 95 CTRY_HONG_KONG = 344, 96 CTRY_HUNGARY = 348, 97 CTRY_ICELAND = 352, 98 CTRY_INDIA = 356, 99 CTRY_INDONESIA = 360, 100 CTRY_IRAQ = 368, 101 CTRY_IRELAND = 372, 102 CTRY_ISRAEL = 376, 103 CTRY_ITALY = 380, 104 CTRY_JAMAICA = 388, 105 CTRY_JORDAN = 400, 106 CTRY_KAZAKHSTAN = 398, 107 CTRY_KENYA = 404, 108 CTRY_KOREA_ROC = 410, 109 CTRY_KUWAIT = 414, 110 CTRY_LATVIA = 428, 111 CTRY_LEBANON = 422, 112 CTRY_LESOTHO = 426, 113 CTRY_LIECHTENSTEIN = 438, 114 CTRY_LITHUANIA = 440, 115 CTRY_LUXEMBOURG = 442, 116 CTRY_MACAU = 446, 117 CTRY_MACEDONIA = 807, 118 CTRY_MALAWI = 454, 119 CTRY_MALAYSIA = 458, 120 CTRY_MALDIVES = 462, 121 CTRY_MALTA = 470, 122 CTRY_MARSHALL_ISLANDS = 584, 123 CTRY_MARTINIQUE = 474, 124 CTRY_MAURITANIA = 478, 125 CTRY_MAURITIUS = 480, 126 CTRY_MAYOTTE = 175, 127 CTRY_MEXICO = 484, 128 CTRY_MICRONESIA = 583, 129 CTRY_MOLDOVA = 498, 130 CTRY_MONACO = 492, 131 CTRY_MONGOLIA = 496, 132 CTRY_MONTENEGRO = 499, 133 CTRY_MOROCCO = 504, 134 CTRY_NAMIBIA = 516, 135 CTRY_NEPAL = 524, 136 CTRY_NETHERLANDS = 528, 137 CTRY_NETHERLANDS_ANTILLES = 530, 138 CTRY_NEW_ZEALAND = 554, 139 CTRY_NIGERIA = 566, 140 CTRY_NORTHERN_MARIANA_ISLANDS = 580, 141 CTRY_NICARAGUA = 558, 142 CTRY_NORWAY = 578, 143 CTRY_OMAN = 512, 144 CTRY_PAKISTAN = 586, 145 CTRY_PALAU = 585, 146 CTRY_PANAMA = 591, 147 CTRY_PAPUA_NEW_GUINEA = 598, 148 CTRY_PARAGUAY = 600, 149 CTRY_PERU = 604, 150 CTRY_PHILIPPINES = 608, 151 CTRY_POLAND = 616, 152 CTRY_PORTUGAL = 620, 153 CTRY_PUERTO_RICO = 630, 154 CTRY_QATAR = 634, 155 CTRY_REUNION = 638, 156 CTRY_ROMANIA = 642, 157 CTRY_RUSSIA = 643, 158 CTRY_RWANDA = 646, 159 CTRY_SAINT_BARTHELEMY = 652, 160 CTRY_SAINT_KITTS_AND_NEVIS = 659, 161 CTRY_SAINT_LUCIA = 662, 162 CTRY_SAINT_MARTIN = 663, 163 CTRY_SAINT_PIERRE_AND_MIQUELON = 666, 164 CTRY_SAINT_VINCENT_AND_THE_GRENADIENS = 670, 165 CTRY_SAMOA = 882, 166 CTRY_SAUDI_ARABIA = 682, 167 CTRY_SENEGAL = 686, 168 CTRY_SERBIA = 688, 169 CTRY_SINGAPORE = 702, 170 CTRY_SLOVAKIA = 703, 171 CTRY_SLOVENIA = 705, 172 CTRY_SOUTH_AFRICA = 710, 173 CTRY_SPAIN = 724, 174 CTRY_SURINAME = 740, 175 CTRY_SRI_LANKA = 144, 176 CTRY_SWEDEN = 752, 177 CTRY_SWITZERLAND = 756, 178 CTRY_TAIWAN = 158, 179 CTRY_TANZANIA = 834, 180 CTRY_THAILAND = 764, 181 CTRY_TOGO = 768, 182 CTRY_TRINIDAD_Y_TOBAGO = 780, 183 CTRY_TUNISIA = 788, 184 CTRY_TURKEY = 792, 185 CTRY_TURKS_AND_CAICOS = 796, 186 CTRY_UGANDA = 800, 187 CTRY_UKRAINE = 804, 188 CTRY_UAE = 784, 189 CTRY_UNITED_KINGDOM = 826, 190 CTRY_UNITED_STATES = 840, 191 CTRY_URUGUAY = 858, 192 CTRY_UZBEKISTAN = 860, 193 CTRY_VANUATU = 548, 194 CTRY_VENEZUELA = 862, 195 CTRY_VIET_NAM = 704, 196 CTRY_VIRGIN_ISLANDS = 850, 197 CTRY_WALLIS_AND_FUTUNA = 876, 198 CTRY_YEMEN = 887, 199 CTRY_ZIMBABWE = 716, 200 CTRY_JAPAN = 392, 201 CTRY_JAPAN15 = 4015, 202 CTRY_XA = 4100, 203 }; 204 205 enum reg_domain { 206 NULL1_WORLD = 0x03, 207 208 FCC1_FCCA = 0x10, 209 FCC1_WORLD = 0x11, 210 FCC2_FCCA = 0x20, 211 FCC2_WORLD = 0x21, 212 FCC2_ETSIC = 0x22, 213 FCC3_FCCA = 0x3A, 214 FCC3_WORLD = 0x3B, 215 FCC3_ETSIC = 0x3F, 216 FCC4_FCCA = 0x12, 217 FCC5_FCCA = 0x13, 218 FCC6_WORLD = 0x23, 219 FCC6_FCCA = 0x14, 220 FCC8_FCCA = 0x16, 221 FCC9_FCCA = 0x17, 222 FCC10_FCCA = 0x18, 223 FCC11_WORLD = 0x19, 224 FCC13_WORLD = 0xE4, 225 FCC14_FCCB = 0xE6, 226 227 ETSI1_WORLD = 0x37, 228 ETSI3_WORLD = 0x36, 229 ETSI4_WORLD = 0x30, 230 ETSI8_WORLD = 0x3D, 231 ETSI9_WORLD = 0x3E, 232 ETSI10_WORLD = 0x24, 233 ETSI11_WORLD = 0x26, 234 ETSI12_WORLD = 0x28, 235 ETSI13_WORLD = 0x27, 236 ETSI14_WORLD = 0x29, 237 238 APL1_WORLD = 0x52, 239 APL1_ETSIC = 0x55, 240 APL2_WORLD = 0x45, 241 APL2_ETSIC = 0x56, 242 APL4_WORLD = 0x42, 243 APL6_WORLD = 0x5B, 244 APL8_WORLD = 0x5D, 245 APL9_WORLD = 0x5E, 246 APL10_WORLD = 0x5F, 247 APL11_FCCA = 0x4F, 248 APL12_WORLD = 0x51, 249 APL13_WORLD = 0x5A, 250 APL14_WORLD = 0x57, 251 APL15_WORLD = 0x59, 252 APL16_WORLD = 0x70, 253 APL17_ETSID = 0xE0, 254 APL19_ETSIC = 0x71, 255 APL20_WORLD = 0xE5, 256 APL23_WORLD = 0xE3, 257 258 MKK3_MKKC = 0x82, 259 MKK5_MKKA = 0x99, 260 MKK5_MKKC = 0x88, 261 MKK11_MKKC = 0xD7, 262 MKK16_MKKC = 0xDF, 263 264 WORLD_60 = 0x60, 265 WORLD_61 = 0x61, 266 WORLD_62 = 0x62, 267 WORLD_63 = 0x63, 268 WORLD_65 = 0x65, 269 WORLD_64 = 0x64, 270 WORLD_66 = 0x66, 271 WORLD_69 = 0x69, 272 WORLD_67 = 0x67, 273 WORLD_68 = 0x68, 274 WORLD_6A = 0x6A, 275 WORLD_6C = 0x6C, 276 }; 277 278 #ifndef CONFIG_MCL_REGDB 279 const struct country_code_to_reg_domain g_all_countries[] = { 280 {CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0}, 281 {CTRY_ALBANIA, ETSI1_WORLD, "AL", 40, 160, 0}, 282 {CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0}, 283 {CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0}, 284 {CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0}, 285 {CTRY_ARGENTINA, APL16_WORLD, "AR", 40, 160, 0}, 286 {CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0}, 287 {CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0}, 288 {CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0}, 289 {CTRY_AUSTRIA, ETSI1_WORLD, "AT", 40, 160, 0}, 290 {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0}, 291 {CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0}, 292 {CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0}, 293 {CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0}, 294 {CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0}, 295 {CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0}, 296 {CTRY_BELGIUM, ETSI1_WORLD, "BE", 40, 160, 0}, 297 {CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0}, 298 {CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0}, 299 {CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0}, 300 {CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0}, 301 {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", 40, 160, 0}, 302 {CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0}, 303 {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0}, 304 {CTRY_BULGARIA, ETSI1_WORLD, "BG", 40, 160, 0}, 305 {CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0}, 306 {CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0}, 307 {CTRY_CANADA, FCC6_FCCA, "CA", 40, 160, 0}, 308 {CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0}, 309 {CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0}, 310 {CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0}, 311 {CTRY_CHILE, APL23_WORLD, "CL", 40, 160, 0}, 312 {CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0}, 313 {CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0}, 314 {CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0}, 315 {CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 20, 0}, 316 {CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0}, 317 {CTRY_CROATIA, ETSI1_WORLD, "HR", 40, 160, 0}, 318 {CTRY_CYPRUS, ETSI1_WORLD, "CY", 40, 160, 0}, 319 {CTRY_CZECH, ETSI1_WORLD, "CZ", 40, 160, 0}, 320 {CTRY_DENMARK, ETSI1_WORLD, "DK", 40, 160, 0}, 321 {CTRY_DOMINICA, FCC1_FCCA, "DM", 40, 160, 0}, 322 {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", 40, 160, 0}, 323 {CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0}, 324 {CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0}, 325 {CTRY_EL_SALVADOR, FCC1_WORLD, "SV", 40, 20, 0}, 326 {CTRY_ESTONIA, ETSI1_WORLD, "EE", 40, 160, 0}, 327 {CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0}, 328 {CTRY_FINLAND, ETSI1_WORLD, "FI", 40, 160, 0}, 329 {CTRY_FRANCE, ETSI1_WORLD, "FR", 40, 160, 0}, 330 {CTRY_FRENCH_GUIANA, ETSI1_WORLD, "GF", 40, 160, 0}, 331 {CTRY_FRENCH_POLYNESIA, ETSI1_WORLD, "PF", 40, 160, 0}, 332 {CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0}, 333 {CTRY_GERMANY, ETSI1_WORLD, "DE", 40, 160, 0}, 334 {CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0}, 335 {CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0}, 336 {CTRY_GREECE, ETSI1_WORLD, "GR", 40, 160, 0}, 337 {CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0}, 338 {CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0}, 339 {CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0}, 340 {CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0}, 341 {CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0}, 342 {CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0}, 343 {CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0}, 344 {CTRY_HONDURAS, FCC3_WORLD, "HN", 40, 160, 0}, 345 {CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0}, 346 {CTRY_HUNGARY, ETSI1_WORLD, "HU", 40, 160, 0}, 347 {CTRY_ICELAND, ETSI1_WORLD, "IS", 40, 160, 0}, 348 {CTRY_INDIA, APL15_WORLD, "IN", 40, 160, 0}, 349 {CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0}, 350 {CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0}, 351 {CTRY_IRELAND, ETSI1_WORLD, "IE", 40, 160, 0}, 352 {CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0}, 353 {CTRY_ITALY, ETSI1_WORLD, "IT", 40, 160, 0}, 354 {CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0}, 355 {CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0}, 356 {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0}, 357 {CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0}, 358 {CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0}, 359 {CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0}, 360 {CTRY_LATVIA, ETSI1_WORLD, "LV", 40, 160, 0}, 361 {CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0}, 362 {CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0}, 363 {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", 40, 160, 0}, 364 {CTRY_LITHUANIA, ETSI1_WORLD, "LT", 40, 160, 0}, 365 {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", 40, 160, 0}, 366 {CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0}, 367 {CTRY_MACEDONIA, ETSI1_WORLD, "MK", 40, 160, 0}, 368 {CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0}, 369 {CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0}, 370 {CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0}, 371 {CTRY_MALTA, ETSI1_WORLD, "MT", 40, 160, 0}, 372 {CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0}, 373 {CTRY_MARTINIQUE, ETSI1_WORLD, "MQ", 40, 160, 0}, 374 {CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0}, 375 {CTRY_MAURITIUS, ETSI1_WORLD, "MU", 40, 160, 0}, 376 {CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0}, 377 {CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0}, 378 {CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0}, 379 {CTRY_MOLDOVA, ETSI1_WORLD, "MD", 40, 160, 0}, 380 {CTRY_MONACO, ETSI1_WORLD, "MC", 40, 160, 0}, 381 {CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0}, 382 {CTRY_MONTENEGRO, ETSI1_WORLD, "ME", 40, 160, 0}, 383 {CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0}, 384 {CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0}, 385 {CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0}, 386 {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", 40, 160, 0}, 387 {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", 40, 160, 0}, 388 {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0}, 389 {CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0}, 390 {CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0}, 391 {CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0}, 392 {CTRY_NORWAY, ETSI1_WORLD, "NO", 40, 160, 0}, 393 {CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0}, 394 {CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0}, 395 {CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0}, 396 {CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0}, 397 {CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0}, 398 {CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0}, 399 {CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0}, 400 {CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0}, 401 {CTRY_POLAND, ETSI1_WORLD, "PL", 40, 160, 0}, 402 {CTRY_PORTUGAL, ETSI1_WORLD, "PT", 40, 160, 0}, 403 {CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0}, 404 {CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0}, 405 {CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0}, 406 {CTRY_ROMANIA, ETSI1_WORLD, "RO", 40, 160, 0}, 407 {CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0}, 408 {CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0}, 409 {CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0}, 410 {CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0}, 411 {CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0}, 412 {CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0}, 413 {CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI1_WORLD, "PM", 40, 160, 0}, 414 {CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI1_WORLD, 415 "VC" , 40, 160, 0}, 416 {CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0}, 417 {CTRY_SAUDI_ARABIA, ETSI1_WORLD, "SA", 40, 160, 0}, 418 {CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0}, 419 {CTRY_SERBIA, ETSI1_WORLD, "RS", 40, 160, 0}, 420 {CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0}, 421 {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", 40, 160, 0}, 422 {CTRY_SLOVENIA, ETSI1_WORLD, "SI", 40, 160, 0}, 423 {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0}, 424 {CTRY_SPAIN, ETSI1_WORLD, "ES", 40, 160, 0}, 425 {CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0}, 426 {CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0}, 427 {CTRY_SWEDEN, ETSI1_WORLD, "SE", 40, 160, 0}, 428 {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", 40, 160, 0}, 429 {CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0}, 430 {CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0}, 431 {CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0}, 432 {CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0}, 433 {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0}, 434 {CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0}, 435 {CTRY_TURKEY, ETSI1_WORLD, "TR", 40, 160, 0}, 436 {CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0}, 437 {CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0}, 438 {CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0}, 439 {CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0}, 440 {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", 40, 160, 0}, 441 {CTRY_UNITED_STATES, FCC8_FCCA, "US", 40, 160, 0}, 442 {CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0}, 443 {CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0}, 444 {CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0}, 445 {CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0}, 446 {CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0}, 447 {CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0}, 448 {CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0}, 449 {CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0}, 450 {CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0}, 451 {CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0}, 452 {CTRY_JAPAN15, MKK5_MKKC, "JP", 40, 160, 0}, 453 }; 454 #else 455 #ifdef WLAN_FEATURE_DSRC 456 const struct country_code_to_reg_domain g_all_countries[] = { 457 {CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0}, 458 {CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0}, 459 {CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0}, 460 {CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0}, 461 {CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0}, 462 {CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0}, 463 {CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0}, 464 {CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0}, 465 {CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0}, 466 {CTRY_AUSTRIA, ETSI10_WORLD, "AT", 40, 160, 0}, 467 {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0}, 468 {CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0}, 469 {CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0}, 470 {CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0}, 471 {CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0}, 472 {CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0}, 473 {CTRY_BELGIUM, ETSI10_WORLD, "BE", 40, 160, 0}, 474 {CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0}, 475 {CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0}, 476 {CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0}, 477 {CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0}, 478 {CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0}, 479 {CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0}, 480 {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0}, 481 {CTRY_BULGARIA, ETSI10_WORLD, "BG", 40, 160, 0}, 482 {CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0}, 483 {CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0}, 484 {CTRY_CANADA, FCC3_FCCA, "CA", 40, 160, 0}, 485 {CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0}, 486 {CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0}, 487 {CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0}, 488 {CTRY_CHILE, APL23_WORLD, "CL", 40, 160, 0}, 489 {CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0}, 490 {CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0}, 491 {CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0}, 492 {CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 20, 0}, 493 {CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0}, 494 {CTRY_CROATIA, ETSI10_WORLD, "HR", 40, 160, 0}, 495 {CTRY_CYPRUS, ETSI10_WORLD, "CY", 40, 160, 0}, 496 {CTRY_CZECH, ETSI10_WORLD, "CZ", 40, 160, 0}, 497 {CTRY_DENMARK, ETSI10_WORLD, "DK", 40, 160, 0}, 498 {CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0}, 499 {CTRY_DOMINICAN_REPUBLIC, FCC2_FCCA, "DO", 40, 160, 0}, 500 {CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0}, 501 {CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0}, 502 {CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0}, 503 {CTRY_ESTONIA, ETSI10_WORLD, "EE", 40, 160, 0}, 504 {CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0}, 505 {CTRY_FINLAND, ETSI10_WORLD, "FI", 40, 160, 0}, 506 {CTRY_FRANCE, ETSI10_WORLD, "FR", 40, 160, 0}, 507 {CTRY_FRENCH_GUIANA, ETSI13_WORLD, "GF", 40, 160, 0}, 508 {CTRY_FRENCH_POLYNESIA, ETSI13_WORLD, "PF", 40, 160, 0}, 509 {CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0}, 510 {CTRY_GERMANY, ETSI10_WORLD, "DE", 40, 160, 0}, 511 {CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0}, 512 {CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0}, 513 {CTRY_GREECE, ETSI10_WORLD, "GR", 40, 160, 0}, 514 {CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0}, 515 {CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0}, 516 {CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0}, 517 {CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0}, 518 {CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0}, 519 {CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0}, 520 {CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0}, 521 {CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0}, 522 {CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0}, 523 {CTRY_HUNGARY, ETSI10_WORLD, "HU", 40, 160, 0}, 524 {CTRY_ICELAND, ETSI10_WORLD, "IS", 40, 160, 0}, 525 {CTRY_INDIA, APL15_WORLD, "IN", 40, 160, 0}, 526 {CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0}, 527 {CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0}, 528 {CTRY_IRELAND, ETSI10_WORLD, "IE", 40, 160, 0}, 529 {CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0}, 530 {CTRY_ITALY, ETSI10_WORLD, "IT", 40, 160, 0}, 531 {CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0}, 532 {CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0}, 533 {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0}, 534 {CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0}, 535 {CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0}, 536 {CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0}, 537 {CTRY_LATVIA, ETSI10_WORLD, "LV", 40, 160, 0}, 538 {CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0}, 539 {CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0}, 540 {CTRY_LIECHTENSTEIN, ETSI10_WORLD, "LI", 40, 160, 0}, 541 {CTRY_LITHUANIA, ETSI10_WORLD, "LT", 40, 160, 0}, 542 {CTRY_LUXEMBOURG, ETSI10_WORLD, "LU", 40, 160, 0}, 543 {CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0}, 544 {CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0}, 545 {CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0}, 546 {CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0}, 547 {CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0}, 548 {CTRY_MALTA, ETSI10_WORLD, "MT", 40, 160, 0}, 549 {CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0}, 550 {CTRY_MARTINIQUE, ETSI13_WORLD, "MQ", 40, 160, 0}, 551 {CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0}, 552 {CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0}, 553 {CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0}, 554 {CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0}, 555 {CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0}, 556 {CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0}, 557 {CTRY_MONACO, ETSI13_WORLD, "MC", 40, 160, 0}, 558 {CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0}, 559 {CTRY_MONTENEGRO, ETSI13_WORLD, "ME", 40, 160, 0}, 560 {CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0}, 561 {CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0}, 562 {CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0}, 563 {CTRY_NETHERLANDS, ETSI10_WORLD, "NL", 40, 160, 0}, 564 {CTRY_NETHERLANDS_ANTILLES, ETSI13_WORLD, "AN", 40, 160, 0}, 565 {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0}, 566 {CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0}, 567 {CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0}, 568 {CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0}, 569 {CTRY_NORWAY, ETSI10_WORLD, "NO", 40, 160, 0}, 570 {CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0}, 571 {CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0}, 572 {CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0}, 573 {CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0}, 574 {CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0}, 575 {CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0}, 576 {CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0}, 577 {CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0}, 578 {CTRY_POLAND, ETSI10_WORLD, "PL", 40, 160, 0}, 579 {CTRY_PORTUGAL, ETSI10_WORLD, "PT", 40, 160, 0}, 580 {CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0}, 581 {CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0}, 582 {CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0}, 583 {CTRY_ROMANIA, ETSI10_WORLD, "RO", 40, 160, 0}, 584 {CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0}, 585 {CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0}, 586 {CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0}, 587 {CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0}, 588 {CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0}, 589 {CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0}, 590 {CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0}, 591 {CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC", 592 40, 160, 0}, 593 {CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0}, 594 {CTRY_SAUDI_ARABIA, ETSI1_WORLD, "SA", 40, 160, 0}, 595 {CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0}, 596 {CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0}, 597 {CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0}, 598 {CTRY_SLOVAKIA, ETSI10_WORLD, "SK", 40, 160, 0}, 599 {CTRY_SLOVENIA, ETSI10_WORLD, "SI", 40, 160, 0}, 600 {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0}, 601 {CTRY_SPAIN, ETSI10_WORLD, "ES", 40, 160, 0}, 602 {CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0}, 603 {CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0}, 604 {CTRY_SWEDEN, ETSI10_WORLD, "SE", 40, 160, 0}, 605 {CTRY_SWITZERLAND, ETSI10_WORLD, "CH", 40, 160, 0}, 606 {CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0}, 607 {CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0}, 608 {CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0}, 609 {CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0}, 610 {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0}, 611 {CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0}, 612 {CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0}, 613 {CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0}, 614 {CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0}, 615 {CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0}, 616 {CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0}, 617 {CTRY_UNITED_KINGDOM, ETSI10_WORLD, "GB", 40, 160, 0}, 618 {CTRY_UNITED_STATES, FCC10_FCCA, "US", 40, 160, 0}, 619 {CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0}, 620 {CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0}, 621 {CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0}, 622 {CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0}, 623 {CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0}, 624 {CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0}, 625 {CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0}, 626 {CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0}, 627 {CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0}, 628 {CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0}, 629 {CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0}, 630 }; 631 #else 632 const struct country_code_to_reg_domain g_all_countries[] = { 633 {CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", 40, 160, 0}, 634 {CTRY_ALBANIA, ETSI13_WORLD, "AL", 40, 160, 0}, 635 {CTRY_ALGERIA, APL13_WORLD, "DZ", 40, 160, 0}, 636 {CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", 40, 160, 0}, 637 {CTRY_ANGUILLA, ETSI1_WORLD, "AI", 40, 160, 0}, 638 {CTRY_ARGENTINA, APL17_ETSID, "AR", 40, 160, 0}, 639 {CTRY_ARMENIA, ETSI4_WORLD, "AM", 40, 20, 0}, 640 {CTRY_ARUBA, ETSI1_WORLD, "AW", 40, 160, 0}, 641 {CTRY_AUSTRALIA, FCC6_WORLD, "AU", 40, 160, 0}, 642 {CTRY_AUSTRIA, ETSI13_WORLD, "AT", 40, 160, 0}, 643 {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", 40, 160, 0}, 644 {CTRY_BAHAMAS, FCC3_WORLD, "BS", 40, 160, 0}, 645 {CTRY_BAHRAIN, APL15_WORLD, "BH", 40, 20, 0}, 646 {CTRY_BANGLADESH, APL1_WORLD, "BD", 40, 160, 0}, 647 {CTRY_BARBADOS, FCC2_WORLD, "BB", 40, 160, 0}, 648 {CTRY_BELARUS, ETSI1_WORLD, "BY", 40, 160, 0}, 649 {CTRY_BELGIUM, ETSI13_WORLD, "BE", 40, 160, 0}, 650 {CTRY_BELIZE, ETSI8_WORLD, "BZ", 40, 160, 0}, 651 {CTRY_BERMUDA, FCC3_FCCA, "BM", 40, 160, 0}, 652 {CTRY_BHUTAN, ETSI1_WORLD, "BT", 40, 160, 0}, 653 {CTRY_BOLIVIA, APL8_WORLD, "BO", 40, 160, 0}, 654 {CTRY_BOSNIA_HERZ, ETSI13_WORLD, "BA", 40, 160, 0}, 655 {CTRY_BRAZIL, FCC3_ETSIC, "BR", 40, 160, 0}, 656 {CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", 40, 160, 0}, 657 {CTRY_BULGARIA, ETSI13_WORLD, "BG", 40, 160, 0}, 658 {CTRY_BURKINA_FASO, FCC3_WORLD, "BF", 40, 160, 0}, 659 {CTRY_CAMBODIA, ETSI1_WORLD, "KH", 40, 160, 0}, 660 {CTRY_CANADA, FCC3_FCCA, "CA", 40, 160, 0}, 661 {CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", 40, 160, 0}, 662 {CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", 40, 40, 0}, 663 {CTRY_CHAD, ETSI1_WORLD, "TD", 40, 160, 0}, 664 {CTRY_CHILE, APL23_WORLD, "CL", 40, 160, 0}, 665 {CTRY_CHINA, APL14_WORLD, "CN", 40, 160, 0}, 666 {CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", 40, 160, 0}, 667 {CTRY_COLOMBIA, FCC3_WORLD, "CO", 40, 160, 0}, 668 {CTRY_COSTA_RICA, FCC3_WORLD, "CR", 40, 20, 0}, 669 {CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", 40, 160, 0}, 670 {CTRY_CROATIA, ETSI13_WORLD, "HR", 40, 160, 0}, 671 {CTRY_CYPRUS, ETSI13_WORLD, "CY", 40, 160, 0}, 672 {CTRY_CZECH, ETSI13_WORLD, "CZ", 40, 160, 0}, 673 {CTRY_DENMARK, ETSI13_WORLD, "DK", 40, 160, 0}, 674 {CTRY_DOMINICA, FCC2_FCCA, "DM", 40, 160, 0}, 675 {CTRY_DOMINICAN_REPUBLIC, FCC2_FCCA, "DO", 40, 160, 0}, 676 {CTRY_ECUADOR, FCC3_WORLD, "EC", 40, 20, 0}, 677 {CTRY_EGYPT, ETSI3_WORLD, "EG", 40, 160, 0}, 678 {CTRY_EL_SALVADOR, FCC2_WORLD, "SV", 40, 20, 0}, 679 {CTRY_ESTONIA, ETSI13_WORLD, "EE", 40, 160, 0}, 680 {CTRY_ETHIOPIA, ETSI1_WORLD, "ET", 40, 160, 0}, 681 {CTRY_FINLAND, ETSI13_WORLD, "FI", 40, 160, 0}, 682 {CTRY_FRANCE, ETSI13_WORLD, "FR", 40, 160, 0}, 683 {CTRY_FRENCH_GUIANA, ETSI13_WORLD, "GF", 40, 160, 0}, 684 {CTRY_FRENCH_POLYNESIA, ETSI13_WORLD, "PF", 40, 160, 0}, 685 {CTRY_GEORGIA, ETSI4_WORLD, "GE", 40, 160, 0}, 686 {CTRY_GERMANY, ETSI13_WORLD, "DE", 40, 160, 0}, 687 {CTRY_GHANA, FCC3_WORLD, "GH", 40, 160, 0}, 688 {CTRY_GIBRALTAR, ETSI1_WORLD, "GI", 40, 160, 0}, 689 {CTRY_GREECE, ETSI13_WORLD, "GR", 40, 160, 0}, 690 {CTRY_GREENLAND, ETSI1_WORLD, "GL", 40, 160, 0}, 691 {CTRY_GRENADA, FCC3_FCCA, "GD", 40, 160, 0}, 692 {CTRY_GUADELOUPE, ETSI1_WORLD, "GP", 40, 160, 0}, 693 {CTRY_GUAM, FCC3_FCCA, "GU", 40, 160, 0}, 694 {CTRY_GUATEMALA, ETSI1_WORLD, "GT", 40, 160, 0}, 695 {CTRY_GUYANA, APL1_ETSIC, "GY", 40, 160, 0}, 696 {CTRY_HAITI, FCC3_FCCA, "HT", 40, 160, 0}, 697 {CTRY_HONDURAS, FCC13_WORLD, "HN", 40, 160, 0}, 698 {CTRY_HONG_KONG, FCC3_WORLD, "HK", 40, 160, 0}, 699 {CTRY_HUNGARY, ETSI13_WORLD, "HU", 40, 160, 0}, 700 {CTRY_ICELAND, ETSI13_WORLD, "IS", 40, 160, 0}, 701 {CTRY_INDIA, APL15_WORLD, "IN", 40, 160, 0}, 702 {CTRY_INDONESIA, APL2_ETSIC, "ID", 40, 20, 0}, 703 {CTRY_IRAQ, ETSI1_WORLD, "IQ", 40, 160, 0}, 704 {CTRY_IRELAND, ETSI13_WORLD, "IE", 40, 160, 0}, 705 {CTRY_ISRAEL, ETSI3_WORLD, "IL", 40, 160, 0}, 706 {CTRY_ITALY, ETSI13_WORLD, "IT", 40, 160, 0}, 707 {CTRY_JAMAICA, FCC13_WORLD, "JM", 40, 160, 0}, 708 {CTRY_JORDAN, APL4_WORLD, "JO", 40, 160, 0}, 709 {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", 40, 0, 0}, 710 {CTRY_KENYA, APL12_WORLD, "KE", 40, 160, 0}, 711 {CTRY_KOREA_ROC, APL9_WORLD, "KR", 40, 160, 0}, 712 {CTRY_KUWAIT, ETSI3_WORLD, "KW", 40, 160, 0}, 713 {CTRY_LATVIA, ETSI13_WORLD, "LV", 40, 160, 0}, 714 {CTRY_LEBANON, FCC3_WORLD, "LB", 40, 160, 0}, 715 {CTRY_LESOTHO, ETSI1_WORLD, "LS", 40, 160, 0}, 716 {CTRY_LIECHTENSTEIN, ETSI13_WORLD, "LI", 40, 160, 0}, 717 {CTRY_LITHUANIA, ETSI13_WORLD, "LT", 40, 160, 0}, 718 {CTRY_LUXEMBOURG, ETSI13_WORLD, "LU", 40, 160, 0}, 719 {CTRY_MACAU, FCC3_WORLD, "MO", 40, 160, 0}, 720 {CTRY_MACEDONIA, ETSI13_WORLD, "MK", 40, 160, 0}, 721 {CTRY_MALAWI, ETSI1_WORLD, "MW", 40, 160, 0}, 722 {CTRY_MALAYSIA, FCC11_WORLD, "MY", 40, 160, 0}, 723 {CTRY_MALDIVES, APL6_WORLD, "MV", 40, 160, 0}, 724 {CTRY_MALTA, ETSI13_WORLD, "MT", 40, 160, 0}, 725 {CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", 40, 160, 0}, 726 {CTRY_MARTINIQUE, ETSI13_WORLD, "MQ", 40, 160, 0}, 727 {CTRY_MAURITANIA, ETSI1_WORLD, "MR", 40, 160, 0}, 728 {CTRY_MAURITIUS, ETSI13_WORLD, "MU", 40, 160, 0}, 729 {CTRY_MAYOTTE, ETSI1_WORLD, "YT", 40, 160, 0}, 730 {CTRY_MEXICO, FCC3_ETSIC, "MX", 40, 160, 0}, 731 {CTRY_MICRONESIA, FCC3_FCCA, "FM", 40, 160, 0}, 732 {CTRY_MOLDOVA, ETSI13_WORLD, "MD", 40, 160, 0}, 733 {CTRY_MONACO, ETSI13_WORLD, "MC", 40, 160, 0}, 734 {CTRY_MONGOLIA, FCC3_WORLD, "MN", 40, 160, 0}, 735 {CTRY_MONTENEGRO, ETSI13_WORLD, "ME", 40, 160, 0}, 736 {CTRY_MOROCCO, ETSI3_WORLD, "MA", 40, 160, 0}, 737 {CTRY_NAMIBIA, APL20_WORLD, "NA", 40, 160, 0}, 738 {CTRY_NEPAL, APL23_WORLD, "NP", 40, 160, 0}, 739 {CTRY_NETHERLANDS, ETSI13_WORLD, "NL", 40, 160, 0}, 740 {CTRY_NETHERLANDS_ANTILLES, ETSI13_WORLD, "AN", 40, 160, 0}, 741 {CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", 40, 160, 0}, 742 {CTRY_NIGERIA, APL8_WORLD, "NG", 40, 160, 0}, 743 {CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", 40, 160, 0}, 744 {CTRY_NICARAGUA, FCC3_FCCA, "NI", 40, 160, 0}, 745 {CTRY_NORWAY, ETSI13_WORLD, "NO", 40, 160, 0}, 746 {CTRY_OMAN, ETSI1_WORLD, "OM", 40, 160, 0}, 747 {CTRY_PAKISTAN, APL1_ETSIC, "PK", 40, 160, 0}, 748 {CTRY_PALAU, FCC3_FCCA, "PW", 40, 160, 0}, 749 {CTRY_PANAMA, FCC14_FCCB, "PA", 40, 160, 0}, 750 {CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", 40, 160, 0}, 751 {CTRY_PARAGUAY, FCC3_WORLD, "PY", 40, 160, 0}, 752 {CTRY_PERU, FCC3_WORLD, "PE", 40, 160, 0}, 753 {CTRY_PHILIPPINES, FCC3_WORLD, "PH", 40, 160, 0}, 754 {CTRY_POLAND, ETSI13_WORLD, "PL", 40, 160, 0}, 755 {CTRY_PORTUGAL, ETSI13_WORLD, "PT", 40, 160, 0}, 756 {CTRY_PUERTO_RICO, FCC3_FCCA, "PR", 40, 160, 0}, 757 {CTRY_QATAR, ETSI14_WORLD, "QA", 40, 160, 0}, 758 {CTRY_REUNION, ETSI1_WORLD, "RE", 40, 160, 0}, 759 {CTRY_ROMANIA, ETSI13_WORLD, "RO", 40, 160, 0}, 760 {CTRY_RUSSIA, ETSI8_WORLD, "RU", 40, 160, 0}, 761 {CTRY_RWANDA, FCC3_WORLD, "RW", 40, 160, 0}, 762 {CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", 40, 160, 0}, 763 {CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", 40, 160, 0}, 764 {CTRY_SAINT_LUCIA, APL10_WORLD, "LC", 40, 160, 0}, 765 {CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", 40, 160, 0}, 766 {CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI13_WORLD, "PM", 40, 160, 0}, 767 {CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI13_WORLD, "VC", 768 40, 160, 0}, 769 {CTRY_SAMOA, ETSI1_WORLD, "WS", 40, 40, 0}, 770 {CTRY_SAUDI_ARABIA, ETSI1_WORLD, "SA", 40, 160, 0}, 771 {CTRY_SENEGAL, FCC13_WORLD, "SN", 40, 160, 0}, 772 {CTRY_SERBIA, ETSI13_WORLD, "RS", 40, 160, 0}, 773 {CTRY_SINGAPORE, FCC3_WORLD, "SG", 40, 160, 0}, 774 {CTRY_SLOVAKIA, ETSI13_WORLD, "SK", 40, 160, 0}, 775 {CTRY_SLOVENIA, ETSI13_WORLD, "SI", 40, 160, 0}, 776 {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", 40, 160, 0}, 777 {CTRY_SPAIN, ETSI13_WORLD, "ES", 40, 160, 0}, 778 {CTRY_SURINAME, ETSI1_WORLD, "SR", 40, 160, 0}, 779 {CTRY_SRI_LANKA, FCC3_WORLD, "LK", 40, 20, 0}, 780 {CTRY_SWEDEN, ETSI13_WORLD, "SE", 40, 160, 0}, 781 {CTRY_SWITZERLAND, ETSI13_WORLD, "CH", 40, 160, 0}, 782 {CTRY_TAIWAN, FCC3_FCCA, "TW", 40, 160, 0}, 783 {CTRY_TANZANIA, APL1_WORLD, "TZ", 40, 160, 0}, 784 {CTRY_THAILAND, FCC3_WORLD, "TH", 40, 160, 0}, 785 {CTRY_TOGO, ETSI1_WORLD, "TG", 40, 40, 0}, 786 {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", 40, 160, 0}, 787 {CTRY_TUNISIA, ETSI3_WORLD, "TN", 40, 160, 0}, 788 {CTRY_TURKEY, ETSI13_WORLD, "TR", 40, 160, 0}, 789 {CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", 40, 160, 0}, 790 {CTRY_UGANDA, FCC3_WORLD, "UG", 40, 160, 0}, 791 {CTRY_UKRAINE, ETSI9_WORLD, "UA", 40, 160, 0}, 792 {CTRY_UAE, FCC3_WORLD, "AE", 40, 160, 0}, 793 {CTRY_UNITED_KINGDOM, ETSI13_WORLD, "GB", 40, 160, 0}, 794 {CTRY_UNITED_STATES, FCC8_FCCA, "US", 40, 160, 0}, 795 {CTRY_URUGUAY, FCC2_WORLD, "UY", 40, 160, 0}, 796 {CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", 40, 160, 0}, 797 {CTRY_VANUATU, FCC3_WORLD, "VU", 40, 160, 0}, 798 {CTRY_VENEZUELA, FCC2_ETSIC, "VE", 40, 160, 0}, 799 {CTRY_VIET_NAM, FCC3_WORLD, "VN", 40, 80, 0}, 800 {CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", 40, 160, 0}, 801 {CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", 40, 160, 0}, 802 {CTRY_YEMEN, NULL1_WORLD, "YE", 40, 0, 0}, 803 {CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", 40, 160, 0}, 804 {CTRY_JAPAN, MKK5_MKKC, "JP", 40, 160, 0}, 805 {CTRY_XA, MKK5_MKKA, "XA", 40, 160, 0}, 806 }; 807 #endif 808 #endif 809 810 enum reg_domains_2g { 811 FCCA, 812 FCCB, 813 WORLD, 814 MKKA, 815 MKKC, 816 ETSIC, 817 ETSID, 818 WORLD_2G_1, 819 WORLD_2G_2, 820 WORLD_2G_3, 821 }; 822 823 enum reg_domains_5g { 824 NULL1, 825 FCC1, 826 FCC2, 827 FCC3, 828 FCC4, 829 FCC5, 830 FCC6, 831 FCC8, 832 FCC10, 833 FCC11, 834 FCC13, 835 FCC14, 836 ETSI1, 837 ETSI3, 838 ETSI4, 839 ETSI8, 840 ETSI9, 841 ETSI10, 842 ETSI11, 843 ETSI12, 844 ETSI13, 845 ETSI14, 846 APL1, 847 APL2, 848 APL4, 849 APL6, 850 APL8, 851 APL9, 852 APL10, 853 APL11, 854 APL12, 855 APL13, 856 APL14, 857 APL15, 858 APL16, 859 APL17, 860 APL19, 861 APL20, 862 APL23, 863 MKK3, 864 MKK4, 865 MKK5, 866 MKK9, 867 MKK10, 868 MKK11, 869 MKK16, 870 WORLD_5G_1, 871 WORLD_5G_2, 872 }; 873 874 875 const struct reg_domain_pair g_reg_dmn_pairs[] = { 876 {NULL1_WORLD, NULL1, WORLD}, 877 878 {FCC1_FCCA, FCC1, FCCA}, 879 {FCC1_WORLD, FCC1, WORLD}, 880 {FCC2_FCCA, FCC2, FCCA}, 881 {FCC2_WORLD, FCC2, WORLD}, 882 {FCC2_ETSIC, FCC2, ETSIC}, 883 {FCC3_FCCA, FCC3, FCCA}, 884 {FCC3_WORLD, FCC3, WORLD}, 885 {FCC3_ETSIC, FCC3, ETSIC}, 886 {FCC4_FCCA, FCC4, FCCA}, 887 {FCC5_FCCA, FCC5, FCCA}, 888 {FCC6_WORLD, FCC6, WORLD}, 889 {FCC6_FCCA, FCC6, FCCA}, 890 {FCC8_FCCA, FCC8, FCCA}, 891 {FCC11_WORLD, FCC11, WORLD}, 892 {FCC13_WORLD, FCC13, WORLD}, 893 {FCC14_FCCB, FCC14, FCCB}, 894 895 {ETSI1_WORLD, ETSI1, WORLD}, 896 {ETSI3_WORLD, ETSI3, WORLD}, 897 {ETSI4_WORLD, ETSI4, WORLD}, 898 {ETSI8_WORLD, ETSI8, WORLD}, 899 {ETSI9_WORLD, ETSI9, WORLD}, 900 {ETSI11_WORLD, ETSI11, WORLD}, 901 {ETSI12_WORLD, ETSI12, WORLD}, 902 {ETSI13_WORLD, ETSI13, WORLD}, 903 {ETSI14_WORLD, ETSI14, WORLD}, 904 905 {APL1_WORLD, APL1, WORLD}, 906 {APL1_ETSIC, APL1, ETSIC}, 907 {APL2_WORLD, APL2, WORLD}, 908 {APL2_ETSIC, APL2, ETSIC}, 909 {APL4_WORLD, APL4, WORLD}, 910 {APL6_WORLD, APL6, WORLD}, 911 {APL8_WORLD, APL8, WORLD}, 912 {APL9_WORLD, APL9, WORLD}, 913 {APL10_WORLD, APL10, WORLD}, 914 {APL11_FCCA, APL11, FCCA}, 915 {APL12_WORLD, APL12, WORLD}, 916 {APL13_WORLD, APL13, WORLD}, 917 {APL14_WORLD, APL14, WORLD}, 918 {APL15_WORLD, APL15, WORLD}, 919 {APL16_WORLD, APL16, WORLD}, 920 {APL17_ETSID, APL17, ETSID}, 921 {APL19_ETSIC, APL19, ETSIC}, 922 {APL20_WORLD, APL20, WORLD}, 923 {APL23_WORLD, APL23, WORLD}, 924 925 {MKK3_MKKC, MKK3, MKKC}, 926 {MKK5_MKKA, MKK5, MKKA}, 927 {MKK5_MKKC, MKK5, MKKC}, 928 {MKK11_MKKC, MKK11, MKKC}, 929 {MKK16_MKKC, MKK16, MKKC}, 930 931 {WORLD_60, WORLD_5G_2, WORLD_2G_3}, 932 {WORLD_61, WORLD_5G_2, WORLD_2G_3}, 933 {WORLD_62, WORLD_5G_2, WORLD_2G_3}, 934 {WORLD_63, WORLD_5G_1, WORLD_2G_2}, 935 {WORLD_65, WORLD_5G_1, WORLD_2G_2}, 936 {WORLD_64, WORLD_5G_1, WORLD_2G_1}, 937 {WORLD_66, WORLD_5G_2, WORLD_2G_1}, 938 {WORLD_69, WORLD_5G_2, WORLD_2G_1}, 939 {WORLD_67, WORLD_5G_2, WORLD_2G_2}, 940 {WORLD_68, WORLD_5G_2, WORLD_2G_2}, 941 {WORLD_6A, WORLD_5G_2, WORLD_2G_2}, 942 {WORLD_6C, WORLD_5G_2, WORLD_2G_2}, 943 }; 944 945 enum reg_rules_2g { 946 947 CHAN_1_11_1, 948 CHAN_1_11_2, 949 CHAN_1_11_3, 950 CHAN_1_13_1, 951 CHAN_1_13_2, 952 CHAN_1_13_3, 953 CHAN_1_13_4, 954 CHAN_12_12_1, 955 CHAN_12_13_1, 956 CHAN_14_1, 957 CHAN_14_2, 958 }; 959 960 const struct regulatory_rule reg_rules_2g[] = { 961 962 [CHAN_1_11_1] = {2402, 2472, 40, 30, 0}, 963 [CHAN_1_11_2] = {2402, 2472, 40, 20, 0}, 964 [CHAN_1_11_3] = {2402, 2472, 40, 36, 0}, 965 [CHAN_1_13_1] = {2402, 2482, 40, 20, 0}, 966 [CHAN_1_13_2] = {2402, 2482, 40, 30, 0}, 967 [CHAN_1_13_3] = {2402, 2482, 40, 36, 0}, 968 [CHAN_1_13_4] = {2402, 2482, 40, 23, 0}, 969 [CHAN_12_12_1] = {2457, 2477, 40, 20, REGULATORY_CHAN_NO_IR}, 970 [CHAN_12_13_1] = {2457, 2482, 40, 20, REGULATORY_CHAN_NO_IR}, 971 [CHAN_14_1] = {2474, 2494, 20, 23, REGULATORY_CHAN_NO_OFDM}, 972 [CHAN_14_2] = {2474, 2494, 20, 20, 973 REGULATORY_CHAN_NO_OFDM | REGULATORY_CHAN_NO_IR}, 974 }; 975 976 977 const struct regdomain regdomains_2g[] = { 978 979 [FCCA] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_1} }, 980 [FCCB] = {CTL_FCC, DFS_UNINIT_REGION, 0, 6, 1, {CHAN_1_11_3} }, 981 [WORLD] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_1} }, 982 [MKKA] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 2, {CHAN_1_13_4, 983 CHAN_14_1} }, 984 [MKKC] = {CTL_MKK, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_4} }, 985 [ETSIC] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_2} }, 986 [ETSID] = {CTL_ETSI, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_13_3} }, 987 [WORLD_2G_1] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 1, {CHAN_1_11_2} }, 988 [WORLD_2G_2] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2, 989 {CHAN_1_11_2, CHAN_12_13_1} }, 990 [WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REGION, 0, 0, 2, 991 {CHAN_1_11_2, CHAN_12_12_1} }, 992 }; 993 994 995 enum reg_rules_5g { 996 997 CHAN_4910_4990_1, 998 CHAN_4940_4990_1, 999 CHAN_5030_5090_1, 1000 CHAN_5170_5250_1, 1001 CHAN_5170_5250_2, 1002 CHAN_5170_5250_3, 1003 CHAN_5170_5250_4, 1004 CHAN_5170_5250_5, 1005 CHAN_5170_5250_6, 1006 CHAN_5170_5250_7, 1007 CHAN_5170_5250_8, 1008 CHAN_5170_5250_9, 1009 CHAN_5170_5330_1, 1010 CHAN_5170_5330_2, 1011 CHAN_5250_5330_1, 1012 CHAN_5250_5330_2, 1013 CHAN_5250_5330_3, 1014 CHAN_5250_5330_4, 1015 CHAN_5250_5330_5, 1016 CHAN_5250_5330_6, 1017 CHAN_5250_5330_7, 1018 CHAN_5250_5330_8, 1019 CHAN_5250_5330_9, 1020 CHAN_5250_5330_10, 1021 CHAN_5250_5330_11, 1022 CHAN_5250_5330_12, 1023 CHAN_5250_5330_13, 1024 CHAN_5490_5730_1, 1025 CHAN_5490_5730_2, 1026 CHAN_5490_5730_3, 1027 CHAN_5490_5730_4, 1028 CHAN_5490_5730_5, 1029 CHAN_5490_5730_6, 1030 CHAN_5490_5730_7, 1031 CHAN_5490_5710_1, 1032 CHAN_5490_5710_2, 1033 CHAN_5490_5710_3, 1034 CHAN_5490_5710_4, 1035 CHAN_5490_5710_5, 1036 CHAN_5490_5710_6, 1037 CHAN_5490_5710_7, 1038 CHAN_5490_5590_1, 1039 CHAN_5490_5590_2, 1040 CHAN_5490_5590_3, 1041 CHAN_5490_5570_1, 1042 CHAN_5490_5650_2, 1043 CHAN_5490_5670_1, 1044 CHAN_5490_5670_2, 1045 CHAN_5490_5630_1, 1046 CHAN_5650_5730_1, 1047 CHAN_5650_5730_2, 1048 CHAN_5650_5730_3, 1049 CHAN_5735_5835_1, 1050 CHAN_5735_5835_2, 1051 CHAN_5735_5835_3, 1052 CHAN_5735_5835_4, 1053 CHAN_5735_5835_5, 1054 CHAN_5735_5835_6, 1055 CHAN_5735_5835_7, 1056 CHAN_5735_5835_8, 1057 CHAN_5735_5875_1, 1058 CHAN_5735_5875_2, 1059 CHAN_5735_5875_3, 1060 CHAN_5735_5875_4, 1061 CHAN_5735_5875_5, 1062 CHAN_5735_5815_1, 1063 CHAN_5735_5775_1, 1064 CHAN_5835_5855_1, 1065 CHAN_5855_5875_1, 1066 CHAN_5850_5925_1, 1067 CHAN_5850_5925_2, 1068 }; 1069 1070 const struct regulatory_rule reg_rules_5g[] = { 1071 1072 [CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0}, 1073 [CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0}, 1074 [CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0}, 1075 [CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0}, 1076 [CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0}, 1077 [CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0}, 1078 [CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0}, 1079 [CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0}, 1080 [CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0}, 1081 [CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY}, 1082 [CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY}, 1083 [CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0}, 1084 [CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR}, 1085 [CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0}, 1086 [CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR}, 1087 [CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR}, 1088 [CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR}, 1089 [CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR}, 1090 [CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0}, 1091 [CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0}, 1092 [CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR}, 1093 [CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0}, 1094 [CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0}, 1095 [CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0}, 1096 [CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY}, 1097 [CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR | 1098 REGULATORY_CHAN_INDOOR_ONLY}, 1099 [CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR}, 1100 [CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR}, 1101 [CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR}, 1102 [CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0}, 1103 [CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0}, 1104 [CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR}, 1105 [CHAN_5490_5730_6] = {5490, 5730, 160, 23, REGULATORY_CHAN_RADAR}, 1106 [CHAN_5490_5730_7] = {5490, 5730, 160, 20, REGULATORY_CHAN_RADAR}, 1107 [CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR}, 1108 [CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR}, 1109 [CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR}, 1110 [CHAN_5490_5710_4] = {5490, 5710, 40, 30, REGULATORY_CHAN_RADAR}, 1111 [CHAN_5490_5710_5] = {5490, 5710, 160, 24, REGULATORY_CHAN_RADAR}, 1112 [CHAN_5490_5710_6] = {5490, 5710, 160, 26, REGULATORY_CHAN_RADAR}, 1113 [CHAN_5490_5710_7] = {5490, 5710, 160, 23, REGULATORY_CHAN_RADAR}, 1114 [CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR}, 1115 [CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0}, 1116 [CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0}, 1117 [CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR}, 1118 [CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR}, 1119 [CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR}, 1120 [CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR}, 1121 [CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR}, 1122 [CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR}, 1123 [CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0}, 1124 [CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0}, 1125 [CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0}, 1126 [CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0}, 1127 [CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0}, 1128 [CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0}, 1129 [CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR}, 1130 [CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0}, 1131 [CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0}, 1132 [CHAN_5735_5835_8] = {5735, 5835, 80, 23, REGULATORY_CHAN_RADAR}, 1133 [CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR}, 1134 [CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0}, 1135 [CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0}, 1136 [CHAN_5735_5875_4] = {5735, 5875, 80, 14, 0}, 1137 [CHAN_5735_5875_5] = {5735, 5875, 80, 20, REGULATORY_CHAN_RADAR}, 1138 [CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0}, 1139 [CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0}, 1140 [CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0}, 1141 [CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0}, 1142 [CHAN_5850_5925_1] = {5850, 5925, 20, 24, 0}, 1143 [CHAN_5850_5925_2] = {5850, 5925, 20, 30, 0}, 1144 }; 1145 1146 1147 const struct regdomain regdomains_5g[] = { 1148 1149 [FCC1] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_1, 1150 CHAN_5250_5330_1, 1151 CHAN_5735_5835_2} }, 1152 1153 [FCC2] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 3, {CHAN_5170_5250_2, 1154 CHAN_5250_5330_1, 1155 CHAN_5735_5835_2} }, 1156 1157 [FCC3] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5, 1158 CHAN_5250_5330_7, 1159 CHAN_5490_5730_1, 1160 CHAN_5735_5835_2} }, 1161 1162 [FCC4] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 1, {CHAN_4940_4990_1} }, 1163 1164 [FCC5] = {CTL_FCC, DFS_UNINIT_REGION, 2, 6, 2, {CHAN_5170_5250_4, 1165 CHAN_5735_5835_2} }, 1166 1167 [FCC6] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 5, {CHAN_5170_5250_5, 1168 CHAN_5250_5330_7, 1169 CHAN_5490_5590_1, 1170 CHAN_5650_5730_1, 1171 CHAN_5735_5835_2} }, 1172 1173 [FCC8] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_4, 1174 CHAN_5250_5330_7, 1175 CHAN_5490_5730_1, 1176 CHAN_5735_5835_2} }, 1177 1178 [FCC10] = {CTL_FCC, DFS_FCC_REGION, 2, 0, 5, {CHAN_5170_5250_4, 1179 CHAN_5250_5330_7, 1180 CHAN_5490_5730_1, 1181 CHAN_5735_5835_2, 1182 CHAN_5850_5925_1} }, 1183 1184 [FCC11] = {CTL_FCC, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_5, 1185 CHAN_5250_5330_7, 1186 CHAN_5490_5650_2, 1187 CHAN_5735_5835_6} }, 1188 1189 [FCC13] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5330_2, 1190 CHAN_5250_5330_10, 1191 CHAN_5490_5730_4, 1192 CHAN_5735_5835_2} }, 1193 1194 [FCC14] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 4, {CHAN_5170_5250_4, 1195 CHAN_5250_5330_10, 1196 CHAN_5490_5730_4, 1197 CHAN_5735_5835_2} }, 1198 1199 [ETSI1] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1200 CHAN_5250_5330_1, 1201 CHAN_5490_5710_1} }, 1202 1203 [ETSI3] = {CTL_ETSI, DFS_ETSI_REGION, 5, 0, 2, {CHAN_5170_5250_2, 1204 CHAN_5250_5330_1} }, 1205 1206 [ETSI4] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5170_5250_6, 1207 CHAN_5250_5330_3} }, 1208 1209 [ETSI8] = {CTL_ETSI, DFS_UNINIT_REGION, 20, 0, 4, {CHAN_5170_5250_2, 1210 CHAN_5250_5330_5, 1211 CHAN_5490_5730_3, 1212 CHAN_5735_5835_2} }, 1213 1214 [ETSI9] = {CTL_ETSI, DFS_ETSI_REGION, 20, 0, 4, {CHAN_5170_5250_2, 1215 CHAN_5250_5330_1, 1216 CHAN_5490_5710_5, 1217 CHAN_5735_5835_6} }, 1218 1219 [ETSI10] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_3, 1220 CHAN_5250_5330_2, 1221 CHAN_5490_5710_3, 1222 CHAN_5850_5925_2} }, 1223 1224 [ETSI11] = {CTL_ETSI, DFS_ETSI_REGION, 10, 0, 4, {CHAN_5170_5250_3, 1225 CHAN_5250_5330_2, 1226 CHAN_5490_5710_3, 1227 CHAN_5735_5875_1} }, 1228 1229 [ETSI12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_3, 1230 CHAN_5250_5330_2, 1231 CHAN_5490_5730_6, 1232 CHAN_5735_5835_8} }, 1233 1234 [ETSI13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2, 1235 CHAN_5250_5330_1, 1236 CHAN_5490_5730_5, 1237 CHAN_5735_5875_4} }, 1238 1239 [ETSI14] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_2, 1240 CHAN_5250_5330_1, 1241 CHAN_5490_5730_7, 1242 CHAN_5735_5875_5} }, 1243 1244 [APL1] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5835_2} }, 1245 1246 [APL2] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5735_5815_1} }, 1247 1248 [APL4] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 2, {CHAN_5170_5250_2, 1249 CHAN_5735_5835_1} }, 1250 1251 [APL6] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_3, 1252 CHAN_5250_5330_2, 1253 CHAN_5735_5835_3} }, 1254 1255 [APL8] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 2, {CHAN_5250_5330_4, 1256 CHAN_5735_5835_2} }, 1257 1258 [APL9] = {CTL_ETSI, DFS_KR_REGION, 2, 6, 4, {CHAN_5170_5250_3, 1259 CHAN_5250_5330_1, 1260 CHAN_5490_5710_1, 1261 CHAN_5735_5835_2} }, 1262 1263 [APL10] = {CTL_ETSI, DFS_FCC_REGION, 2, 6, 4, {CHAN_5170_5250_2, 1264 CHAN_5250_5330_4, 1265 CHAN_5490_5710_1, 1266 CHAN_5735_5815_1} }, 1267 1268 [APL11] = { CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_9, 1269 CHAN_5250_5330_13, 1270 CHAN_5490_5710_4, 1271 CHAN_5735_5875_2} }, 1272 1273 [APL12] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1274 CHAN_5490_5570_1, 1275 CHAN_5735_5775_1} }, 1276 1277 [APL13] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1278 CHAN_5250_5330_1, 1279 CHAN_5490_5670_2} }, 1280 1281 [APL14] = {CTL_FCC, DFS_CN_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1282 CHAN_5250_5330_1, 1283 CHAN_5735_5835_4} }, 1284 1285 [APL15] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1286 CHAN_5250_5330_5, 1287 CHAN_5735_5835_4} }, 1288 1289 [APL16] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_1, 1290 CHAN_5250_5330_6, 1291 CHAN_5490_5590_2, 1292 CHAN_5650_5730_2, 1293 CHAN_5735_5835_2} }, 1294 1295 [APL17] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 5, {CHAN_5170_5250_2, 1296 CHAN_5250_5330_8, 1297 CHAN_5490_5590_3, 1298 CHAN_5650_5730_3, 1299 CHAN_5735_5835_7} }, 1300 1301 [APL19] = {CTL_FCC, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1302 CHAN_5250_5330_5, 1303 CHAN_5735_5875_3} }, 1304 1305 [APL20] = {CTL_ETSI, DFS_ETSI_REGION, 2, 0, 4, {CHAN_5170_5250_8, 1306 CHAN_5250_5330_12, 1307 CHAN_5490_5730_5, 1308 CHAN_5735_5835_4} }, 1309 1310 [APL23] = {CTL_ETSI, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5250_7, 1311 CHAN_5250_5330_11, 1312 CHAN_5735_5835_3} }, 1313 1314 [MKK3] = {CTL_MKK, DFS_UNINIT_REGION, 2, 0, 1, {CHAN_5170_5250_3} }, 1315 1316 [MKK5] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 3, {CHAN_5170_5250_2, 1317 CHAN_5250_5330_1, 1318 CHAN_5490_5710_7} }, 1319 1320 [MKK11] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 5, {CHAN_4910_4990_1, 1321 CHAN_5170_5250_2, 1322 CHAN_5030_5090_1, 1323 CHAN_5250_5330_1, 1324 CHAN_5490_5710_7} }, 1325 1326 [MKK16] = {CTL_MKK, DFS_MKK_REGION, 2, 0, 1, {CHAN_5490_5710_6} }, 1327 1328 [WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 2, {CHAN_5170_5330_1, 1329 CHAN_5735_5835_5} }, 1330 1331 [WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REGION, 2, 0, 3, {CHAN_5170_5330_1, 1332 CHAN_5490_5730_2, 1333 CHAN_5735_5835_5} }, 1334 }; 1335 1336 QDF_STATUS reg_get_num_countries(int *num_countries) 1337 { 1338 *num_countries = QDF_ARRAY_SIZE(g_all_countries); 1339 1340 return QDF_STATUS_SUCCESS; 1341 } 1342 1343 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn) 1344 { 1345 *num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs); 1346 1347 return QDF_STATUS_SUCCESS; 1348 } 1349 1350 QDF_STATUS reg_get_default_country(uint16_t *default_country) 1351 { 1352 *default_country = CTRY_UNITED_STATES; 1353 1354 return QDF_STATUS_SUCCESS; 1355 } 1356 1357 bool reg_etsi13_regdmn(uint8_t reg_dmn) 1358 { 1359 return reg_dmn == ETSI13; 1360 } 1361