mac80211: use built-in regulatory database instead of crda to avoid various race...
authorFelix Fietkau <nbd@openwrt.org>
Mon, 28 May 2012 16:17:30 +0000 (16:17 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 28 May 2012 16:17:30 +0000 (16:17 +0000)
SVN-Revision: 31954

package/mac80211/Makefile
package/mac80211/files/regdb.txt [new file with mode: 0644]

index 82e2e50..489c338 100644 (file)
@@ -55,7 +55,7 @@ endef
 define KernelPackage/cfg80211
   $(call KernelPackage/mac80211/Default)
   TITLE:=cfg80211 - wireless configuration API
-  DEPENDS+= +wireless-tools +iw +crda
+  DEPENDS+= +wireless-tools +iw
   FILES:= \
        $(PKG_BUILD_DIR)/compat/compat.ko \
        $(PKG_BUILD_DIR)/net/wireless/cfg80211.ko
@@ -1132,6 +1132,7 @@ endef
 
 BUILDFLAGS:= \
        -I$(PKG_BUILD_DIR)/include \
+       -DCONFIG_CFG80211_INTERNAL_REGDB=y \
        $(foreach opt,$(CONFOPTS),-DCONFIG_$(opt)) \
        $(if $(CONFIG_PCI),-DCONFIG_B43_PCI_AUTOSELECT -DCONFIG_B43_PCICORE_AUTOSELECT) \
        $(if $(CONFIG_LEDS_TRIGGERS), -DCONFIG_MAC80211_LEDS -DCONFIG_LEDS_TRIGGERS -DCONFIG_B43_LEDS -DCONFIG_B43LEGACY_LEDS) \
@@ -1175,6 +1176,7 @@ MAKE_OPTS:= \
        ARCH="$(LINUX_KARCH)" \
        EXTRA_CFLAGS="$(BUILDFLAGS)" \
        $(foreach opt,$(CONFOPTS),CONFIG_$(opt)=m) \
+       CONFIG_CFG80211_INTERNAL_REGDB=y \
        CONFIG_CFG80211=$(if $(CONFIG_PACKAGE_kmod-cfg80211),m) \
        CONFIG_MAC80211=$(if $(CONFIG_PACKAGE_kmod-mac80211),m) \
        CONFIG_MAC80211_RC_MINSTREL=y \
@@ -1329,6 +1331,7 @@ define Build/Prepare
        rm -f $(PKG_BUILD_DIR)/include/linux/eeprom_93cx6.h
        rm -f $(PKG_BUILD_DIR)/include/net/ieee80211.h
        echo 'compat-wireless-$(PKG_VERSION)-$(PKG_RELEASE)-$(REVISION)' > $(PKG_BUILD_DIR)/compat_version
+       $(CP) ./files/regdb.txt $(PKG_BUILD_DIR)/net/wireless/db.txt
 endef
 
 ifneq ($(CONFIG_PACKAGE_kmod-cfg80211)$(CONFIG_PACKAGE_kmod-lib80211),)
diff --git a/package/mac80211/files/regdb.txt b/package/mac80211/files/regdb.txt
new file mode 100644 (file)
index 0000000..23b85a3
--- /dev/null
@@ -0,0 +1,697 @@
+# This is the world regulatory domain
+country 00:
+       (2402 - 2472 @ 40), (3, 20)
+        # Channel 12 - 13. No HT40 channel fits here
+        (2457 - 2482 @ 20), (3, 20), PASSIVE-SCAN, NO-IBSS
+        # Channel 14. Only JP enables this and for 802.11b only
+        (2474 - 2494 @ 20), (3, 20), PASSIVE-SCAN, NO-IBSS, NO-OFDM
+        # Channel 36 - 48
+        (5170 - 5250 @ 40), (3, 20), PASSIVE-SCAN, NO-IBSS
+        # NB: 5260 MHz - 5700 MHz requies DFS
+        # Channel 149 - 165
+        (5735 - 5835 @ 40), (3, 20), PASSIVE-SCAN, NO-IBSS
+
+
+country AE:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country AL:
+       (2402 - 2482 @ 20), (N/A, 20)
+
+country AM:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 18)
+       (5250 - 5330 @ 20), (N/A, 18), DFS
+
+country AN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country AR:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country AT: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country AU:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 23)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country AW:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country AZ:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 18)
+       (5250 - 5330 @ 40), (N/A, 18), DFS
+
+country BA: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country BB:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 23)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country BD:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country BE: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country BG: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 23)
+       (5250 - 5290 @ 40), (N/A, 23), DFS
+       (5490 - 5710 @ 40), (N/A, 30), DFS
+
+country BH:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 20)
+       (5250 - 5330 @ 20), (N/A, 20), DFS
+       (5735 - 5835 @ 20), (N/A, 20)
+
+country BL:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 18)
+       (5250 - 5330 @ 40), (N/A, 18), DFS
+
+country BN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country BO:
+       (2402 - 2482 @ 40), (N/A, 30)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country BR:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country BY:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country BZ:
+       (2402 - 2482 @ 40), (N/A, 30)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country CA:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country CH: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country CL:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5735 - 5835 @ 40), (N/A, 20)
+
+country CN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country CO:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country CR:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 17)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country CS:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country CY: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+# Data from http://www.ctu.eu/164/download/VOR/VOR-12-08-2005-34.pdf
+# and http://www.ctu.eu/164/download/VOR/VOR-12-05-2007-6-AN.pdf
+# Power at 5250 - 5350 MHz and 5470 - 5725 MHz can be doubled if TPC is
+# implemented.
+country CZ: DFS-ETSI
+       (2400 - 2483.5 @ 40), (N/A, 100 mW)
+       (5150 - 5250 @ 40), (N/A, 200 mW), NO-OUTDOOR
+       (5250 - 5350 @ 40), (N/A, 100 mW), NO-OUTDOOR, DFS
+       (5470 - 5725 @ 40), (N/A, 500 mW), DFS
+
+# Data from "Frequenznutzungsplan" (as published in April 2008), downloaded from
+# http://www.bundesnetzagentur.de/cae/servlet/contentblob/38448/publicationFile/2659/Frequenznutzungsplan2008_Id17448pdf.pdf
+# For the 5GHz range also see
+# http://www.bundesnetzagentur.de/cae/servlet/contentblob/38216/publicationFile/6579/WLAN5GHzVfg7_2010_28042010pdf.pdf
+# The values have been reduced by a factor of 2 (3db) for non TPC devices
+# (in other words: devices with TPC can use twice the tx power of this table).
+# Note that the docs do not require TPC for 5150--5250; the reduction to
+# 100mW thus is not strictly required -- however the conservative 100mW
+# limit is used here as the non-interference with radar and satellite
+# apps relies on the attenuation by the building walls only in the
+# absence of DFS; the neighbour countries have 100mW limit here as well.
+
+country DE: DFS-ETSI
+       # entries 279004 and 280006
+       (2400 - 2483.5 @ 40), (N/A, 100 mW)
+       # entry 303005
+       (5150 - 5250 @ 40), (N/A, 100 mW), NO-OUTDOOR
+       # entries 304002 and 305002
+       (5250 - 5350 @ 40), (N/A, 100 mW), NO-OUTDOOR, DFS
+       # entries 308002, 309001 and 310003
+       (5470 - 5725 @ 40), (N/A, 500 mW), DFS
+
+country DK: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country DO:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country DZ:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country EC:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 17)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country EE: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country EG:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 20)
+       (5250 - 5330 @ 20), (N/A, 20), DFS
+
+country ES: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country FI: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country FR: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country GE:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 18)
+       (5250 - 5330 @ 40), (N/A, 18), DFS
+
+country GB: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country GD:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country GR: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country GL: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 20)
+       (5250 - 5330 @ 20), (N/A, 20), DFS
+       (5490 - 5710 @ 20), (N/A, 27), DFS
+
+country GT:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country GU:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 20), (3, 17)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country HN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country HK:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country HR: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country HT:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country HU: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country ID:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country IE: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country IL:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5150 - 5250 @ 40), (N/A, 200 mW), NO-OUTDOOR
+       (5250 - 5350 @ 40), (N/A, 200 mW), NO-OUTDOOR, DFS
+
+country IN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5735 - 5835 @ 40), (N/A, 20)
+
+country IS: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country IR:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country IT: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country JM:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country JP:
+       (2402 - 2472 @ 40), (N/A, 20)
+       (2457 - 2482 @ 20), (N/A, 20)
+       (2474 - 2494 @ 20), (N/A, 20), NO-OFDM
+       (4910 - 4930 @ 10), (N/A, 23)
+       (4910 - 4990 @ 40), (N/A, 23)
+       (4930 - 4950 @ 10), (N/A, 23)
+       (5030 - 5045 @ 10), (N/A, 23)
+       (5030 - 5090 @ 40), (N/A, 23)
+       (5050 - 5060 @ 10), (N/A, 23)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 23), DFS
+
+country JO:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 18)
+
+country KE:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country KH:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country KP:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5330 @ 40), (3, 20)
+       (5160 - 5250 @ 40), (3, 20), DFS
+       (5490 - 5630 @ 40), (3, 30), DFS
+       (5735 - 5815 @ 40), (3, 30)
+
+country KR:
+       (2402 - 2482 @ 20), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 20)
+       (5250 - 5330 @ 20), (3, 20), DFS
+       (5490 - 5630 @ 20), (3, 30), DFS
+       (5735 - 5815 @ 20), (3, 30)
+
+country KW:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+
+country KZ:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country LB:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country LI: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country LK:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 17)
+       (5250 - 5330 @ 20), (3, 20), DFS
+       (5490 - 5710 @ 20), (3, 20), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country LT: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country LU: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country LV: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country MC: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 18)
+       (5250 - 5330 @ 40), (N/A, 18), DFS
+
+country MA:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country MO:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 23)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country MK: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country MT: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country MY:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 30), DFS
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country MX:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country NL: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20), NO-OUTDOOR
+       (5250 - 5330 @ 40), (N/A, 20), NO-OUTDOOR, DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country NO: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country NP:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country NZ:
+       (2402 - 2482 @ 40), (N/A, 30)
+       (5170 - 5250 @ 20), (3, 23)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country OM:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country PA:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country PE:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country PG:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country PH:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country PK:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country PL: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country PT: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country PR:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 23), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country QA:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 40), (N/A, 30)
+
+country RO: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country RU:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5835 @ 20), (N/A, 30)
+
+country SA:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 23)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country SE: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country SG:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5735 - 5835 @ 40), (N/A, 20)
+
+country SI: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country SK: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+       (5490 - 5710 @ 40), (N/A, 27), DFS
+
+country SV:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (3, 17)
+       (5250 - 5330 @ 20), (3, 23), DFS
+       (5735 - 5835 @ 20), (3, 30)
+
+country SY:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country TW:
+       (2402 - 2472 @ 40), (3, 27)
+       (5270 - 5330 @ 40), (3, 17), DFS
+       (5735 - 5815 @ 40), (3, 30)
+
+country TH:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country TT:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country TN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 20)
+       (5250 - 5330 @ 20), (N/A, 20), DFS
+
+country TR: DFS-ETSI
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 20), (N/A, 20)
+       (5250 - 5330 @ 20), (N/A, 20), DFS
+
+country UA:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country US: DFS-FCC
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5600 @ 40), (3, 20), DFS
+       (5650 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country UY:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country UZ:
+       (2402 - 2472 @ 40), (3, 27)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country VE:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5735 - 5815 @ 40), (N/A, 23)
+
+country VN:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (N/A, 20)
+       (5250 - 5330 @ 40), (N/A, 20), DFS
+
+country YE:
+       (2402 - 2482 @ 40), (N/A, 20)
+
+country ZA:
+       (2402 - 2482 @ 40), (N/A, 20)
+       (5170 - 5250 @ 40), (3, 17)
+       (5250 - 5330 @ 40), (3, 20), DFS
+       (5490 - 5710 @ 40), (3, 20), DFS
+       (5735 - 5835 @ 40), (3, 30)
+
+country ZW:
+       (2402 - 2482 @ 40), (N/A, 20)
+