summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/dev/ic/ar5xxx.c122
-rw-r--r--sys/net80211/ieee80211_regdomain.h802
2 files changed, 474 insertions, 450 deletions
diff --git a/sys/dev/ic/ar5xxx.c b/sys/dev/ic/ar5xxx.c
index bb52d096c12..e89b50304e0 100644
--- a/sys/dev/ic/ar5xxx.c
+++ b/sys/dev/ic/ar5xxx.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ar5xxx.c,v 1.13 2005/02/19 16:58:00 reyk Exp $ */
+/* $OpenBSD: ar5xxx.c,v 1.14 2005/02/23 14:26:54 reyk Exp $ */
/*
* Copyright (c) 2004, 2005 Reyk Floeter <reyk@vantronix.net>
@@ -51,7 +51,6 @@ static const struct {
ar5k_ar5210_attach },
{ PCI_VENDOR_ATHEROS, PCI_PRODUCT_ATHEROS_AR5210_DEFAULT,
ar5k_ar5210_attach },
-
#ifdef notyet
{ PCI_VENDOR_ATHEROS, PCI_PRODUCT_ATHEROS_AR5211,
ar5k_ar5211_attach },
@@ -87,6 +86,7 @@ u_int32_t ar5k_ar5110_chan2athchan(HAL_CHANNEL *);
HAL_BOOL ar5k_ar5111_channel(struct ath_hal *, HAL_CHANNEL *);
HAL_BOOL ar5k_ar5111_chan2athchan(u_int, struct ar5k_athchan_2ghz *);
HAL_BOOL ar5k_ar5112_channel(struct ath_hal *, HAL_CHANNEL *);
+HAL_BOOL ar5k_check_channel(struct ath_hal *, u_int16_t, u_int flags);
HAL_BOOL ar5k_ar5111_rfregs(struct ath_hal *, HAL_CHANNEL *, u_int);
HAL_BOOL ar5k_ar5112_rfregs(struct ath_hal *, HAL_CHANNEL *, u_int);
@@ -102,11 +102,10 @@ static const struct ar5k_ini_rf ar5112_rf[] =
AR5K_AR5112_INI_RF;
/*
- * XXX Overwrite the country code (use "00" for debug)
- * XXX as long as ieee80211_regdomain is not finished
+ * Enable to overwrite the country code (use "00" for debug)
*/
-#ifndef COUNTRYCODE
-#define COUNTRYCODE "us"
+#if 0
+#define COUNTRYCODE "00"
#endif
/*
@@ -348,6 +347,26 @@ ath_hal_ieee2mhz(ieee, flags)
}
HAL_BOOL
+ar5k_check_channel(hal, freq, flags)
+ struct ath_hal *hal;
+ u_int16_t freq;
+ u_int flags;
+{
+ /* Check if the channel is in our supported range */
+ if (flags & IEEE80211_CHAN_2GHZ) {
+ if ((freq >= hal->ah_capabilities.cap_range.range_2ghz_min) &&
+ (freq <= hal->ah_capabilities.cap_range.range_2ghz_max))
+ return (AH_TRUE);
+ } else if (flags & IEEE80211_CHAN_5GHZ) {
+ if ((freq >= hal->ah_capabilities.cap_range.range_5ghz_min) &&
+ (freq <= hal->ah_capabilities.cap_range.range_5ghz_max))
+ return (AH_TRUE);
+ }
+
+ return (AH_FALSE);
+}
+
+HAL_BOOL
ath_hal_init_channels(hal, channels, max_channels, channels_size, country, mode,
outdoor, extended)
struct ath_hal *hal;
@@ -364,8 +383,45 @@ ath_hal_init_channels(hal, channels, max_channels, channels_size, country, mode,
u_int domain_5ghz, domain_2ghz;
HAL_CHANNEL all_channels[max_channels];
- c = 0;
+ i = c = 0;
domain_current = hal->ah_getRegDomain(hal);
+
+ /*
+ * In debugging mode, enable all channels supported by the chipset
+ */
+ if (domain_current == DMN_DEFAULT) {
+ int min, max, freq;
+ u_int flags;
+
+ min = ieee80211_mhz2ieee(IEEE80211_CHANNELS_2GHZ_MIN,
+ IEEE80211_CHAN_2GHZ);
+ max = ieee80211_mhz2ieee(IEEE80211_CHANNELS_2GHZ_MAX,
+ IEEE80211_CHAN_2GHZ);
+ flags = CHANNEL_B | CHANNEL_TG |
+ (hal->ah_version == AR5K_AR5211 ?
+ CHANNEL_PUREG : CHANNEL_G);
+
+ debugchan:
+ for (i = min; i <= max && c < max_channels; i++) {
+ freq = ieee80211_ieee2mhz(i, flags);
+ if (ar5k_check_channel(hal, freq, flags) == AH_FALSE)
+ continue;
+ all_channels[c].c_channel = freq;
+ all_channels[c++].c_channel_flags = flags;
+ }
+
+ if (flags & IEEE80211_CHAN_2GHZ) {
+ min = ieee80211_mhz2ieee(IEEE80211_CHANNELS_5GHZ_MIN,
+ IEEE80211_CHAN_5GHZ);
+ max = ieee80211_mhz2ieee(IEEE80211_CHANNELS_5GHZ_MAX,
+ IEEE80211_CHAN_5GHZ);
+ flags = CHANNEL_A | CHANNEL_T | CHANNEL_XR;
+ goto debugchan;
+ }
+
+ goto done;
+ }
+
domain_5ghz = ieee80211_regdomain2flag(domain_current,
IEEE80211_CHANNELS_5GHZ_MIN);
domain_2ghz = ieee80211_regdomain2flag(domain_current,
@@ -380,24 +436,23 @@ ath_hal_init_channels(hal, channels, max_channels, channels_size, country, mode,
sizeof(ar5k_5ghz_channels[0]))) &&
(c < max_channels); i++) {
/* Check if channel is supported by the chipset */
- if ((ar5k_5ghz_channels[i].rc_channel <
- hal->ah_capabilities.cap_range.range_5ghz_min) ||
- (ar5k_5ghz_channels[i].rc_channel >
- hal->ah_capabilities.cap_range.range_5ghz_max))
+ if (ar5k_check_channel(hal,
+ ar5k_5ghz_channels[i].rc_channel,
+ IEEE80211_CHAN_5GHZ) == AH_FALSE)
continue;
/* Match regulation domain */
- if ((IEEE80211_DMN(ar5k_5ghz_channels[i].rc_domains) &
+ if ((IEEE80211_DMN(ar5k_5ghz_channels[i].rc_domain) &
IEEE80211_DMN(domain_5ghz)) == 0)
continue;
/* Match modes */
- if (ar5k_5ghz_channels[i].rc_mode & IEEE80211_CHAN_TURBO)
- all_channels[c].channelFlags = CHANNEL_T;
- else if (ar5k_5ghz_channels[i].rc_mode & IEEE80211_CHAN_OFDM)
- all_channels[c].channelFlags = CHANNEL_A;
- else
- continue;
+ if (ar5k_5ghz_channels[i].rc_mode & IEEE80211_CHAN_TURBO) {
+ all_channels[c].c_channel_flags = CHANNEL_T;
+ } else if (ar5k_5ghz_channels[i].rc_mode &
+ IEEE80211_CHAN_OFDM) {
+ all_channels[c].c_channel_flags = CHANNEL_A;
+ }
/* Write channel and increment counter */
all_channels[c++].channel = ar5k_5ghz_channels[i].rc_channel;
@@ -411,31 +466,34 @@ ath_hal_init_channels(hal, channels, max_channels, channels_size, country, mode,
sizeof(ar5k_2ghz_channels[0]))) &&
(c < max_channels); i++) {
/* Check if channel is supported by the chipset */
- if ((ar5k_2ghz_channels[i].rc_channel <
- hal->ah_capabilities.cap_range.range_2ghz_min) ||
- (ar5k_2ghz_channels[i].rc_channel >
- hal->ah_capabilities.cap_range.range_2ghz_max))
+ if (ar5k_check_channel(hal,
+ ar5k_2ghz_channels[i].rc_channel,
+ IEEE80211_CHAN_2GHZ) == AH_FALSE)
continue;
/* Match regulation domain */
- if ((IEEE80211_DMN(ar5k_2ghz_channels[i].rc_domains) &
+ if ((IEEE80211_DMN(ar5k_2ghz_channels[i].rc_domain) &
IEEE80211_DMN(domain_2ghz)) == 0)
continue;
/* Match modes */
if (ar5k_2ghz_channels[i].rc_mode & IEEE80211_CHAN_CCK)
- all_channels[c].channelFlags = CHANNEL_B;
- else if (ar5k_2ghz_channels[i].rc_mode & IEEE80211_CHAN_TURBO)
- all_channels[c].channelFlags = CHANNEL_TG;
- else if (ar5k_2ghz_channels[i].rc_mode & IEEE80211_CHAN_OFDM)
- all_channels[c].channelFlags = CHANNEL_G;
- else
- continue;
+ all_channels[c].c_channel_flags = CHANNEL_B;
+
+ if (ar5k_2ghz_channels[i].rc_mode & IEEE80211_CHAN_OFDM) {
+ all_channels[c].c_channel_flags |=
+ hal->ah_version == AR5K_AR5211 ?
+ CHANNEL_PUREG : CHANNEL_G;
+ if (ar5k_2ghz_channels[i].rc_mode &
+ IEEE80211_CHAN_TURBO)
+ all_channels[c].c_channel_flags |= CHANNEL_TG;
+ }
/* Write channel and increment counter */
all_channels[c++].channel = ar5k_2ghz_channels[i].rc_channel;
}
+ done:
memcpy(channels, &all_channels, sizeof(all_channels));
*channels_size = c;
@@ -460,8 +518,8 @@ ar5k_radar_alert(hal)
hal->ah_radar.r_last_channel.channel =
hal->ah_current_channel.channel;
- hal->ah_radar.r_last_channel.channelFlags =
- hal->ah_current_channel.channelFlags;
+ hal->ah_radar.r_last_channel.c_channel_flags =
+ hal->ah_current_channel.c_channel_flags;
hal->ah_radar.r_last_alert = tick;
AR5K_PRINTF("Possible radar activity detected at %u MHz (tick %u)\n",
diff --git a/sys/net80211/ieee80211_regdomain.h b/sys/net80211/ieee80211_regdomain.h
index 4bdc3ce3b2a..56354a48861 100644
--- a/sys/net80211/ieee80211_regdomain.h
+++ b/sys/net80211/ieee80211_regdomain.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: ieee80211_regdomain.h,v 1.6 2005/02/17 23:52:05 reyk Exp $ */
+/* $OpenBSD: ieee80211_regdomain.h,v 1.7 2005/02/23 14:26:53 reyk Exp $ */
/*
* Copyright (c) 2004, 2005 Reyk Floeter <reyk@vantronix.net>
@@ -23,15 +23,15 @@ typedef u_int32_t ieee80211_regdomain_t;
enum ieee80211_regdomain {
DMN_DEFAULT = 0x00,
- DMN_NULL1_WORLD = 0x03,
- DMN_NULL1_ETSIB = 0x07,
- DMN_NULL1_ETSIC = 0x08,
+ DMN_NULL_WORLD = 0x03,
+ DMN_NULL_ETSIB = 0x07,
+ DMN_NULL_ETSIC = 0x08,
DMN_FCC1_FCCA = 0x10,
DMN_FCC1_WORLD = 0x11,
DMN_FCC2_FCCA = 0x20,
DMN_FCC2_WORLD = 0x21,
DMN_FCC2_ETSIC = 0x22,
- DMN_FRANCE_RES = 0x31,
+ DMN_FRANCE_NULL = 0x31,
DMN_FCC3_FCCA = 0x3A,
DMN_ETSI1_WORLD = 0x37,
DMN_ETSI3_ETSIA = 0x32,
@@ -41,12 +41,12 @@ enum ieee80211_regdomain {
DMN_ETSI4_ETSIC = 0x38,
DMN_ETSI5_WORLD = 0x39,
DMN_ETSI6_WORLD = 0x34,
- DMN_ETSI_RESERVED = 0x33,
+ DMN_ETSI_NULL = 0x33,
DMN_MKK1_MKKA = 0x40,
DMN_MKK1_MKKB = 0x41,
DMN_APL4_WORLD = 0x42,
DMN_MKK2_MKKA = 0x43,
- DMN_APL_RESERVED = 0x44,
+ DMN_APL_NULL = 0x44,
DMN_APL2_WORLD = 0x45,
DMN_APL2_APLC = 0x46,
DMN_APL3_WORLD = 0x47,
@@ -94,7 +94,7 @@ enum ieee80211_regdomain {
DMN_MKK1 = 0xf0080000,
DMN_MKK2 = 0xf0100000,
DMN_MKKA = 0xf0200000,
- DMN_NULL1 = 0xf0400000,
+ DMN_NULL = 0xf0400000,
DMN_WORLD = 0xf0800000,
DMN_DEBUG = 0xf1000000 /* used for debugging */
};
@@ -103,20 +103,20 @@ enum ieee80211_regdomain {
struct ieee80211_regdomainname {
u_int32_t rn_domain;
- const char *rn_name;
+ const char *rn_name;
};
#define IEEE80211_REGDOMAIN_NAMES { \
- { DMN_APL1, "APL1" }, \
- { DMN_APL1_APLA, "APL1A" }, \
- { DMN_APL1_ETSIC, "APL1_ETSIC" }, \
- { DMN_APL1_FCCA, "APL1_FCCA" }, \
- { DMN_APL1_WORLD, "APL1W" }, \
- { DMN_APL2, "APL2" }, \
- { DMN_APL2_APLC, "APL2C" }, \
- { DMN_APL2_APLD, "APL2D" }, \
- { DMN_APL2_ETSIC, "APL2_ETSIC" }, \
- { DMN_APL2_WORLD, "APL2W" }, \
+ { DMN_APL1, "APL1" }, \
+ { DMN_APL1_APLA, "APL1A" }, \
+ { DMN_APL1_ETSIC, "APL1_ETSIC" }, \
+ { DMN_APL1_FCCA, "APL1_FCCA" }, \
+ { DMN_APL1_WORLD, "APL1W" }, \
+ { DMN_APL2, "APL2" }, \
+ { DMN_APL2_APLC, "APL2C" }, \
+ { DMN_APL2_APLD, "APL2D" }, \
+ { DMN_APL2_ETSIC, "APL2_ETSIC" }, \
+ { DMN_APL2_WORLD, "APL2W" }, \
{ DMN_APL3, "APL3" }, \
{ DMN_APL3_WORLD, "APL3W" }, \
{ DMN_APL4, "APL4" }, \
@@ -124,7 +124,7 @@ struct ieee80211_regdomainname {
{ DMN_APL5, "APL5" }, \
{ DMN_APL5_WORLD, "APL5W" }, \
{ DMN_APLD, "APLD" }, \
- { DMN_APL_RESERVED, "APL_RES" }, \
+ { DMN_APL_NULL, "APL" }, \
{ DMN_DEBUG, "DEBUG" }, \
{ DMN_ETSI1, "ETSI1" }, \
{ DMN_ETSI1_WORLD, "ETSI1W" }, \
@@ -143,7 +143,7 @@ struct ieee80211_regdomainname {
{ DMN_ETSIA, "ETSIA" }, \
{ DMN_ETSIB, "ETSIB" }, \
{ DMN_ETSIC, "ETSIC" }, \
- { DMN_ETSI_RESERVED, "ETSI_RES" }, \
+ { DMN_ETSI_NULL, "ETSI" }, \
{ DMN_EU1_WORLD, "EU1W" }, \
{ DMN_FCC1, "FCC1" }, \
{ DMN_FCC1_FCCA, "FCC1A" }, \
@@ -155,7 +155,7 @@ struct ieee80211_regdomainname {
{ DMN_FCC3, "FCC3" }, \
{ DMN_FCC3_FCCA, "FCC3A" }, \
{ DMN_FCCA, "FCCA" }, \
- { DMN_FRANCE_RES, "FRANCE_RES" }, \
+ { DMN_FRANCE_NULL, "FRANCE" }, \
{ DMN_MKK1, "MKK1" }, \
{ DMN_MKK1_FCCA, "MKK1_FCCA" }, \
{ DMN_MKK1_MKKA, "MKK1A" }, \
@@ -166,20 +166,20 @@ struct ieee80211_regdomainname {
{ DMN_MKK2_MKKA, "MKK2A" }, \
{ DMN_MKKA, "MKKA" }, \
{ DMN_DEFAULT, "NONE" }, \
- { DMN_NULL1, "NULL1" }, \
- { DMN_NULL1_ETSIB, "NULL1_ETSIB" }, \
- { DMN_NULL1_ETSIC, "NULL1_ETSIC" }, \
+ { DMN_NULL, "NONE" }, \
+ { DMN_NULL_ETSIB, "ETSIB" }, \
+ { DMN_NULL_ETSIC, "ETSIC" }, \
{ DMN_WOR01_WORLD, "WOR01W" }, \
{ DMN_WOR02_WORLD, "WOR02W" }, \
{ DMN_WOR0_WORLD, "WOR0W" }, \
- { DMN_WOR1_WORLD, "WOR1_WORLD" }, \
+ { DMN_WOR1_WORLD, "WOR1W" }, \
{ DMN_WOR2_WORLD, "WOR2W" }, \
{ DMN_WOR3_WORLD, "WOR3W" }, \
{ DMN_WOR4_WORLD, "WOR4W" }, \
{ DMN_WOR5_ETSIC, "WOR5_ETSIC" }, \
{ DMN_WOR9_WORLD, "WOR9W" }, \
{ DMN_WORA_WORLD, "WORAW" }, \
- { DMN_NULL1_WORLD, "WORLD" }, \
+ { DMN_NULL_WORLD, "WORLD" }, \
{ DMN_WORLD, "WORLD" } \
}
@@ -190,42 +190,59 @@ struct ieee80211_regdomainmap {
};
#define IEEE80211_REGDOMAIN_MAP { \
- { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG }, \
- { DMN_NULL1_WORLD, DMN_NULL1, DMN_WORLD }, \
- { DMN_NULL1_ETSIB, DMN_NULL1, DMN_ETSIB }, \
- { DMN_NULL1_ETSIC, DMN_NULL1, DMN_ETSIC }, \
- { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA }, \
+ { DMN_DEFAULT, DMN_DEBUG, DMN_DEBUG }, \
+ { DMN_NULL_WORLD, DMN_NULL, DMN_WORLD }, \
+ { DMN_NULL_ETSIB, DMN_NULL, DMN_ETSIB }, \
+ { DMN_NULL_ETSIC, DMN_NULL, DMN_ETSIC }, \
+ { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA }, \
+ { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD }, \
+ { DMN_FCC2_FCCA, DMN_FCC2, DMN_FCCA }, \
{ DMN_FCC2_WORLD, DMN_FCC2, DMN_WORLD }, \
{ DMN_FCC2_ETSIC, DMN_FCC2, DMN_ETSIC }, \
- { DMN_FCC3_FCCA, DMN_FCC3, DMN_FCCA }, \
+ { DMN_FRANCE_NULL, DMN_ETSI3, DMN_ETSI3 }, \
+ { DMN_FCC3_FCCA, DMN_FCC3, DMN_WORLD }, \
{ DMN_ETSI1_WORLD, DMN_ETSI1, DMN_WORLD }, \
+ { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD }, \
{ DMN_ETSI2_WORLD, DMN_ETSI2, DMN_WORLD }, \
{ DMN_ETSI3_WORLD, DMN_ETSI3, DMN_WORLD }, \
{ DMN_ETSI4_WORLD, DMN_ETSI4, DMN_WORLD }, \
+ { DMN_ETSI4_ETSIC, DMN_ETSI4, DMN_ETSIC }, \
{ DMN_ETSI5_WORLD, DMN_ETSI5, DMN_WORLD }, \
{ DMN_ETSI6_WORLD, DMN_ETSI6, DMN_WORLD }, \
- { DMN_ETSI3_ETSIA, DMN_ETSI3, DMN_WORLD }, \
- { DMN_FRANCE_RES, DMN_ETSI3, DMN_WORLD }, \
- { DMN_FCC1_WORLD, DMN_FCC1, DMN_WORLD }, \
- { DMN_FCC1_FCCA, DMN_FCC1, DMN_FCCA }, \
- { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD }, \
- { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD }, \
- { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD }, \
- { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD }, \
- { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD }, \
- { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC }, \
- { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC }, \
- { DMN_APL2_APLD, DMN_APL2, DMN_APLD }, \
+ { DMN_ETSI_NULL, DMN_ETSI1, DMN_ETSI1 }, \
{ DMN_MKK1_MKKA, DMN_MKK1, DMN_MKKA }, \
{ DMN_MKK1_MKKB, DMN_MKK1, DMN_MKKA }, \
+ { DMN_APL4_WORLD, DMN_APL4, DMN_WORLD }, \
{ DMN_MKK2_MKKA, DMN_MKK2, DMN_MKKA }, \
+ { DMN_APL_NULL, DMN_APL1, DMN_NULL }, \
+ { DMN_APL2_WORLD, DMN_APL2, DMN_WORLD }, \
+ { DMN_APL2_APLC, DMN_APL2, DMN_WORLD }, \
+ { DMN_APL3_WORLD, DMN_APL3, DMN_WORLD }, \
{ DMN_MKK1_FCCA, DMN_MKK1, DMN_FCCA }, \
+ { DMN_APL2_APLD, DMN_APL2, DMN_APLD }, \
{ DMN_MKK1_MKKA1, DMN_MKK1, DMN_MKKA }, \
- { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA } \
+ { DMN_MKK1_MKKA2, DMN_MKK1, DMN_MKKA }, \
+ { DMN_APL1_WORLD, DMN_APL1, DMN_WORLD }, \
+ { DMN_APL1_FCCA, DMN_APL1, DMN_FCCA }, \
+ { DMN_APL1_APLA, DMN_APL1, DMN_WORLD }, \
+ { DMN_APL1_ETSIC, DMN_APL1, DMN_ETSIC }, \
+ { DMN_APL2_ETSIC, DMN_APL2, DMN_ETSIC }, \
+ { DMN_APL5_WORLD, DMN_APL5, DMN_WORLD }, \
+ { DMN_WOR0_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR1_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR2_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR3_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR4_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR5_ETSIC, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR01_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WOR02_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_EU1_WORLD, DMN_ETSI1, DMN_WORLD }, \
+ { DMN_WOR9_WORLD, DMN_WORLD, DMN_WORLD }, \
+ { DMN_WORA_WORLD, DMN_WORLD, DMN_WORLD }, \
}
enum ieee80211_countrycode {
- CTRY_DEFAULT = 0, /* Default domain (NA) */
+ CTRY_DEFAULT = 0, /* Default domain (NA) */
CTRY_ALBANIA = 8, /* Albania */
CTRY_ALGERIA = 12, /* Algeria */
CTRY_ARGENTINA = 32, /* Argentina */
@@ -295,7 +312,7 @@ enum ieee80211_countrycode {
CTRY_LITHUANIA = 440, /* Lithuania */
CTRY_LUXEMBOURG = 442, /* Luxembourg */
CTRY_MACAU = 446, /* Macau */
- CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */
+ CTRY_MACEDONIA = 807, /* Republic of Macedonia */
CTRY_MALAYSIA = 458, /* Malaysia */
CTRY_MEXICO = 484, /* Mexico */
CTRY_MONACO = 492, /* Principality of Monaco */
@@ -341,19 +358,18 @@ enum ieee80211_countrycode {
CTRY_VIET_NAM = 704, /* Viet Nam */
CTRY_YEMEN = 887, /* Yemen */
CTRY_ZIMBABWE = 716, /* Zimbabwe */
- CTRY_DEBUG = 0x1ff /* for debugging */
};
struct ieee80211_countryname {
u_int16_t cn_code;
- const char *cn_name;
- u_int32_t cn_domain;
+ const char *cn_name;
+ u_int32_t cn_domain;
};
-#define IEEE80211_REGDOMAIN_COUNTRY_NAMES { \
- { CTRY_DEFAULT, "00", DMN_DEBUG }, \
- { CTRY_UAE, "ae", DMN_NULL1_WORLD }, \
- { CTRY_ALBANIA, "al", DMN_NULL1_WORLD }, \
+#define IEEE80211_REGDOMAIN_COUNTRY_NAMES { \
+ { CTRY_DEFAULT, "00", DMN_DEFAULT }, \
+ { CTRY_UAE, "ae", DMN_NULL_WORLD }, \
+ { CTRY_ALBANIA, "al", DMN_NULL_WORLD }, \
{ CTRY_ARMENIA, "am", DMN_ETSI4_WORLD }, \
{ CTRY_ARGENTINA, "ar", DMN_APL3_WORLD }, \
{ CTRY_AUSTRIA, "at", DMN_ETSI5_WORLD }, \
@@ -361,44 +377,44 @@ struct ieee80211_countryname {
{ CTRY_AZERBAIJAN, "az", DMN_ETSI4_WORLD }, \
{ CTRY_BELGIUM, "be", DMN_ETSI4_WORLD }, \
{ CTRY_BULGARIA, "bg", DMN_ETSI6_WORLD }, \
- { CTRY_BAHRAIN, "bh", DMN_NULL1_WORLD }, \
+ { CTRY_BAHRAIN, "bh", DMN_NULL_WORLD }, \
{ CTRY_BRUNEI_DARUSSALAM, "bn", DMN_APL1_WORLD }, \
{ CTRY_BOLIVIA, "bo", DMN_APL1_ETSIC }, \
- { CTRY_BRAZIL, "br", DMN_NULL1_ETSIC }, \
- { CTRY_BELARUS, "by", DMN_NULL1_WORLD }, \
- { CTRY_BELIZE, "bz", DMN_NULL1_ETSIC }, \
+ { CTRY_BRAZIL, "br", DMN_NULL_ETSIC }, \
+ { CTRY_BELARUS, "by", DMN_NULL_WORLD }, \
+ { CTRY_BELIZE, "bz", DMN_NULL_ETSIC }, \
{ CTRY_CANADA, "ca", DMN_FCC2_FCCA }, \
{ CTRY_SWITZERLAND, "ch", DMN_ETSI2_WORLD }, \
{ CTRY_CHILE, "cl", DMN_APL5_WORLD }, \
{ CTRY_CHINA, "cn", DMN_APL1_WORLD }, \
{ CTRY_COLOMBIA, "co", DMN_FCC1_FCCA }, \
- { CTRY_COSTA_RICA, "cr", DMN_NULL1_WORLD }, \
+ { CTRY_COSTA_RICA, "cr", DMN_NULL_WORLD }, \
{ CTRY_CYPRUS, "cy", DMN_ETSI1_WORLD }, \
{ CTRY_CZECH, "cz", DMN_ETSI3_WORLD }, \
{ CTRY_GERMANY, "de", DMN_ETSI1_WORLD }, \
{ CTRY_DENMARK, "dk", DMN_ETSI1_WORLD }, \
- { CTRY_DOMINICAN_REPUBLIC, "do", DMN_FCC1_FCCA }, \
- { CTRY_ALGERIA, "dz", DMN_NULL1_WORLD }, \
- { CTRY_ECUADOR, "ec", DMN_NULL1_WORLD }, \
+ { CTRY_DOMINICAN_REPUBLIC, "do", DMN_FCC1_FCCA }, \
+ { CTRY_ALGERIA, "dz", DMN_NULL_WORLD }, \
+ { CTRY_ECUADOR, "ec", DMN_NULL_WORLD }, \
{ CTRY_ESTONIA, "ee", DMN_ETSI1_WORLD }, \
- { CTRY_EGYPT, "eg", DMN_NULL1_WORLD }, \
+ { CTRY_EGYPT, "eg", DMN_NULL_WORLD }, \
{ CTRY_SPAIN, "es", DMN_ETSI1_WORLD }, \
{ CTRY_FRANCE2, "f2", DMN_ETSI3_WORLD }, \
{ CTRY_FINLAND, "fi", DMN_ETSI1_WORLD }, \
- { CTRY_FAEROE_ISLANDS, "fo", DMN_NULL1_WORLD }, \
+ { CTRY_FAEROE_ISLANDS, "fo", DMN_NULL_WORLD }, \
{ CTRY_FRANCE, "fr", DMN_ETSI3_WORLD }, \
{ CTRY_GEORGIA, "ge", DMN_ETSI4_WORLD }, \
- { CTRY_GREECE, "gr", DMN_NULL1_WORLD }, \
+ { CTRY_GREECE, "gr", DMN_NULL_WORLD }, \
{ CTRY_GUATEMALA, "gt", DMN_FCC1_FCCA }, \
{ CTRY_HONG_KONG, "hk", DMN_FCC2_WORLD }, \
- { CTRY_HONDURAS, "hn", DMN_NULL1_WORLD }, \
+ { CTRY_HONDURAS, "hn", DMN_NULL_WORLD }, \
{ CTRY_CROATIA, "hr", DMN_ETSI3_WORLD }, \
{ CTRY_HUNGARY, "hu", DMN_ETSI2_WORLD }, \
- { CTRY_INDONESIA, "id", DMN_NULL1_WORLD }, \
+ { CTRY_INDONESIA, "id", DMN_NULL_WORLD }, \
{ CTRY_IRELAND, "ie", DMN_ETSI1_WORLD }, \
- { CTRY_ISRAEL, "il", DMN_NULL1_WORLD }, \
- { CTRY_INDIA, "in", DMN_NULL1_WORLD }, \
- { CTRY_IRAQ, "iq", DMN_NULL1_WORLD }, \
+ { CTRY_ISRAEL, "il", DMN_NULL_WORLD }, \
+ { CTRY_INDIA, "in", DMN_NULL_WORLD }, \
+ { CTRY_IRAQ, "iq", DMN_NULL_WORLD }, \
{ CTRY_IRAN, "ir", DMN_APL1_WORLD }, \
{ CTRY_ICELAND, "is", DMN_ETSI1_WORLD }, \
{ CTRY_ITALY, "it", DMN_ETSI1_WORLD }, \
@@ -407,67 +423,66 @@ struct ieee80211_countryname {
{ CTRY_JAPAN3, "j3", DMN_MKK2_MKKA }, \
{ CTRY_JAPAN4, "j4", DMN_MKK1_MKKA1 }, \
{ CTRY_JAPAN5, "j5", DMN_MKK1_MKKA2 }, \
- { CTRY_JAMAICA, "jm", DMN_NULL1_WORLD }, \
- { CTRY_JORDAN, "jo", DMN_NULL1_WORLD }, \
+ { CTRY_JAMAICA, "jm", DMN_NULL_WORLD }, \
+ { CTRY_JORDAN, "jo", DMN_NULL_WORLD }, \
{ CTRY_JAPAN, "jp", DMN_MKK1_MKKA }, \
{ CTRY_KOREA_ROC2, "k2", DMN_APL2_APLD }, \
- { CTRY_KENYA, "ke", DMN_NULL1_WORLD }, \
+ { CTRY_KENYA, "ke", DMN_NULL_WORLD }, \
{ CTRY_KOREA_NORTH, "kp", DMN_APL2_WORLD }, \
{ CTRY_KOREA_ROC, "kr", DMN_APL2_WORLD }, \
- { CTRY_KUWAIT, "kw", DMN_NULL1_WORLD }, \
- { CTRY_KAZAKHSTAN, "kz", DMN_NULL1_WORLD }, \
- { CTRY_LEBANON, "lb", DMN_NULL1_WORLD }, \
+ { CTRY_KUWAIT, "kw", DMN_NULL_WORLD }, \
+ { CTRY_KAZAKHSTAN, "kz", DMN_NULL_WORLD }, \
+ { CTRY_LEBANON, "lb", DMN_NULL_WORLD }, \
{ CTRY_LIECHTENSTEIN, "li", DMN_ETSI2_WORLD }, \
- { CTRY_SRI_LANKA, "lk", DMN_NULL1_WORLD }, \
+ { CTRY_SRI_LANKA, "lk", DMN_NULL_WORLD }, \
{ CTRY_LITHUANIA, "lt", DMN_ETSI1_WORLD }, \
{ CTRY_LUXEMBOURG, "lu", DMN_ETSI1_WORLD }, \
- { CTRY_LATVIA, "lv", DMN_NULL1_WORLD }, \
- { CTRY_LIBYA, "ly", DMN_NULL1_WORLD }, \
- { CTRY_MOROCCO, "ma", DMN_NULL1_WORLD }, \
+ { CTRY_LATVIA, "lv", DMN_NULL_WORLD }, \
+ { CTRY_LIBYA, "ly", DMN_NULL_WORLD }, \
+ { CTRY_MOROCCO, "ma", DMN_NULL_WORLD }, \
{ CTRY_MONACO, "mc", DMN_ETSI4_WORLD }, \
- { CTRY_MACEDONIA, "mk", DMN_NULL1_WORLD }, \
+ { CTRY_MACEDONIA, "mk", DMN_NULL_WORLD }, \
{ CTRY_MACAU, "mo", DMN_FCC2_WORLD }, \
{ CTRY_MEXICO, "mx", DMN_FCC1_FCCA }, \
- { CTRY_MALAYSIA, "my", DMN_NULL1_WORLD }, \
- { CTRY_NICARAGUA, "ni", DMN_NULL1_WORLD }, \
+ { CTRY_MALAYSIA, "my", DMN_NULL_WORLD }, \
+ { CTRY_NICARAGUA, "ni", DMN_NULL_WORLD }, \
{ CTRY_NETHERLANDS, "nl", DMN_ETSI1_WORLD }, \
{ CTRY_NORWAY, "no", DMN_ETSI1_WORLD }, \
{ CTRY_NEW_ZEALAND, "nz", DMN_FCC2_ETSIC }, \
- { CTRY_OMAN, "om", DMN_NULL1_WORLD }, \
+ { CTRY_OMAN, "om", DMN_NULL_WORLD }, \
{ CTRY_PANAMA, "pa", DMN_FCC1_FCCA }, \
- { CTRY_PERU, "pe", DMN_NULL1_WORLD }, \
+ { CTRY_PERU, "pe", DMN_NULL_WORLD }, \
{ CTRY_PHILIPPINES, "ph", DMN_FCC1_WORLD }, \
- { CTRY_PAKISTAN, "pk", DMN_NULL1_WORLD }, \
+ { CTRY_PAKISTAN, "pk", DMN_NULL_WORLD }, \
{ CTRY_POLAND, "pl", DMN_ETSI1_WORLD }, \
{ CTRY_PUERTO_RICO, "pr", DMN_FCC1_FCCA }, \
{ CTRY_PORTUGAL, "pt", DMN_ETSI1_WORLD }, \
- { CTRY_PARAGUAY, "py", DMN_NULL1_WORLD }, \
- { CTRY_QATAR, "qa", DMN_NULL1_WORLD }, \
- { CTRY_ROMANIA, "ro", DMN_NULL1_WORLD }, \
- { CTRY_RUSSIA, "ru", DMN_NULL1_WORLD }, \
- { CTRY_SAUDI_ARABIA, "sa", DMN_NULL1_WORLD }, \
+ { CTRY_PARAGUAY, "py", DMN_NULL_WORLD }, \
+ { CTRY_QATAR, "qa", DMN_NULL_WORLD }, \
+ { CTRY_ROMANIA, "ro", DMN_NULL_WORLD }, \
+ { CTRY_RUSSIA, "ru", DMN_NULL_WORLD }, \
+ { CTRY_SAUDI_ARABIA, "sa", DMN_NULL_WORLD }, \
{ CTRY_SWEDEN, "se", DMN_ETSI1_WORLD }, \
{ CTRY_SINGAPORE, "sg", DMN_APL4_WORLD }, \
{ CTRY_SLOVENIA, "si", DMN_ETSI1_WORLD }, \
{ CTRY_SLOVAKIA, "sk", DMN_ETSI3_WORLD }, \
- { CTRY_EL_SALVADOR, "sv", DMN_NULL1_WORLD }, \
- { CTRY_SYRIA, "sy", DMN_NULL1_WORLD }, \
+ { CTRY_EL_SALVADOR, "sv", DMN_NULL_WORLD }, \
+ { CTRY_SYRIA, "sy", DMN_NULL_WORLD }, \
{ CTRY_THAILAND, "th", DMN_APL2_WORLD }, \
{ CTRY_TUNISIA, "tn", DMN_ETSI3_WORLD }, \
{ CTRY_TURKEY, "tr", DMN_ETSI3_WORLD }, \
{ CTRY_TRINIDAD_Y_TOBAGO, "tt", DMN_ETSI4_WORLD }, \
{ CTRY_TAIWAN, "tw", DMN_APL3_WORLD }, \
- { CTRY_UKRAINE, "ua", DMN_NULL1_WORLD }, \
+ { CTRY_UKRAINE, "ua", DMN_NULL_WORLD }, \
{ CTRY_UNITED_KINGDOM, "uk", DMN_ETSI1_WORLD }, \
{ CTRY_UNITED_STATES, "us", DMN_FCC1_FCCA }, \
{ CTRY_URUGUAY, "uy", DMN_APL2_WORLD }, \
{ CTRY_UZBEKISTAN, "uz", DMN_FCC3_FCCA }, \
{ CTRY_VENEZUELA, "ve", DMN_APL2_ETSIC }, \
- { CTRY_VIET_NAM, "vn", DMN_NULL1_WORLD }, \
- { CTRY_YEMEN, "ye", DMN_NULL1_WORLD }, \
+ { CTRY_VIET_NAM, "vn", DMN_NULL_WORLD }, \
+ { CTRY_YEMEN, "ye", DMN_NULL_WORLD }, \
{ CTRY_SOUTH_AFRICA, "za", DMN_ETSI1_WORLD }, \
- { CTRY_ZIMBABWE, "zw", DMN_NULL1_WORLD }, \
- { CTRY_DEBUG, "zz", DMN_DEBUG } \
+ { CTRY_ZIMBABWE, "zw", DMN_NULL_WORLD }, \
}
enum ieee80211_ctl {
@@ -482,337 +497,288 @@ enum ieee80211_ctl {
CTL_NONE = 0xff
};
+#define IEEE80211_CHANNELS_2GHZ_MIN 2412 /* 2GHz channel 1 */
+#define IEEE80211_CHANNELS_2GHZ_MAX 2732 /* 2GHz channel 26 */
+
struct ieee80211_regchannel {
u_int16_t rc_channel;
- u_int32_t rc_mode;
- u_int32_t rc_domains;
+ u_int32_t rc_domain;
+ u_int32_t rc_mode;
};
-#define IEEE80211_CHANNELS_2GHZ_MIN 2312
-#define IEEE80211_CHANNELS_2GHZ_MAX 2732
-#define IEEE80211_CHANNELS_2GHZ { \
- { 2312 /* -19 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2317 /* -18 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2322 /* -17 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2327 /* -16 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2332 /* -15 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2337 /* -14 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2342 /* -13 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2347 /* -12 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2352 /* -11 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2357 /* -10 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2362 /* -9 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2367 /* -8 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2372 /* -7 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2377 /* -6 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2382 /* -5 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2387 /* -4 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2392 /* -3 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2397 /* -2 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2402 /* -1 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2407 /* 0 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2412 /* 1 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2417 /* 2 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2422 /* 3 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2427 /* 4 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2432 /* 5 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2437 /* 6 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2442 /* 7 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2447 /* 8 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2452 /* 9 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2457 /* 10 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2462 /* 11 */, IEEE80211_CHAN_CCK, DMN_DEBUG | DMN_FCCA }, \
- { 2467 /* 12 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2472 /* 13 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2484 /* 14 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2512 /* 15 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2532 /* 16 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2552 /* 17 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2572 /* 18 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2592 /* 19 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2612 /* 20 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2632 /* 21 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2652 /* 22 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2672 /* 23 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2692 /* 24 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2712 /* 25 */, IEEE80211_CHAN_CCK, DMN_DEBUG }, \
- { 2732 /* 26 */, IEEE80211_CHAN_CCK, DMN_DEBUG } \
+#define IEEE80211_CHANNELS_2GHZ { \
+ { 2412, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2417, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2422, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2427, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2432, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2442, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2447, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2452, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2457, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2462, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2467, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2472, DMN_APLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ \
+ { 2432, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
+ IEEE80211_CHAN_TURBO }, \
+ { 2442, DMN_ETSIB, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ \
+ { 2412, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2417, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2422, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2427, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2432, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
+ IEEE80211_CHAN_TURBO }, \
+ { 2442, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2447, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2452, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2457, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2462, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2467, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2472, DMN_ETSIC, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ \
+ { 2412, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2417, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2422, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2427, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2432, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
+ IEEE80211_CHAN_TURBO }, \
+ { 2442, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2447, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2452, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2457, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2462, DMN_FCCA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ \
+ { 2412, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2417, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2422, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2427, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2432, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2442, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2447, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2452, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2457, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2462, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2467, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2472, DMN_MKKA, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2484, DMN_MKKA, IEEE80211_CHAN_CCK }, \
+ \
+ { 2412, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2417, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2422, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2427, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2432, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2437, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM| \
+ IEEE80211_CHAN_TURBO }, \
+ { 2442, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2447, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2452, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2457, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2462, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2467, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
+ { 2472, DMN_WORLD, IEEE80211_CHAN_CCK|IEEE80211_CHAN_OFDM }, \
}
-#define IEEE80211_CHANNELS_5GHZ_MIN 4800
-#define IEEE80211_CHANNELS_5GHZ_MAX 6100
-#define IEEE80211_CHANNELS_5GHZ { \
- { 4800, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4805, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4810, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4815, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4820, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4825, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4830, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4835, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4840, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4845, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4850, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4855, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4860, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4865, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4870, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4875, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4880, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4885, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4890, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4895, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4900, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4905, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4910, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4915, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4920, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4925, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4930, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4935, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4940, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4945, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4950, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4955, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4960, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4965, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4970, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4975, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4980, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4985, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4990, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 4995, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5000, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5005, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5010, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5015, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5020, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5025, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5030, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5035, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5040, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5045, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5050, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5055, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5060, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5065, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5070, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5075, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5080, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5085, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5090, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5095, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5100, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5105, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5110, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5115, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5120, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5125, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5130, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5135, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5140, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5145, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5150, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5155, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5160, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5165, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5170, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5175, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5180, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5185, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5190, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5195, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5200, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5205, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5210, IEEE80211_CHAN_TURBO, DMN_DEBUG | DMN_FCC1 }, \
- { 5215, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5220, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5225, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5230, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5235, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5240, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 | \
- DMN_FCC3 }, \
- { 5245, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5250, IEEE80211_CHAN_TURBO, DMN_DEBUG | DMN_FCC1 }, \
- { 5255, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5260, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5265, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5270, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5275, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5280, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5285, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5290, IEEE80211_CHAN_TURBO, DMN_DEBUG | DMN_FCC1 }, \
- { 5295, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5300, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5305, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5310, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5315, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5320, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5325, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5330, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5335, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5340, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5345, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5350, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5355, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5360, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5365, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5370, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5375, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5380, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5385, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5390, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5395, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5400, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5405, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5410, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5415, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5420, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5425, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5430, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5435, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5440, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5445, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5450, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5455, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5460, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5465, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5470, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5475, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5480, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5485, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5490, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5495, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5500, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5505, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5510, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5515, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5520, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5525, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5530, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5535, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5540, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5545, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5550, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5555, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5560, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5565, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5570, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5575, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5580, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5585, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5590, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5595, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5600, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5605, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5610, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5615, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5620, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5625, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5630, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5635, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5640, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5645, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5650, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5655, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5660, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5665, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5670, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5675, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5680, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5685, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5690, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5695, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5700, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5705, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5710, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5715, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5720, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5725, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5730, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5735, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5740, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5745, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5750, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5755, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5760, IEEE80211_CHAN_TURBO, DMN_DEBUG | DMN_FCC1 }, \
- { 5765, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5770, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5775, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5780, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5785, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5790, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5795, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5800, IEEE80211_CHAN_TURBO, DMN_DEBUG | DMN_FCC1 }, \
- { 5805, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC3 }, \
- { 5810, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5815, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5820, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5825, IEEE80211_CHAN_OFDM, DMN_DEBUG | DMN_FCC1 }, \
- { 5830, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5835, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5840, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5845, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5850, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5855, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5860, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5865, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5870, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5875, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5880, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5885, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5890, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5895, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5900, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5905, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5910, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5915, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5920, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5925, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5930, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5935, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5940, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5945, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5950, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5955, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5960, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5965, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5970, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5975, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5980, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5985, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5990, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 5995, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6000, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6005, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6010, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6015, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6020, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6025, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6030, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6035, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6040, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6045, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6050, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6055, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6060, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6065, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6070, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6075, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6080, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6085, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6090, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6095, IEEE80211_CHAN_OFDM, DMN_DEBUG }, \
- { 6100, IEEE80211_CHAN_OFDM, DMN_DEBUG } \
+#define IEEE80211_CHANNELS_5GHZ_MIN 5005 /* 5GHz channel 1 */
+#define IEEE80211_CHANNELS_5GHZ_MAX 6100 /* 5GHz channel 220 */
+
+#define IEEE80211_CHANNELS_5GHZ { \
+ { 5745, DMN_APL1, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_APL1, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_APL1, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_APL1, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_APL1, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5745, DMN_APL2, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_APL2, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_APL2, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_APL2, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5280, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5300, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5745, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_APL3, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5745, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_APL4, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5745, DMN_APL5, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_APL5, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_APL5, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_APL5, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_APL5, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5260, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5300, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5500, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5520, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5540, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5560, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5580, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5600, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5620, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5640, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5660, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5680, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ { 5700, DMN_ETSI1, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI2, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5260, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5300, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_ETSI3, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5260, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5300, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_ETSI4, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI5, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5260, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5500, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5520, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5540, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5560, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5580, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5600, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5620, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5640, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5660, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5680, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ { 5700, DMN_ETSI6, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5210, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5220, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5250, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5260, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5290, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5300, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5745, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5760, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5765, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5800, DMN_FCC1, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5805, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_FCC1, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5260, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5300, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5745, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5765, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5805, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_FCC2, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5210, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5220, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5250, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5260, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5280, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5290, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5300, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5320, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5500, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5520, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5540, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5560, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5580, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5600, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5620, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5640, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5660, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5680, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5700, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5745, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5760, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5765, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5785, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5800, DMN_FCC3, IEEE80211_CHAN_OFDM|IEEE80211_CHAN_TURBO }, \
+ { 5805, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ { 5825, DMN_FCC3, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5170, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
+ { 5190, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
+ { 5210, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
+ { 5230, DMN_MKK1, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5040, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5060, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5080, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5170, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5190, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5210, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ { 5230, DMN_MKK2, IEEE80211_CHAN_OFDM }, \
+ \
+ { 5180, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
+ { 5200, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
+ { 5220, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
+ { 5240, DMN_WORLD, IEEE80211_CHAN_OFDM }, \
}
__BEGIN_DECLS
extern u_int16_t ieee80211_name2countrycode(const char *);
extern u_int32_t ieee80211_name2regdomain(const char *);
-extern const char *ieee80211_countrycode2name(u_int16_t);
-extern const char *ieee80211_regdomain2name(u_int32_t);
-extern u_int32_t ieee80211_regdomain2flag(u_int16_t, u_int16_t);
+extern const char *ieee80211_countrycode2name(u_int16_t);
+extern const char *ieee80211_regdomain2name(u_int32_t);
+extern u_int32_t ieee80211_regdomain2flag(u_int16_t, u_int16_t);
extern u_int32_t ieee80211_countrycode2regdomain(u_int16_t);
__END_DECLS