xref: /wlan-dirver/qca-wifi-host-cmn/umac/regulatory/core/src/reg_db.c (revision 3149adf58a329e17232a4c0e58d460d025edd55a)
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_JAPAN15 = 4015,
201 	CTRY_JAPAN9 = 4009,
202 	CTRY_JAPAN48 = 4048,
203 	CTRY_JAPAN55 = 4055,
204 	CTRY_JAPAN60 = 4060,
205 	CTRY_XA = 4100,
206 };
207 
208 enum reg_domain {
209 	NULL1_WORLD = 0x03,
210 
211 	FCC1_FCCA = 0x10,
212 	FCC1_WORLD = 0x11,
213 	FCC2_WORLD = 0x21,
214 	FCC2_ETSIC = 0x22,
215 	FCC3_FCCA = 0x3A,
216 	FCC3_WORLD = 0x3B,
217 	FCC3_ETSIC = 0x3F,
218 	FCC4_FCCA = 0x12,
219 	FCC6_WORLD = 0x23,
220 	FCC6_FCCA = 0x14,
221 	FCC8_FCCA = 0x16,
222 	FCC11_WORLD = 0x19,
223 	FCC13_WORLD = 0xE4,
224 	FCC14_FCCB = 0xE6,
225 
226 	ETSI1_WORLD = 0x37,
227 	ETSI3_WORLD = 0x36,
228 	ETSI4_WORLD = 0x30,
229 	ETSI8_WORLD = 0x3D,
230 	ETSI9_WORLD = 0x3E,
231 	ETSI11_WORLD = 0x26,
232 
233 	APL1_WORLD = 0x52,
234 	APL1_ETSIC = 0x55,
235 	APL2_WORLD = 0x45,
236 	APL2_ETSIC = 0x56,
237 	APL4_WORLD = 0x42,
238 	APL6_WORLD = 0x5B,
239 	APL8_WORLD = 0x5D,
240 	APL9_WORLD = 0x5E,
241 	APL10_WORLD = 0x5F,
242 	APL11_FCCA = 0x4F,
243 	APL12_WORLD = 0x51,
244 	APL13_WORLD = 0x5A,
245 	APL14_WORLD = 0x57,
246 	APL15_WORLD = 0x59,
247 	APL16_WORLD = 0x70,
248 	APL17_ETSID = 0xE0,
249 	APL19_ETSIC = 0x71,
250 	APL20_WORLD = 0xE5,
251 	APL23_WORLD = 0xE3,
252 
253 	MKK3_MKKC = 0x82,
254 	MKK5_MKKA = 0x99,
255 	MKK5_MKKC = 0x88,
256 	MKK11_MKKC = 0xD7,
257 	MKK16_MKKC = 0xDF,
258 
259 	WORLD_60 = 0x60,
260 	WORLD_61 = 0x61,
261 	WORLD_62 = 0x62,
262 	WORLD_63 = 0x63,
263 	WORLD_65 = 0x65,
264 	WORLD_64 = 0x64,
265 	WORLD_66 = 0x66,
266 	WORLD_69 = 0x69,
267 	WORLD_67 = 0x67,
268 	WORLD_68 = 0x68,
269 	WORLD_6A = 0x6A,
270 	WORLD_6C = 0x6C,
271 };
272 
273 #ifndef CONFIG_MCL_REGDB
274 const struct country_code_to_reg_domain g_all_countries[] = {
275 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", "AF" , 40, 160, 0},
276 	{CTRY_ALBANIA, ETSI1_WORLD, "AL", "AL", 40, 160, 0},
277 	{CTRY_ALGERIA, APL13_WORLD, "DZ", "DZ", 40, 160, 0},
278 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", "AS", 40, 160, 0},
279 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", "AI", 40, 160, 0},
280 	{CTRY_ARGENTINA, APL16_WORLD, "AR", "AR", 40, 160, 0},
281 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", "AM", 40, 20, 0},
282 	{CTRY_ARUBA, ETSI1_WORLD, "AW", "AW", 40, 160, 0},
283 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", "AU", 40, 160, 0},
284 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AT", 40, 160, 0},
285 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZ", 40, 160, 0},
286 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", "BS", 40, 160, 0},
287 	{CTRY_BAHRAIN, APL15_WORLD, "BH", "BH", 40, 20, 0},
288 	{CTRY_BANGLADESH, APL1_WORLD, "BD", "BD", 40, 160, 0},
289 	{CTRY_BARBADOS, FCC2_WORLD, "BB", "BB", 40, 160, 0},
290 	{CTRY_BELARUS, ETSI1_WORLD, "BY", "BY", 40, 160, 0},
291 	{CTRY_BELGIUM, ETSI1_WORLD, "BE", "BE", 40, 160, 0},
292 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", "BZ", 40, 160, 0},
293 	{CTRY_BERMUDA, FCC3_FCCA, "BM", "BM", 40, 160, 0},
294 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", "BT", 40, 160, 0},
295 	{CTRY_BOLIVIA, APL8_WORLD, "BO", "BO", 40, 160, 0},
296 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", "BA", 40, 160, 0},
297 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", "BR", 40, 160, 0},
298 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", "BN", 40, 160, 0},
299 	{CTRY_BULGARIA, ETSI1_WORLD, "BG", "BG", 40, 160, 0},
300 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", "BF", 40, 160, 0},
301 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", "KH", 40, 160, 0},
302 	{CTRY_CANADA, FCC6_FCCA, "CA", "CA", 40, 160, 0},
303 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", "KY", 40, 160, 0},
304 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", "CF", 40, 40, 0},
305 	{CTRY_CHAD, ETSI1_WORLD, "TD", "TD", 40, 160, 0},
306 	{CTRY_CHILE, APL23_WORLD, "CL", "CL", 40, 160, 0},
307 	{CTRY_CHINA, APL14_WORLD, "CN", "CN", 40, 160, 0},
308 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", "CX", 40, 160, 0},
309 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", "CO", 40, 160, 0},
310 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", "CR", 40, 20, 0},
311 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", "CI", 40, 160, 0},
312 	{CTRY_CROATIA, ETSI1_WORLD, "HR", "HR", 40, 160, 0},
313 	{CTRY_CYPRUS, ETSI1_WORLD, "CY", "CY", 40, 160, 0},
314 	{CTRY_CZECH, ETSI1_WORLD, "CZ", "CZ", 40, 160, 0},
315 	{CTRY_DENMARK, ETSI1_WORLD, "DK", "DK" , 40, 160,  0},
316 	{CTRY_DOMINICA, FCC1_FCCA, "DM", "DM", 40, 160, 0},
317 	{CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO", "DO", 40, 160, 0},
318 	{CTRY_ECUADOR, FCC3_WORLD, "EC", "EC", 40, 20, 0},
319 	{CTRY_EGYPT, ETSI3_WORLD, "EG", "EG", 40, 40, 0},
320 	{CTRY_EL_SALVADOR, FCC1_WORLD, "SV", "SV", 40, 20, 0},
321 	{CTRY_ESTONIA, ETSI1_WORLD, "EE", "EE", 40, 160, 0},
322 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", "ET", 40, 160, 0},
323 	{CTRY_FINLAND, ETSI1_WORLD, "FI", "FI" , 40, 160, 0},
324 	{CTRY_FRANCE, ETSI1_WORLD, "FR", "FR", 40, 160, 0},
325 	{CTRY_FRENCH_GUIANA, ETSI1_WORLD, "GF", "GF", 40, 160, 0},
326 	{CTRY_FRENCH_POLYNESIA, ETSI1_WORLD, "PF", "PF", 40, 160, 0},
327 	{CTRY_GEORGIA, ETSI4_WORLD, "GE", "GE", 40, 160, 0},
328 	{CTRY_GERMANY, ETSI1_WORLD, "DE", "DE", 40, 160, 0},
329 	{CTRY_GHANA, FCC3_WORLD, "GH", "GH", 40, 160, 0},
330 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", "GI", 40, 160, 0},
331 	{CTRY_GREECE, ETSI1_WORLD, "GR", "GR", 40, 160, 0},
332 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", "GL", 40, 160, 0},
333 	{CTRY_GRENADA, FCC3_FCCA, "GD", "GD", 40, 160, 0},
334 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", "GP", 40, 160, 0},
335 	{CTRY_GUAM, FCC3_FCCA, "GU", "GU", 40, 160, 0},
336 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", "GT", 40, 160, 0},
337 	{CTRY_GUYANA, APL1_ETSIC, "GY", "GY", 40, 160, 0},
338 	{CTRY_HAITI, FCC3_FCCA, "HT", "HT", 40, 160, 0},
339 	{CTRY_HONDURAS, FCC3_WORLD, "HN", "HN", 40, 160, 0},
340 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", "HK", 40, 160, 0},
341 	{CTRY_HUNGARY, ETSI1_WORLD, "HU", "HU" , 40, 160, 0},
342 	{CTRY_ICELAND, ETSI1_WORLD, "IS", "IS" , 40, 160, 0},
343 	{CTRY_INDIA, APL15_WORLD, "IN", "IN", 40, 160, 0},
344 	{CTRY_INDONESIA, APL2_ETSIC, "ID", "ID", 40, 20, 0},
345 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", "IQ", 40, 160, 0},
346 	{CTRY_IRELAND, ETSI1_WORLD, "IE", "IE", 40, 160, 0},
347 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", "IL", 40, 160, 0},
348 	{CTRY_ITALY, ETSI1_WORLD, "IT", "IT", 40, 160,  0},
349 	{CTRY_JAMAICA, FCC13_WORLD, "JM", "JM", 40, 160, 0},
350 	{CTRY_JORDAN, APL4_WORLD, "JO", "JO", 40, 160, 0},
351 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KZ", 40, 0, 0},
352 	{CTRY_KENYA, APL12_WORLD, "KE", "KE", 40, 160, 0},
353 	{CTRY_KOREA_ROC, APL9_WORLD, "KR", "KR", 40, 160, 0},
354 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", "KW", 40, 160, 0},
355 	{CTRY_LATVIA, ETSI1_WORLD, "LV", "LV", 40, 160, 0},
356 	{CTRY_LEBANON, FCC3_WORLD, "LB", "LB", 40, 160, 0},
357 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", "LS", 40, 160, 0},
358 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", "LI", 40, 160, 0},
359 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LT", 40, 160, 0},
360 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LU", 40, 160, 0},
361 	{CTRY_MACAU, FCC3_WORLD, "MO", "MO", 40, 160, 0},
362 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK", "MK", 40, 160, 0},
363 	{CTRY_MALAWI, ETSI1_WORLD, "MW", "MW", 40, 160, 0},
364 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", "MY", 40, 160, 0},
365 	{CTRY_MALDIVES, APL6_WORLD, "MV", "MV", 40, 160, 0},
366 	{CTRY_MALTA, ETSI1_WORLD, "MT", "MT", 40, 160, 0},
367 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", "MH", 40, 160, 0},
368 	{CTRY_MARTINIQUE, ETSI1_WORLD, "MQ", "MQ", 40, 160, 0},
369 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", "MR", 40, 160, 0},
370 	{CTRY_MAURITIUS, FCC3_WORLD, "MU", "MU", 40, 160, 0},
371 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", "YT", 40, 160, 0},
372 	{CTRY_MEXICO, FCC3_ETSIC, "MX", "MX", 40, 160, 0},
373 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", "FM", 40, 160, 0},
374 	{CTRY_MOLDOVA, ETSI1_WORLD, "MD", "MD", 40, 160, 0},
375 	{CTRY_MONACO, ETSI1_WORLD, "MC", "MC", 40, 160, 0},
376 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", "MN", 40, 160, 0},
377 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME", "ME", 40, 160, 0},
378 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", "MA", 40, 160, 0},
379 	{CTRY_NAMIBIA, APL20_WORLD, "NA", "NA", 40, 160, 0},
380 	{CTRY_NEPAL, APL23_WORLD, "NP", "NP", 40, 160, 0},
381 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NP", 40, 160, 0},
382 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", "AN", 40, 160, 0},
383 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", "NZ", 40, 160, 0},
384 	{CTRY_NIGERIA, APL8_WORLD, "NG", "NG", 40, 160, 0},
385 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", "MP", 40, 160, 0},
386 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", "NI", 40, 160, 0},
387 	{CTRY_NORWAY, ETSI1_WORLD, "NO", "NO", 40, 160, 0},
388 	{CTRY_OMAN, ETSI1_WORLD, "OM", "OM", 40, 160, 0},
389 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", "PK", 40, 160, 0},
390 	{CTRY_PALAU, FCC3_FCCA, "PW", "PW", 40, 160, 0},
391 	{CTRY_PANAMA, FCC14_FCCB, "PA", "PA", 40, 160, 0},
392 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", "PG", 40, 160, 0},
393 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", "PY", 40, 160, 0},
394 	{CTRY_PERU, FCC3_WORLD, "PE", "PE", 40, 160, 0},
395 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", "PH", 40, 160, 0},
396 	{CTRY_POLAND, ETSI1_WORLD, "PL", "PL", 40, 160, 0},
397 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PT", 40, 160, 0},
398 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", "PR", 40, 160, 0},
399 	{CTRY_QATAR, APL1_WORLD, "QA", "QA" , 40, 160, 0},
400 	{CTRY_REUNION, ETSI1_WORLD, "RE", "RE", 40, 160, 0},
401 	{CTRY_ROMANIA, ETSI1_WORLD, "RO", "RO", 40, 160, 0},
402 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", "RU", 40, 160, 0},
403 	{CTRY_RWANDA, FCC3_WORLD, "RW", "RW", 40, 160, 0},
404 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", "BL", 40, 160, 0},
405 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", "KN", 40, 160, 0},
406 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", "LC", 40, 160, 0},
407 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", "MF", 40, 160, 0},
408 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI1_WORLD, "PM", "PM", 40, 160, 0},
409 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI1_WORLD, "VC",
410 	 "VC" , 40, 160, 0},
411 	{CTRY_SAMOA, ETSI1_WORLD, "WS", "WS", 40, 40, 0},
412 	{CTRY_SAUDI_ARABIA, ETSI1_WORLD, "SA", "SA", 40, 160, 0},
413 	{CTRY_SENEGAL, FCC13_WORLD, "SN", "SN", 40, 160, 0},
414 	{CTRY_SERBIA, ETSI1_WORLD, "RS", "RS", 40, 160, 0},
415 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", "SG", 40, 160, 0},
416 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SK", 40, 160, 0},
417 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SI", 40, 160, 0},
418 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", "ZA", 40, 160, 0},
419 	{CTRY_SPAIN, ETSI1_WORLD, "ES", "ES", 40, 160, 0},
420 	{CTRY_SURINAME, ETSI1_WORLD, "SR", "SR", 40, 160, 0},
421 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", "LK", 40, 20, 0},
422 	{CTRY_SWEDEN, ETSI1_WORLD, "SE", "SE", 40, 160, 0},
423 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "CH", 40, 160, 0},
424 	{CTRY_TAIWAN, FCC3_FCCA, "TW", "TW", 40, 160, 0},
425 	{CTRY_TANZANIA, APL1_WORLD, "TZ", "TZ", 40, 160, 0},
426 	{CTRY_THAILAND, FCC3_WORLD, "TH", "TH", 40, 160, 0},
427 	{CTRY_TOGO, ETSI1_WORLD, "TG", "TG", 40, 40, 0},
428 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", "TT", 40, 160, 0},
429 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", "TN", 40, 160, 0},
430 	{CTRY_TURKEY, ETSI1_WORLD, "TR", "TR", 40, 160, 0},
431 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", "TC", 40, 160, 0},
432 	{CTRY_UGANDA, FCC3_WORLD, "UG", "UG", 40, 160, 0},
433 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", "UA", 40, 160, 0},
434 	{CTRY_UAE, FCC3_WORLD, "AE", "AE", 40, 160, 0},
435 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", "GB", 40, 160, 0},
436 	{CTRY_UNITED_STATES, FCC8_FCCA, "US", "US", 40, 160, 0},
437 	{CTRY_URUGUAY, FCC2_WORLD, "UY", "UY", 40, 160, 0},
438 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", "UZ", 40, 160, 0},
439 	{CTRY_VANUATU, FCC3_WORLD, "VU", "VU", 40, 160, 0},
440 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", "VE", 40, 160, 0},
441 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", "VN", 40, 80, 0},
442 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", "VI", 40, 160, 0},
443 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", "WF", 40, 160, 0},
444 	{CTRY_YEMEN, NULL1_WORLD, "YE", "YE", 40, 0, 0},
445 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", "ZW", 40, 160, 0},
446 	{CTRY_JAPAN15, MKK5_MKKC, "J15", "JP", 40, 160, 0},
447 	{CTRY_JAPAN9, MKK3_MKKC, "J9", "JP", 40, 160, 0},
448 	{CTRY_JAPAN48, MKK11_MKKC, "J48", "JP", 40, 160, 0},
449 	{CTRY_JAPAN55, MKK5_MKKA, "J55", "JP", 40, 160, 0},
450 	{CTRY_JAPAN60, MKK16_MKKC, "J60", "JP", 40, 160, 0},
451 };
452 #else
453 const struct country_code_to_reg_domain g_all_countries[] = {
454 	{CTRY_AFGHANISTAN, ETSI1_WORLD, "AF", "AF", 40, 160, 0},
455 	{CTRY_ALBANIA, ETSI1_WORLD, "AL", "AL", 40, 160, 0},
456 	{CTRY_ALGERIA, APL13_WORLD, "DZ", "DZ", 40, 160, 0},
457 	{CTRY_AMERICAN_SAMOA, FCC3_FCCA, "AS", "AS", 40, 160, 0},
458 	{CTRY_ANGUILLA, ETSI1_WORLD, "AI", "AI", 40, 160, 0},
459 	{CTRY_ARGENTINA, APL17_ETSID, "AR1", "AR", 40, 160, 0},
460 	{CTRY_ARMENIA, ETSI4_WORLD, "AM", "AM", 40, 20, 0},
461 	{CTRY_ARUBA, ETSI1_WORLD, "AW", "AW", 40, 160, 0},
462 	{CTRY_AUSTRALIA, FCC6_WORLD, "AU", "AU", 40, 160, 0},
463 	{CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AT", 40, 160, 0},
464 	{CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZ", 40, 160, 0},
465 	{CTRY_BAHAMAS, FCC3_WORLD, "BS", "BS", 40, 160, 0},
466 	{CTRY_BAHRAIN, APL15_WORLD, "BH", "BH", 40, 20, 0},
467 	{CTRY_BANGLADESH, APL1_WORLD, "BD", "BD", 40, 160, 0},
468 	{CTRY_BARBADOS, FCC2_WORLD, "BB", "BB", 40, 160, 0},
469 	{CTRY_BELARUS, ETSI1_WORLD, "BY", "BY", 40, 160, 0},
470 	{CTRY_BELGIUM, ETSI1_WORLD, "BE", "BE", 40, 160, 0},
471 	{CTRY_BELIZE, ETSI8_WORLD, "BZ", "BZ", 40, 160, 0},
472 	{CTRY_BERMUDA, FCC3_FCCA, "BM", "BM", 40, 160, 0},
473 	{CTRY_BHUTAN, ETSI1_WORLD, "BT", "BT", 40, 160, 0},
474 	{CTRY_BOLIVIA, APL8_WORLD, "BO", "BO", 40, 160, 0},
475 	{CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA", "BA", 40, 160, 0},
476 	{CTRY_BRAZIL, FCC3_ETSIC, "BR", "BR", 40, 160, 0},
477 	{CTRY_BRUNEI_DARUSSALAM, APL6_WORLD, "BN", "BN", 40, 160, 0},
478 	{CTRY_BULGARIA, ETSI1_WORLD, "BG", "BG", 40, 160, 0},
479 	{CTRY_BURKINA_FASO, FCC3_WORLD, "BF", "BF", 40, 160, 0},
480 	{CTRY_CAMBODIA, ETSI1_WORLD, "KH", "KH", 40, 160, 0},
481 	{CTRY_CANADA, FCC3_FCCA, "CA", "CA", 40, 160, 0},
482 	{CTRY_CAYMAN_ISLANDS, FCC3_WORLD, "KY", "KY", 40, 160, 0},
483 	{CTRY_CENTRAL_AFRICA_REPUBLIC, FCC3_WORLD, "CF", "CF", 40, 40, 0},
484 	{CTRY_CHAD, ETSI1_WORLD, "TD", "TD", 40, 160, 0},
485 	{CTRY_CHILE, APL23_WORLD, "CL", "CL", 40, 160, 0},
486 	{CTRY_CHINA, APL14_WORLD, "CN", "CN", 40, 160, 0},
487 	{CTRY_CHRISTMAS_ISLAND, FCC3_WORLD, "CX", "CX", 40, 160, 0},
488 	{CTRY_COLOMBIA, FCC3_WORLD, "CO", "CO", 40, 160, 0},
489 	{CTRY_COSTA_RICA, FCC3_WORLD, "CR", "CR", 40, 20, 0},
490 	{CTRY_COTE_DIVOIRE, FCC3_WORLD, "CI", "CI", 40, 160, 0},
491 	{CTRY_CROATIA, ETSI1_WORLD, "HR", "HR", 40, 160, 0},
492 	{CTRY_CYPRUS, ETSI1_WORLD, "CY", "CY", 40, 160, 0},
493 	{CTRY_CZECH, ETSI1_WORLD, "CZ", "CZ", 40, 160, 0},
494 	{CTRY_DENMARK, ETSI1_WORLD, "DK", "DK", 40, 160,  0},
495 	{CTRY_DOMINICA, FCC2_FCCA, "DM", "DM", 40, 160, 0},
496 	{CTRY_DOMINICAN_REPUBLIC, FCC2_FCCA, "DO", "DO", 40, 160, 0},
497 	{CTRY_ECUADOR, FCC3_WORLD, "EC", "EC", 40, 20, 0},
498 	{CTRY_EGYPT, ETSI3_WORLD, "EG", "EG", 40, 40, 0},
499 	{CTRY_EL_SALVADOR, FCC2_WORLD, "SV", "SV", 40, 20, 0},
500 	{CTRY_ESTONIA, ETSI1_WORLD, "EE", "EE", 40, 160, 0},
501 	{CTRY_ETHIOPIA, ETSI1_WORLD, "ET", "ET", 40, 160, 0},
502 	{CTRY_FINLAND, ETSI1_WORLD, "FI", "FI", 40, 160, 0},
503 	{CTRY_FRANCE, ETSI1_WORLD, "FR", "FR", 40, 160, 0},
504 	{CTRY_FRENCH_GUIANA, ETSI1_WORLD, "GF", "GF", 40, 160, 0},
505 	{CTRY_FRENCH_POLYNESIA, ETSI1_WORLD, "PF", "PF", 40, 160, 0},
506 	{CTRY_GEORGIA, ETSI4_WORLD, "GE", "GE", 40, 160, 0},
507 	{CTRY_GERMANY, ETSI1_WORLD, "DE", "DE", 40, 160, 0},
508 	{CTRY_GHANA, FCC3_WORLD, "GH", "GH", 40, 160, 0},
509 	{CTRY_GIBRALTAR, ETSI1_WORLD, "GI", "GI", 40, 160, 0},
510 	{CTRY_GREECE, ETSI1_WORLD, "GR", "GR", 40, 160, 0},
511 	{CTRY_GREENLAND, ETSI1_WORLD, "GL", "GL", 40, 160, 0},
512 	{CTRY_GRENADA, FCC3_FCCA, "GD", "GD", 40, 160, 0},
513 	{CTRY_GUADELOUPE, ETSI1_WORLD, "GP", "GP", 40, 160, 0},
514 	{CTRY_GUAM, FCC3_FCCA, "GU", "GU", 40, 160, 0},
515 	{CTRY_GUATEMALA, ETSI1_WORLD, "GT", "GT", 40, 160, 0},
516 	{CTRY_GUYANA, APL1_ETSIC, "GY", "GY", 40, 160, 0},
517 	{CTRY_HAITI, FCC3_FCCA, "HT", "HT", 40, 160, 0},
518 	{CTRY_HONDURAS, FCC13_WORLD, "HN", "HN", 40, 160, 0},
519 	{CTRY_HONG_KONG, FCC3_WORLD, "HK", "HK", 40, 160, 0},
520 	{CTRY_HUNGARY, ETSI1_WORLD, "HU", "HU", 40, 160, 0},
521 	{CTRY_ICELAND, ETSI1_WORLD, "IS", "IS", 40, 160, 0},
522 	{CTRY_INDIA, APL15_WORLD, "IN", "IN", 40, 160, 0},
523 	{CTRY_INDONESIA, APL2_ETSIC, "ID", "ID", 40, 20, 0},
524 	{CTRY_IRAQ, ETSI1_WORLD, "IQ", "IQ", 40, 160, 0},
525 	{CTRY_IRELAND, ETSI1_WORLD, "IE", "IE", 40, 160, 0},
526 	{CTRY_ISRAEL, ETSI3_WORLD, "IL", "IL", 40, 160, 0},
527 	{CTRY_ITALY, ETSI1_WORLD, "IT", "IT", 40, 160,  0},
528 	{CTRY_JAMAICA, FCC13_WORLD, "JM", "JM", 40, 160, 0},
529 	{CTRY_JORDAN, APL4_WORLD, "JO", "JO", 40, 160, 0},
530 	{CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KZ", 40, 0, 0},
531 	{CTRY_KENYA, APL12_WORLD, "KE", "KE", 40, 160, 0},
532 	{CTRY_KOREA_ROC, APL9_WORLD, "KR", "KR", 40, 160, 0},
533 	{CTRY_KUWAIT, ETSI3_WORLD, "KW", "KW", 40, 160, 0},
534 	{CTRY_LATVIA, ETSI1_WORLD, "LV", "LV", 40, 160, 0},
535 	{CTRY_LEBANON, FCC3_WORLD, "LB", "LB", 40, 160, 0},
536 	{CTRY_LESOTHO, ETSI1_WORLD, "LS", "LS", 40, 160, 0},
537 	{CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI", "LI", 40, 160, 0},
538 	{CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LT", 40, 160, 0},
539 	{CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LU", 40, 160, 0},
540 	{CTRY_MACAU, FCC3_WORLD, "MO", "MO", 40, 160, 0},
541 	{CTRY_MACEDONIA, ETSI1_WORLD, "MK", "MK", 40, 160, 0},
542 	{CTRY_MALAWI, ETSI1_WORLD, "MW", "MW", 40, 160, 0},
543 	{CTRY_MALAYSIA, FCC11_WORLD, "MY", "MY", 40, 160, 0},
544 	{CTRY_MALDIVES, APL6_WORLD, "MV", "MV", 40, 160, 0},
545 	{CTRY_MALTA, ETSI1_WORLD, "MT", "MT", 40, 160, 0},
546 	{CTRY_MARSHALL_ISLANDS, FCC3_FCCA, "MH", "MH", 40, 160, 0},
547 	{CTRY_MARTINIQUE, ETSI1_WORLD, "MQ", "MQ", 40, 160, 0},
548 	{CTRY_MAURITANIA, ETSI1_WORLD, "MR", "MR", 40, 160, 0},
549 	{CTRY_MAURITIUS, FCC3_WORLD, "MU", "MU", 40, 160, 0},
550 	{CTRY_MAYOTTE, ETSI1_WORLD, "YT", "YT", 40, 160, 0},
551 	{CTRY_MEXICO, FCC3_ETSIC, "MX", "MX", 40, 160, 0},
552 	{CTRY_MICRONESIA, FCC3_FCCA, "FM", "FM", 40, 160, 0},
553 	{CTRY_MOLDOVA, ETSI1_WORLD, "MD", "MD", 40, 160, 0},
554 	{CTRY_MONACO, ETSI1_WORLD, "MC", "MC", 40, 160, 0},
555 	{CTRY_MONGOLIA, FCC3_WORLD, "MN", "MN", 40, 160, 0},
556 	{CTRY_MONTENEGRO, ETSI1_WORLD, "ME", "ME", 40, 160, 0},
557 	{CTRY_MOROCCO, ETSI3_WORLD, "MA", "MA", 40, 160, 0},
558 	{CTRY_NAMIBIA, APL20_WORLD, "NA", "NA", 40, 160, 0},
559 	{CTRY_NEPAL, APL23_WORLD, "NP", "NP", 40, 160, 0},
560 	{CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NP", 40, 160, 0},
561 	{CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN", "AN", 40, 160, 0},
562 	{CTRY_NEW_ZEALAND, FCC3_ETSIC, "NZ", "NZ", 40, 160, 0},
563 	{CTRY_NIGERIA, APL8_WORLD, "NG", "NG", 40, 160, 0},
564 	{CTRY_NORTHERN_MARIANA_ISLANDS, FCC3_FCCA, "MP", "MP", 40, 160, 0},
565 	{CTRY_NICARAGUA, FCC3_FCCA, "NI", "NI", 40, 160, 0},
566 	{CTRY_NORWAY, ETSI1_WORLD, "NO", "NO", 40, 160, 0},
567 	{CTRY_OMAN, ETSI1_WORLD, "OM", "OM", 40, 160, 0},
568 	{CTRY_PAKISTAN, APL1_ETSIC, "PK", "PK", 40, 160, 0},
569 	{CTRY_PALAU, FCC3_FCCA, "PW", "PW", 40, 160, 0},
570 	{CTRY_PANAMA, FCC14_FCCB, "PA", "PA", 40, 160, 0},
571 	{CTRY_PAPUA_NEW_GUINEA, FCC3_WORLD, "PG", "PG", 40, 160, 0},
572 	{CTRY_PARAGUAY, FCC3_WORLD, "PY", "PY", 40, 160, 0},
573 	{CTRY_PERU, FCC3_WORLD, "PE", "PE", 40, 160, 0},
574 	{CTRY_PHILIPPINES, FCC3_WORLD, "PH", "PH", 40, 160, 0},
575 	{CTRY_POLAND, ETSI1_WORLD, "PL", "PL", 40, 160, 0},
576 	{CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PT", 40, 160, 0},
577 	{CTRY_PUERTO_RICO, FCC3_FCCA, "PR", "PR", 40, 160, 0},
578 	{CTRY_QATAR, APL1_WORLD, "QA", "QA", 40, 160, 0},
579 	{CTRY_REUNION, ETSI1_WORLD, "RE", "RE", 40, 160, 0},
580 	{CTRY_ROMANIA, ETSI1_WORLD, "RO", "RO", 40, 160, 0},
581 	{CTRY_RUSSIA, ETSI8_WORLD, "RU", "RU", 40, 160, 0},
582 	{CTRY_RWANDA, FCC3_WORLD, "RW", "RW", 40, 160, 0},
583 	{CTRY_SAINT_BARTHELEMY, ETSI1_WORLD, "BL", "BL", 40, 160, 0},
584 	{CTRY_SAINT_KITTS_AND_NEVIS, APL10_WORLD, "KN", "KN", 40, 160, 0},
585 	{CTRY_SAINT_LUCIA, APL10_WORLD, "LC", "LC", 40, 160, 0},
586 	{CTRY_SAINT_MARTIN, ETSI1_WORLD, "MF", "MF", 40, 160, 0},
587 	{CTRY_SAINT_PIERRE_AND_MIQUELON, ETSI1_WORLD, "PM", "PM", 40, 160, 0},
588 	{CTRY_SAINT_VINCENT_AND_THE_GRENADIENS, ETSI1_WORLD, "VC",
589 	 "VC", 40, 160, 0},
590 	{CTRY_SAMOA, ETSI1_WORLD, "WS", "WS", 40, 40, 0},
591 	{CTRY_SAUDI_ARABIA, ETSI1_WORLD, "SA", "SA", 40, 160, 0},
592 	{CTRY_SENEGAL, FCC13_WORLD, "SN", "SN", 40, 160, 0},
593 	{CTRY_SERBIA, ETSI1_WORLD, "RS", "RS", 40, 160, 0},
594 	{CTRY_SINGAPORE, FCC3_WORLD, "SG", "SG", 40, 160, 0},
595 	{CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SK", 40, 160, 0},
596 	{CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SI", 40, 160, 0},
597 	{CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA", "ZA", 40, 160, 0},
598 	{CTRY_SPAIN, ETSI1_WORLD, "ES", "ES", 40, 160, 0},
599 	{CTRY_SURINAME, ETSI1_WORLD, "SR", "SR", 40, 160, 0},
600 	{CTRY_SRI_LANKA, FCC3_WORLD, "LK", "LK", 40, 20, 0},
601 	{CTRY_SWEDEN, ETSI1_WORLD, "SE", "SE", 40, 160, 0},
602 	{CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "CH", 40, 160, 0},
603 	{CTRY_TAIWAN, FCC3_FCCA, "TW", "TW", 40, 160, 0},
604 	{CTRY_TANZANIA, APL1_WORLD, "TZ", "TZ", 40, 160, 0},
605 	{CTRY_THAILAND, FCC3_WORLD, "TH", "TH", 40, 160, 0},
606 	{CTRY_TOGO, ETSI1_WORLD, "TG", "TG", 40, 40, 0},
607 	{CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT", "TT", 40, 160, 0},
608 	{CTRY_TUNISIA, ETSI3_WORLD, "TN", "TN", 40, 160, 0},
609 	{CTRY_TURKEY, ETSI1_WORLD, "TR", "TR", 40, 160, 0},
610 	{CTRY_TURKS_AND_CAICOS, FCC3_WORLD, "TC", "TC", 40, 160, 0},
611 	{CTRY_UGANDA, FCC3_WORLD, "UG", "UG", 40, 160, 0},
612 	{CTRY_UKRAINE, ETSI9_WORLD, "UA", "UA", 40, 160, 0},
613 	{CTRY_UAE, FCC3_WORLD, "AE", "AE", 40, 160, 0},
614 	{CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB", "GB", 40, 160, 0},
615 	{CTRY_UNITED_STATES, FCC8_FCCA, "US", "US", 40, 160, 0},
616 	{CTRY_URUGUAY, FCC2_WORLD, "UY", "UY", 40, 160, 0},
617 	{CTRY_UZBEKISTAN, ETSI3_WORLD, "UZ", "UZ", 40, 160, 0},
618 	{CTRY_VANUATU, FCC3_WORLD, "VU", "VU", 40, 160, 0},
619 	{CTRY_VENEZUELA, FCC2_ETSIC, "VE", "VE", 40, 160, 0},
620 	{CTRY_VIET_NAM, FCC3_WORLD, "VN", "VN", 40, 80, 0},
621 	{CTRY_VIRGIN_ISLANDS, FCC3_FCCA, "VI", "VI", 40, 160, 0},
622 	{CTRY_WALLIS_AND_FUTUNA, ETSI1_WORLD, "WF", "WF", 40, 160, 0},
623 	{CTRY_YEMEN, NULL1_WORLD, "YE", "YE", 40, 0, 0},
624 	{CTRY_ZIMBABWE, ETSI1_WORLD, "ZW", "ZW", 40, 160, 0},
625 	{CTRY_JAPAN15, MKK5_MKKC, "J15", "JP" , 40, 160, 0},
626 	{CTRY_JAPAN9, MKK3_MKKC, "J9", "JP", 40, 160, 0},
627 	{CTRY_JAPAN48, MKK11_MKKC, "J48", "JP", 40, 160, 0},
628 	{CTRY_JAPAN55, MKK5_MKKA, "J55", "JP", 40, 160, 0},
629 	{CTRY_JAPAN60, MKK16_MKKC, "J60", "JP", 40, 160, 0},
630 	{CTRY_XA, MKK5_MKKA, "XA", "XA", 40, 160, 0},
631 };
632 #endif
633 
634 enum reg_domains_2g {
635 	FCCA,
636 	FCCB,
637 	WORLD,
638 	MKKA,
639 	MKKC,
640 	ETSIC,
641 	ETSID,
642 	WORLD_2G_1,
643 	WORLD_2G_2,
644 	WORLD_2G_3,
645 };
646 
647 enum reg_domains_5g {
648 	NULL1,
649 	FCC1,
650 	FCC2,
651 	FCC3,
652 	FCC4,
653 	FCC6,
654 	FCC8,
655 	FCC11,
656 	FCC13,
657 	FCC14,
658 	ETSI1,
659 	ETSI3,
660 	ETSI4,
661 	ETSI8,
662 	ETSI9,
663 	ETSI11,
664 	APL1,
665 	APL2,
666 	APL4,
667 	APL6,
668 	APL8,
669 	APL9,
670 	APL10,
671 	APL11,
672 	APL12,
673 	APL13,
674 	APL14,
675 	APL15,
676 	APL16,
677 	APL17,
678 	APL19,
679 	APL20,
680 	APL23,
681 	MKK3,
682 	MKK4,
683 	MKK5,
684 	MKK9,
685 	MKK10,
686 	MKK11,
687 	MKK16,
688 	WORLD_5G_1,
689 	WORLD_5G_2,
690 };
691 
692 
693 const struct reg_domain_pair g_reg_dmn_pairs[] = {
694 	{NULL1_WORLD, NULL1, WORLD},
695 
696 	{FCC1_FCCA, FCC1, FCCA},
697 	{FCC1_WORLD, FCC1, WORLD},
698 	{FCC2_WORLD, FCC2, WORLD},
699 	{FCC2_ETSIC, FCC2, ETSIC},
700 	{FCC3_FCCA, FCC3, FCCA},
701 	{FCC3_WORLD, FCC3, WORLD},
702 	{FCC3_ETSIC, FCC3, ETSIC},
703 	{FCC4_FCCA, FCC4, FCCA},
704 	{FCC6_WORLD, FCC6, WORLD},
705 	{FCC6_FCCA, FCC6, FCCA},
706 	{FCC8_FCCA, FCC8, FCCA},
707 	{FCC11_WORLD, FCC11, WORLD},
708 	{FCC13_WORLD, FCC13, WORLD},
709 	{FCC14_FCCB, FCC14, FCCB},
710 
711 	{ETSI1_WORLD, ETSI1, WORLD},
712 	{ETSI3_WORLD, ETSI3, WORLD},
713 	{ETSI4_WORLD, ETSI4, WORLD},
714 	{ETSI8_WORLD, ETSI8, WORLD},
715 	{ETSI9_WORLD, ETSI9, WORLD},
716 	{ETSI11_WORLD, ETSI11, WORLD},
717 
718 	{APL1_WORLD, APL1, WORLD},
719 	{APL1_ETSIC, APL1, ETSIC},
720 	{APL2_WORLD, APL2, WORLD},
721 	{APL2_ETSIC, APL2, ETSIC},
722 	{APL4_WORLD, APL4, WORLD},
723 	{APL6_WORLD, APL6, WORLD},
724 	{APL8_WORLD, APL8, WORLD},
725 	{APL9_WORLD, APL9, WORLD},
726 	{APL10_WORLD, APL10, WORLD},
727 	{APL11_FCCA, APL11, FCCA},
728 	{APL12_WORLD, APL12, WORLD},
729 	{APL13_WORLD, APL13, WORLD},
730 	{APL14_WORLD, APL14, WORLD},
731 	{APL15_WORLD, APL15, WORLD},
732 	{APL16_WORLD, APL16, WORLD},
733 	{APL17_ETSID, APL17, ETSID},
734 	{APL19_ETSIC, APL19, ETSIC},
735 	{APL20_WORLD, APL20, WORLD},
736 	{APL23_WORLD, APL23, WORLD},
737 
738 	{MKK3_MKKC, MKK3, MKKC},
739 	{MKK5_MKKA, MKK5, MKKA},
740 	{MKK5_MKKC, MKK5, MKKC},
741 	{MKK11_MKKC, MKK11, MKKC},
742 	{MKK16_MKKC, MKK16, MKKC},
743 
744 	{WORLD_60, WORLD_5G_2, WORLD_2G_3},
745 	{WORLD_61, WORLD_5G_2, WORLD_2G_3},
746 	{WORLD_62, WORLD_5G_2, WORLD_2G_3},
747 	{WORLD_63, WORLD_5G_1, WORLD_2G_2},
748 	{WORLD_65, WORLD_5G_1, WORLD_2G_2},
749 	{WORLD_64, WORLD_5G_1, WORLD_2G_1},
750 	{WORLD_66, WORLD_5G_2, WORLD_2G_1},
751 	{WORLD_69, WORLD_5G_2, WORLD_2G_1},
752 	{WORLD_67, WORLD_5G_2, WORLD_2G_2},
753 	{WORLD_68, WORLD_5G_2, WORLD_2G_2},
754 	{WORLD_6A, WORLD_5G_2, WORLD_2G_2},
755 	{WORLD_6C, WORLD_5G_2, WORLD_2G_2},
756 };
757 
758 enum reg_rules_2g {
759 
760 	CHAN_1_11_1,
761 	CHAN_1_11_2,
762 	CHAN_1_11_3,
763 	CHAN_1_13_1,
764 	CHAN_1_13_2,
765 	CHAN_1_13_3,
766 	CHAN_12_13_1,
767 	CHAN_14_1,
768 	CHAN_14_2,
769 };
770 
771 const struct regulatory_rule reg_rules_2g[] = {
772 
773 	[CHAN_1_11_1] = {2402, 2472, 40, 30, 0},
774 	[CHAN_1_11_2] = {2402, 2472, 40, 20, 0},
775 	[CHAN_1_11_3] = {2402, 2472, 40, 36, 0},
776 	[CHAN_1_13_1] = {2402, 2482, 40, 20, 0},
777 	[CHAN_1_13_2] = {2402, 2482, 40, 30, 0},
778 	[CHAN_1_13_3] = {2402, 2482, 40, 36, 0},
779 	[CHAN_12_13_1] = {2457, 2482, 40, 30, REGULATORY_CHAN_NO_IR},
780 	[CHAN_14_1] = {2474, 2494, 20, 20, REGULATORY_CHAN_NO_OFDM},
781 	[CHAN_14_2] = {2474, 2494, 20, 20,
782 		       REGULATORY_CHAN_NO_OFDM | REGULATORY_CHAN_NO_IR},
783 };
784 
785 
786 const struct regdomain regdomains_2g[] = {
787 
788 	[FCCA] = {CTL_FCC, DFS_UNINIT_REG, 0, 6, 1, {CHAN_1_11_1} },
789 	[FCCB] = {CTL_FCC, DFS_UNINIT_REG, 0, 6, 1, {CHAN_1_11_3} },
790 	[WORLD] = {CTL_ETSI, DFS_UNINIT_REG, 0, 0, 1, {CHAN_1_13_1} },
791 	[MKKA] = {CTL_MKK, DFS_UNINIT_REG, 0, 0, 2, {CHAN_1_13_1, CHAN_14_1} },
792 	[MKKC] = {CTL_MKK, DFS_UNINIT_REG, 0, 0, 1, {CHAN_1_13_1} },
793 	[ETSIC] = {CTL_ETSI, DFS_UNINIT_REG, 0, 0, 1, {CHAN_1_13_2} },
794 	[ETSID] = {CTL_ETSI, DFS_UNINIT_REG, 0, 0, 1, {CHAN_1_13_3} },
795 	[WORLD_2G_1] = {CTL_NONE, DFS_UNINIT_REG, 0, 0, 1, {CHAN_1_11_2} },
796 	[WORLD_2G_2] = {CTL_NONE, DFS_UNINIT_REG, 0, 0, 2,
797 			{CHAN_1_11_2, CHAN_12_13_1} },
798 	[WORLD_2G_3] = {CTL_NONE, DFS_UNINIT_REG, 0, 0, 3,
799 			{CHAN_1_11_2, CHAN_12_13_1, CHAN_14_2} },
800 };
801 
802 
803 enum reg_rules_5g {
804 
805 	CHAN_4910_4990_1,
806 	CHAN_4940_4990_1,
807 	CHAN_5030_5090_1,
808 	CHAN_5170_5250_1,
809 	CHAN_5170_5250_2,
810 	CHAN_5170_5250_3,
811 	CHAN_5170_5250_4,
812 	CHAN_5170_5250_5,
813 	CHAN_5170_5250_6,
814 	CHAN_5170_5250_7,
815 	CHAN_5170_5250_8,
816 	CHAN_5170_5250_9,
817 	CHAN_5170_5330_1,
818 	CHAN_5170_5330_2,
819 	CHAN_5250_5330_1,
820 	CHAN_5250_5330_2,
821 	CHAN_5250_5330_3,
822 	CHAN_5250_5330_4,
823 	CHAN_5250_5330_5,
824 	CHAN_5250_5330_6,
825 	CHAN_5250_5330_7,
826 	CHAN_5250_5330_8,
827 	CHAN_5250_5330_9,
828 	CHAN_5250_5330_10,
829 	CHAN_5250_5330_11,
830 	CHAN_5250_5330_12,
831 	CHAN_5250_5330_13,
832 	CHAN_5490_5730_1,
833 	CHAN_5490_5730_2,
834 	CHAN_5490_5730_3,
835 	CHAN_5490_5730_4,
836 	CHAN_5490_5730_5,
837 	CHAN_5490_5710_1,
838 	CHAN_5490_5710_2,
839 	CHAN_5490_5710_3,
840 	CHAN_5490_5710_4,
841 	CHAN_5490_5590_1,
842 	CHAN_5490_5590_2,
843 	CHAN_5490_5590_3,
844 	CHAN_5490_5570_1,
845 	CHAN_5490_5650_2,
846 	CHAN_5490_5670_1,
847 	CHAN_5490_5670_2,
848 	CHAN_5490_5630_1,
849 	CHAN_5650_5730_1,
850 	CHAN_5650_5730_2,
851 	CHAN_5650_5730_3,
852 	CHAN_5735_5835_1,
853 	CHAN_5735_5835_2,
854 	CHAN_5735_5835_3,
855 	CHAN_5735_5835_4,
856 	CHAN_5735_5835_5,
857 	CHAN_5735_5835_6,
858 	CHAN_5735_5835_7,
859 	CHAN_5735_5875_1,
860 	CHAN_5735_5875_2,
861 	CHAN_5735_5875_3,
862 	CHAN_5735_5815_1,
863 	CHAN_5735_5775_1,
864 	CHAN_5835_5855_1,
865 	CHAN_5855_5875_1,
866 };
867 
868 const struct regulatory_rule reg_rules_5g[] = {
869 
870 	[CHAN_4910_4990_1] = {4910, 4990, 20, 20, 0},
871 	[CHAN_4940_4990_1] = {4940, 4990, 20, 33, 0},
872 	[CHAN_5030_5090_1] = {5030, 5090, 20, 20, 0},
873 	[CHAN_5170_5250_1] = {5170, 5250, 80, 17, 0},
874 	[CHAN_5170_5250_2] = {5170, 5250, 80, 23, 0},
875 	[CHAN_5170_5250_3] = {5170, 5250, 80, 20, 0},
876 	[CHAN_5170_5250_4] = {5170, 5250, 80, 30, 0},
877 	[CHAN_5170_5250_5] = {5170, 5250, 80, 24, 0},
878 	[CHAN_5170_5250_6] = {5170, 5250, 80, 18, 0},
879 	[CHAN_5170_5250_7] = {5170, 5250, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
880 	[CHAN_5170_5250_8] = {5170, 5250, 80, 23, REGULATORY_CHAN_INDOOR_ONLY},
881 	[CHAN_5170_5250_9] = {5170, 5250, 40, 30, 0},
882 	[CHAN_5170_5330_1] = {5170, 5330, 160, 20, REGULATORY_CHAN_NO_IR},
883 	[CHAN_5170_5330_2] = {5170, 5330, 160, 24, 0},
884 	[CHAN_5250_5330_1] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR},
885 	[CHAN_5250_5330_2] = {5250, 5330, 80, 20, REGULATORY_CHAN_RADAR},
886 	[CHAN_5250_5330_3] = {5250, 5330, 80, 18, REGULATORY_CHAN_RADAR},
887 	[CHAN_5250_5330_4] = {5250, 5330, 80, 30, REGULATORY_CHAN_RADAR},
888 	[CHAN_5250_5330_5] = {5250, 5330, 80, 23, 0},
889 	[CHAN_5250_5330_6] = {5250, 5330, 80, 30, 0},
890 	[CHAN_5250_5330_7] = {5250, 5330, 80, 24, REGULATORY_CHAN_RADAR},
891 	[CHAN_5250_5330_8] = {5250, 5330, 80, 36, 0},
892 	[CHAN_5250_5330_9] = {5250, 5330, 80, 20, 0},
893 	[CHAN_5250_5330_10] = {5250, 5330, 80, 24, 0},
894 	[CHAN_5250_5330_11] = {5250, 5330, 80, 20, REGULATORY_CHAN_INDOOR_ONLY},
895 	[CHAN_5250_5330_12] = {5250, 5330, 80, 23, REGULATORY_CHAN_RADAR |
896 						   REGULATORY_CHAN_INDOOR_ONLY},
897 	[CHAN_5250_5330_13] = {5250, 5330, 40, 30, REGULATORY_CHAN_RADAR},
898 	[CHAN_5490_5730_1] = {5490, 5730, 160, 24, REGULATORY_CHAN_RADAR},
899 	[CHAN_5490_5730_2] = {5490, 5730, 160, 20, REGULATORY_CHAN_NO_IR},
900 	[CHAN_5490_5730_3] = {5490, 5730, 160, 30, 0},
901 	[CHAN_5490_5730_4] = {5490, 5730, 160, 24, 0},
902 	[CHAN_5490_5730_5] = {5490, 5730, 160, 30, REGULATORY_CHAN_RADAR},
903 	[CHAN_5490_5710_1] = {5490, 5710, 160, 30, REGULATORY_CHAN_RADAR},
904 	[CHAN_5490_5710_2] = {5490, 5710, 160, 20, REGULATORY_CHAN_RADAR},
905 	[CHAN_5490_5710_3] = {5490, 5710, 160, 27, REGULATORY_CHAN_RADAR},
906 	[CHAN_5490_5710_4] = {5490, 5710, 40, 30, REGULATORY_CHAN_RADAR},
907 	[CHAN_5490_5590_1] = {5490, 5590, 80, 24, REGULATORY_CHAN_RADAR},
908 	[CHAN_5490_5590_2] = {5490, 5590, 80, 30, 0},
909 	[CHAN_5490_5590_3] = {5490, 5590, 80, 36, 0},
910 	[CHAN_5490_5570_1] = {5490, 5570, 80, 30, REGULATORY_CHAN_RADAR},
911 	[CHAN_5490_5650_2] = {5490, 5650, 160, 24, REGULATORY_CHAN_RADAR},
912 	[CHAN_5490_5670_1] = {5490, 5670, 160, 20, REGULATORY_CHAN_RADAR},
913 	[CHAN_5490_5670_2] = {5490, 5670, 160, 23, REGULATORY_CHAN_RADAR},
914 	[CHAN_5490_5630_1] = {5490, 5630, 80, 30, REGULATORY_CHAN_RADAR},
915 	[CHAN_5650_5730_1] = {5650, 5730, 80, 24, REGULATORY_CHAN_RADAR},
916 	[CHAN_5650_5730_2] = {5650, 5730, 80, 30, 0},
917 	[CHAN_5650_5730_3] = {5650, 5730, 80, 36, 0},
918 	[CHAN_5735_5835_1] = {5735, 5835, 80, 23, 0},
919 	[CHAN_5735_5835_2] = {5735, 5835, 80, 30, 0},
920 	[CHAN_5735_5835_3] = {5735, 5835, 80, 20, 0},
921 	[CHAN_5735_5835_4] = {5735, 5835, 80, 33, 0},
922 	[CHAN_5735_5835_5] = {5735, 5835, 80, 20, REGULATORY_CHAN_NO_IR},
923 	[CHAN_5735_5835_6] = {5735, 5835, 80, 24, 0},
924 	[CHAN_5735_5835_7] = {5735, 5835, 80, 36, 0},
925 	[CHAN_5735_5875_1] = {5735, 5875, 20, 27, REGULATORY_CHAN_RADAR},
926 	[CHAN_5735_5875_2] = {5735, 5875, 20, 30, 0},
927 	[CHAN_5735_5875_3] = {5735, 5875, 80, 30, 0},
928 	[CHAN_5735_5815_1] = {5735, 5815, 80, 30, 0},
929 	[CHAN_5735_5775_1] = {5735, 5775, 40, 23, 0},
930 	[CHAN_5835_5855_1] = {5835, 5855, 20, 30, 0},
931 	[CHAN_5855_5875_1] = {5855, 5875, 20, 30, 0},
932 };
933 
934 
935 const struct regdomain regdomains_5g[] = {
936 
937 	[FCC1] = {CTL_FCC, DFS_FCC_REG, 2, 6, 3, {CHAN_5170_5250_1,
938 					      CHAN_5250_5330_1,
939 					      CHAN_5735_5835_2} },
940 
941 	[FCC2] = {CTL_FCC, DFS_FCC_REG, 2, 6, 3, {CHAN_5170_5250_2,
942 					     CHAN_5250_5330_1,
943 					     CHAN_5735_5835_2} },
944 
945 	[FCC3] = {CTL_FCC, DFS_FCC_REG, 2, 6, 4, {CHAN_5170_5250_5,
946 					      CHAN_5250_5330_7,
947 					      CHAN_5490_5730_1,
948 					      CHAN_5735_5835_2} },
949 
950 	[FCC4] = {CTL_FCC, DFS_FCC_REG, 2, 6, 1, {CHAN_4940_4990_1} },
951 
952 	[FCC6] = {CTL_FCC, DFS_FCC_REG, 2, 6, 5, {CHAN_5170_5250_5,
953 					      CHAN_5250_5330_7,
954 					      CHAN_5490_5590_1,
955 					      CHAN_5650_5730_1,
956 					      CHAN_5735_5835_2} },
957 
958 	[FCC8] = {CTL_FCC, DFS_FCC_REG, 2, 6, 4, {CHAN_5170_5250_4,
959 					      CHAN_5250_5330_7,
960 					      CHAN_5490_5730_1,
961 					      CHAN_5735_5835_2} },
962 
963 	[FCC11] = {CTL_FCC, DFS_FCC_REG, 2, 6, 4, {CHAN_5170_5250_5,
964 					      CHAN_5250_5330_7,
965 					      CHAN_5490_5650_2,
966 					      CHAN_5735_5835_6} },
967 
968 	[FCC13] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 4, {CHAN_5170_5330_2,
969 					      CHAN_5250_5330_10,
970 					      CHAN_5490_5730_4,
971 					      CHAN_5735_5835_2} },
972 
973 	[FCC14] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 3, {CHAN_5170_5250_2,
974 					      CHAN_5250_5330_6,
975 					      CHAN_5735_5835_7} },
976 
977 	[ETSI1] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 3, {CHAN_5170_5250_2,
978 						 CHAN_5250_5330_1,
979 						 CHAN_5490_5710_1} },
980 
981 	[ETSI3] = {CTL_ETSI, DFS_ETSI_REG, 5, 0, 2, {CHAN_5170_5250_2,
982 						 CHAN_5250_5330_1} },
983 
984 	[ETSI4] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 2, {CHAN_5170_5250_6,
985 						 CHAN_5250_5330_3} },
986 
987 	[ETSI8] = {CTL_ETSI, DFS_UNINIT_REG, 20, 0, 4, {CHAN_5170_5250_2,
988 						  CHAN_5250_5330_5,
989 						  CHAN_5490_5730_3,
990 						  CHAN_5735_5835_2} },
991 
992 	[ETSI9] = {CTL_ETSI, DFS_ETSI_REG, 20, 0, 4, {CHAN_5170_5250_3,
993 						  CHAN_5250_5330_2,
994 						  CHAN_5490_5670_1,
995 						  CHAN_5735_5835_3} },
996 
997 	[ETSI11] = {CTL_ETSI, DFS_ETSI_REG, 10, 0, 4, {CHAN_5170_5250_3,
998 						  CHAN_5250_5330_2,
999 						  CHAN_5490_5710_3,
1000 						  CHAN_5735_5875_1} },
1001 
1002 	[APL1] = {CTL_ETSI, DFS_UNINIT_REG, 2, 0, 1, {CHAN_5735_5835_2} },
1003 
1004 	[APL2] = {CTL_ETSI, DFS_UNINIT_REG, 2, 0, 1, {CHAN_5735_5815_1} },
1005 
1006 	[APL4] = {CTL_ETSI, DFS_UNINIT_REG, 2, 0, 2, {CHAN_5170_5250_2,
1007 						  CHAN_5735_5835_1} },
1008 
1009 	[APL6] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 3, {CHAN_5170_5250_3,
1010 						CHAN_5250_5330_2,
1011 						CHAN_5735_5835_3} },
1012 
1013 	[APL8] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 2, {CHAN_5250_5330_4,
1014 						CHAN_5735_5835_2} },
1015 
1016 	[APL9] = {CTL_ETSI, DFS_KR_REG, 2, 6, 4, {CHAN_5170_5250_3,
1017 					      CHAN_5250_5330_2,
1018 					      CHAN_5490_5730_5,
1019 					      CHAN_5735_5835_2} },
1020 
1021 	[APL10] = {CTL_ETSI, DFS_FCC_REG, 2, 6, 4, {CHAN_5170_5250_2,
1022 						 CHAN_5250_5330_4,
1023 						 CHAN_5490_5710_1,
1024 						 CHAN_5735_5815_1} },
1025 
1026 	[APL11] = { CTL_ETSI, DFS_ETSI_REG, 2, 0, 4, {CHAN_5170_5250_9,
1027 						 CHAN_5250_5330_13,
1028 						 CHAN_5490_5710_4,
1029 						 CHAN_5735_5875_2} },
1030 
1031 	[APL12] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 3, {CHAN_5170_5250_2,
1032 						 CHAN_5490_5570_1,
1033 						 CHAN_5735_5775_1} },
1034 
1035 	[APL13] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 3, {CHAN_5170_5250_2,
1036 						 CHAN_5250_5330_1,
1037 						 CHAN_5490_5670_2} },
1038 
1039 	[APL14] = {CTL_FCC, DFS_CN_REG, 2, 0, 3, {CHAN_5170_5250_2,
1040 					      CHAN_5250_5330_1,
1041 					      CHAN_5735_5835_4} },
1042 
1043 	[APL15] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 3, {CHAN_5170_5250_2,
1044 					      CHAN_5250_5330_5,
1045 					      CHAN_5735_5835_4} },
1046 
1047 	[APL16] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 5, {CHAN_5170_5250_1,
1048 					    CHAN_5250_5330_6,
1049 					    CHAN_5490_5590_2,
1050 					    CHAN_5650_5730_2,
1051 					    CHAN_5735_5835_2} },
1052 
1053 	[APL17] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 5, {CHAN_5170_5250_2,
1054 					    CHAN_5250_5330_8,
1055 					    CHAN_5490_5590_3,
1056 					    CHAN_5650_5730_3,
1057 					    CHAN_5735_5835_7} },
1058 
1059 	[APL19] = {CTL_FCC, DFS_UNINIT_REG, 2, 0, 3, {CHAN_5170_5250_2,
1060 					    CHAN_5250_5330_5,
1061 					    CHAN_5735_5875_3} },
1062 
1063 	[APL20] = {CTL_ETSI, DFS_ETSI_REG, 2, 0, 4, {CHAN_5170_5250_8,
1064 					     CHAN_5250_5330_12,
1065 					     CHAN_5490_5730_5,
1066 					     CHAN_5735_5835_4} },
1067 
1068 	[APL23] = {CTL_ETSI, DFS_UNINIT_REG, 2, 0, 3, {CHAN_5170_5250_7,
1069 					     CHAN_5250_5330_11,
1070 					     CHAN_5735_5835_3} },
1071 
1072 	[MKK3] = {CTL_MKK, DFS_UNINIT_REG, 2, 0, 1, {CHAN_5170_5250_3} },
1073 
1074 	[MKK5] = {CTL_MKK, DFS_MKK_REG, 2, 0, 3, {CHAN_5170_5250_3,
1075 					      CHAN_5250_5330_2,
1076 					      CHAN_5490_5710_2} },
1077 
1078 	[MKK11] = {CTL_MKK, DFS_MKK_REG, 2, 0, 5, {CHAN_5170_5250_3,
1079 					       CHAN_5250_5330_2,
1080 					       CHAN_5490_5710_2,
1081 					       CHAN_4910_4990_1,
1082 					       CHAN_5030_5090_1} },
1083 
1084 	[MKK16] = {CTL_MKK, DFS_MKK_REG, 2, 0, 1, {CHAN_5490_5710_2} },
1085 
1086 	[WORLD_5G_1] = {CTL_NONE, DFS_UNINIT_REG, 2, 0, 2, {CHAN_5170_5330_1,
1087 						       CHAN_5735_5835_5} },
1088 
1089 	[WORLD_5G_2] = {CTL_NONE, DFS_UNINIT_REG, 2, 0, 3, {CHAN_5170_5330_1,
1090 						       CHAN_5490_5730_2,
1091 						       CHAN_5735_5835_5} },
1092 };
1093 
1094 QDF_STATUS reg_get_num_countries(int *num_countries)
1095 {
1096 	*num_countries = QDF_ARRAY_SIZE(g_all_countries);
1097 
1098 	return QDF_STATUS_SUCCESS;
1099 }
1100 
1101 QDF_STATUS reg_get_num_reg_dmn_pairs(int *num_reg_dmn)
1102 {
1103 	*num_reg_dmn = QDF_ARRAY_SIZE(g_reg_dmn_pairs);
1104 
1105 	return QDF_STATUS_SUCCESS;
1106 }
1107 
1108 QDF_STATUS reg_get_default_country(uint16_t *default_country)
1109 {
1110 	*default_country = CTRY_UNITED_STATES;
1111 
1112 	return QDF_STATUS_SUCCESS;
1113 }
1114