HE: Handle HE capability in neighbor DB

Signed-off-by: Shashidhar Lakkavalli <slakkavalli@datto.com>
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin 2019-05-20 09:55:09 +02:00 committed by Jouni Malinen
parent 88005ee98d
commit de21d1d6e2

View file

@ -139,15 +139,15 @@ void hostapd_free_neighbor_db(struct hostapd_data *hapd)
#ifdef NEED_AP_MLME #ifdef NEED_AP_MLME
static enum nr_chan_width hostapd_get_nr_chan_width(struct hostapd_data *hapd, static enum nr_chan_width hostapd_get_nr_chan_width(struct hostapd_data *hapd,
int ht, int vht) int ht, int vht, int he)
{ {
u8 oper_chwidth = hostapd_get_oper_chwidth(hapd->iconf); u8 oper_chwidth = hostapd_get_oper_chwidth(hapd->iconf);
if (!ht && !vht) if (!ht && !vht && !he)
return NR_CHAN_WIDTH_20; return NR_CHAN_WIDTH_20;
if (!hapd->iconf->secondary_channel) if (!hapd->iconf->secondary_channel)
return NR_CHAN_WIDTH_20; return NR_CHAN_WIDTH_20;
if (!vht || oper_chwidth == CHANWIDTH_USE_HT) if ((!vht && !he) || oper_chwidth == CHANWIDTH_USE_HT)
return NR_CHAN_WIDTH_40; return NR_CHAN_WIDTH_40;
if (oper_chwidth == CHANWIDTH_80MHZ) if (oper_chwidth == CHANWIDTH_80MHZ)
return NR_CHAN_WIDTH_80; return NR_CHAN_WIDTH_80;
@ -166,6 +166,7 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd)
u16 capab = hostapd_own_capab_info(hapd); u16 capab = hostapd_own_capab_info(hapd);
int ht = hapd->iconf->ieee80211n && !hapd->conf->disable_11n; int ht = hapd->iconf->ieee80211n && !hapd->conf->disable_11n;
int vht = hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac; int vht = hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac;
int he = hapd->iconf->ieee80211ax;
struct wpa_ssid_value ssid; struct wpa_ssid_value ssid;
u8 channel, op_class; u8 channel, op_class;
u8 center_freq1_idx = 0, center_freq2_idx = 0; u8 center_freq1_idx = 0, center_freq2_idx = 0;
@ -211,7 +212,7 @@ void hostapd_neighbor_set_own_report(struct hostapd_data *hapd)
&op_class, &channel) == &op_class, &channel) ==
NUM_HOSTAPD_MODES) NUM_HOSTAPD_MODES)
return; return;
width = hostapd_get_nr_chan_width(hapd, ht, vht); width = hostapd_get_nr_chan_width(hapd, ht, vht, he);
if (vht) { if (vht) {
center_freq1_idx = hostapd_get_oper_centr_freq_seg0_idx( center_freq1_idx = hostapd_get_oper_centr_freq_seg0_idx(
hapd->iconf); hapd->iconf);