1
0
mirror of https://github.com/aircrack-ng/rtl8812au.git synced 2024-11-25 14:44:09 +00:00
rtl8812au/hal/phydm/rtchnlplan.h

696 lines
20 KiB
C
Raw Normal View History

/******************************************************************************
*
* Copyright(c) 2007 - 2012 Realtek Corporation. All rights reserved.
2018-02-25 22:16:51 +00:00
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of version 2 of the GNU General Public License as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
*
*
******************************************************************************/
#ifndef __RT_CHANNELPLAN_H__
#define __RT_CHANNELPLAN_H__
typedef enum _RT_CHANNEL_DOMAIN_NEW
{
//===== Add new channel plan above this line ===============//
// For new architecture we define different 2G/5G CH area for all country.
// 2.4 G only
RT_CHANNEL_DOMAIN_2G_WORLD_5G_NULL = 0x20,
RT_CHANNEL_DOMAIN_2G_ETSI1_5G_NULL = 0x21,
RT_CHANNEL_DOMAIN_2G_FCC1_5G_NULL = 0x22,
RT_CHANNEL_DOMAIN_2G_MKK1_5G_NULL = 0x23,
RT_CHANNEL_DOMAIN_2G_ETSI2_5G_NULL = 0x24,
// 2.4 G + 5G type 1
RT_CHANNEL_DOMAIN_2G_FCC1_5G_FCC1 = 0x25,
RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x26,
//RT_CHANNEL_DOMAIN_2G_WORLD_5G_ETSI1 = 0x27,
// .....
RT_CHANNEL_DOMAIN_MAX_NEW,
2018-02-25 22:16:51 +00:00
}RT_CHANNEL_DOMAIN_NEW, *PRT_CHANNEL_DOMAIN_NEW;
#if 0
#define DOMAIN_CODE_2G_WORLD \
{1,2,3,4,5,6,7,8,9,10,11,12,13}, 13
#define DOMAIN_CODE_2G_ETSI1 \
{1,2,3,4,5,6,7,8,9,10,11,12,13}, 13
#define DOMAIN_CODE_2G_ETSI2 \
{1,2,3,4,5,6,7,8,9,10,11}, 11
#define DOMAIN_CODE_2G_FCC1 \
{1,2,3,4,5,6,7,8,9,10,11,12,13,14}, 14
#define DOMAIN_CODE_2G_MKK1 \
{10,11,12,13}, 4
#define DOMAIN_CODE_5G_ETSI1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140}, 19
#define DOMAIN_CODE_5G_ETSI2 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165}, 24
#define DOMAIN_CODE_5G_ETSI3 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,149,153,157,161,165}, 22
#define DOMAIN_CODE_5G_FCC1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165}, 24
#define DOMAIN_CODE_5G_FCC2 \
{36,40,44,48,149,153,157,161,165}, 9
#define DOMAIN_CODE_5G_FCC3 \
{36,40,44,48,52,56,60,64,149,153,157,161,165}, 13
#define DOMAIN_CODE_5G_FCC4 \
{36,40,44,48,52,56,60,64,149,153,157,161}, 12
#define DOMAIN_CODE_5G_FCC5 \
{149,153,157,161,165}, 5
#define DOMAIN_CODE_5G_FCC6 \
{36,40,44,48,52,56,60,64}, 8
#define DOMAIN_CODE_5G_FCC7 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define DOMAIN_CODE_5G_IC1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define DOMAIN_CODE_5G_KCC1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,149,153,157,161,165}, 20
#define DOMAIN_CODE_5G_MKK1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140}, 19
#define DOMAIN_CODE_5G_MKK2 \
{36,40,44,48,52,56,60,64}, 8
#define DOMAIN_CODE_5G_MKK3 \
{100,104,108,112,116,120,124,128,132,136,140}, 11
#define DOMAIN_CODE_5G_NCC1 \
{56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 24
#define DOMAIN_CODE_5G_NCC2 \
2018-02-25 22:16:51 +00:00
{56,60,64,149,153,157,161,165}, 8
#define UNDEFINED \
{0}, 0
#endif
//
//
//
/*
Countries "Country Abbreviation" Domain Code SKU's Ch# of 20MHz
2G 5G Ch# of 40MHz
"Albania<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڥ<EFBFBD><EFBFBD><EFBFBD>" AL Local Test
2018-02-25 22:16:51 +00:00
"Algeria<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ΧQ<EFBFBD><EFBFBD>" DZ CE TCF
"Antigua & Barbuda<64>w<EFBFBD><77><EFBFBD>ʮq&<26>ڥ<EFBFBD><DAA5>F" AG 2G_WORLD FCC TCF
"Argentina<EFBFBD><EFBFBD><EFBFBD>ڧ<EFBFBD>" AR 2G_WORLD Local Test
2018-02-25 22:16:51 +00:00
"Armenia<EFBFBD>Ȭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" AM 2G_WORLD ETSI
2018-02-25 22:16:51 +00:00
"Aruba<EFBFBD><EFBFBD><EFBFBD>|<7C>ڮq" AW 2G_WORLD FCC TCF
2018-02-25 22:16:51 +00:00
"Australia<EFBFBD>D<EFBFBD>w" AU 2G_WORLD 5G_ETSI2
"Austria<EFBFBD><EFBFBD><EFBFBD>a<EFBFBD>Q" AT 2G_WORLD 5G_ETSI1 CE
"Azerbaijan<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" AZ 2G_WORLD CE TCF
"Bahamas<EFBFBD>ګ<EFBFBD><EFBFBD><EFBFBD>" BS 2G_WORLD
"Barbados<EFBFBD>ڤڦh<EFBFBD><EFBFBD>" BB 2G_WORLD FCC TCF
2018-02-25 22:16:51 +00:00
"Belgium<EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD><EFBFBD>" BE 2G_WORLD 5G_ETSI1 CE
"Bermuda<EFBFBD>ʼ}<7D>F" BM 2G_WORLD FCC TCF
"Brazil<EFBFBD>ڦ<EFBFBD>" BR 2G_WORLD Local Test
2018-02-25 22:16:51 +00:00
"Bulgaria<EFBFBD>O<EFBFBD>[<5B>Q<EFBFBD><51>" BG 2G_WORLD 5G_ETSI1 CE
"Canada<EFBFBD>[<5B><><EFBFBD>j" CA 2G_FCC1 5G_FCC7 IC / FCC IC / FCC
2018-02-25 22:16:51 +00:00
"Cayman Islands<64>}<7D>Ҹs<D2B8>q" KY 2G_WORLD 5G_ETSI1 CE
"Chile<EFBFBD><EFBFBD><EFBFBD>Q" CL 2G_WORLD FCC TCF
"China<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" CN 2G_WORLD 5G_FCC5 <EFBFBD>H<EFBFBD><EFBFBD>?<EFBFBD>i2002<EFBFBD>j353?
"Columbia<EFBFBD><EFBFBD><EFBFBD>ۤ<EFBFBD><EFBFBD><EFBFBD>" CO 2G_WORLD Voluntary
"Costa Rica<63><61><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD>[" CR 2G_WORLD FCC TCF
"Cyprus<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" CY 2G_WORLD 5G_ETSI1 CE
"Czech <20><><EFBFBD>J" CZ 2G_WORLD 5G_ETSI1 CE
"Denmark<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" DK 2G_WORLD 5G_ETSI1 CE
"Dominican Republic<69>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>[<5B>@<40>M<EFBFBD><4D>" DO 2G_WORLD FCC TCF
"Egypt<EFBFBD>J<EFBFBD><EFBFBD>" EG 2G_WORLD CE T CF
"El Salvador<6F>ĺ<EFBFBD><C4BA>˦h" SV 2G_WORLD Voluntary
"Estonia<EFBFBD>R<EFBFBD>F<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" EE 2G_WORLD 5G_ETSI1 CE
"Finland<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" FI 2G_WORLD 5G_ETSI1 CE
"France<EFBFBD>k<EFBFBD><EFBFBD>" FR 5G_E TSI1 CE
"Germany<EFBFBD>w<EFBFBD><EFBFBD>" DE 2G_WORLD 5G_ETSI1 CE
"Greece <20><>þ" GR 2G_WORLD 5G_ETSI1 CE
"Guam<EFBFBD><EFBFBD><EFBFBD>q" GU 2G_WORLD
"Guatemala<EFBFBD>ʦa<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" GT 2G_WORLD
"Haiti<EFBFBD><EFBFBD><EFBFBD>a" HT 2G_WORLD FCC TCF
"Honduras<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>" HN 2G_WORLD FCC TCF
"Hungary<EFBFBD>I<EFBFBD><EFBFBD><EFBFBD>Q" HU 2G_WORLD 5G_ETSI1 CE
"Iceland<EFBFBD>B<EFBFBD>q" IS 2G_WORLD 5G_ETSI1 CE
"India<EFBFBD>L<EFBFBD><EFBFBD>" IN 2G_WORLD 5G_FCC3 FCC/CE TCF
"Ireland<EFBFBD>R<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" IE 2G_WORLD 5G_ETSI1 CE
"Israel<EFBFBD>H<EFBFBD><EFBFBD><EFBFBD>C" IL 5G_F CC6 CE TCF
"Italy<EFBFBD>q<EFBFBD>j<EFBFBD>Q" IT 2G_WORLD 5G_ETSI1 CE
"Japan<EFBFBD>" JP 2G_MKK1 5G_MKK1 MKK MKK
"Korea<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" KR 2G_WORLD 5G_KCC1 KCC KCC
"Latvia<EFBFBD>Բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" LV 2G_WORLD 5G_ETSI1 CE
"Lithuania<EFBFBD>߳<EFBFBD><EFBFBD>{" LT 2G_WORLD 5G_ETSI1 CE
"Luxembourg<EFBFBD>c<EFBFBD>˳<EFBFBD>" LU 2G_WORLD 5G_ETSI1 CE
"Malaysia<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>" MY 2G_WORLD Local Test
"Malta<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>L" MT 2G_WORLD 5G_ETSI1 CE
"Mexico<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MX 2G_WORLD 5G_FCC3 Local Test
"Morocco<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" MA CE TCF
"Netherlands<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" NL 2G_WORLD 5G_ETSI1 CE
"New Zealand<6E>æ<EFBFBD><C3A6><EFBFBD>" NZ 2G_WORLD 5G_ETSI2
"Norway<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" NO 2G_WORLD 5G_ETSI1 CE
"Panama<EFBFBD>ڮ<EFBFBD><EFBFBD><EFBFBD> " PA 2G_FCC1 Voluntary
2018-02-25 22:16:51 +00:00
"Philippines<EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD>" PH 2G_WORLD FCC TCF
2018-02-25 22:16:51 +00:00
"Poland<EFBFBD>i<EFBFBD><EFBFBD>" PL 2G_WORLD 5G_ETSI1 CE
"Portugal<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" PT 2G_WORLD 5G_ETSI1 CE
"Romaniaù<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" RO 2G_WORLD 5G_ETSI1 CE
"Russia<EFBFBD><EFBFBD><EFBFBD>" RU 2G_WORLD 5G_ETSI3 CE TCF
"Saudi Arabia<69>F<EFBFBD>a<EFBFBD><61><EFBFBD>ԧB" SA 2G_WORLD CE TCF
"Singapore<EFBFBD>s<EFBFBD>[<5B>Y" SG 2G_WORLD
"Slovakia<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>J" SK 2G_WORLD 5G_ETSI1 CE
"Slovenia<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" SI 2G_WORLD 5G_ETSI1 CE
"South Africa<63>n<EFBFBD>D" ZA 2G_WORLD CE TCF
"Spain<EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><EFBFBD>" ES 5G_ETSI1 CE
"Sweden<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" SE 2G_WORLD 5G_ETSI1 CE
"Switzerland<EFBFBD><EFBFBD><EFBFBD>h" CH 2G_WORLD 5G_ETSI1 CE
"Taiwan<EFBFBD>O<EFBFBD>W" TW 2G_FCC1 5G_NCC1 NCC
"Thailand<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" TH 2G_WORLD FCC/CE TCF
"Turkey<EFBFBD>g<EFBFBD>ը<EFBFBD>" TR 2G_WORLD
"Ukraine<EFBFBD>Q<EFBFBD>J<EFBFBD><EFBFBD>" UA 2G_WORLD Local Test
"United Kingdom<6F>^<5E><>" GB 2G_WORLD 5G_ETSI1 CE ETSI
"United States<65><73><EFBFBD><EFBFBD>" US 2G_FCC1 5G_FCC7 FCC FCC
2018-02-25 22:16:51 +00:00
"Venezuela<EFBFBD>e<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" VE 2G_WORLD 5G_FCC4 FCC TCF
2018-02-25 22:16:51 +00:00
"Vietnam<EFBFBD>V<EFBFBD>n" VN 2G_WORLD FCC/CE TCF
2018-02-25 22:16:51 +00:00
*/
// Counter abbervation.
typedef enum _RT_COUNTRY_DEFINE_NUM
{
2018-02-25 22:16:51 +00:00
RT_CTRY_AL, // "Albania<69><61><EFBFBD><EFBFBD><EFBFBD>ڥ<EFBFBD><DAA5><EFBFBD>"
RT_CTRY_DZ, // "Algeria<69><61><EFBFBD><EFBFBD><EFBFBD>ΧQ<CEA7><51>"
RT_CTRY_AG, // "Antigua & Barbuda<64>w<EFBFBD><77><EFBFBD>ʮq&<26>ڥ<EFBFBD><DAA5>F"
RT_CTRY_AR, // "Argentina<6E><61><EFBFBD>ڧ<EFBFBD>"
RT_CTRY_AM, // "Armenia<69>Ȭ<EFBFBD><C8AC><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_AW, // "Aruba<62><61><EFBFBD>|<7C>ڮq"
RT_CTRY_AU, // "Australia<69>D<EFBFBD>w"
RT_CTRY_AT, // "Austria<69><61><EFBFBD>a<EFBFBD>Q"
RT_CTRY_AZ, // "Azerbaijan<61><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_BS, // "Bahamas<61>ګ<EFBFBD><DAAB><EFBFBD>"
RT_CTRY_BB, // "Barbados<6F>ڤڦh<DAA6><68>"
RT_CTRY_BE, // "Belgium<75><6D><EFBFBD>Q<EFBFBD><51>"
RT_CTRY_BM, // "Bermuda<64>ʼ}<7D>F"
RT_CTRY_BR, // "Brazil<69>ڦ<EFBFBD>"
RT_CTRY_BG, // "Bulgaria<69>O<EFBFBD>[<5B>Q<EFBFBD><51>"
RT_CTRY_CA, // "Canada<64>[<5B><><EFBFBD>j"
RT_CTRY_KY, // "Cayman Islands<64>}<7D>Ҹs<D2B8>q"
RT_CTRY_CL, // "Chile<6C><65><EFBFBD>Q"
RT_CTRY_CN, // "China<6E><61><EFBFBD><EFBFBD>"
RT_CTRY_CO, // "Columbia<69><61><EFBFBD>ۤ<EFBFBD><DBA4><EFBFBD>"
RT_CTRY_CR, // "Costa Rica<63><61><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><46><EFBFBD>["
RT_CTRY_CY, // "Cyprus<75><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_CZ, // "Czech <20><><EFBFBD>J"
RT_CTRY_DK, // "Denmark<72><6B><EFBFBD><EFBFBD>"
RT_CTRY_DO, // "Dominican Republic<69>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD>[<5B>@<40>M<EFBFBD><4D>"
RT_CTRY_CE, // "Egypt<70>J<EFBFBD><4A>" EG 2G_WORLD
RT_CTRY_SV, // "El Salvador<6F>ĺ<EFBFBD><C4BA>˦h"
RT_CTRY_EE, // "Estonia<69>R<EFBFBD>F<EFBFBD><46><EFBFBD><EFBFBD>"
RT_CTRY_FI, // "Finland<6E><64><EFBFBD><EFBFBD>"
RT_CTRY_FR, // "France<63>k<EFBFBD><6B>"
RT_CTRY_DE, // "Germany<6E>w<EFBFBD><77>"
RT_CTRY_GR, // "Greece <20><>þ"
RT_CTRY_GU, // "Guam<61><6D><EFBFBD>q"
RT_CTRY_GT, // "Guatemala<6C>ʦa<CAA6><61><EFBFBD><EFBFBD>"
RT_CTRY_HT, // "Haiti<74><69><EFBFBD>a"
RT_CTRY_HN, // "Honduras<61><73><EFBFBD><EFBFBD><EFBFBD>Դ<EFBFBD>"
RT_CTRY_HU, // "Hungary<72>I<EFBFBD><49><EFBFBD>Q"
RT_CTRY_IS, // "Iceland<6E>B<EFBFBD>q"
RT_CTRY_IN, // "India<69>L<EFBFBD><4C>"
RT_CTRY_IE, // "Ireland<6E>R<EFBFBD><52><EFBFBD><EFBFBD>"
RT_CTRY_IL, // "Israel<65>H<EFBFBD><48><EFBFBD>C"
RT_CTRY_IT, // "Italy<6C>q<EFBFBD>j<EFBFBD>Q"
RT_CTRY_JP, // "Japan<61>饻"
RT_CTRY_KR, // "Korea<65><61><EFBFBD><EFBFBD>"
RT_CTRY_LV, // "Latvia<69>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_LT, // "Lithuania<69>߳<EFBFBD><DFB3>{"
RT_CTRY_LU, // "Luxembourg<72>c<EFBFBD>˳<EFBFBD>"
RT_CTRY_MY, // "Malaysia<69><61><EFBFBD>Ӧ<EFBFBD><D3A6><EFBFBD>"
RT_CTRY_MT, // "Malta<74><61><EFBFBD><EFBFBD><EFBFBD>L"
RT_CTRY_MX, // "Mexico<63><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_MA, // "Morocco<63><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_NL, // "Netherlands<64><73><EFBFBD><EFBFBD>"
RT_CTRY_NZ, // "New Zealand<6E>æ<EFBFBD><C3A6><EFBFBD>"
RT_CTRY_NO, // "Norway<61><79><EFBFBD><EFBFBD>"
RT_CTRY_PA, // "Panama<6D>ڮ<EFBFBD><DAAE><EFBFBD> "
RT_CTRY_PH, // "Philippines<65><73><EFBFBD>߻<EFBFBD>"
RT_CTRY_PL, // "Poland<6E>i<EFBFBD><69>"
RT_CTRY_PT, // "Portugal<61><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_RO, // "Romaniaù<61><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_RU, // "Russia<69><58><C3B9>"
RT_CTRY_SA, // "Saudi Arabia<69>F<EFBFBD>a<EFBFBD><61><EFBFBD>ԧB"
RT_CTRY_SG, // "Singapore<72>s<EFBFBD>[<5B>Y"
RT_CTRY_SK, // "Slovakia<69><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>J"
RT_CTRY_SI, // "Slovenia<69><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_ZA, // "South Africa<63>n<EFBFBD>D"
RT_CTRY_ES, // "Spain<69><6E><EFBFBD>Z<EFBFBD><5A>"
RT_CTRY_SE, // "Sweden<65><6E><EFBFBD><EFBFBD>"
RT_CTRY_CH, // "Switzerland<6E><64><EFBFBD>h"
RT_CTRY_TW, // "Taiwan<61>O<EFBFBD>W"
RT_CTRY_TH, // "Thailand<6E><64><EFBFBD><EFBFBD>"
RT_CTRY_TR, // "Turkey<65>g<EFBFBD>ը<EFBFBD>"
RT_CTRY_UA, // "Ukraine<6E>Q<EFBFBD>J<EFBFBD><4A>"
RT_CTRY_GB, // "United Kingdom<6F>^<5E><>"
RT_CTRY_US, // "United States<65><73><EFBFBD><EFBFBD>"
RT_CTRY_VE, // "Venezuela<6C>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
RT_CTRY_VN, // "Vietnam<61>V<EFBFBD>n"
RT_CTRY_MAX, //
}RT_COUNTRY_NAME, *PRT_COUNTRY_NAME;
2018-02-25 22:16:51 +00:00
// Scan type including active and passive scan.
typedef enum _RT_SCAN_TYPE_NEW
{
SCAN_NULL,
SCAN_ACT,
SCAN_PAS,
SCAN_BOTH,
}RT_SCAN_TYPE_NEW, *PRT_SCAN_TYPE_NEW;
2018-02-25 22:16:51 +00:00
// Power table sample.
typedef struct _RT_CHNL_PLAN_LIMIT
{
u2Byte Chnl_Start;
2018-02-25 22:16:51 +00:00
u2Byte Chnl_end;
u2Byte Freq_Start;
2018-02-25 22:16:51 +00:00
u2Byte Freq_end;
}RT_CHNL_PLAN_LIMIT, *PRT_CHNL_PLAN_LIMIT;
2018-02-25 22:16:51 +00:00
//
// 2.4G Regulatory Domains
//
typedef enum _RT_REGULATION_DOMAIN_2G
{
2018-02-25 22:16:51 +00:00
RT_2G_NULL,
RT_2G_WORLD,
RT_2G_ETSI1,
RT_2G_FCC1,
RT_2G_MKK1,
2018-02-25 22:16:51 +00:00
RT_2G_ETSI2
}RT_REGULATION_2G, *PRT_REGULATION_2G;
//typedef struct _RT_CHANNEL_BEHAVIOR
//{
// u1Byte Chnl;
// RT_SCAN_TYPE_NEW
2018-02-25 22:16:51 +00:00
//
//}RT_CHANNEL_BEHAVIOR, *PRT_CHANNEL_BEHAVIOR;
//typedef struct _RT_CHANNEL_PLAN_TYPE
//{
2018-02-25 22:16:51 +00:00
// RT_CHANNEL_BEHAVIOR
// u1Byte Chnl_num;
//}RT_CHNL_PLAN_TYPE, *PRT_CHNL_PLAN_TYPE;
//
// 2.4G Channel Number
// Channel definition & number
//
#define CHNL_RT_2G_NULL \
{0}, 0
#define CHNL_RT_2G_WORLD \
{1,2,3,4,5,6,7,8,9,10,11,12,13}, 13
#define CHNL_RT_2G_WORLD_TEST \
{1,2,3,4,5,6,7,8,9,10,11,12,13}, 13
#define CHNL_RT_2G_EFSI1 \
{1,2,3,4,5,6,7,8,9,10,11,12,13}, 13
#define CHNL_RT_2G_FCC1 \
{1,2,3,4,5,6,7,8,9,10,11}, 11
#define CHNL_RT_2G_MKK1 \
{1,2,3,4,5,6,7,8,9,10,11,12,13,14}, 14
#define CHNL_RT_2G_ETSI2 \
{10,11,12,13}, 4
//
// 2.4G Channel Active or passive scan.
//
#define CHNL_RT_2G_NULL_SCAN_TYPE \
{SCAN_NULL}
#define CHNL_RT_2G_WORLD_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1,0,0}
#define CHNL_RT_2G_EFSI1_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1,1,1}
#define CHNL_RT_2G_FCC1_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1}
#define CHNL_RT_2G_MKK1_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1,1,1,1}
#define CHNL_RT_2G_ETSI2_SCAN_TYPE \
{1,1,1,1}
//
// 2.4G Band & Frequency Section
// Freqency start & end / band number
//
#define FREQ_RT_2G_NULL \
{0}, 0
// Passive scan CH 12, 13
#define FREQ_RT_2G_WORLD \
{2412, 2472}, 1
#define FREQ_RT_2G_EFSI1 \
{2412, 2472}, 1
#define FREQ_RT_2G_FCC1 \
{2412, 2462}, 1
#define FREQ_RT_2G_MKK1 \
{2412, 2484}, 1
#define FREQ_RT_2G_ETSI2 \
{2457, 2472}, 1
2018-02-25 22:16:51 +00:00
//
// 5G Regulatory Domains
//
typedef enum _RT_REGULATION_DOMAIN_5G
2018-02-25 22:16:51 +00:00
{
RT_5G_NULL,
RT_5G_WORLD,
RT_5G_ETSI1,
RT_5G_ETSI2,
RT_5G_ETSI3,
2018-02-25 22:16:51 +00:00
RT_5G_FCC1,
RT_5G_FCC2,
RT_5G_FCC3,
RT_5G_FCC4,
RT_5G_FCC5,
RT_5G_FCC6,
RT_5G_FCC7,
RT_5G_IC1,
RT_5G_KCC1,
RT_5G_MKK1,
RT_5G_MKK2,
RT_5G_MKK3,
RT_5G_NCC1,
2018-02-25 22:16:51 +00:00
}RT_REGULATION_5G, *PRT_REGULATION_5G;
//
// 5G Channel Number
//
#define CHNL_RT_5G_NULL \
{0}, 0
#define CHNL_RT_5G_WORLD \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140}, 19
#define CHNL_RT_5G_ETSI1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165}, 24
#define CHNL_RT_5G_ETSI2 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,149,153,157,161,165}, 22
#define CHNL_RT_5G_ETSI3 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165}, 24
#define CHNL_RT_5G_FCC1 \
{36,40,44,48,149,153,157,161,165}, 9
#define CHNL_RT_5G_FCC2 \
{36,40,44,48,52,56,60,64,149,153,157,161,165}, 13
#define CHNL_RT_5G_FCC3 \
{36,40,44,48,52,56,60,64,149,153,157,161}, 12
#define CHNL_RT_5G_FCC4 \
{149,153,157,161,165}, 5
#define CHNL_RT_5G_FCC5 \
{36,40,44,48,52,56,60,64}, 8
#define CHNL_RT_5G_FCC6 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define CHNL_RT_5G_FCC7 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define CHNL_RT_5G_IC1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,149,153,157,161,165}, 20
#define CHNL_RT_5G_KCC1 \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140}, 19
#define CHNL_RT_5G_MKK1 \
{36,40,44,48,52,56,60,64}, 8
#define CHNL_RT_5G_MKK2 \
{100,104,108,112,116,120,124,128,132,136,140}, 11
#define CHNL_RT_5G_MKK3 \
{56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 24
#define CHNL_RT_5G_NCC1 \
2018-02-25 22:16:51 +00:00
{56,60,64,149,153,157,161,165}, 8
//
// 5G Channel Active or passive scan.
//
#define CHNL_RT_5G_NULL_SCAN_TYPE \
{SCAN_NULL}
#define CHNL_RT_5G_WORLD_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
#define CHNL_RT_5G_ETSI1_SCAN_TYPE \
{1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}
#define CHNL_RT_5G_ETSI2_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,149,153,157,161,165}, 22
#define CHNL_RT_5G_ETSI3_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140,149,153,157,161,165}, 24
#define CHNL_RT_5G_FCC1_SCAN_TYPE \
{36,40,44,48,149,153,157,161,165}, 9
#define CHNL_RT_5G_FCC2_SCAN_TYPE \
{36,40,44,48,52,56,60,64,149,153,157,161,165}, 13
#define CHNL_RT_5G_FCC3_SCAN_TYPE \
{36,40,44,48,52,56,60,64,149,153,157,161}, 12
#define CHNL_RT_5G_FCC4_SCAN_TYPE \
{149,153,157,161,165}, 5
#define CHNL_RT_5G_FCC5_SCAN_TYPE \
{36,40,44,48,52,56,60,64}, 8
#define CHNL_RT_5G_FCC6_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define CHNL_RT_5G_FCC7_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 20
#define CHNL_RT_5G_IC1_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,149,153,157,161,165}, 20
#define CHNL_RT_5G_KCC1_SCAN_TYPE \
{36,40,44,48,52,56,60,64,100,104,108,112,116,120,124,128,132,136,140}, 19
#define CHNL_RT_5G_MKK1_SCAN_TYPE \
{36,40,44,48,52,56,60,64}, 8
#define CHNL_RT_5G_MKK2_SCAN_TYPE \
{100,104,108,112,116,120,124,128,132,136,140}, 11
#define CHNL_RT_5G_MKK3_SCAN_TYPE \
{56,60,64,100,104,108,112,116,136,140,149,153,157,161,165}, 24
#define CHNL_RT_5G_NCC1_SCAN_TYPE \
2018-02-25 22:16:51 +00:00
{56,60,64,149,153,157,161,165}, 8
2018-02-25 22:16:51 +00:00
//
// Global Regulation
//
typedef enum _RT_REGULATION_COMMON
{
2018-02-25 22:16:51 +00:00
RT_WORLD,
RT_FCC,
RT_MKK,
RT_ETSI,
RT_IC,
RT_CE,
RT_NCC,
2018-02-25 22:16:51 +00:00
}RT_REGULATION_CMN, *PRT_REGULATION_CMN;
2018-02-25 22:16:51 +00:00
//
// Special requirement for different regulation domain.
// For internal test or customerize special request.
//
typedef enum _RT_CHNLPLAN_SREQ
{
RT_SREQ_NA = 0x0,
RT_SREQ_2G_ADHOC_11N = 0x00000001,
RT_SREQ_2G_ADHOC_11B = 0x00000002,
RT_SREQ_2G_ALL_PASS = 0x00000004,
2018-02-25 22:16:51 +00:00
RT_SREQ_2G_ALL_ACT = 0x00000008,
RT_SREQ_5G_ADHOC_11N = 0x00000010,
RT_SREQ_5G_ADHOC_11AC = 0x00000020,
RT_SREQ_5G_ALL_PASS = 0x00000040,
RT_SREQ_5G_ALL_ACT = 0x00000080,
2018-02-25 22:16:51 +00:00
RT_SREQ_C1_PLAN = 0x00000100,
RT_SREQ_C2_PLAN = 0x00000200,
RT_SREQ_C3_PLAN = 0x00000400,
RT_SREQ_C4_PLAN = 0x00000800,
RT_SREQ_NFC_ON = 0x00001000,
RT_SREQ_MASK = 0x0000FFFF, /* Requirements bit mask */
2018-02-25 22:16:51 +00:00
}RT_CHNLPLAN_SREQ, *PRT_CHNLPLAN_SREQ;
//
// RT_COUNTRY_NAME & RT_REGULATION_2G & RT_REGULATION_5G transfer table
2018-02-25 22:16:51 +00:00
//
//
typedef struct _RT_CHANNEL_PLAN_COUNTRY_TRANSFER_TABLE
2018-02-25 22:16:51 +00:00
{
//
// Define countery domain and corresponding
//
RT_COUNTRY_NAME Country_Enum;
char Country_Name[3];
2018-02-25 22:16:51 +00:00
//char Domain_Name[12];
2018-02-25 22:16:51 +00:00
RT_REGULATION_2G Domain_2G;
2018-02-25 22:16:51 +00:00
RT_REGULATION_5G Domain_5G;
RT_CHANNEL_DOMAIN RtChDomain;
//u1Byte Country_Area;
2018-02-25 22:16:51 +00:00
}RT_CHNL_CTRY_TBL, *PRT_CHNL_CTRY_TBL;
2018-02-25 22:16:51 +00:00
#define RT_MAX_CHNL_NUM_2G 13
2018-02-25 22:16:51 +00:00
#define RT_MAX_CHNL_NUM_5G 44
// Power table sample.
typedef struct _RT_CHNL_PLAN_PWR_LIMIT
{
u2Byte Chnl_Start;
u2Byte Chnl_end;
u1Byte dB_Max;
u2Byte mW_Max;
}RT_CHNL_PWR_LIMIT, *PRT_CHNL_PWR_LIMIT;
#define RT_MAX_BAND_NUM 5
typedef struct _RT_CHANNEL_PLAN_MAXPWR
{
// STRING_T
RT_CHNL_PWR_LIMIT Chnl[RT_MAX_BAND_NUM];
u1Byte Band_Useful_Num;
2018-02-25 22:16:51 +00:00
}RT_CHANNEL_PLAN_MAXPWR, *PRT_CHANNEL_PLAN_MAXPWR;
//
// Power By Rate Table.
//
typedef struct _RT_CHANNEL_PLAN_NEW
2018-02-25 22:16:51 +00:00
{
//
2018-02-25 22:16:51 +00:00
// Define countery domain and corresponding
//
//char Country_Name[36];
//u1Byte Country_Enum;
2018-02-25 22:16:51 +00:00
//char Domain_Name[12];
2018-02-25 22:16:51 +00:00
PRT_CHNL_CTRY_TBL pCtryTransfer;
2018-02-25 22:16:51 +00:00
RT_CHANNEL_DOMAIN RtChDomain;
RT_REGULATION_2G Domain_2G;
2018-02-25 22:16:51 +00:00
RT_REGULATION_5G Domain_5G;
RT_REGULATION_CMN Regulator;
RT_CHNLPLAN_SREQ ChnlSreq;
2018-02-25 22:16:51 +00:00
//RT_CHNL_PLAN_LIMIT RtChnl;
2018-02-25 22:16:51 +00:00
u1Byte Chnl2G[MAX_CHANNEL_NUM]; // CHNL_RT_2G_WORLD
u1Byte Len2G;
u1Byte Chnl2GScanTp[MAX_CHANNEL_NUM]; // CHNL_RT_2G_WORLD_SCAN_TYPE
//u1Byte Freq2G[2]; // FREQ_RT_2G_WORLD
2018-02-25 22:16:51 +00:00
u1Byte Chnl5G[MAX_CHANNEL_NUM];
u1Byte Len5G;
u1Byte Chnl5GScanTp[MAX_CHANNEL_NUM];
//u1Byte Freq2G[2]; // FREQ_RT_2G_WORLD
RT_CHANNEL_PLAN_MAXPWR ChnlMaxPwr;
2018-02-25 22:16:51 +00:00
}RT_CHANNEL_PLAN_NEW, *PRT_CHANNEL_PLAN_NEW;
2018-02-25 22:16:51 +00:00
#endif // __RT_CHANNELPLAN_H__
2018-02-25 22:16:51 +00:00