pax_global_header00006660000000000000000000000064150336277600014523gustar00rootroot0000000000000052 comment=e05260afb7203dd0a7ba6faf9a30c86faf19a24e wireless-regdb-2025.07.10/000077500000000000000000000000001503362776000150375ustar00rootroot00000000000000wireless-regdb-2025.07.10/.b4-config000066400000000000000000000003521503362776000166100ustar00rootroot00000000000000# Configuration for the `b4` tool # See https://b4.docs.kernel.org/en/latest/config.html [b4] send-series-to = Chen-Yu Tsai send-series-cc = linux-wireless@vger.kernel.org, wireless-regdb@lists.infradead.org wireless-regdb-2025.07.10/.gitignore000066400000000000000000000001321503362776000170230ustar00rootroot00000000000000__pycache__/ *.py[cod] *$py.class .custom !wens.key.pub.pem !wens.x509.pem *.pem *.patch wireless-regdb-2025.07.10/CONTRIBUTING000066400000000000000000000035171503362776000166770ustar00rootroot00000000000000 This project embraces the Developer Certificate of Origin (DCO) for contributions. This means you must agree to the following prior to submitting patches, if you agree with this developer certificate you acknowledge this by adding a Signed-off-by tag to your patch commit log. Every submitted patch must have this. The source for the DCO: http://developercertificate.org/ ----------------------------------------------------------------------- Developer Certificate of Origin Version 1.1 Copyright (C) 2004, 2006 The Linux Foundation and its contributors. 660 York Street, Suite 102, San Francisco, CA 94110 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Developer's Certificate of Origin 1.1 By making a contribution to this project, I certify that: (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved. wireless-regdb-2025.07.10/LICENSE000066400000000000000000000015601503362776000160460ustar00rootroot00000000000000Copyright (c) 2008, Luis R. Rodriguez Copyright (c) 2008, Johannes Berg Copyright (c) 2008, Michael Green Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. wireless-regdb-2025.07.10/Makefile000066400000000000000000000076351503362776000165120ustar00rootroot00000000000000# Install prefix PREFIX ?= /usr CRDA_PATH ?= $(PREFIX)/lib/crda CRDA_KEY_PATH ?= $(CRDA_PATH)/pubkeys FIRMWARE_PATH ?= /lib/firmware MANDIR ?= $(PREFIX)/share/man/ SHA1SUM ?= /usr/bin/sha1sum LSB_RELEASE ?= /usr/bin/lsb_release WHOAMI ?= /usr/bin/whoami # Distro name: Ubuntu, Debian, Fedora, if not present you get # "custom-distro", if your distribution does not have the LSB stuff, # then set this variable when calling make if you don't want "custom-distro" LSB_ID ?= $(shell if [ -f $(LSB_RELEASE) ]; then \ $(LSB_RELEASE) -i -s; \ else \ echo custom-distro; \ fi) DISTRO_PRIVKEY ?= ~/.wireless-regdb-$(LSB_ID).key.priv.pem DISTRO_PUBKEY ?= ~/.wireless-regdb-$(LSB_ID).key.priv.pem REGDB_AUTHOR ?= $(shell if [ -f $(DISTRO_PRIVKEY) ]; then \ echo $(LSB_ID) ; \ elif [ -f $(WHOAMI) ]; then \ $(WHOAMI); \ else \ echo custom-user; \ fi) REGDB_PRIVKEY ?= ~/.wireless-regdb-$(REGDB_AUTHOR).key.priv.pem REGDB_PUBKEY ?= $(REGDB_AUTHOR).key.pub.pem REGDB_PUBCERT ?= $(REGDB_AUTHOR).x509.pem REGDB_UPSTREAM_PUBKEY ?= wens.key.pub.pem REGDB_CHANGED = $(shell $(SHA1SUM) -c --status sha1sum.txt >/dev/null 2>&1; \ if [ $$? -ne 0 ]; then \ echo maintainer-clean $(REGDB_PUBKEY) $(REGDB_PUBCERT); \ fi) .PHONY: all clean mrproper install maintainer-clean install-distro-key all: $(REGDB_CHANGED) regulatory.bin sha1sum.txt regulatory.db.p7s clean: @rm -f *.pyc *.gz maintainer-clean: clean @rm -f regulatory.bin regulatory.db regulatory.db.p7s mrproper: clean maintainer-clean @echo Removed public key, regulatory.bin, regulatory.db* and compressed man pages @rm -f $(REGDB_PUBKEY) $(REGDB_PUBCERT) .custom regulatory.bin: db.txt $(REGDB_PRIVKEY) $(REGDB_PUBKEY) @echo Generating $@ digitally signed by $(REGDB_AUTHOR)... ./db2bin.py regulatory.bin db.txt $(REGDB_PRIVKEY) regulatory.db: db.txt db2fw.py @echo "Generating $@" ./db2fw.py regulatory.db db.txt regulatory.db.p7s: regulatory.db $(REGDB_PRIVKEY) $(REGDB_PUBCERT) @echo "Signing regulatory.db (by $(REGDB_AUTHOR))..." @openssl smime -sign \ -signer $(REGDB_PUBCERT) \ -inkey $(REGDB_PRIVKEY) \ -in $< -nosmimecap -binary \ -noattr \ -outform DER -out $@ sha1sum.txt: db.txt sha1sum $< > $@ $(REGDB_PUBKEY): $(REGDB_PRIVKEY) @echo "Generating public key for $(REGDB_AUTHOR)..." openssl rsa -in $(REGDB_PRIVKEY) -out $(REGDB_PUBKEY) -pubout -outform PEM $(REGDB_PUBCERT): $(REGDB_PRIVKEY) @echo "Generating certificate for $(REGDB_AUTHOR)..." ./gen-pubcert.sh $(REGDB_PRIVKEY) $(REGDB_PUBCERT) $(REGDB_AUTHOR) @echo $(REGDB_PUBKEY) > .custom $(REGDB_PRIVKEY): @echo "Generating private key for $(REGDB_AUTHOR)..." openssl genrsa -out $(REGDB_PRIVKEY) 2048 ifneq ($(shell test -e $(DISTRO_PRIVKEY) && echo yes),yes) $(DISTRO_PRIVKEY): @echo "Generating private key for $(LSB_ID) packager..." openssl genrsa -out $(DISTRO_PRIVKEY) 2048 endif install-distro-key: maintainer-clean $(DISTRO_PRIVKEY) %.gz: % gzip < $< > $@ # Users should just do: # sudo make install # # Developers should do: # make maintainer-clean # make # sudo make install # # Distributions packagers should do only once: # make install-distro-key # This will create a private key for you and install it into # ~/.wireless-regdb-$(LSB_ID).key.priv.pem # To make new releaes just do: # make maintainer-clean # make # sudo make install install: regulatory.bin.5.gz regulatory.db.5.gz install -m 755 -d $(DESTDIR)/$(CRDA_PATH) install -m 755 -d $(DESTDIR)/$(CRDA_KEY_PATH) install -m 755 -d $(DESTDIR)/$(FIRMWARE_PATH) if [ -f .custom ]; then \ install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(shell cat .custom); \ fi install -m 644 -t $(DESTDIR)/$(CRDA_KEY_PATH)/ $(REGDB_UPSTREAM_PUBKEY) install -m 644 -t $(DESTDIR)/$(CRDA_PATH)/ regulatory.bin install -m 644 -t $(DESTDIR)/$(FIRMWARE_PATH) regulatory.db regulatory.db.p7s install -m 755 -d $(DESTDIR)/$(MANDIR)/man5/ install -m 644 -t $(DESTDIR)/$(MANDIR)/man5/ regulatory.bin.5.gz regulatory.db.5.gz wireless-regdb-2025.07.10/README000066400000000000000000000026501503362776000157220ustar00rootroot00000000000000 wireless-regdb ================ This repository contains the plain text version of the regulatory database file I maintain for use with Central Regulatory Database Agent daemon. Also included is the compiled binary version of this file signed with my RSA key. This represents a good faith attempt to capture regulatory information that is correct at the time of its last modification. This information is provided to you with no warranty either expressed or implied. Also included are the tools used to compile and sign the regulatory.bin file as well as a MoinMoin macro used for viewing the database. TECHNICAL INFORMATION ======================= The regulatory information in `db.txt' is stored in a human-readable format which can be read using the `dbparse.py' python module. This python module is used by the web viewer (Regulatory.py) which is implemented as a MoinMoin macro (and used on http://wireless.kernel.org) to allow viewing the database for verification. The dbparse module is also used by db2bin.py and db2fw.py, the `compilers' that compile the database to its binary formats. For more information, please see the CRDA page: https://wireless.wiki.kernel.org/en/developers/regulatory/crda and the full description of the Linux regulatory stack: https://wireless.wiki.kernel.org/en/developers/regulatory John W. Linville 17 November 2008 wireless-regdb-2025.07.10/db.txt000066400000000000000000002713751503362776000162040ustar00rootroot00000000000000wmmrule ETSI: vo_c: cw_min=3, cw_max=7, aifsn=2, cot=2 vi_c: cw_min=7, cw_max=15, aifsn=2, cot=4 be_c: cw_min=15, cw_max=1023, aifsn=3, cot=6 bk_c: cw_min=15, cw_max=1023, aifsn=7, cot=6 vo_ap: cw_min=3, cw_max=7, aifsn=1, cot=2 vi_ap: cw_min=7, cw_max=15, aifsn=1, cot=4 be_ap: cw_min=15, cw_max=63, aifsn=3, cot=6 bk_ap: cw_min=15, cw_max=1023, aifsn=7, cot=6 # This is the world regulatory domain country 00: # There is no global intersection for 802.11ah, so just mark the entire # possible band as NO-IR (755 - 928 @ 2), (20), NO-IR (2402 - 2472 @ 40), (20) # Channel 12 - 13. (2457 - 2482 @ 20), (20), NO-IR, AUTO-BW # Channel 14. Only JP enables this and for 802.11b only (2474 - 2494 @ 20), (20), NO-IR, NO-OFDM # Channel 36 - 48 (5170 - 5250 @ 80), (20), NO-IR, AUTO-BW # Channel 52 - 64 (5250 - 5330 @ 80), (20), NO-IR, DFS, AUTO-BW # Channel 100 - 144 (5490 - 5730 @ 160), (20), NO-IR, DFS # Channel 149 - 165 (5735 - 5835 @ 80), (20), NO-IR # IEEE 802.11ad (60GHz), channels 1..3 (57240 - 63720 @ 2160), (0) # AD as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries: https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country AD: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) # Source: # https://wam.ae/en/details/1395302898209 country AE: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR country AF: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # http://pucanguilla.org/Downloads/January2005-Anguilla%20Table%20of%20Allocations.pdf country AI: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI # AL as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country AL: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # Source: # 2.4 GHz https://www.psrc.am/contents/document/4749 # 5 GHz https://www.psrc.am/contents/document/11375 country AM: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5350 @ 160), (17), NO-OUTDOOR, DFS (5470 - 5875 @ 160), (17), NO-OUTDOOR, DFS country AN: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # https://www.boletinoficial.gob.ar/detalleAviso/primera/287126/20230524 country AR: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 7125 @ 320), (12), NO-OUTDOOR country AS: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # AT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (February 2021): https://docdb.cept.org/download/25c41779-cd6e/Rec7003e.pdf # AT: https://www.rtr.at/TKP/was_wir_tun/telekommunikation/spectrum/bands/1997_bmvit-info-052010en.pdf # AT: acceptance https://www.ris.bka.gv.at/Dokumente/BgblAuth/BGBLA_2014_II_63/BGBLA_2014_II_63.pdfsig # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country AT: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 71000 @ 2160), (40) # Source: # 'Item' in the comments below refers to each numbered rule found at: # https://www.legislation.gov.au/Details/F2023C00524 # Both DFS-ETSI and DFS-FCC are acceptable per AS/NZS 4268 Appendix B. # The EIRP for DFS bands can be increased by 3dB if TPC is implemented. # In order to allow 80MHz operation between 5650-5730MHz the upper boundary # of this more restrictive band has been shifted up by 5MHz from 5725MHz. country AU: DFS-ETSI # Item 58 (915 - 920 @ 4), (1000 mW) (920 - 928 @ 8), (1000 mW) # Item 59 (2400 - 2483.5 @ 40), (4000 mW) # Item 61 (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW # Item 62 (200 mW allowed if TPC is used) (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, AUTO-BW, DFS # Item 63(a) (1000 mW with TPC) (5470 - 5600 @ 80), (500 mW), DFS # Item 63(b) (1000 mW with TPC) # The end is 5725 but we borrow 5 MHz from the following less restrictive band # so we can get an 80 MHz channel. (5650 - 5730 @ 80), (500 mW), DFS # Item 60 (5730 - 5850 @ 80), (4000 mW), AUTO-BW # Item 22 (5850 - 5875 @ 20), (25 mW), AUTO-BW # Item 63AA (25 mW if outdoors) (5925 - 6425 @ 160), (250 mW), NO-OUTDOOR # Item 65 (57000 - 71000 @ 2160), (20000 mW), NO-OUTDOOR country AW: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS country AZ: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (18), AUTO-BW (5250 - 5330 @ 80), (18), DFS, AUTO-BW (5945 - 6425 @ 320), (23), NO-OUTDOOR # BA as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country BA: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) country BB: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (23), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (30) country BD: DFS-JP (2402 - 2482 @ 40), (20) (5735 - 5835 @ 80), (30) # BE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # BE: https://www.ibpt.be/public/files/en/21760/B03-01_2.1_EN.pdf # BE: https://www.ibpt.be/public/files/en/21761/B03-02_2.1_EN.pdf # BE: https://www.ibpt.be/public/files/en/21762/B03-03_2.1_EN.pdf # BE: https://www.ibpt.be/public/files/en/22165/B01-28_3.1_EN.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country BE: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country BF: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Bulgarian rules as defined by the Communications Regulation Commission in the # following documents: # # Rules for carrying out electronic communications through radio equipment using # radio spectrum, which does not need to be individually assigned (the Rules): # http://www.crc.bg/files/_bg/Pravila_09_06_2015.pdf # # List of radio equipment that uses harmonized within the European Union bands # and electronic communications terminal equipment (the List): # http://www.crc.bg/files/_bg/Spisak_2015.pdf # # Note: The transmit power limits in the 5250-5350 MHz and 5470-5725 MHz bands # can be raised by 3 dBm if TPC is enabled. Refer to BDS EN 301 893 for details. # # BG as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # BG: https://crc.bg/files/_en/Electronic_Communications_Revised_EN1.pdf # BG: acceptance of 2006/771/EC https://crc.bg/files/Pravila_06_12_2018.pdf # # Amendment of the rules for free use of radio frequency spectrum # (Изменение и допълнение на Правилата за свободно използване на радиочестотния спектър) # https://dv.parliament.bg/DVWeb/showMaterialDV.jsp?idMat=168250 country BG: DFS-ETSI # Wideband data transmission systems (WDTS) in the 2.4GHz ISM band, ref: # I.22 of the List, BDS EN 300 328 (2400 - 2483.5 @ 40), (100 mW) # 5 GHz Radio Local Area Networks (RLANs), ref: # II.H01 of the List, BDS EN 301 893 (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI # II.H01 of the List, I.54 from the List, BDS EN 301 893 (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) # I.43 of the List, BDS EN 300 440-2, BDS EN 300 440-1 (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) # II.H03 of the List, BDS EN 302 567-2 (57000 - 66000 @ 2160), (40) # Source: # https://tra-website-prod-01.s3-me-south-1.amazonaws.com/Media/Documents/Publications/20240227160125242_dudbapc5_5dk.pdf # (via https://www.tra.org.bh/en/category/apply-for-type-approval) country BH: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5350 @ 80), (200 mW), DFS, NO-OUTDOOR (5470 - 5725 @ 80), (27), DFS (5725 - 5875 @ 80), (24), DFS (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (40), NO-OUTDOOR country BL: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS country BM: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) country BN: DFS-JP (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5735 - 5835 @ 80), (20) country BO: DFS-JP (2402 - 2482 @ 40), (20) (5250 - 5330 @ 80), (30), DFS (5735 - 5835 @ 80), (30) # Source: # https://www.gov.br/anatel/pt-br/regulado/radiofrequencia/radiacao-restrita # https://informacoes.anatel.gov.br/legislacao/resolucoes/2017/936-resolucao-680 # https://informacoes.anatel.gov.br/legislacao/atos-de-certificacao-de-produtos/2021/1510-ato-1306 country BR: DFS-FCC (2400 - 2483.5 @ 40), (30) # The next three ranges have been reduced by 3dB, could be increased # to 30dBm if TPC is implemented. (5150 - 5250 @ 80), (27), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (27), NO-OUTDOOR, DFS, AUTO-BW (5470 - 5725 @ 160), (27), DFS, AUTO-BW (5725 - 5850 @ 80), (30), AUTO-BW (5925 - 7125 @ 320), (12), NO-OUTDOOR # EIRP=40dBm (43dBm peak) (57000 - 71000 @ 2160), (40) country BS: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # http://www.bicma.gov.bt/paper/publication/nrrpart4.pdf country BT: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS country BY: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS country BZ: DFS-JP (2402 - 2482 @ 40), (30) (5735 - 5835 @ 80), (30) # Sources: # https://www.ic.gc.ca/eic/site/smt-gst.nsf/vwapj/rss-247-i2-e.pdf/$file/rss-247-i2-e.pdf # https://www.ic.gc.ca/eic/site/smt-gst.nsf/eng/sf11750.html (6 GHz operation) country CA: DFS-FCC (2402 - 2472 @ 40), (30) (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (24), DFS, AUTO-BW (5470 - 5600 @ 80), (24), DFS (5650 - 5730 @ 80), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 7125 @ 320), (12), NO-OUTDOOR # Source: # http://www.art-rca.org country CF: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 40), (17) (5250 - 5330 @ 40), (24), DFS (5490 - 5730 @ 40), (24), DFS (5735 - 5835 @ 40), (30) # CH as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # CH: https://www.ofcomnet.ch/api/rir/1010/05 # CH: https://www.ofcomnet.ch/api/rir/1010/04 # CH: https://www.ofcomnet.ch/api/rir/1008/12 # CH: https://www.ofcomnet.ch/#/fatTable # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country CH: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # https://www.ofcomnet.ch/api/rir/1010/11 (5945 - 6425 @ 320), (200 mW), NO-OUTDOOR, wmmrule=ETSI # https://www.ofcomnet.ch/api/rir/1010/07 (57000 - 71000 @ 2160), (40) country CI: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # https://www.bcn.cl/leychile/navegar?idNorma=1109333&idParte=9841504&idVersion=&r_c=6 country CL: DFS-JP (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5735 - 5835 @ 80), (20) (5925 - 6425 @ 320), (12), NO-OUTDOOR # Source: # https://wap.miit.gov.cn/zwgk/zcwj/wjfb/tz/art/2021/art_e4ae71252eab42928daf0ea620976e4e.html # https://wap.miit.gov.cn/cms_files/filemanager/1226211233/attach/20219/d125301b13454551b698ff5afa49ca28.pdf # https://www.miit.gov.cn/cms_files/filemanager/1226211233/attach/20236/d1dc19424d5a4cfe90d631adeee8dd58.pdf # Note: The transmit power for 5250-5350MHz bands can be raised by 3dBm when TPC is implemented country CN: DFS-FCC (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW (5725 - 5850 @ 80), (33) # 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm # ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf (57240 - 59400 @ 2160), (28) (59400 - 63720 @ 2160), (44) (63720 - 65880 @ 2160), (28) # Source: # https://www.ane.gov.co/Sliders/archivos/gesti%C3%B3n%20t%C3%A9cnica/Estudios%20de%20gesti%C3%B3n%20y%20planeaci%C3%B3n/Banda%206%20GHz/Documentos%20decisi%C3%B3n/Resolucion%20000737%20del%2018112022.pdf country CO: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 7125 @ 320), (12), NO-OUTDOOR # Source: # https://storage.googleapis.com/eleoscompliance1.appspot.com/public/PNAF%20modificaci%C3%B3n%20ALCA87_30_04_2021.pdf country CR: DFS-FCC (2402 - 2482 @ 40), (36) (5170 - 5250 @ 20), (30) (5250 - 5330 @ 20), (30), DFS (5490 - 5730 @ 20), (30), DFS (5735 - 5835 @ 20), (36) (5875 - 5925 @ 20), (30) (5925 - 7125 @ 320), (30), NO-OUTDOOR # Source: # https://www.mincom.gob.cu/es/marco-legal # - Redes Informáticas # Resolución 98- 2019 Reglamento de Redes Inalámbricas: # https://www.mincom.gob.cu/sites/default/files/marcoregulatorio/r_98-19_reglamento_redes_inalambricas.pdf country CU: DFS-FCC (2400 - 2483.5 @ 40), (200 mW) (5150 - 5350 @ 80), (200 mW), NO-IR, NO-OUTDOOR (5470 - 5725 @ 80), (250 mW), NO-IR (5725 - 5850 @ 80), (200 mW) country CX: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # CY as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # CY: http://www.mcw.gov.cy/mcw/dec/dec.nsf/all/292484CFC7013DD4C2256EBA0023D447/$file/Sxedio%20Radiosyxnothtwn%20ths%20Dhmokratias-3-8-2018-E2.2(English%20Unified%20Unofficial).pdf?openelement country CY: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # CZ as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # CZ: https://www.ctu.cz/cs/download/vseobecna-opravneni/archiv/vo-r_12-06_2010-09.pdf # CZ: https://www.ctu.cz/sites/default/files/obsah/ctu/vseobecne-opravneni-c.vo-r/10/12.2017-10/obrazky/vo-r10-122017-10.pdf country CZ: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # DE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # # Allocation for the 2.4 GHz band (Vfg 10 / 2013, Allgemeinzuteilung von # Frequenzen für die Nutzung in lokalen Netzwerken; Wireless Local Area # Networks (WLAN-Funkanwendungen). # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2013_10_WLAN_2,4GHz_pdf.pdf # # Allocation for the 5 GHz band (Vfg. 7 / 2010, Allgemeinzuteilung von # Frequenzen in den Bereichen 5150 MHz - 5350 MHz und 5470 MHz - 5725 MHz für # Funkanwendungen zur breitbandigen Datenübertragung, WAS/WLAN („Wireless # Access Systems including Wireless Local Area Networks“). # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2010_07_WLAN_5GHz_pdf.pdf # # The ETSI EN 300 440-1 standard for short range devices in the 5 GHz band has # been implemented in Germany: # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2014_69_SRD_pdf.pdf # # Allocation for the 60 GHz band (Allgemeinzuteilung von Frequenzen im # Bereich 57 GHz - 66 GHz für Funkanwendungen für weitbandige # Datenübertragungssysteme; „Multiple Gigabit WAS/RLAN Systems (MGWS)“). # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/2011_08_MGWS_pdf.pdf # # Allocation for the WiFi 6E Band (Allgemeinzuteilung von Frequenzen im # Bereich 5945 MHz - 6425 MHz für drahtlose Zugangssysteme, # einschließlich lokaler Funknetze WAS/WLAN („Wireless Access Systems # including Wireless Local Area Networks“)) # https://www.bundesnetzagentur.de/SharedDocs/Downloads/DE/Sachgebiete/Telekommunikation/Unternehmen_Institutionen/Frequenzen/Allgemeinzuteilungen/MobilfunkDectWlanCBFunk/vfg552021WLAN6GHz.pdf country DE: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # DK as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # DK: https://ens.dk/sites/ens.dk/files/Tele/frekvensplan_0.pdf # 5GHz: https://erhvervsstyrelsen.dk/sites/default/files/007_interface-datanet_5-6_ghz.pdf.pdf # 60GHz: https://erhvervsstyrelsen.dk/sites/default/files/radiograenseflader-63.pdf country DK: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # http://www.ntrcdom.org/index.php?option=com_content&view=category&layout=blog&id=10&Itemid=55 country DM: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (30) # Source: # https://indotel.gob.do/wp-content/uploads/2022/10/res_082_2022.pdf country DO: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (30) (5925 - 7125 @ 320), (15), NO-OUTDOOR country DZ: DFS-JP (2402 - 2482 @ 40), (20) (5170.000 - 5250.000 @ 80.000), (23.00), AUTO-BW (5250.000 - 5330.000 @ 80.000), (23.00), DFS, AUTO-BW (5490.000 - 5670.000 @ 160.000), (23.00), DFS # Source: # https://www.arcotel.gob.ec/wp-content/uploads/2018/04/NORMA-ESPECTRO-DE-USO-LIBRE-Y-ESPECTRO-PARA-USO-DETERMINADO-EN-BANDAS-LIBRES.pdf country EC: DFS-FCC (2400 - 2483.5 @ 40), (1000 mW) (5150 - 5250 @ 80), (50 mW), AUTO-BW, DFS (5250 - 5350 @ 80), (125 mW), AUTO-BW, DFS (5470 - 5725 @ 160), (125 mW), DFS (5725 - 5850 @ 80), (1000 mW) # EE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # EE: https://ttja.ee/eraklient/side-ja-meediateenused/raadioside/wifi-seadmete-kasutus # EE: https://www.riigiteataja.ee/akt/117052024018?leiaKehtiv (Lisa 6) # EE: https://www.itu.int/ITU-D/study_groups/SGP_1998-2002/JGRES09/pdf/estonia.pdf country EE: DFS-ETSI (863 - 868 @ 1), (25 mW) (915.8 - 919.4 @ 1), (25 mW) (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, AUTO-BW, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW), AUTO-BW # 6 GHz band (5945 - 6425 @ 320), (200 mW), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 71000 @ 8640), (40) # https://www.tra.gov.eg/wp-content/uploads/2022/03/EGY-NTRA-March-2022-SRD_English_Final.pdf # https://www.tra.gov.eg/wp-content/uploads/2024/11/EGY-NTRA-November-2024-SRD_English-1.pdf country EG: DFS-ETSI (2402 - 2483.5 @ 40), (100 mW), NO-OUTDOOR (5150 - 5250 @ 80), (200 mW), AUTO-BW, NO-OUTDOOR, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW, NO-OUTDOOR, wmmrule=ETSI (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (40), NO-OUTDOOR # ES as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # ES: https://avancedigital.mineco.gob.es/espectro/Paginas/cnaf.aspx country ES: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country ET: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # FI as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf country FI: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country FM: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # FR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # FR: https://www.anfr.fr/fileadmin/mediatheque/documents/tnrbf/TNRBF_2021-12-14.pdf country FR: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E low power indoor (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-6 (ETSI EN 302 567 v2.2.1) (57000 - 71000 @ 2160), (40) # GB as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # GB: https://www.ofcom.org.uk/__data/assets/pdf_file/0019/136009/Ofcom-Information-Sheet-5-GHz-RLANs.pdf # GB: https://www.ofcom.org.uk/__data/assets/pdf_file/0028/84970/ir-2030.pdf # GB: https://www.ofcom.org.uk/__data/assets/pdf_file/0013/126121/Statement_Implementing-Ofcoms-decision-on-the-57-71GHz-band.pdf country GB: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5730 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5850 @ 80), (200 mW), NO-OUTDOOR (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-6 (57000 - 71000 @ 2160), (40) country GD: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country GE: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (18), AUTO-BW (5250 - 5330 @ 80), (18), DFS, AUTO-BW (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) country GF: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country GH: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) country GL: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country GP: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI # GR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # GR: https://www.eett.gr/opencms/export/sites/default/EETT_EN/Electronic_Communications/Radio_Communications/TelecommunicationEquipment/Radio_equipment_interface_requirement_2012.pdf # GR: https://www.eett.gr/opencms/export/sites/default/EETT_EN/Electronic_Communications/Radio_Communications/TelecommunicationEquipment/Radio_equipment_interface_requirement_107.pdf country GR: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # https://sit.gob.gt/download/9685/tabla-nacional-de-atribucion-de-frecuencias/01WRXSS3QHSADNOSHDZ5HIWXE4TFFW3YIU/4.%20Tabla%20Nacional%20Atribuci%C3%B3n%20Frecuencias%20(Pies%20de%20P%C3%A1gina) country GT: (2400 - 2483.5 @ 40), (500 mW) (5150 - 5350 @ 80), (200 mW), NO-OUTDOOR (5470 - 5725 @ 160), (250 mW), NO-OUTDOOR (5725 - 5850 @ 80), (500 mW), NO-OUTDOOR (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR, AUTO-BW (6425 - 6525 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (6525 - 6875 @ 320), (150 mW), NO-OUTDOOR, AUTO-BW (6875 - 7125 @ 160), (150 mW), NO-OUTDOOR, AUTO-BW (57000 - 66000 @ 2160), (20 mW), NO-OUTDOOR country GU: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 20), (17) (5250 - 5330 @ 20), (24), DFS (5490 - 5730 @ 20), (24), DFS (5735 - 5835 @ 20), (30) country GY: (2402 - 2482 @ 40), (30) (5170 - 5250 @ 80), (23), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5490 - 5730 @ 160), (23), DFS (5735 - 5835 @ 80), (30) # Source: # https://www.ofca.gov.hk/filemanager/ofca/en/content_401/hkca1039.pdf (2.4 GHz and 5 GHz) # https://www.ofca.gov.hk/filemanager/ofca/en/content_401/hkca1081.pdf (6 GHz) country HK: DFS-ETSI (2400 - 2483.5 @ 40), (36) (5150 - 5250 @ 80), (23), AUTO-BW, NO-OUTDOOR (5250 - 5350 @ 80), (23), DFS, AUTO-BW, NO-OUTDOOR (5470 - 5730 @ 160), (27), DFS (5730 - 5850 @ 80), (36) (5925 - 6425 @ 160), (14) # Source: # https://www.conatel.gob.hn/doc/Regulacion/resoluciones/2023/NR05-23.pdf country HN: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (12), NO-OUTDOOR, NO-IR (57240 - 71000 @ 2160), (40) country HR: DFS-ETSI # HR as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # HR: http://tablice.hakom.hr:8080/vis?lang=en # 6E: https://www.hakom.hr/UserDocsImages/op%C4%87e%20dozvole%20prosinac%202009.g/Opca_dozvola_236.pdf (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (200 mW), DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country HT: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # HU as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # HU: http://stir.nmhh.hu/?oldal=dokumentumGeneralo&root_rendeletelem_id=3&hatalyos=1 # HU: http://english.nmhh.hu/cikk/297/Eljarasi_tajekoztato_a_24_GHzes_es_az_5_GHzes_savban_mukodo_berendezesek_engedelyezeserol # HU: http://nmhh.hu/dokumentum/319/kis_hatotavolsagu_eszkozok_srdk.pdf country HU: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # https://jdih.kominfo.go.id/produk_hukum/view/id/676/t/peraturan+menteri+komunikasi+dan+informatika+nomor+1+tahun+2019+tanggal+24+april+2019 # https://jdih.komdigi.go.id/produk_hukum/view/id/949/t/peraturan+menteri+komunikasi+dan+digital+nomor+2+tahun+2025 country ID: (2400 - 2483.5 @ 40), (500 mW), NO-OUTDOOR (5150 - 5350 @ 160), (200 mW), NO-OUTDOOR (5725 - 5825 @ 80), (200 mW), NO-OUTDOOR (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR (57000 - 64000 @ 2160), (10000 mW), NO-OUTDOOR # IE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # IE: https://www.comreg.ie/publication-download/interface-requirements-for-radio-services-in-ireland # IE: https://www.comreg.ie/publication-download/permitted-short-range-devices-ireland country IE: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # IL: Wireless Telegraph Regulations (type approval) (2021) # IL: published on 29 March 2021 in KOVETS HATAKANOT No. 9301. # IL: https://www.gov.il/he/departments/legalInfo/telegraph_law # IL: official document (pdf): https://rfa.justice.gov.il/SearchPredefinedApi/Documents/IdngyMn~ojdQSrkxuAqfZqiM8c1foi3TSZQhp7OMszo= # IL: also available as unofficial word doc: https://www.nevo.co.il/Handlers/LawOpenDoc.ashx?id=199708 # https://www.nevo.co.il/law_html/law01/502_483.htm#Seif9 country IL: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW # Table B List of conditions, row 63, indoor short range device without TPC (ETSI EN 301 893) (5470 - 5725 @ 160), (500 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI # Table B List of conditions, row 68a (5725 - 5875 @ 80), (25 mW), AUTO-BW (5945 - 6425 @ 320), (200 mW), NO-OUTDOOR # Source: # https://dot.gov.in/spectrummanagement/delicensing-24-24835-ghz-band-gsr-45-e-5150-5350-ghz-gsr-46-e-and-5725-5875-ghz # https://dot.gov.in/spectrummanagement/license-exemption-5-ghz-gsr-1048e-dated-22102018 country IN: (2402 - 2482 @ 40), (30) (5150 - 5250 @ 80), (30) (5250 - 5350 @ 80), (24), DFS (5470 - 5725 @ 160), (24), DFS (5725 - 5875 @ 80), (30) # Source: # https://asnad.cra.ir/fa/Public/Documents/Details/73af8590-f065-eb11-968f-0050569b0899 country IR: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW) (5250 - 5350 @ 80), (200 mW), DFS, NO-OUTDOOR (5470 - 5725 @ 160), (27), DFS, NO-INDOOR # IS as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # IS: https://www.pfs.is/library/Skrar/Tidnir-og-taekni/MHZ_21022019.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country IS: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # IT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf country IT: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country JM: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # https://trc.gov.jo/EchoBusV3.0/SystemAssets/PDF/RSMD/cb9f9a83-43a6-4e66-8432-6e02ecaf465b_RLAN%20Arabic%20%20Final%20-%20clean%20with%2057-71%20GHz.pdf # ETSI EN 301 893: https://www.etsi.org/deliver/etsi_en/301800_301899/301893/02.01.01_60/en_301893v020101p.pdf country JO: DFS-ETSI (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), AUTO-BW (5250 - 5350 @ 80), (23), DFS, AUTO-BW (5470 - 5725 @ 80), (27), DFS, NO-OUTDOOR (5725 - 5875 @ 80), (23), NO-OUTDOOR (5925 - 6425 @ 320), (23), NO-OUTDOOR (57000 - 71000 @ 2160), (40) # Source: # https://www.soumu.go.jp/main_content/000635492.pdf # https://www.soumu.go.jp/main_content/000833682.pdf # https://www.soumu.go.jp/main_content/000919158.pdf country JP: DFS-JP (2402 - 2482 @ 40), (20) (2474 - 2494 @ 20), (20), NO-OFDM (4910 - 4990 @ 40), (23) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5730 @ 160), (23), DFS (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR # 60 GHz band channels 2-4 at 10mW, # ref: http://www.arib.or.jp/english/html/overview/doc/1-STD-T74v1_1.pdf (57000 - 66000 @ 2160), (10 mW) # Source: # https://www.ca.go.ke/sites/default/files/2023-06/Guidelines-on-the-Use-of-Radiofrequency-Spectrum-by-Short-Range-Devices-2022.pdf # ETSI EN 301 893: https://www.etsi.org/deliver/etsi_en/301800_301899/301893/02.01.01_60/en_301893v020101p.pdf # ETSI EN 302 502: https://www.etsi.org/deliver/etsi_en/302500_302599/302502/02.01.01_60/en_302502v020101p.pdf country KE: DFS-ETSI (2400 - 2483.5 @ 40), (2000 mW) (5150 - 5250 @ 80), (17), AUTO-BW (5250 - 5350 @ 80), (17), DFS, AUTO-BW (5470 - 5725 @ 80), (24), DFS (5725 - 5875 @ 40), (24), DFS (5925 - 6425 @ 320), (23), NO-OUTDOOR country KH: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source # http://ntrc.kn/?page_id=7 country KN: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (30), DFS (5735 - 5815 @ 80), (30) country KP: DFS-JP (2402 - 2482 @ 20), (20) (5170 - 5250 @ 20), (20) (5250 - 5330 @ 20), (20), DFS (5490 - 5630 @ 20), (30), DFS (5735 - 5815 @ 20), (30) # Source: # https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000205195 # https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000205187 # https://www.law.go.kr/LSW//admRulLsInfoP.do?chrClsCd=&admRulSeq=2100000206568 country KR: DFS-JP (2400 - 2483.5 @ 40), (23) (5150 - 5230 @ 40), (23), AUTO-BW # max. PSD 2.5 mW/MHz in 5230-5250 MHz frequency range (5230 - 5250 @ 20), (17), AUTO-BW (5250 - 5350 @ 80), (20), DFS, AUTO-BW (5470 - 5725 @ 160), (20), DFS (5725 - 5850 @ 80), (23) # 6 GHz band (5925 - 7125 @ 160), (15), NO-OUTDOOR # 60 GHz band channels 1-4 (57000 - 66000 @ 2160), (43) # Source: # https://citra.gov.kw/sites/ar/Lists/CITRALaws/Attachments/14/%D8%A7%D9%84%D9%84%D8%A7%D8%A6%D8%AD%D8%A9%20%D8%A7%D9%84%D8%AA%D9%86%D8%B8%D9%8A%D9%85%D9%8A%D8%A9%20%D9%84%D8%AE%D8%AF%D9%85%D8%A9%20%D8%A7%D9%84%D9%88%D8%A7%D9%8A%20%D9%81%D8%A7%D9%8A.pdf country KW: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5170 - 5250 @ 80), (200 mW), AUTO-BW (5250 - 5350 @ 80), (17), DFS, AUTO-BW (5470 - 5825 @ 160), (24), DFS (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR # Source: https://www.ofreg.ky/viewPDF/documents/2024-11-19-16-28-50-OfReg-WiFi-Permitted-Parameters-V2.pdf country KY: DFS-FCC (2400 - 2483.5 @ 40), (1000 mW) (5150 - 5250 @ 80), (250 mW), AUTO-BW (5250 - 5350 @ 80), (250 mW), DFS, AUTO-BW (5470 - 5730 @ 160), (250 mW), DFS (5725 - 5875 @ 80), (1000 mW) (5925 - 6425 @ 320), (12), NO-OUTDOOR (57000 - 71000 @ 2160), (40) # Source: # http://adilet.zan.kz/rus/docs/V1500010730 # http://adilet.zan.kz/rus/docs/V1500010375 country KZ: DFS-ETSI (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (20), NO-OUTDOOR, DFS, AUTO-BW (5470 - 5725 @ 160), (20), NO-OUTDOOR, DFS (5725 - 5850 @ 80), (20), NO-OUTDOOR (57000 - 66000 @ 2160), (40) country LB: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # http://www.ntrc.org.lc/operational_structures.htm country LC: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (30), DFS (5735 - 5815 @ 80), (30) # LI as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # LI: https://www.ofcomnet.ch/api/rir/1010/05 # LI: https://www.ofcomnet.ch/api/rir/1010/04 # LI: https://www.ofcomnet.ch/api/rir/1008/12 # LI: https://www.ofcomnet.ch/#/fatTable # LI: https://www.ofcomnet.ch/api/rir/1010/11 # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country LI: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country LK: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 20), (17) (5250 - 5330 @ 20), (24), DFS (5490 - 5730 @ 20), (24), DFS (5735 - 5835 @ 20), (30) # Source: # http://lca.org.ls/images/documents/lesotho_national_frequency_allocation_plan.pdf country LS: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # LT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # LT: https://www.rrt.lt/en/radio-spectrum/frequency-management/ or direct link: # LT: https://www.e-tar.lt/portal/lt/legalAct/6e718fd037a011e69101aaab2992cbcd/dGRioCBBHb country LT: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # LU as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # LU: https://assets.ilr.lu/frequences/Documents/ILRLU-1723895916-183.pdf#search=en%20300%20440 country LU: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # LV as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # LV: http://likumi.lv/doc.php?id=198903 country LV: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # https://www.anrt.ma/sites/default/files/decision_a2fp_-vf-_mod_07.05.2021.pdf?csrt=14818568393101165775 country MA: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR # MC as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country MC: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # Source: # http://www.cnfr.md/index.php?pag=sec&id=117&l=en # MD as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # https://www.legis.md/cautare/downloadpdf/134846 # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country MD: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # Source: # http://www.cept.org/files/1050/Tools%20and%20Services/EFIS%20-%20ECO%20Frequency%20Information%20System/National%20frequency%20tables/Montenegro%20NAFT%20-%202010.pdf # ME as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country ME: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR country MF: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country MH: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # MK as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country MK: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) # Communications Regulatory Commission- CRC released Amendment to Resolution No. 37 of 2020 # https://www.crc.gov.mn/storage/PDF/2022/2022-togtool1.pdf country MN: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (100mW) # Source: # https://bo.io.gov.mo/bo/i/2024/16/despce.asp#64 country MO: DFS-FCC (2400 - 2483.5 @ 40), (200 mW) (5150 - 5250 @ 80), (200 mW), AUTO-BW (5250 - 5350 @ 80), (200 mW), DFS, AUTO-BW (5470 - 5730 @ 160), (1000 mW), DFS (5725 - 5850 @ 80), (1000 mW) (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (10000 mW) country MP: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) country MQ: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI # Source: # http://www.are.mr/pdfs/telec_freq_TNAbf_2010.pdf country MR: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # MT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # MT: https://www.mca.org.mt/sites/default/files/NFP_edition%206-1.pdf country MT: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # https://www.icta.mu/documents/2022/08/wifi6e_decision_0822.pdf country MU: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5945 - 6425 @ 320), (23), NO-OUTDOOR # Source: # http://www.cam.gov.mv/docs/tech_standards/TAM-TS-100-2004-WLAN.pdf country MV: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), AUTO-BW (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW (5725 - 5850 @ 80), (100 mW) country MW: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # https://www.ift.org.mx/sites/default/files/comunicacion-y-medios/comunicados-ift/comunicado13ift_1.pdf # https://www.dof.gob.mx/nota_detalle.php?codigo=5681829&fecha=07/03/2023#gsc.tab=0 country MX: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (12), NO-OUTDOOR # Source: # https://www.mcmc.gov.my/skmmgovmy/media/General/CA-No-1-of-2022_-signed_19012022.pdf country MY: DFS-FCC (2402 - 2482 @ 40), (500 mW) (5170 - 5250 @ 80), (1000 mW), AUTO-BW (5250 - 5330 @ 80), (1000 mW), DFS, AUTO-BW (5490 - 5650 @ 160), (1000 mW), DFS (5735 - 5835 @ 80), (1000 mW) (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR # Source: # https://www.cran.na/yglilidy/2023/04/GG-8060-dated-3-April-2023.pdf country NA: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (20), AUTO-BW, NO-OUTDOOR (5250 - 5350 @ 80), (20), DFS, AUTO-BW, NO-OUTDOOR (5470 - 5725 @ 160), (21), DFS (5725 - 5875 @ 80), (24), DFS (5925 - 6425 @ 320), (23), NO-OUTDOOR (57000 - 66000 @ 2160), (40), NO-OUTDOOR country NG: DFS-ETSI (2402 - 2482 @ 40), (20) (5250 - 5330 @ 80), (30), DFS (5735 - 5835 @ 80), (30) country NI: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # NL as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # NL: http://wetten.overheid.nl/BWBR0036378/2015-03-05 # Updated 14 december 2021 to allow the lower part of the 6GHz spectrum for WiFi 6E # mobile short distance equipment, broadband transmission equipment, license free, from day after publication # NL announcement: https://zoek.officielebekendmakingen.nl/stcrt-2021-49492.pdf # NL law: https://wetten.overheid.nl/BWBR0036378/2021-12-15 country NL: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # NO as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # NO: https://eng.nkom.no/technical/temporary-licenses/mobile-videolink/wireless-cameras-mobile-video-links/_attachment/9947 # NO: http://www.lovdata.no/dokument/SF/forskrift/2012-01-19-77 # In addition to EU NO can use 5725–5795 MHz and 5815–5850 bands with limit of 4 W EIRP (with DFS and TPC) # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country NO: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # WiFi 6E (5945 - 6425 @ 320), (200 mW), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 71000 @ 2160), (40) country NP: DFS-JP (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5735 - 5835 @ 80), (20) # Source: # https://gazette.govt.nz/notice/id/2022-go3100 country NZ: DFS-ETSI (2400 - 2483.5 @ 40), (36) (5150 - 5250 @ 80), (30), AUTO-BW (5250 - 5350 @ 80), (27), DFS, AUTO-BW (5470 - 5730 @ 160), (27), DFS (5725 - 5875 @ 80), (36) (5925 - 6425 @ 320), (24), NO-OUTDOOR (57000 - 71000 @ 2160), (40) country OM: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW), NO-OUTDOOR (5170 - 5250 @ 80), (200 mW), AUTO-BW (5250 - 5350 @ 80), (20), DFS, AUTO-BW (5470 - 5725 @ 160), (27), DFS (5725 - 5850 @ 80), (28), DFS, NO-INDOOR (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (40), NO-OUTDOOR # Source: # http://www.asep.gob.pa/images/telecomunicaciones/Anexos/PNAF-dic2015.pdf country PA: DFS-FCC (2400 - 2483.5 @ 40), (36) (5150 - 5250 @ 80), (36), AUTO-BW (5250 - 5350 @ 80), (30), AUTO-BW (5470 - 5725 @ 160), (30) (5725 - 5850 @ 80), (36) (57000 - 64000 @ 2160), (43) # Source: # https://cdn.www.gob.pe/uploads/document/file/1861732/Resoluci%C3%B3n%20Ministerial%20nro%20373-2021-MTC/01.pdf country PE: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 7125 @ 320), (12), NO-OUTDOOR country PF: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country PG: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # NTC MC 09-09-2003 https://ntc.gov.ph/wp-content/uploads/2015/10/LawsRulesRegulations/MemoCirculars/MC2003/MC-09-09-2003.pdf # NTC MC 03-05-2007 https://ntc.gov.ph/wp-content/uploads/2015/10/LawsRulesRegulations/MemoCirculars/MC2007/MC-03-05-2007.pdf # NTC MC 03-08-2013 https://region7.ntc.gov.ph/images/LawsRulesAndRegulations/MC/WDN/MC_03-08-2013.pdf # NTC MC 01-01-2016 https://ntc.gov.ph/wp-content/uploads/2016/MC/Explanatory-MC-No-01-01-2016.pdf # NTC MC 002-07-2024 https://ntc.gov.ph/wp-content/uploads/2024/MEMORANDUM%20CIRCULAR/NTC%20MC%20No.%20002-07-2024.pdf # 2400 - 2483.5 MHz: NTC MC 09-09-2003, Section 3.1; NTC MC 03-08-2013, Section 3.1; NTC MC 03-05-2007, Section 2 # 5150 - 5350 MHz: NTC MC 09-09-2003, Section 3.1; NTC MC 03-08-2013, Section 3.1; NTC MC 03-05-2007, Section 2 # 5470 - 5850 MHz: NTC MC 09-09-2003, Section 3.1; NTC MC 03-08-2013, Section 3.1 NTC MC 03-05-2007, Section 2 # 5925 - 6425 MHz: NTC MC 002-07-2024, Section 1; NTC MC 03-05-2007, Section 2 # 57000 - 66000 MHz: NTC MC 01-01-2016, Section 1 country PH: DFS-FCC (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), AUTO-BW (5250 - 5350 @ 80), (23), DFS, AUTO-BW (5470 - 5725 @ 160), (24), DFS (5725 - 5850 @ 80), (24) (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (24) country PK: # https://fab.gov.pk/type-approval/ # https://pta.gov.pk/media/Pakistan_Table_of_Frequency_Allocations.pdf # https://www.pta.gov.pk/assets/media/iot_srd_regulatory_framework_01-06-2022.pdf # https://www.pta.gov.pk/assets/media/2024-09-23-WLAN-Framework-Final-05-09-2024.pdf (2400 - 2500 @ 40), (30) (5725 - 5875 @ 80), (30) (5945 - 6425 @ 320), (23), NO-OUTDOOR # PL as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf country PL: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country PM: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country PR: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # PT as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # PT: https://www.anacom.pt/render.jsp?categoryId=336334 country PT: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) country PW: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # https://www.conatel.gov.py/conatel/wp-content/uploads/2025/05/2025-rd-1035-sistema-acceso-inalambrico-baja-potencia-6ghz-norma-tecnica.pdf country PY: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (12), NO-OUTDOOR # Source: # https://www.cra.gov.qa/-/media/System/D/2/5/8/D258CF18B83A5613B0D590193CB799CB/Class-License-WIFI-6E-Final-English-032022--V3.ashx country QA: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW), NO-OUTDOOR (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (200 mW), NO-OUTDOOR, DFS, AUTO-BW (5470 - 5725 @ 160), (100 mW), NO-OUTDOOR, DFS (5725 - 5875 @ 80), (100 mW), NO-OUTDOOR, DFS (5925 - 6425 @ 320), (23), NO-OUTDOOR (57000 - 66000 @ 2160), (40), NO-OUTDOOR country RE: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI # RO as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # RO: http://www.ancom.org.ro/en/uploads/links_files/ordin_262_2006.pdf country RO: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # http://www.ratel.rs/upload/documents/Plan_namene/Plan_namene-sl_glasnik.pdf # RS as part of CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # https://www.ratel.rs/uploads/documents/empire_plugin/Uredba%20o%20utvrdjivanju%20Plana%20namene%20radiofrekvencijskih%20opsega.pdf country RS: DFS-ETSI (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), AUTO-BW (5250 - 5350 @ 80), (23), DFS, AUTO-BW (5470 - 5725 @ 160), (27), DFS (5725 - 5850 @ 80), (24), DFS, AUTO-BW (5850 - 5875 @ 20), (24), AUTO-BW (5925 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) # Source: https://docs.cntd.ru/document/1300597464?section=text country RU: (2400 - 2483.5 @ 40), (100mW) (5150 - 5350 @ 160), (100 mW), NO-OUTDOOR (5650 - 5850 @ 160), (100 mW), NO-OUTDOOR (5925 - 6425 @ 160), (100 mW), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Changes to NLA 124_Order №129_22042015.pdf (57000 - 66000 @ 2160), (40), NO-OUTDOOR country RW: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: https://www.citc.gov.sa/en/RulesandSystems/RegulatoryDocuments/OtherRegulatoryDocuments/Documents/PL-PM-002-E-WiFi%20Regulations.pdf country SA: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS (5925 - 7125 @ 320), (250 mW), NO-OUTDOOR # SE as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # SE: https://pts.se/globalassets/startpage/dokument/legala-dokument/foreskrifter/radio/beslutade_ptsfs-2018-3-undantagsforeskrifter.pdf country SE: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # https://www.imda.gov.sg/-/media/imda/files/regulation-licensing-and-consultations/ict-standards/telecommunication-standards/radio-comms/imdatssrd.pdf # IMDA TS SRD, Issue 1 Revision 3, Sep 2023, subsequently "IMDA TS SRD" # 2400 - 2483.5 MHz: IMDA TS SRD, Table 1 Sub-band 32e # 5150 - 5350 MHz: IMDA TS SRD, Table 1 Sub-band 33a # 5470 - 5725 MHz: IMDA TS SRD, Table 1 Sub-band 34 # 5725 - 5850 MHz: IMDA TS SRD, Table 1 Sub-band 35 # 5945 - 6425 MHz: IMDA TS SRD, Table 1 Sub-band 45b # 57000 - 66000 MHz: IMDA TS SRD, Table 1 Sub-band 40 # Note: 500mW for 5470-5725MHz bands per FCC Part 15 Section 15.407 (2) 5.47-5.725 GHz as referenced by IMDA TS SRD # AU and BG regulatory domains use the same interpretation of cited FCC and ETSI standards # Note: The transmit power for 5250-5350MHz bands can be raised (by 3dBm) to 200mW when TPC is implemented: IMDA TS SRD, Table 1 Sub-band 33a # Note: The transmit power for 5470-5725MHz bands can be raised (by 3dBm) to 1000mW when TPC is implemented: IMDA TS SRD Table 1 Sub-band 34 country SG: DFS-FCC (2400 - 2483.5 @ 40), (200 mW) (5150 - 5250 @ 80), (200 mW), AUTO-BW (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW # This range ends at 5725 MHz, but channel 144 extends to 5730 MHz. # Since 5725 ~ 5730 MHz belongs to the next range which has looser # requirements, we can extend the range by 5 MHz to make the kernel # happy and be able to use channel 144. (5470 - 5730 @ 160), (500 mW), DFS (5725 - 5850 @ 80), (1000 mW) (5945 - 6425 @ 320), (250 mW), NO-OUTDOOR (57000 - 66000 @ 2160), (10000 mW) # SI as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # SI: https://www.akos-rs.si/bwa country SI: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # SK as part of EU/CEPT accepted decisions 2005/513/EC (5GHz RLAN, EN 301 893) # and 2006/771/EC (amended by 2008/432/EC, Short-Range Devices, EN 300 440) # EU decision 2005/513/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02005D0513-20070213 # EU decision 2006/771/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:02008D0432-20080611 # EU decision 2021/1067/EC: https://eur-lex.europa.eu/legal-content/EN/TXT/PDF/?uri=CELEX:32021D1067&from=EN # Harmonized CEPT countries (July 2019): https://www.ecodocdb.dk/download/25c41779-cd6e/Rec7003e.pdf # SK: https://www.teleoff.gov.sk/data/files/25911.pdf # SK: https://www.teleoff.gov.sk/data/files/41072.pdf # SK: https://www.teleoff.gov.sk/data/files/49125_vpr-01_2018-rusi-vpr-10_2014a21_2012-nespecifik-srd_021018.pdf country SK: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), NO-OUTDOOR, DFS, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (500 mW), DFS, wmmrule=ETSI # short range devices (ETSI EN 300 440-1) (5725 - 5875 @ 80), (25 mW) # 6 GHz band (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4 (ETSI EN 302 567) (57000 - 66000 @ 2160), (40) # Source: # Regulation N° 2004-005 ART/DG/DRC/D.Rég country SN: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) country SR: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # https://www.siget.gob.sv/actualizacion-de-cuadro-nacional-de-atribucion-de-frecuencias-t-0408-2023/ country SV: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 20), (17) (5250 - 5330 @ 20), (23), DFS (5735 - 5835 @ 20), (30) (5925 - 7125 @ 320), (12), NO-OUTDOOR # Source: # https://sytpra.gov.sy/public/uploads/files/%D8%A7%D9%84%D8%A7%D8%B7%D8%A7%D8%B1%20%D8%A7%D9%84%D9%82%D8%A7%D9%86%D9%88%D9%86%D9%8A/%D9%84%D9%88%D8%A7%D8%A6%D8%AD%20%D8%AA%D9%86%D8%B8%D9%8A%D9%85%D9%8A%D8%A9/%D9%84%D9%88%D8%A7%D8%A6%D8%AD%20%D8%A7%D9%84%D8%B7%D9%8A%D9%81%20%D8%A7%D9%84%D8%AA%D8%B1%D8%AF%D8%AF%D9%8A%20%D8%A7%D9%84%D8%B1%D8%A7%D8%AF%D9%8A%D9%88%D9%8A/L1.pdf country SY: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW), NO-OUTDOOR (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, DFS (5470 - 5725 @ 160), (200 mW), NO-OUTDOOR, DFS (5725 - 5850 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW, DFS (5850 - 5875 @ 20), (200 mW), NO-OUTDOOR, AUTO-BW (57000 - 66000 @ 2160), (40), NO-OUTDOOR # Source: # http://www.telecommission.tc/Spectrum-plan20110324-101210.html country TC: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (24), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5730 @ 160), (24), DFS, wmmrule=ETSI (5735 - 5835 @ 80), (30) country TD: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # https://arcep.tg/wp-content/uploads/2022/12/Decision-226-22-Determinant-les-categories-et-conditions-techniques-dexploitation-des-appareils-de-faible-puissance-et-de-faible-portee.pdf country TG: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW), DFS (5150 - 5350 @ 80), (20), DFS (5470 - 5850 @ 160), (27), DFS (5925 - 6425 @ 320), (23), DFS, NO-OUTDOOR (57000 - 66000 @2160), (40), DFS # Source: # https://ratchakitcha.soc.go.th/documents/140D100S0000000004000.pdf # https://ratchakitcha.soc.go.th/documents/140D100S0000000004200.pdf # https://ratchakitcha.soc.go.th/documents/140D100S0000000004300.pdf country TH: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) (5925 - 6425 @ 320), (250 mW), NO-OUTDOOR country TN: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW # Source: # Technical Criteria for Radio Devices and Systems Excluded from Frequency Allocation, Sept 9, 2022 # https://www.btk.gov.tr/uploads/pages/ftm-teknik-olcutler-ek-5.pdf # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country TR: DFS-ETSI (2400 - 2483.5 @ 40), (20) (5150 - 5250 @ 80), (23), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (27), DFS, wmmrule=ETSI (5945 - 6425 @ 320), (23), NO-OUTDOOR, wmmrule=ETSI # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40) country TT: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # Table of Frequency Allocations of Republic of China (Taiwan) / Feb 2017: # https://www.motc.gov.tw/websitedowndoc?file=post/201702221012200.doc& \ # filedisplay=Table%2Bof%2Bradio%2Bfrequency%2Ballocation.doc # LP0002 Low-power Radio-frequency Devices Technical Regulations / 6 Feb 2024: # https://www.ncc.gov.tw/chinese/files/24020/538_49880_240206_3.pdf country TW: DFS-FCC # 2.4g band, LP0002 section 4.10.1 (2400 - 2483.5 @ 40), (30) # 5g U-NII band, LP0002 section 5.7 # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients (5150 - 5250 @ 80), (23), AUTO-BW (5250 - 5350 @ 80), (23), DFS, AUTO-BW # This range ends at 5725 MHz, but channel 144 extends to 5730 MHz. # Since 5725 ~ 5730 MHz belongs to the next range which has looser # requirements, we can extend the range by 5 MHz to make the kernel # happy and be able to use channel 144. (5470 - 5730 @ 160), (23), DFS (5725 - 5850 @ 80), (30) # 6g band, LP0002 section 5.13.1.1, EIRP=23dBm (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60g band, LP0002 section 4.13.1.1 (1)(A), EIRP=40dBm(43dBm peak) (57000 - 66000 @ 2160), (40) # Source: # https://www.tcra.go.tz/download/sw-1719952895-Minimum%20Technical%20Specifications%20for%20Short%20Range%20Devices%20(SRD),%20June%202024.pdf country TZ: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW) (5150 - 5250 @ 80), (200 mW), AUTO-BW, NO-OUTDOOR (5250 - 5350 @ 80), (20), DFS, AUTO-BW, NO-OUTDOOR (5470 - 5725 @ 160), (250 mW), DFS (5725 - 5850 @ 80), (24), DFS (5945 - 6425 @ 320), (23), NO-OUTDOOR # Source: https://zakon.rada.gov.ua/laws/show/z0201-15#n48 # Although it is allowed to use up to 250 mW for some 5 GHz frequency ranges, # all of them are limited to 100 mW for IEEE 802.11n and IEEE 802.11ac. # 2.4 GHz band channels can be used outdoors when some requirements are met. # 5 GHz band channels must be used only indoors in some cases. They are neither # permitted nor denied outdoors in others. # Harmonized CEPT countries for 6 GHz (ECC Decision (20)01) # https://docdb.cept.org/implementation/16737 # https://docdb.cept.org/download/4685 country UA: DFS-ETSI (2400 - 2483.5 @ 40), (100 mW), NO-OUTDOOR (5150 - 5250 @ 80), (100 mW), NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5250 - 5350 @ 80), (100 mW), DFS, NO-OUTDOOR, AUTO-BW, wmmrule=ETSI (5470 - 5725 @ 160), (100 mW), DFS, NO-OUTDOOR, wmmrule=ETSI (5725 - 5850 @ 80), (100 mW), NO-OUTDOOR (5945 - 6425 @ 320), (23), NO-OUTDOOR # 60 GHz band channels 1-4, ref: Etsi En 302 567 (57000 - 66000 @ 2160), (40 mW), NO-OUTDOOR country UG: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # https://www.ecfr.gov/cgi-bin/text-idx?SID=eed706a2c49fd9271106c3228b0615f3&mc=true&node=pt47.1.15&rgn=div5 # Title 47 Part 15 - Radio Frequency Devices, April 2, 2020 # Channels 12 and 13 are not forbidden, but are not normally used with full # power in order to avoid any potential interference in the adjacent restricted # frequency band, 2,483.5–2,500 MHz which is subject to strict emission limits # set out in 47 CFR § 15.205. TODO: reenable and specify a safe TX power here. country US: DFS-FCC # S1G Channel 1-3 (902 - 904 @ 2), (30) # S1G Channel 5-35 (904 - 920 @ 16), (30) # S1G Channel 37-51 (920 - 928 @ 8), (30) (2400 - 2472 @ 40), (30) # 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients (5150 - 5250 @ 80), (23), AUTO-BW (5250 - 5350 @ 80), (24), DFS, AUTO-BW # This range ends at 5725 MHz, but channel 144 extends to 5730 MHz. # Since 5725 ~ 5730 MHz belongs to the next range which has looser # requirements, we can extend the range by 5 MHz to make the kernel # happy and be able to use channel 144. (5470 - 5730 @ 160), (24), DFS (5730 - 5850 @ 80), (30), AUTO-BW # https://www.federalregister.gov/documents/2021/05/03/2021-08802/use-of-the-5850-5925-ghz-band # max. 33 dBm AP @ 20MHz, 36 dBm AP @ 40Mhz+, 6 dB less for clients (5850 - 5895 @ 40), (27), NO-OUTDOOR, AUTO-BW, NO-IR # 6g band # https://www.federalregister.gov/documents/2020/05/26/2020-11236/unlicensed-use-of-the-6ghz-band (5925 - 7125 @ 320), (12), NO-OUTDOOR, NO-IR # 60g band # reference: section IV-D https://docs.fcc.gov/public/attachments/FCC-16-89A1.pdf # channels 1-6 EIRP=40dBm(43dBm peak) (57240 - 71000 @ 2160), (40) country UY: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (23), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (30) # Source: # http://cemc.uz/article/1976/ country UZ: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW # Source: # http://www.ntrc.vc/regulations/Jun_2006_Spectrum_Managment_Regulations.pdf country VC: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS # Source: # Official Gazette (Gaceta Oficial) concerning Unlicensed transmitter use # (10 June 2013) # http://www.conatel.gob.ve/ country VE: DFS-FCC (2402 - 2482 @ 40), (30) (5170 - 5250 @ 80), (23), AUTO-BW (5250 - 5330 @ 80), (23), DFS, AUTO-BW (5735 - 5835 @ 80), (30) country VI: DFS-FCC (2402 - 2472 @ 40), (30) (5170 - 5250 @ 80), (24), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) # Source: # https://datafiles.chinhphu.vn/cpp/files/vbpq/2021/10/08-btttt.signed.pdf # https://mic.gov.vn/van-ban-phap-luat/25099.htm country VN: DFS-FCC (2400 - 2483.5 @ 40), (200 mW) (5150 - 5250 @ 80), (200 mW), NO-OUTDOOR, AUTO-BW (5250 - 5350 @ 80), (100 mW), DFS, AUTO-BW (5470 - 5725 @ 160), (500 mW), DFS, AUTO-BW (5725 - 5850 @ 80), (1000 mW), AUTO-BW (5925 - 6425 @ 320), (200 mW), NO-OUTDOOR, AUTO-BW (57000 - 66000 @ 2160), (10000 mW), NO-OUTDOOR # Source: # http://www.trr.vu/attachments/category/130/GURL_for_Short-range_Radiocommunication_Devices2.pdf country VU: DFS-FCC (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (17), AUTO-BW (5250 - 5330 @ 80), (24), DFS, AUTO-BW (5490 - 5730 @ 160), (24), DFS (5735 - 5835 @ 80), (30) country WF: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI country WS: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 40), (20) (5250 - 5330 @ 40), (20), DFS (5490 - 5710 @ 40), (27), DFS country YE: (2402 - 2482 @ 40), (20) country YT: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW, wmmrule=ETSI (5250 - 5330 @ 80), (20), DFS, AUTO-BW, wmmrule=ETSI (5490 - 5710 @ 160), (27), DFS, wmmrule=ETSI # Source: https://www.gov.za/sites/default/files/gcis_document/202305/48643gon1822.pdf country ZA: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (30) (5925 - 6425 @ 320), (14) country ZW: DFS-ETSI (2402 - 2482 @ 40), (20) (5170 - 5250 @ 80), (20), AUTO-BW (5250 - 5330 @ 80), (20), DFS, AUTO-BW (5490 - 5710 @ 160), (27), DFS wireless-regdb-2025.07.10/db2bin.py000077500000000000000000000071301503362776000165550ustar00rootroot00000000000000#!/usr/bin/env python from io import BytesIO, open import struct import hashlib from dbparse import DBParser import sys MAGIC = 0x52474442 VERSION = 19 if len(sys.argv) < 3: print('Usage: %s output-file input-file [key-file]' % sys.argv[0]) sys.exit(2) def create_rules(countries): result = {} for c in countries.values(): for rule in c.permissions: result[rule] = 1 return list(result) def create_collections(countries): result = {} for c in countries.values(): result[c.permissions] = 1 return list(result) def be32(output, val): output.write(struct.pack('>I', val)) class PTR(object): def __init__(self, output): self._output = output self._pos = output.tell() be32(output, 0xFFFFFFFF) def set(self, val=None): if val is None: val = self._output.tell() self._offset = val pos = self._output.tell() self._output.seek(self._pos) be32(self._output, val) self._output.seek(pos) def get(self): return self._offset p = DBParser() countries = p.parse(open(sys.argv[2], 'r', encoding='utf-8')) countrynames = list(countries) countrynames.sort() power = [] bands = [] for alpha2 in countrynames: for perm in countries[alpha2].permissions: if not perm.freqband in bands: bands.append(perm.freqband) if not perm.power in power: power.append(perm.power) rules = create_rules(countries) rules.sort() collections = create_collections(countries) collections.sort() output = BytesIO() # struct regdb_file_header be32(output, MAGIC) be32(output, VERSION) reg_country_ptr = PTR(output) # add number of countries be32(output, len(countries)) siglen = PTR(output) power_rules = {} for pr in power: power_rules[pr] = output.tell() pr = [int(v * 100.0) for v in (pr.max_ant_gain, pr.max_eirp)] # struct regdb_file_power_rule output.write(struct.pack('>II', *pr)) freq_ranges = {} for fr in bands: freq_ranges[fr] = output.tell() fr = [int(f * 1000.0) for f in (fr.start, fr.end, fr.maxbw)] # struct regdb_file_freq_range output.write(struct.pack('>III', *fr)) reg_rules = {} for reg_rule in rules: freq_range, power_rule = reg_rule.freqband, reg_rule.power reg_rules[reg_rule] = output.tell() # struct regdb_file_reg_rule output.write(struct.pack('>III', freq_ranges[freq_range], power_rules[power_rule], reg_rule.flags)) reg_rules_collections = {} for coll in collections: reg_rules_collections[coll] = output.tell() # struct regdb_file_reg_rules_collection coll = list(coll) be32(output, len(coll)) coll.sort() for regrule in coll: be32(output, reg_rules[regrule]) # update country pointer now! reg_country_ptr.set() for alpha2 in countrynames: coll = countries[alpha2] # struct regdb_file_reg_country output.write(struct.pack('>2sxBI', alpha2, coll.dfs_region, reg_rules_collections[coll.permissions])) if len(sys.argv) > 3: # Load RSA only now so people can use this script # without having those libraries installed to verify # their SQL changes from M2Crypto import RSA # determine signature length key = RSA.load_key(sys.argv[3]) hash = hashlib.sha1() hash.update(output.getvalue()) sig = key.sign(hash.digest()) # write it to file siglen.set(len(sig)) # sign again hash = hashlib.sha1() hash.update(output.getvalue()) sig = key.sign(hash.digest()) output.write(sig) else: siglen.set(0) outfile = open(sys.argv[1], 'wb') outfile.write(output.getvalue()) wireless-regdb-2025.07.10/db2fw.py000077500000000000000000000101251503362776000164170ustar00rootroot00000000000000#!/usr/bin/env python from io import BytesIO, open import struct import hashlib from dbparse import DBParser import sys from math import log MAGIC = 0x52474442 VERSION = 20 if len(sys.argv) < 3: print('Usage: %s output-file input-file' % sys.argv[0]) sys.exit(2) def create_rules(countries): result = {} for c in countries.values(): for rule in c.permissions: result[rule] = 1 return list(result) def create_collections(countries): result = {} for c in countries.values(): result[(c.permissions, c.dfs_region)] = 1 return list(result) def create_wmms(countries): result = {} for c in countries.values(): for rule in c.permissions: if rule.wmmrule is not None: result[rule.wmmrule] = 1 return list(result) def be32(output, val): output.write(struct.pack('>I', val)) def be16(output, val): output.write(struct.pack('>H', val)) class PTR(object): def __init__(self, output): self._output = output self._pos = output.tell() be16(output, 0) self._written = False def set(self, val=None): if val is None: val = self._output.tell() assert val & 3 == 0 self._offset = val pos = self._output.tell() self._output.seek(self._pos) be16(self._output, val >> 2) self._output.seek(pos) self._written = True def get(self): return self._offset @property def written(self): return self._written p = DBParser() countries = p.parse(open(sys.argv[2], 'r', encoding='utf-8')) rules = create_rules(countries) rules.sort() collections = create_collections(countries) collections.sort() wmms = create_wmms(countries) wmms.sort() output = BytesIO() # struct regdb_file_header be32(output, MAGIC) be32(output, VERSION) country_ptrs = {} countrynames = list(countries) countrynames.sort() for alpha2 in countrynames: coll = countries[alpha2] output.write(struct.pack('>2s', alpha2)) country_ptrs[alpha2] = PTR(output) output.write(b'\x00' * 4) wmmdb = {} for w in wmms: assert output.tell() & 3 == 0 wmmdb[w] = output.tell() >> 2 for r in w._as_tuple(): ecw = int(log(r[0] + 1, 2)) << 4 | int(log(r[1] + 1, 2)) ac = (ecw, r[2],r[3]) output.write(struct.pack('>BBH', *ac)) reg_rules = {} flags = 0 for reg_rule in rules: freq_range, power_rule, wmm_rule = reg_rule.freqband, reg_rule.power, reg_rule.wmmrule reg_rules[reg_rule] = output.tell() assert power_rule.max_ant_gain == 0 flags = 0 # convert to new rule flags assert reg_rule.flags & ~0x899 == 0 if reg_rule.flags & 1<<0: flags |= 1<<0 if reg_rule.flags & 1<<3: flags |= 1<<1 if reg_rule.flags & 1<<4: flags |= 1<<2 if reg_rule.flags & 1<<7: flags |= 1<<3 if reg_rule.flags & 1<<11: flags |= 1<<4 rule_len = 16 cac_timeout = 0 # TODO if not (flags & 1<<2): cac_timeout = 0 if cac_timeout or wmm_rule: rule_len += 2 if wmm_rule is not None: rule_len += 2 output.write(struct.pack('>BBHIII', rule_len, flags, int(power_rule.max_eirp * 100), int(freq_range.start * 1000), int(freq_range.end * 1000), int(freq_range.maxbw * 1000), )) if rule_len > 16: output.write(struct.pack('>H', cac_timeout)) if rule_len > 18: be16(output, wmmdb[wmm_rule]) while rule_len % 4: output.write('\0') rule_len += 1 for coll in collections: for alpha2 in countrynames: if (countries[alpha2].permissions, countries[alpha2].dfs_region) == coll: assert not country_ptrs[alpha2].written country_ptrs[alpha2].set() slen = 3 output.write(struct.pack('>BBBx', slen, len(list(coll[0])), coll[1])) coll = list(coll[0]) for regrule in coll: be16(output, reg_rules[regrule] >> 2) if len(coll) % 2: be16(output, 0) for alpha2 in countrynames: assert country_ptrs[alpha2].written outfile = open(sys.argv[1], 'wb') outfile.write(output.getvalue()) wireless-regdb-2025.07.10/dbparse.py000077500000000000000000000427351503362776000170470ustar00rootroot00000000000000#!/usr/bin/env python from functools import total_ordering import sys, math from math import ceil, log from collections import defaultdict, OrderedDict # must match enum nl80211_reg_rule_flags flag_definitions = { 'NO-OFDM': 1<<0, 'NO-CCK': 1<<1, 'NO-INDOOR': 1<<2, 'NO-OUTDOOR': 1<<3, 'DFS': 1<<4, 'PTP-ONLY': 1<<5, 'PTMP-ONLY': 1<<6, 'NO-IR': 1<<7, # hole at bit 8 # hole at bit 9. FIXME: Where is NO-HT40 defined? 'NO-HT40': 1<<10, 'AUTO-BW': 1<<11, } dfs_regions = { 'DFS-FCC': 1, 'DFS-ETSI': 2, 'DFS-JP': 3, } @total_ordering class WmmRule(object): def __init__(self, vo_c, vi_c, be_c, bk_c, vo_ap, vi_ap, be_ap, bk_ap): self.vo_c = vo_c self.vi_c = vi_c self.be_c = be_c self.bk_c = bk_c self.vo_ap = vo_ap self.vi_ap = vi_ap self.be_ap = be_ap self.bk_ap = bk_ap def _as_tuple(self): return (self.vo_c, self.vi_c, self.be_c, self.bk_c, self.vo_ap, self.vi_ap, self.be_ap, self.bk_ap) def __eq__(self, other): if other is None: return False return (self._as_tuple() == other._as_tuple()) def __ne__(self, other): return not (self == other) def __lt__(self, other): if other is None: return False return (self._as_tuple() < other._as_tuple()) def __hash__(self): return hash(self._as_tuple()) class FreqBand(object): def __init__(self, start, end, bw, comments=None): self.start = start self.end = end self.maxbw = bw self.comments = comments or [] def _as_tuple(self): return (self.start, self.end, self.maxbw) def __eq__(self, other): return (self._as_tuple() == other._as_tuple()) def __ne__(self, other): return not (self == other) def __lt__(self, other): return (self._as_tuple() < other._as_tuple()) def __hash__(self): return hash(self._as_tuple()) def __str__(self): return '' % ( self.start, self.end, self.maxbw) @total_ordering class PowerRestriction(object): def __init__(self, max_ant_gain, max_eirp, comments = None): self.max_ant_gain = max_ant_gain self.max_eirp = max_eirp self.comments = comments or [] def _as_tuple(self): return (self.max_ant_gain, self.max_eirp) def __eq__(self, other): return (self._as_tuple() == other._as_tuple()) def __ne__(self, other): return not (self == other) def __lt__(self, other): return (self._as_tuple() < other._as_tuple()) def __hash__(self): return hash(self._as_tuple()) def __str__(self): return '' class DFSRegionError(Exception): def __init__(self, dfs_region): self.dfs_region = dfs_region class FlagError(Exception): def __init__(self, flag): self.flag = flag class IgnoreRule(Exception): pass @total_ordering class Permission(object): def __init__(self, freqband, power, flags, wmmrule): assert isinstance(freqband, FreqBand) assert isinstance(power, PowerRestriction) assert isinstance(wmmrule, WmmRule) or wmmrule is None self.freqband = freqband self.power = power self.wmmrule = wmmrule self.flags = 0 for flag in flags: if not flag in flag_definitions: raise FlagError(flag) self.flags |= flag_definitions[flag] # ignore rule with NO-INDOOR as the kernel doesn't support it yet. if 'NO-INDOOR' in flags: raise IgnoreRule() self.textflags = flags def _as_tuple(self): return (self.freqband, self.power, self.flags, self.wmmrule) def __eq__(self, other): return (self._as_tuple() == other._as_tuple()) def __ne__(self, other): return not (self == other) def __lt__(self, other): return (self._as_tuple() < other._as_tuple()) def __hash__(self): return hash(self._as_tuple()) def __str__(self): return str(self.freqband) + str(self.power) + str(self.wmmrule) class Country(object): def __init__(self, dfs_region, permissions=None, comments=None): self._permissions = permissions or [] self.comments = comments or [] self.dfs_region = 0 if dfs_region: if not dfs_region in dfs_regions: raise DFSRegionError(dfs_region) self.dfs_region = dfs_regions[dfs_region] def add(self, perm): assert isinstance(perm, Permission) self._permissions.append(perm) self._permissions.sort() def __contains__(self, perm): assert isinstance(perm, Permission) return perm in self._permissions def __str__(self): r = ['(%s, %s)' % (str(b), str(p)) for b, p in self._permissions] return '' % (', '.join(r)) def _get_permissions_tuple(self): return tuple(self._permissions) permissions = property(_get_permissions_tuple) class SyntaxError(Exception): pass class DBParser(object): def __init__(self, warn=None): self._warn_callout = warn or sys.stderr.write def _syntax_error(self, txt=None): txt = txt and ' (%s)' % txt or '' raise SyntaxError("Syntax error in line %d%s" % (self._lineno, txt)) def _warn(self, txt): self._warn_callout("Warning (line %d): %s\n" % (self._lineno, txt)) def _parse_band_def(self, bname, banddef, dupwarn=True): try: freqs, bw = banddef.split('@') bw = float(bw) except ValueError: bw = 20.0 try: start, end = freqs.split('-') start = float(start) end = float(end) # The kernel will reject these, so might as well reject this # upon building it. if start <= 0: self._syntax_error("Invalid start freq (%d)" % start) if end <= 0: self._syntax_error("Invalid end freq (%d)" % end) if start > end: self._syntax_error("Inverted freq range (%d - %d)" % (start, end)) if start == end: self._syntax_error("Start and end freqs are equal (%d)" % start) if bw > end - start: self._syntax_error("BW is larger than freq_diff (%d - %d) (%d)" % (start, end, bw)) except ValueError: self._syntax_error("band must have frequency range") b = FreqBand(start, end, bw, comments=self._comments) self._comments = [] self._banddup[bname] = bname if b in self._bandrev: if dupwarn: self._warn('Duplicate band definition ("%s" and "%s")' % ( bname, self._bandrev[b])) self._banddup[bname] = self._bandrev[b] self._bands[bname] = b self._bandrev[b] = bname self._bandline[bname] = self._lineno def _parse_band(self, line): try: bname, line = line.split(':', 1) if not bname: self._syntax_error("'band' keyword must be followed by name") except ValueError: self._syntax_error("band name must be followed by colon") if bname in flag_definitions: self._syntax_error("Invalid band name") self._parse_band_def(bname, line) def _parse_power(self, line): try: pname, line = line.split(':', 1) if not pname: self._syntax_error("'power' keyword must be followed by name") except ValueError: self._syntax_error("power name must be followed by colon") if pname in flag_definitions: self._syntax_error("Invalid power name") self._parse_power_def(pname, line) def _parse_power_def(self, pname, line, dupwarn=True): try: max_eirp = line if max_eirp == 'N/A': max_eirp = '0' max_ant_gain = float(0) def conv_pwr(pwr): if pwr.endswith('mW'): pwr = float(pwr[:-2]) return 10.0 * math.log10(pwr) else: return float(pwr) max_eirp = conv_pwr(max_eirp) except ValueError: self._syntax_error("invalid power data") p = PowerRestriction(max_ant_gain, max_eirp, comments=self._comments) self._comments = [] self._powerdup[pname] = pname if p in self._powerrev: if dupwarn: self._warn('Duplicate power definition ("%s" and "%s")' % ( pname, self._powerrev[p])) self._powerdup[pname] = self._powerrev[p] self._power[pname] = p self._powerrev[p] = pname self._powerline[pname] = self._lineno def _parse_wmmrule(self, line): regions = line[:-1].strip() if not regions: self._syntax_error("'wmmrule' keyword must be followed by region") regions = regions.split(',') self._current_regions = {} for region in regions: if region in self._wmm_rules: self._warn("region %s was added already to wmm rules" % region) self._current_regions[region] = 1 self._comments = [] def _validate_input(self, cw_min, cw_max, aifsn, cot): if cw_min < 1: self._syntax_error("Invalid cw_min value (%d)" % cw_min) if cw_max < 1: self._syntax_error("Invalid cw_max value (%d)" % cw_max) if cw_min > cw_max: self._syntax_error("Inverted contention window (%d - %d)" % (cw_min, cw_max)) if not (bin(cw_min + 1).count('1') == 1 and cw_min < 2**15): self._syntax_error("Invalid cw_min value should be power of 2 - 1 (%d)" % cw_min) if not (bin(cw_max + 1).count('1') == 1 and cw_max < 2**15): self._syntax_error("Invalid cw_max value should be power of 2 - 1 (%d)" % cw_max) if aifsn < 1: self._syntax_error("Invalid aifsn value (%d)" % aifsn) if cot < 0: self._syntax_error("Invalid cot value (%d)" % cot) def _validate_size(self, var, bytcnt): return bytcnt < ceil(len(bin(var)[2:]) / 8.0) def _parse_wmmrule_item(self, line): bytcnt = (2.0, 2.0, 1.0, 2.0) try: ac, cval = line.split(':') if not ac: self._syntax_error("wmm item must have ac prefix") except ValueError: self._syntax_error("access category must be followed by colon") p = tuple([int(v.split('=', 1)[1]) for v in cval.split(',')]) self._validate_input(*p) for v, b in zip(p, bytcnt): if self._validate_size(v, b): self._syntax_error("unexpected input size expect %d got %d" % (b, v)) for r in self._current_regions: self._wmm_rules[r][ac] = p def _parse_country(self, line): try: cname, cvals= line.split(':', 1) dfs_region = cvals.strip() if not cname: self._syntax_error("'country' keyword must be followed by name") except ValueError: self._syntax_error("country name must be followed by colon") cnames = cname.split(',') self._current_countries = {} for cname in cnames: if len(cname) != 2: self._warn("country '%s' not alpha2" % cname) cname = cname.encode('ascii') if not cname in self._countries: self._countries[cname] = Country(dfs_region, comments=self._comments) self._current_countries[cname] = self._countries[cname] self._comments = [] def _parse_country_item(self, line): if line[0] == '(': try: band, line = line[1:].split('),', 1) bname = 'UNNAMED %d' % self._lineno self._parse_band_def(bname, band, dupwarn=False) except: self._syntax_error("Badly parenthesised band definition") else: try: bname, line = line.split(',', 1) if not bname: self._syntax_error("country definition must have band") if not line: self._syntax_error("country definition must have power") except ValueError: self._syntax_error("country definition must have band and power") if line[0] == '(': items = line.split('),', 1) if len(items) == 1: pname = items[0] line = '' if not pname[-1] == ')': self._syntax_error("Badly parenthesised power definition") pname = pname[:-1] flags = [] else: pname = items[0] flags = items[1].split(',') power = pname[1:] pname = 'UNNAMED %d' % self._lineno self._parse_power_def(pname, power, dupwarn=False) else: line = line.split(',') pname = line[0] flags = line[1:] w = None if flags and 'wmmrule' in flags[-1]: try: region = flags.pop().split('=', 1)[1] if region not in self._wmm_rules.keys(): self._syntax_error("No wmm rule for %s" % region) except IndexError: self._syntax_error("flags is empty list or no region was found") w = WmmRule(*self._wmm_rules[region].values()) if not bname in self._bands: self._syntax_error("band does not exist") if not pname in self._power: self._syntax_error("power does not exist") self._bands_used[bname] = True self._power_used[pname] = True # de-duplicate so binary database is more compact bname = self._banddup[bname] pname = self._powerdup[pname] b = self._bands[bname] p = self._power[pname] try: perm = Permission(b, p, flags, w) except FlagError as e: self._syntax_error("Invalid flag '%s'" % e.flag) except IgnoreRule: return for cname, c in self._current_countries.items(): if perm in c: self._warn('Rule "%s, %s" added to "%s" twice' % ( bname, pname, cname)) else: c.add(perm) def parse(self, f): self._current_countries = None self._current_regions = None self._bands = {} self._power = {} self._countries = {} self._bands_used = {} self._power_used = {} self._bandrev = {} self._powerrev = {} self._banddup = {} self._powerdup = {} self._bandline = {} self._powerline = {} self._wmm_rules = defaultdict(lambda: OrderedDict()) self._comments = [] self._lineno = 0 for line in f: self._lineno += 1 line = line.strip() if line[0:1] == '#': self._comments.append(line[1:].strip()) line = line.replace(' ', '').replace('\t', '') if not line: self._current_regions = None self._comments = [] line = line.split('#')[0] if not line: continue if line[0:4] == 'band': self._parse_band(line[4:]) self._current_countries = None self._current_regions = None self._comments = [] elif line[0:5] == 'power': self._parse_power(line[5:]) self._current_countries = None self._current_regions = None self._comments = [] elif line[0:7] == 'country': self._parse_country(line[7:]) self._comments = [] self._current_regions = None elif self._current_countries is not None: self._current_regions = None self._parse_country_item(line) self._comments = [] elif line[0:7] == 'wmmrule': self._parse_wmmrule(line[7:]) self._current_countries = None self._comments = [] elif self._current_regions is not None: self._parse_wmmrule_item(line) self._current_countries = None self._comments = [] else: self._syntax_error("Expected band, power or country definition") countries = self._countries bands = {} for k, v in self._bands.items(): if k in self._bands_used: bands[self._banddup[k]] = v continue # we de-duplicated, but don't warn again about the dupes if self._banddup[k] == k: self._lineno = self._bandline[k] self._warn('Unused band definition "%s"' % k) power = {} for k, v in self._power.items(): if k in self._power_used: power[self._powerdup[k]] = v continue # we de-duplicated, but don't warn again about the dupes if self._powerdup[k] == k: self._lineno = self._powerline[k] self._warn('Unused power definition "%s"' % k) return countries wireless-regdb-2025.07.10/debian-example/000077500000000000000000000000001503362776000177125ustar00rootroot00000000000000wireless-regdb-2025.07.10/debian-example/changelog000066400000000000000000000002241503362776000215620ustar00rootroot00000000000000wireless-regdb (2009.01.15-1) unstable; urgency=low * Initial release -- Luis R. Rodriguez Thu, 22 Jan 2009 16:00:00 +0100 wireless-regdb-2025.07.10/debian-example/compat000066400000000000000000000000021503362776000211100ustar00rootroot000000000000005 wireless-regdb-2025.07.10/debian-example/control000066400000000000000000000007251503362776000213210ustar00rootroot00000000000000Source: wireless-regdb Section: admin Priority: optional Maintainer: Luis R. Rodriguez Build-Depends: cdbs, debhelper (>= 5), python Standards-Version: 3.7.3 Package: wireless-regdb Architecture: all Depends: Suggests: crda Description: The Linux wireless regulatory database This package contains the wireless regulatory database used by all cfg80211 based Linux wireless drivers. The wireless database being used is maintained by Chen-Yu Tsai. wireless-regdb-2025.07.10/debian-example/copyright000066400000000000000000000020751503362776000216510ustar00rootroot00000000000000This package was debianized by Luis Rodriguez on Thu, 22 Jan 2009 16:00:00 +0100. The wireless-regdb packages was downloaded from Copyright (c) 2008, Luis R. Rodriguez Copyright (c) 2008, Johannes Berg Copyright (c) 2008, Michael Green Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. wireless-regdb-2025.07.10/debian-example/docs000066400000000000000000000000071503362776000205620ustar00rootroot00000000000000README wireless-regdb-2025.07.10/debian-example/rules000077500000000000000000000004421503362776000207720ustar00rootroot00000000000000#!/usr/bin/make -f include /usr/share/cdbs/1/rules/debhelper.mk PREFIX = /usr CRDA_LIB ?= $(PREFIX)/lib/crda install/wireless-regdb:: install -o 0 -g 0 -m 755 -d debian/$(cdbs_curpkg)/$(CRDA_LIB) install -o 0 -g 0 -m 644 regulatory.bin debian/$(cdbs_curpkg)/$(CRDA_LIB)/regulatory.bin wireless-regdb-2025.07.10/gen-pubcert.sh000077500000000000000000000005531503362776000176140ustar00rootroot00000000000000#!/bin/bash if [[ $# -ne 3 ]]; then echo "Usage: $0 priv-key out-file common-name" exit 1 fi openssl req -new -key "$1" -days 36500 -utf8 -nodes -batch \ -x509 -outform PEM -out "$2" \ -config <(cat <<-EOF [ req ] distinguished_name = req_distinguished_name string_mask = utf8only prompt = no [ req_distinguished_name ] commonName = $3 EOF ) wireless-regdb-2025.07.10/regulatory.bin000066400000000000000000000200141503362776000177230ustar00rootroot00000000000000RGDB u ` ]  00x 4B 8)$%@@%}%PN %&0N NPP8PQTP8SPWnqWXY8iiJ@ $%,@N0P8PQp8Sw0W[HqW[HY88Zb e@ $%P@Zhb SPW qN0QpqSw0Y8qZhle@;_ 8  )@Sw0Us8V6PWn8WnYC8YCY8N Zhb qN0Qp8Sw0W[H8W[HYC8NPP@PQTP@SPWn@WXY@ii_@ _@J@ J@? NPPN PQTPN SPWnN WXYN Y8ZhN SPVpq + > Xhe@;_$%,@Sw0Wnqb cH8cHhxhxlqii;_ W[HX8e@А JL$0@W[HY8@WXX8$%PN SPU0N WXXN N0OͰ@OͰPN ZhlqSw0XqSPV6Pq$&%@V6PYCqSw0YCq p @ @ >$%@@YCYX@SPW @ 44`\l\ \@4,\x\xxxx<x$x,x,x\xxx|<\\,\X$00<<L<<<$$$$$dl\\tt$t$t$L$L\L<L<<<<<<<$<T<T<\ L<T\THHHHHH<HTHTH\H\L<<$$$$dTTll\8T8,dTll$ddT,,,,lll\d<dddTd,d,dld\$TTlL\0\(<lll\\T\TTT<TTTTDTD,H$<$$$TTT,\\T44<T\P\PP|\\\\```\\4\$\Tl\hhhdtt<<$$ddTttd\<<$$dp$|DTDDDDLDlD  x  `  X d  t $ @  pX   X  < LPXX  x d  dd dd pt d|   4 H d 0 X l  H  H d H d H  H  4\ 8p$ 0 p 8L L @  p @  @ p x8p ,|  t, |d, ( |Pd, T Dp, ( 8 $ pD@D< 8P( |PX  |dP L P | \4  hd   h p hh ( d d H H    T 0\ 84H HH HlD `x8 D    P PPd\\ P\ P\ h\ t <\ l\ l \8h \ 8         , 8 X <    `, T Pp00ADAEAFxAIALAMANxAR ASATXAUtAWxAZFT83DRrڲN#1#&|ڥ%.Ww>6.}Lo)b޷ +D'ǍLǯkYQ8fOb|l-53b?Tr:)|O CCP.'߾ !O 0 !n4 gp`&c p @ @ > 8 u Xh  )@ $%@@$%,@$%,@$%,@$%,@$%,@ $%,@ $%,@ $%,@ $%,@$%,@$%,@ $&%@$%@@ $%@@$%PN $%P@ $%P@ $%P@$%P@$%,@%}%PN %&0N  %&0N JL$0@N0OͰ@N0P8N0P8N0P8N0P8N0P8N0P8N0P8N0P8N0P8N0P8N0P8N0P8 ]N0P8 N0P8 N0P8 N0P8N0P8N0Qp8N0Qp8N0Qp8 N0Qp8N0QpqN0QpqN0QpqNPPN NPPN  NPPN NPP@NPP@NPP8NPP8NPP8NPP8NPP8NPP8NPP8 `NPP8 `NPP8 NPP8OͰPN PQTPN PQTPN  `PQTPN  PQTPN PQTP@ `PQTP@PQTP8PQTP8PQTP8PQTP8PQTP8PQTP8 `PQTP8 `PQTP8 PQTP8 PQTP8PQp8PQp8PQp8PQp80PQp8PQp8PQp8PQp8PQp8PQp8PQp8 ]PQp8 `PQp8 `PQp8 PQp8 PQp8 PQp8 `Sw0Us8 Sw0Us8 ]Sw0W[H8 `Sw0W[H8 Sw0W[H8 Sw0W[H8Sw0W[HqSw0W[HqSw0W[Hq0Sw0W[Hq4Sw0W[HqSw0W[Hq ]Sw0W[Hq ]Sw0W[Hq `Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[Hq Sw0W[HqSw0Wnq ]Sw0Wnq `Sw0Wnq Sw0Wnq Sw0Wnq Sw0Wnq Sw0Wnq `Sw0Xq Sw0YCqSw0Y8q SPU0N  SPV6PqSPVpq SPW @ SPW q SPW q SPW q SPW q `SPWnN  SPWnN  `SPWn@ SPWnqSPWnq `SPWnq `SPWnq `V6PWn8 V6PWn8V6PYCqW[HX8W[HYC8W[HYC8W[HYC8W[HYC8W[HYC8W[HYC8 `W[HYC8 `W[HYC8 `W[HYC8 W[HYC8 W[HYC8 W[HYC8 W[HYC8W[HYC8 `W[HY8@uW[HY88uW[HY88W[HY88W[HY88 `W[HY88 W[HY88W[HY88 WnYC8WnYC8WnYC8 WXXN  WXX8 WXYN WXYN  WXY@WXY8WXY8 WXY8uYCY8N YCY8N  `YCY8N  YCYX@ Y8ZhN xZhb qZhb q ]Zhb qZhb  Zhb xZhb Zhb Zhb Zhb Zhb Zhb  ]Zhb  ]Zhb  `Zhb ZhlqZhl ZhlZhl ]Zhl ZhlZb Zb Zb Zb  ]Zb b cH8cHhxhxlqe@А e@А e@ e@ Be@  `e@ e@ e@ e@ e@ e@;_ e@;_ e@;_ ii_@ iiJ@ ii;_ 0_@J@  J@?   *2$ m3; O] i/q9|F/lO<xO<] dO<ehS/IhS/uW 2h\D`+EdL2hi/a.i/7m3.m3.hm32hm32xm3;xm3U x}l=l'J3I.`iQliQYl+lp:+Mt`+m@h`Hm hi+qluQ iDHL\AP>8mO<m.hrUxveqxB'y}S@~axiyT.S]m5",,.6(X ,,,, ,..h& ,,,,.0#zY("*&m3 lwireless-regdb-2025.07.10/regulatory.db.5000066400000000000000000000000351503362776000177040ustar00rootroot00000000000000.so man5/regulatory.bin.5.gz wireless-regdb-2025.07.10/regulatory.db.p7s000066400000000000000000000020751503362776000202570ustar00rootroot0000000000000009 *H *0&10  `He0  *H 00a8eKЬlrH0  *H  01 0 U wens0  231201074114Z21231107074114Z01 0 U wens0"0  *H 0 z,xM-2R.lŶiTCyS]Gﳐd]KnX>o^BGA,ԪH7@9Uo[O4iPr^NL86 s8'*yϰ'Bw7eDB9EnJB+%;6YB!n^&Wr2+sOfXPÏ %-k>_m]MB-9ɬ:P߻vmskqg6"yָR[cNxpW0  *H  $("t|l=})B\ g`_1pSTCzCtkݰ;3EFxThQo*{{ogɑ@١ݦC({vdBp뮄hN~6;cyȚ4ӔK(Eu5bȘ$1VFKmի`7S}XVàveMS_v3ZZBm~ǃ-*c?1.@3\FEN1R0N0'01 0 U wensa8eKЬlrH0  `He0  *H CdTN+-d=ula{?caVȑw{ $d9״Ko8t jbޝj]皢t"9nc{ylA-~Z+h0, ` W#~le?a`eov@L o~dp7 z R֍#_87x[b8'WE5%JuG? E!i5E7<<|aFΘ(sƱٵ)xjZP5wireless-regdb-2025.07.10/sha1sum.txt000066400000000000000000000000611503362776000171560ustar00rootroot000000000000008bfe0520f07fc9805663d0f096f0eef84ffd1c88 db.txt wireless-regdb-2025.07.10/web/000077500000000000000000000000001503362776000156145ustar00rootroot00000000000000wireless-regdb-2025.07.10/web/Regulatory.py000066400000000000000000000113311503362776000203220ustar00rootroot00000000000000# -*- coding: iso-8859-1 -*- """ Regulatory Database @copyright: 2008 Johannes Berg @license: ISC, see LICENSE for details. """ import codecs, math from dbparse import DBParser, flag_definitions Dependencies = ["time"] def _country(macro, countries, code): result = [] f = macro.formatter result.extend([ f.heading(1, 1), f.text('Regulatory definition for %s' % _get_iso_code(code)), f.heading(0, 1), ]) try: country = countries[code] except: result.append(f.text('No information available')) return ''.join(result) if country.comments: result.extend([ f.preformatted(1), f.text('\n'.join(country.comments)), f.preformatted(0), ]) result.append(f.table(1)) result.extend([ f.table_row(1), f.table_cell(1), f.strong(1), f.text('Band [MHz]'), f.strong(0), f.table_cell(0), f.table_cell(1), f.strong(1), f.text('Max BW [MHz]'), f.strong(0), f.table_cell(0), f.table_cell(1), f.strong(1), f.text('Flags'), f.strong(0), f.table_cell(0), f.table_cell(1), f.strong(1), f.text('Max antenna gain [dBi]'), f.strong(0), f.table_cell(0), f.table_cell(1), f.strong(1), f.text('Max EIRP [dBm'), f.hardspace, f.text('(mW)]'), f.strong(0), f.table_cell(0), f.table_row(0), ]) for perm in country.permissions: def str_or_na(val, dBm=False): if val and not dBm: return '%.2f' % val elif val: return '%.2f (%.2f)' % (val, math.pow(10, val/10.0)) return 'N/A' result.extend([ f.table_row(1), f.table_cell(1), f.text('%.3f - %.3f' % (perm.freqband.start, perm.freqband.end)), f.table_cell(0), f.table_cell(1), f.text('%.3f' % (perm.freqband.maxbw,)), f.table_cell(0), f.table_cell(1), f.text(', '.join(perm.textflags)), f.table_cell(0), f.table_cell(1), f.text(str_or_na(perm.power.max_ant_gain)), f.table_cell(0), f.table_cell(1), f.text(str_or_na(perm.power.max_eirp, dBm=True)), f.table_cell(0), f.table_row(0), ]) result.append(f.table(0)) result.append(f.linebreak(0)) result.append(f.linebreak(0)) result.append(macro.request.page.link_to(macro.request, 'return to country list')) return ''.join(result) _iso_list = {} def _get_iso_code(code): if not _iso_list: for line in codecs.open('/usr/share/iso-codes/iso_3166.tab', encoding='utf-8'): line = line.strip() c, name = line.split('\t') _iso_list[c] = name return _iso_list.get(code, 'Unknown (%s)' % code) def macro_Regulatory(macro): _ = macro.request.getText request = macro.request f = macro.formatter country = request.form.get('alpha2', [None])[0] dbpath = '/tmp/db.txt' if hasattr(request.cfg, 'regdb_path'): dbpath = request.cfg.regdb_path result = [] if request.form.get('raw', [None])[0]: result.append(f.code_area(1, 'db-raw', show=1, start=1, step=1)) for line in open(dbpath): result.extend([ f.code_line(1), f.text(line.rstrip()), f.code_line(0), ]) result.append(f.code_area(0, 'db-raw')) result.append(macro.request.page.link_to(macro.request, 'return to country list')) return ''.join(result) warnings = [] countries = DBParser(warn=lambda x: warnings.append(x)).parse(open(dbpath)) if country: return _country(macro, countries, country) countries = countries.keys() countries = [(_get_iso_code(code), code) for code in countries] countries.sort() result.extend([ f.heading(1, 1), f.text('Countries'), f.heading(0, 1), ]) result.append(f.bullet_list(1)) for name, code in countries: result.extend([ f.listitem(1), request.page.link_to(request, name, querystr={'alpha2': code}), f.listitem(0), ]) result.append(f.bullet_list(0)) if warnings: result.append(f.heading(1, 2)) result.append(f.text("Warnings")) result.append(f.heading(0, 2)) result.append(f.preformatted(1)) result.extend(warnings) result.append(f.preformatted(0)) result.append(request.page.link_to(request, 'view raw database', querystr={'raw': 1})) return ''.join(result) wireless-regdb-2025.07.10/wens.key.pub.pem000066400000000000000000000007031503362776000200720ustar00rootroot00000000000000-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXoseE2nGS0yUqAubO+I fxXFtmlUFkMUeVO3roj+wLddR44a4e+zkIba02SBH85dnktuWAI+sm9eQkdB9Cy4 qNSqwA7mSPCozssIrjev9kA5y1VvW0+FNOZpEFByXk6dTLo4Ng3OczjXJwIqeQPh rM+wJ4WGkxer7EJ3N2WKRMvWQpOSE+M5RcVuAEp/y0IXKyWMuBc7FTZZ3kLOIea2 x25eJh/3ileepZZytwIy6wcrc+JPZlia6w8HtqtQi8OPF/oKmcIWJb8taxqq5j5f 622bXU1Cgy05uMms2zqRUN+7sXZtFXP9xuZrcZ5nNiKDebHWuIRSr5Zbw2MCTnhw VwIDAQAB -----END PUBLIC KEY----- wireless-regdb-2025.07.10/wens.x509.pem000066400000000000000000000017251503362776000172270ustar00rootroot00000000000000-----BEGIN CERTIFICATE----- MIICpzCCAY8CFGHAOGUaq9z5S9Csf/BsckjbGMYAMA0GCSqGSIb3DQEBCwUAMA8x DTALBgNVBAMMBHdlbnMwIBcNMjMxMjAxMDc0MTE0WhgPMjEyMzExMDcwNzQxMTRa MA8xDTALBgNVBAMMBHdlbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQCpeix4TacZLTJSoC5s74h/FcW2aVQWQxR5U7euiP7At11Hjhrh77OQhtrTZIEf zl2eS25YAj6yb15CR0H0LLio1KrADuZI8KjOywiuN6/2QDnLVW9bT4U05mkQUHJe Tp1Mujg2Dc5zONcnAip5A+Gsz7AnhYaTF6vsQnc3ZYpEy9ZCk5IT4zlFxW4ASn/L QhcrJYy4FzsVNlneQs4h5rbHbl4mH/eKV56llnK3AjLrBytz4k9mWJrrDwe2q1CL w48X+gqZwhYlvy1rGqrmPl/rbZtdTUKDLTm4yazbOpFQ37uxdm0Vc/3G5mtxnmc2 IoN5sda4hFKvllvDYwJOeHBXAgMBAAEwDQYJKoZIhvcNAQELBQADggEBACQo7iJ0 f3z6bB+zGNHCPX0pQoitgqWxigXQ7FyRIPaC/dVnYF8x9b2IkXC9uLmMiP5TyVSb Q8R6Q3Rr3bCxOzNFRnijHO9UaPeFnORRbwavgdsqe3tvqJxn2MvJkUAArtmhn92m Qw4oe6ob6YTbdmRCcMnA666EERZoToSefpI27hw7CGPreYQVCJ2vyJrHNNOUS9Eo l77RRXXcNWKsHR+3txWHyJjAJDFWje3bBsZGv0ttptWrzGD85Te2U31YlalWx/fu w6B292VNU/r/X3YzWgj6hpJaE/oa/PIbjH9Cbbd+t7Twx4O7ooEDLdQqYz/3MS5A M1xGvJvBBaVFTsM= -----END CERTIFICATE----- wireless-regdb-2025.07.10/wireless-regdb.spec000066400000000000000000000017141503362776000206340ustar00rootroot00000000000000Summary: Linux wireless regulatory database Name: wireless-regdb Version: 2009.01.15 Release: 1 License: ISC Group: System Enviroment/Base Source: http://wireless.kernel.org/download/wireless-regdb/wireless-regdb-2009-01-15.tar.bz2 URL: http://wireless.kernel.org/en/developers/Regulatory/ Packager: Luis R. Rodriguez BuildRoot : /var/tmp/%{name}-buildroot Requires: python BuildArch: noarch %define crda_lib /usr/lib/crda %description This package contains the wireless regulatory database used by all cfg80211 based Linux wireless drivers. The wireless database being used is maintained by Chen-Yu Tsai. http://wireless.kernel.org/en/developers/Regulatory/ %prep %setup -n %name-2009-01-15 %build %install install -m 755 -d %buildroot/%crda_lib install -m 644 regulatory.bin %buildroot/%{crda_lib}/regulatory.bin %files %crda_lib/regulatory.bin %doc README LICENSE %changelog * Fri Jan 23 2009 - mcgrof@gmail.com - Started wireless-regdb package