Added option to distinguish non-HT and HT20 in set_freq

This commit is contained in:
Jouni Malinen 2008-11-26 10:44:04 +02:00 committed by Jouni Malinen
parent 95da9bbc36
commit fe0f58fa69
3 changed files with 8 additions and 1 deletions

View file

@ -30,6 +30,7 @@ struct hostapd_sta_add_params {
struct hostapd_freq_params { struct hostapd_freq_params {
int mode; int mode;
int freq; int freq;
int ht_enabled;
int sec_channel_offset; /* 0 = HT40 disabled, -1 = HT40 enabled, int sec_channel_offset; /* 0 = HT40 disabled, -1 = HT40 enabled,
* secondary channel below primary, 1 = HT40 * secondary channel below primary, 1 = HT40
* enabled, secondary channel above primary */ * enabled, secondary channel above primary */
@ -431,7 +432,7 @@ hostapd_get_inact_sec(struct hostapd_data *hapd, const u8 *addr)
} }
static inline int static inline int
hostapd_set_freq(struct hostapd_data *hapd, int mode, int freq, hostapd_set_freq(struct hostapd_data *hapd, int mode, int freq, int ht_enabled,
int sec_channel_offset) int sec_channel_offset)
{ {
if (hapd->driver == NULL) if (hapd->driver == NULL)
@ -441,6 +442,7 @@ hostapd_set_freq(struct hostapd_data *hapd, int mode, int freq,
os_memset(&data, 0, sizeof(data)); os_memset(&data, 0, sizeof(data));
data.mode = mode; data.mode = mode;
data.freq = freq; data.freq = freq;
data.ht_enabled = ht_enabled;
data.sec_channel_offset = sec_channel_offset; data.sec_channel_offset = sec_channel_offset;
return hapd->driver->set_freq2(hapd->drv_priv, &data); return hapd->driver->set_freq2(hapd->drv_priv, &data);
} }

View file

@ -485,6 +485,10 @@ static int i802_set_freq2(void *priv, struct hostapd_freq_params *freq)
NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET, NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET,
NL80211_SEC_CHAN_ABOVE); NL80211_SEC_CHAN_ABOVE);
break; break;
default:
NLA_PUT_U8(msg, NL80211_ATTR_WIPHY_SEC_CHAN_OFFSET,
NL80211_SEC_CHAN_DISABLED);
break;
} }
if (send_and_recv_msgs(drv, msg, NULL, NULL) == 0) if (send_and_recv_msgs(drv, msg, NULL, NULL) == 0)

View file

@ -1554,6 +1554,7 @@ static int setup_interface(struct hostapd_iface *iface)
hapd->iconf->channel, freq); hapd->iconf->channel, freq);
if (hostapd_set_freq(hapd, hapd->iconf->hw_mode, freq, if (hostapd_set_freq(hapd, hapd->iconf->hw_mode, freq,
hapd->iconf->ieee80211n,
hapd->iconf->secondary_channel)) { hapd->iconf->secondary_channel)) {
printf("Could not set channel for kernel driver\n"); printf("Could not set channel for kernel driver\n");
return -1; return -1;