DFS: Add ieee80211h hostapd configuration parameter

This patch is based on the original work by Boris Presman and
Victor Goldenshtein. Channel Switch Announcement support has been
removed and event handling as well as channel set handling was
changed, among various other changes.

Cc: Boris Presman <boris.presman@ti.com>
Cc: Victor Goldenshtein <victorg@ti.com>
Signed-hostap: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
This commit is contained in:
Simon Wunderlich 2013-05-09 20:14:53 +03:00 committed by Jouni Malinen
parent 695c70381f
commit b113a171ac
3 changed files with 16 additions and 0 deletions

View file

@ -1223,6 +1223,12 @@ static int hostapd_config_check(struct hostapd_config *conf)
return -1; return -1;
} }
if (conf->ieee80211h && !conf->ieee80211d) {
wpa_printf(MSG_ERROR, "Cannot enable IEEE 802.11h without "
"IEEE 802.11d enabled");
return -1;
}
for (i = 0; i < conf->num_bss; i++) { for (i = 0; i < conf->num_bss; i++) {
if (hostapd_config_check_bss(&conf->bss[i], conf)) if (hostapd_config_check_bss(&conf->bss[i], conf))
return -1; return -1;
@ -1784,6 +1790,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
conf->country[2] = ' '; conf->country[2] = ' ';
} else if (os_strcmp(buf, "ieee80211d") == 0) { } else if (os_strcmp(buf, "ieee80211d") == 0) {
conf->ieee80211d = atoi(pos); conf->ieee80211d = atoi(pos);
} else if (os_strcmp(buf, "ieee80211h") == 0) {
conf->ieee80211h = atoi(pos);
} else if (os_strcmp(buf, "ieee8021x") == 0) { } else if (os_strcmp(buf, "ieee8021x") == 0) {
bss->ieee802_1x = atoi(pos); bss->ieee802_1x = atoi(pos);
} else if (os_strcmp(buf, "eapol_version") == 0) { } else if (os_strcmp(buf, "eapol_version") == 0) {

View file

@ -105,6 +105,12 @@ ssid=test
# (default: 0 = disabled) # (default: 0 = disabled)
#ieee80211d=1 #ieee80211d=1
# Enable IEEE 802.11h. This enables radar detection and DFS support if
# available. DFS support is required on outdoor 5 GHz channels in most countries
# of the world. This can be used only with ieee80211d=1.
# (default: 0 = disabled)
#ieee80211h=1
# Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g, # Operation mode (a = IEEE 802.11a, b = IEEE 802.11b, g = IEEE 802.11g,
# ad = IEEE 802.11ad (60 GHz); a/g options are used with IEEE 802.11n, too, to # ad = IEEE 802.11ad (60 GHz); a/g options are used with IEEE 802.11n, too, to
# specify band) # specify band)

View file

@ -498,6 +498,8 @@ struct hostapd_config {
int ieee80211d; int ieee80211d;
int ieee80211h; /* DFS */
struct hostapd_tx_queue_params tx_queue[NUM_TX_QUEUES]; struct hostapd_tx_queue_params tx_queue[NUM_TX_QUEUES];
/* /*