Remove CONFIG_IEEE80211N build option

Hardcoded CONFIG_IEEE80211N to be included to clean up implementation.
More or less all new devices support IEEE 802.11n (HT) and there is not
much need for being able to remove that functionality from the build.
Included this unconditionally to get rid of one more build options and
to keep things simpler.

Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
Jouni Malinen 2020-02-22 16:22:18 +02:00
parent 640d59942b
commit f3bcd69603
26 changed files with 3 additions and 102 deletions

View file

@ -281,10 +281,6 @@ L_CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP
OBJS += src/ap/wnm_ap.c OBJS += src/ap/wnm_ap.c
endif endif
ifdef CONFIG_IEEE80211N
L_CFLAGS += -DCONFIG_IEEE80211N
endif
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
L_CFLAGS += -DCONFIG_IEEE80211AC L_CFLAGS += -DCONFIG_IEEE80211AC
endif endif
@ -999,9 +995,7 @@ OBJS += src/ap/hw_features.c
OBJS += src/ap/dfs.c OBJS += src/ap/dfs.c
L_CFLAGS += -DNEED_AP_MLME L_CFLAGS += -DNEED_AP_MLME
endif endif
ifdef CONFIG_IEEE80211N
OBJS += src/ap/ieee802_11_ht.c OBJS += src/ap/ieee802_11_ht.c
endif
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
OBJS += src/ap/ieee802_11_vht.c OBJS += src/ap/ieee802_11_vht.c

View file

@ -331,10 +331,6 @@ CFLAGS += -DCONFIG_WNM -DCONFIG_WNM_AP
OBJS += ../src/ap/wnm_ap.o OBJS += ../src/ap/wnm_ap.o
endif endif
ifdef CONFIG_IEEE80211N
CFLAGS += -DCONFIG_IEEE80211N
endif
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
CFLAGS += -DCONFIG_IEEE80211AC CFLAGS += -DCONFIG_IEEE80211AC
endif endif
@ -1155,9 +1151,7 @@ OBJS += ../src/ap/hw_features.o
OBJS += ../src/ap/dfs.o OBJS += ../src/ap/dfs.o
CFLAGS += -DNEED_AP_MLME CFLAGS += -DNEED_AP_MLME
endif endif
ifdef CONFIG_IEEE80211N
OBJS += ../src/ap/ieee802_11_ht.o OBJS += ../src/ap/ieee802_11_ht.o
endif
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
OBJS += ../src/ap/ieee802_11_vht.o OBJS += ../src/ap/ieee802_11_vht.o

View file

@ -125,9 +125,6 @@ CONFIG_IPV6=y
# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211) # the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)
#CONFIG_DRIVER_RADIUS_ACL=y #CONFIG_DRIVER_RADIUS_ACL=y
# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y
# Remove debugging code that is printing out debug messages to stdout. # Remove debugging code that is printing out debug messages to stdout.
# This can be used to reduce the size of the hostapd considerably if debugging # This can be used to reduce the size of the hostapd considerably if debugging
# code is not needed. # code is not needed.

View file

@ -1151,7 +1151,6 @@ static int add_r1kh(struct hostapd_bss_config *bss, char *value)
#endif /* CONFIG_IEEE80211R_AP */ #endif /* CONFIG_IEEE80211R_AP */
#ifdef CONFIG_IEEE80211N
static int hostapd_config_ht_capab(struct hostapd_config *conf, static int hostapd_config_ht_capab(struct hostapd_config *conf,
const char *capab) const char *capab)
{ {
@ -1204,7 +1203,6 @@ static int hostapd_config_ht_capab(struct hostapd_config *conf,
return 0; return 0;
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
@ -3422,7 +3420,6 @@ static int hostapd_config_fill(struct hostapd_config *conf,
if (bss->ocv && !bss->ieee80211w) if (bss->ocv && !bss->ieee80211w)
bss->ieee80211w = 1; bss->ieee80211w = 1;
#endif /* CONFIG_OCV */ #endif /* CONFIG_OCV */
#ifdef CONFIG_IEEE80211N
} else if (os_strcmp(buf, "ieee80211n") == 0) { } else if (os_strcmp(buf, "ieee80211n") == 0) {
conf->ieee80211n = atoi(pos); conf->ieee80211n = atoi(pos);
} else if (os_strcmp(buf, "ht_capab") == 0) { } else if (os_strcmp(buf, "ht_capab") == 0) {
@ -3435,7 +3432,6 @@ static int hostapd_config_fill(struct hostapd_config *conf,
conf->require_ht = atoi(pos); conf->require_ht = atoi(pos);
} else if (os_strcmp(buf, "obss_interval") == 0) { } else if (os_strcmp(buf, "obss_interval") == 0) {
conf->obss_interval = atoi(pos); conf->obss_interval = atoi(pos);
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
} else if (os_strcmp(buf, "ieee80211ac") == 0) { } else if (os_strcmp(buf, "ieee80211ac") == 0) {
conf->ieee80211ac = atoi(pos); conf->ieee80211ac = atoi(pos);

View file

@ -148,9 +148,6 @@ CONFIG_IPV6=y
# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211) # the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)
#CONFIG_DRIVER_RADIUS_ACL=y #CONFIG_DRIVER_RADIUS_ACL=y
# IEEE 802.11n (High Throughput) support
#CONFIG_IEEE80211N=y
# Wireless Network Management (IEEE Std 802.11v-2011) # Wireless Network Management (IEEE Std 802.11v-2011)
# Note: This is experimental and not complete implementation. # Note: This is experimental and not complete implementation.
#CONFIG_WNM=y #CONFIG_WNM=y

View file

@ -1169,7 +1169,6 @@ static int hostapd_config_check_bss(struct hostapd_bss_config *bss,
} }
#endif /* CONFIG_IEEE80211R_AP */ #endif /* CONFIG_IEEE80211R_AP */
#ifdef CONFIG_IEEE80211N
if (full_config && conf->ieee80211n && if (full_config && conf->ieee80211n &&
conf->hw_mode == HOSTAPD_MODE_IEEE80211B) { conf->hw_mode == HOSTAPD_MODE_IEEE80211B) {
bss->disable_11n = 1; bss->disable_11n = 1;
@ -1194,7 +1193,6 @@ static int hostapd_config_check_bss(struct hostapd_bss_config *bss,
"requires CCMP/GCMP to be enabled, disabling HT " "requires CCMP/GCMP to be enabled, disabling HT "
"capabilities"); "capabilities");
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (full_config && conf->ieee80211ac && if (full_config && conf->ieee80211ac &&

View file

@ -228,7 +228,6 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
set_beacon++; set_beacon++;
} }
#ifdef CONFIG_IEEE80211N
if (!iface->olbc_ht && !ap->ht_support && if (!iface->olbc_ht && !ap->ht_support &&
(ap->channel == 0 || (ap->channel == 0 ||
ap->channel == iface->conf->channel || ap->channel == iface->conf->channel ||
@ -241,7 +240,6 @@ void ap_list_process_beacon(struct hostapd_iface *iface,
MAC2STR(ap->addr), ap->channel); MAC2STR(ap->addr), ap->channel);
set_beacon++; set_beacon++;
} }
#endif /* CONFIG_IEEE80211N */
if (set_beacon) if (set_beacon)
ieee802_11_update_beacons(iface); ieee802_11_update_beacons(iface);
@ -285,14 +283,12 @@ void ap_list_timer(struct hostapd_iface *iface)
iface->olbc = 0; iface->olbc = 0;
set_beacon++; set_beacon++;
} }
#ifdef CONFIG_IEEE80211N
if (!olbc_ht && iface->olbc_ht) { if (!olbc_ht && iface->olbc_ht) {
wpa_printf(MSG_DEBUG, "OLBC HT not detected anymore"); wpa_printf(MSG_DEBUG, "OLBC HT not detected anymore");
iface->olbc_ht = 0; iface->olbc_ht = 0;
hostapd_ht_operation_update(iface); hostapd_ht_operation_update(iface);
set_beacon++; set_beacon++;
} }
#endif /* CONFIG_IEEE80211N */
} }
if (set_beacon) if (set_beacon)

View file

@ -525,14 +525,12 @@ static u8 * hostapd_gen_probe_resp(struct hostapd_data *hapd,
pos = hostapd_eid_supported_op_classes(hapd, pos); pos = hostapd_eid_supported_op_classes(hapd, pos);
#ifdef CONFIG_IEEE80211N
/* Secondary Channel Offset element */ /* Secondary Channel Offset element */
/* TODO: The standard doesn't specify a position for this element. */ /* TODO: The standard doesn't specify a position for this element. */
pos = hostapd_eid_secondary_channel(hapd, pos); pos = hostapd_eid_secondary_channel(hapd, pos);
pos = hostapd_eid_ht_capabilities(hapd, pos); pos = hostapd_eid_ht_capabilities(hapd, pos);
pos = hostapd_eid_ht_operation(hapd, pos); pos = hostapd_eid_ht_operation(hapd, pos);
#endif /* CONFIG_IEEE80211N */
pos = hostapd_eid_ext_capab(hapd, pos); pos = hostapd_eid_ext_capab(hapd, pos);
@ -1245,14 +1243,12 @@ int ieee802_11_build_ap_params(struct hostapd_data *hapd,
tailpos = hostapd_eid_supported_op_classes(hapd, tailpos); tailpos = hostapd_eid_supported_op_classes(hapd, tailpos);
#ifdef CONFIG_IEEE80211N
/* Secondary Channel Offset element */ /* Secondary Channel Offset element */
/* TODO: The standard doesn't specify a position for this element. */ /* TODO: The standard doesn't specify a position for this element. */
tailpos = hostapd_eid_secondary_channel(hapd, tailpos); tailpos = hostapd_eid_secondary_channel(hapd, tailpos);
tailpos = hostapd_eid_ht_capabilities(hapd, tailpos); tailpos = hostapd_eid_ht_capabilities(hapd, tailpos);
tailpos = hostapd_eid_ht_operation(hapd, tailpos); tailpos = hostapd_eid_ht_operation(hapd, tailpos);
#endif /* CONFIG_IEEE80211N */
tailpos = hostapd_eid_ext_capab(hapd, tailpos); tailpos = hostapd_eid_ext_capab(hapd, tailpos);

View file

@ -345,7 +345,6 @@ static int hostapd_ctrl_iface_sta_mib(struct hostapd_data *hapd,
} }
#endif /* CONFIG_IEEE80211AC */ #endif /* CONFIG_IEEE80211AC */
#ifdef CONFIG_IEEE80211N
if ((sta->flags & WLAN_STA_HT) && sta->ht_capabilities) { if ((sta->flags & WLAN_STA_HT) && sta->ht_capabilities) {
res = os_snprintf(buf + len, buflen - len, res = os_snprintf(buf + len, buflen - len,
"ht_caps_info=0x%04x\n", "ht_caps_info=0x%04x\n",
@ -354,7 +353,6 @@ static int hostapd_ctrl_iface_sta_mib(struct hostapd_data *hapd,
if (!os_snprintf_error(buflen - len, res)) if (!os_snprintf_error(buflen - len, res))
len += res; len += res;
} }
#endif /* CONFIG_IEEE80211N */
if (sta->ext_capability && if (sta->ext_capability &&
buflen - len > (unsigned) (11 + 2 * sta->ext_capability[0])) { buflen - len > (unsigned) (11 + 2 * sta->ext_capability[0])) {

View file

@ -220,7 +220,6 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
} }
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
#ifdef CONFIG_IEEE80211N
#ifdef NEED_AP_MLME #ifdef NEED_AP_MLME
if (elems.ht_capabilities && if (elems.ht_capabilities &&
(hapd->iface->conf->ht_capab & (hapd->iface->conf->ht_capab &
@ -234,7 +233,6 @@ int hostapd_notif_assoc(struct hostapd_data *hapd, const u8 *addr,
ht40_intolerant_add(hapd->iface, sta); ht40_intolerant_add(hapd->iface, sta);
} }
#endif /* NEED_AP_MLME */ #endif /* NEED_AP_MLME */
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_INTERWORKING #ifdef CONFIG_INTERWORKING
if (elems.ext_capab && elems.ext_capab_len > 4) { if (elems.ext_capab && elems.ext_capab_len > 4) {

View file

@ -481,11 +481,9 @@ static void sta_track_deinit(struct hostapd_iface *iface)
static void hostapd_cleanup_iface_partial(struct hostapd_iface *iface) static void hostapd_cleanup_iface_partial(struct hostapd_iface *iface)
{ {
wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface); wpa_printf(MSG_DEBUG, "%s(%p)", __func__, iface);
#ifdef CONFIG_IEEE80211N
#ifdef NEED_AP_MLME #ifdef NEED_AP_MLME
hostapd_stop_setup_timers(iface); hostapd_stop_setup_timers(iface);
#endif /* NEED_AP_MLME */ #endif /* NEED_AP_MLME */
#endif /* CONFIG_IEEE80211N */
if (iface->current_mode) if (iface->current_mode)
acs_cleanup(iface); acs_cleanup(iface);
hostapd_free_hw_features(iface->hw_features, iface->num_hw_features); hostapd_free_hw_features(iface->hw_features, iface->num_hw_features);
@ -2349,12 +2347,10 @@ void hostapd_interface_deinit(struct hostapd_iface *iface)
hostapd_bss_deinit(iface->bss[j]); hostapd_bss_deinit(iface->bss[j]);
} }
#ifdef CONFIG_IEEE80211N
#ifdef NEED_AP_MLME #ifdef NEED_AP_MLME
hostapd_stop_setup_timers(iface); hostapd_stop_setup_timers(iface);
eloop_cancel_timeout(ap_ht2040_timeout, iface, NULL); eloop_cancel_timeout(ap_ht2040_timeout, iface, NULL);
#endif /* NEED_AP_MLME */ #endif /* NEED_AP_MLME */
#endif /* CONFIG_IEEE80211N */
} }

View file

@ -224,7 +224,6 @@ int hostapd_prepare_rates(struct hostapd_iface *iface,
} }
#ifdef CONFIG_IEEE80211N
static int ieee80211n_allowed_ht40_channel_pair(struct hostapd_iface *iface) static int ieee80211n_allowed_ht40_channel_pair(struct hostapd_iface *iface)
{ {
int pri_freq, sec_freq; int pri_freq, sec_freq;
@ -667,12 +666,9 @@ static int ieee80211ax_supported_he_capab(struct hostapd_iface *iface)
} }
#endif /* CONFIG_IEEE80211AX */ #endif /* CONFIG_IEEE80211AX */
#endif /* CONFIG_IEEE80211N */
int hostapd_check_ht_capab(struct hostapd_iface *iface) int hostapd_check_ht_capab(struct hostapd_iface *iface)
{ {
#ifdef CONFIG_IEEE80211N
int ret; int ret;
if (is_6ghz_freq(iface->freq)) if (is_6ghz_freq(iface->freq))
@ -705,7 +701,6 @@ int hostapd_check_ht_capab(struct hostapd_iface *iface)
return ret; return ret;
if (!ieee80211n_allowed_ht40_channel_pair(iface)) if (!ieee80211n_allowed_ht40_channel_pair(iface))
return -1; return -1;
#endif /* CONFIG_IEEE80211N */
return 0; return 0;
} }

View file

@ -3136,7 +3136,6 @@ static u16 check_assoc_ies(struct hostapd_data *hapd, struct sta_info *sta,
if (resp != WLAN_STATUS_SUCCESS) if (resp != WLAN_STATUS_SUCCESS)
return resp; return resp;
#ifdef CONFIG_IEEE80211N
resp = copy_sta_ht_capab(hapd, sta, elems.ht_capabilities); resp = copy_sta_ht_capab(hapd, sta, elems.ht_capabilities);
if (resp != WLAN_STATUS_SUCCESS) if (resp != WLAN_STATUS_SUCCESS)
return resp; return resp;
@ -3147,7 +3146,6 @@ static u16 check_assoc_ies(struct hostapd_data *hapd, struct sta_info *sta,
"mandatory HT PHY - reject association"); "mandatory HT PHY - reject association");
return WLAN_STATUS_ASSOC_DENIED_NO_HT; return WLAN_STATUS_ASSOC_DENIED_NO_HT;
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (hapd->iconf->ieee80211ac) { if (hapd->iconf->ieee80211ac) {
@ -3392,7 +3390,6 @@ static u16 check_assoc_ies(struct hostapd_data *hapd, struct sta_info *sta,
pfs_fail: pfs_fail:
#endif /* CONFIG_DPP2 */ #endif /* CONFIG_DPP2 */
#ifdef CONFIG_IEEE80211N
if ((sta->flags & (WLAN_STA_HT | WLAN_STA_VHT)) && if ((sta->flags & (WLAN_STA_HT | WLAN_STA_VHT)) &&
wpa_auth_get_pairwise(sta->wpa_sm) == WPA_CIPHER_TKIP) { wpa_auth_get_pairwise(sta->wpa_sm) == WPA_CIPHER_TKIP) {
hostapd_logger(hapd, sta->addr, hostapd_logger(hapd, sta->addr,
@ -3402,7 +3399,6 @@ static u16 check_assoc_ies(struct hostapd_data *hapd, struct sta_info *sta,
"association"); "association");
return WLAN_STATUS_CIPHER_REJECTED_PER_POLICY; return WLAN_STATUS_CIPHER_REJECTED_PER_POLICY;
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_HS20 #ifdef CONFIG_HS20
} else if (hapd->conf->osen) { } else if (hapd->conf->osen) {
if (elems.osen == NULL) { if (elems.osen == NULL) {
@ -3603,10 +3599,8 @@ static int add_associated_sta(struct hostapd_data *hapd,
sta->ft_over_ds = 0; sta->ft_over_ds = 0;
} }
#ifdef CONFIG_IEEE80211N
if (sta->flags & WLAN_STA_HT) if (sta->flags & WLAN_STA_HT)
hostapd_get_ht_capab(hapd, sta->ht_capabilities, &ht_cap); hostapd_get_ht_capab(hapd, sta->ht_capabilities, &ht_cap);
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (sta->flags & WLAN_STA_VHT) if (sta->flags & WLAN_STA_VHT)
hostapd_get_vht_capab(hapd, sta->vht_capabilities, &vht_cap); hostapd_get_vht_capab(hapd, sta->vht_capabilities, &vht_cap);
@ -3754,10 +3748,8 @@ static u16 send_assoc_resp(struct hostapd_data *hapd, struct sta_info *sta,
if (sta && status_code == WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY) if (sta && status_code == WLAN_STATUS_ASSOC_REJECTED_TEMPORARILY)
p = hostapd_eid_assoc_comeback_time(hapd, sta, p); p = hostapd_eid_assoc_comeback_time(hapd, sta, p);
#ifdef CONFIG_IEEE80211N
p = hostapd_eid_ht_capabilities(hapd, p); p = hostapd_eid_ht_capabilities(hapd, p);
p = hostapd_eid_ht_operation(hapd, p); p = hostapd_eid_ht_operation(hapd, p);
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac && if (hapd->iconf->ieee80211ac && !hapd->conf->disable_11ac &&
@ -4335,9 +4327,7 @@ static void handle_assoc(struct hostapd_data *hapd,
ieee802_11_set_beacons(hapd->iface); ieee802_11_set_beacons(hapd->iface);
} }
#ifdef CONFIG_IEEE80211N
update_ht_state(hapd, sta); update_ht_state(hapd, sta);
#endif /* CONFIG_IEEE80211N */
hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211, hostapd_logger(hapd, sta->addr, HOSTAPD_MODULE_IEEE80211,
HOSTAPD_LEVEL_DEBUG, HOSTAPD_LEVEL_DEBUG,
@ -4676,14 +4666,12 @@ static int handle_action(struct hostapd_data *hapd,
#endif /* CONFIG_FST */ #endif /* CONFIG_FST */
case WLAN_ACTION_PUBLIC: case WLAN_ACTION_PUBLIC:
case WLAN_ACTION_PROTECTED_DUAL: case WLAN_ACTION_PROTECTED_DUAL:
#ifdef CONFIG_IEEE80211N
if (len >= IEEE80211_HDRLEN + 2 && if (len >= IEEE80211_HDRLEN + 2 &&
mgmt->u.action.u.public_action.action == mgmt->u.action.u.public_action.action ==
WLAN_PA_20_40_BSS_COEX) { WLAN_PA_20_40_BSS_COEX) {
hostapd_2040_coex_action(hapd, mgmt, len); hostapd_2040_coex_action(hapd, mgmt, len);
return 1; return 1;
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_DPP #ifdef CONFIG_DPP
if (len >= IEEE80211_HDRLEN + 6 && if (len >= IEEE80211_HDRLEN + 6 &&
mgmt->u.action.u.vs_public_action.action == mgmt->u.action.u.vs_public_action.action ==

View file

@ -233,9 +233,7 @@ void ap_free_sta(struct hostapd_data *hapd, struct sta_info *sta)
sta->assoc_ie_taxonomy = NULL; sta->assoc_ie_taxonomy = NULL;
#endif /* CONFIG_TAXONOMY */ #endif /* CONFIG_TAXONOMY */
#ifdef CONFIG_IEEE80211N
ht40_intolerant_remove(hapd->iface, sta); ht40_intolerant_remove(hapd->iface, sta);
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_P2P #ifdef CONFIG_P2P
if (sta->no_p2p_set) { if (sta->no_p2p_set) {
@ -246,10 +244,10 @@ void ap_free_sta(struct hostapd_data *hapd, struct sta_info *sta)
} }
#endif /* CONFIG_P2P */ #endif /* CONFIG_P2P */
#if defined(NEED_AP_MLME) && defined(CONFIG_IEEE80211N) #ifdef NEED_AP_MLME
if (hostapd_ht_operation_update(hapd->iface) > 0) if (hostapd_ht_operation_update(hapd->iface) > 0)
set_beacon++; set_beacon++;
#endif /* NEED_AP_MLME && CONFIG_IEEE80211N */ #endif /* NEED_AP_MLME */
#ifdef CONFIG_MESH #ifdef CONFIG_MESH
if (hapd->mesh_sta_free_cb) if (hapd->mesh_sta_free_cb)

View file

@ -576,17 +576,13 @@ bsd_set_freq(void *priv, struct hostapd_freq_params *freq)
if (channel < 14) { if (channel < 14) {
mode = mode =
#ifdef CONFIG_IEEE80211N
freq->ht_enabled ? IFM_IEEE80211_11NG : freq->ht_enabled ? IFM_IEEE80211_11NG :
#endif /* CONFIG_IEEE80211N */
IFM_IEEE80211_11G; IFM_IEEE80211_11G;
} else if (channel == 14) { } else if (channel == 14) {
mode = IFM_IEEE80211_11B; mode = IFM_IEEE80211_11B;
} else { } else {
mode = mode =
#ifdef CONFIG_IEEE80211N
freq->ht_enabled ? IFM_IEEE80211_11NA : freq->ht_enabled ? IFM_IEEE80211_11NA :
#endif /* CONFIG_IEEE80211N */
IFM_IEEE80211_11A; IFM_IEEE80211_11A;
} }
if (bsd_set_mediaopt(drv, IFM_MMASK, mode) < 0) { if (bsd_set_mediaopt(drv, IFM_MMASK, mode) < 0) {

View file

@ -43,7 +43,6 @@ CONFIG_VLAN_NETLINK=y
CONFIG_LIBNL32=y CONFIG_LIBNL32=y
CONFIG_LIBNL3_ROUTE=y CONFIG_LIBNL3_ROUTE=y
CONFIG_IEEE80211R=y CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y CONFIG_IEEE80211AC=y
CONFIG_WPS=y CONFIG_WPS=y

View file

@ -13,5 +13,3 @@ CFLAGS += -DCONFIG_NO_HOSTAPD_LOGGER
CONFIG_NO_AES_EXTRAS=y CONFIG_NO_AES_EXTRAS=y
CFLAGS += -Os CFLAGS += -Os
CONFIG_IEEE80211N=y

View file

@ -47,7 +47,6 @@ CONFIG_OCSP=y
#CONFIG_CTRL_IFACE_DBUS_INTRO=y #CONFIG_CTRL_IFACE_DBUS_INTRO=y
CONFIG_IEEE80211R=y CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y CONFIG_IEEE80211AC=y
CONFIG_DEBUG_FILE=y CONFIG_DEBUG_FILE=y

View file

@ -48,7 +48,6 @@ CONFIG_VLAN_NETLINK=y
CONFIG_LIBNL32=y CONFIG_LIBNL32=y
CONFIG_LIBNL3_ROUTE=y CONFIG_LIBNL3_ROUTE=y
CONFIG_IEEE80211R=y CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y CONFIG_IEEE80211AC=y
CONFIG_IEEE80211AX=y CONFIG_IEEE80211AX=y

View file

@ -58,7 +58,6 @@ CONFIG_CTRL_IFACE_DBUS_NEW=y
CONFIG_CTRL_IFACE_DBUS_INTRO=y CONFIG_CTRL_IFACE_DBUS_INTRO=y
CONFIG_IEEE80211R=y CONFIG_IEEE80211R=y
CONFIG_IEEE80211N=y
CONFIG_IEEE80211AC=y CONFIG_IEEE80211AC=y
CONFIG_IEEE80211AX=y CONFIG_IEEE80211AX=y

View file

@ -858,7 +858,6 @@ OBJS += src/ap/bss_load.c
OBJS += src/ap/eap_user_db.c OBJS += src/ap/eap_user_db.c
OBJS += src/ap/neighbor_db.c OBJS += src/ap/neighbor_db.c
OBJS += src/ap/rrm.c OBJS += src/ap/rrm.c
ifdef CONFIG_IEEE80211N
OBJS += src/ap/ieee802_11_ht.c OBJS += src/ap/ieee802_11_ht.c
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
OBJS += src/ap/ieee802_11_vht.c OBJS += src/ap/ieee802_11_vht.c
@ -866,7 +865,6 @@ endif
ifdef CONFIG_IEEE80211AX ifdef CONFIG_IEEE80211AX
OBJS += src/ap/ieee802_11_he.c OBJS += src/ap/ieee802_11_he.c
endif endif
endif
ifdef CONFIG_WNM_AP ifdef CONFIG_WNM_AP
L_CFLAGS += -DCONFIG_WNM_AP L_CFLAGS += -DCONFIG_WNM_AP
OBJS += src/ap/wnm_ap.c OBJS += src/ap/wnm_ap.c
@ -886,15 +884,12 @@ OBJS += src/eap_server/eap_server.c
OBJS += src/eap_server/eap_server_identity.c OBJS += src/eap_server/eap_server_identity.c
OBJS += src/eap_server/eap_server_methods.c OBJS += src/eap_server/eap_server_methods.c
ifdef CONFIG_IEEE80211N
L_CFLAGS += -DCONFIG_IEEE80211N
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
L_CFLAGS += -DCONFIG_IEEE80211AC L_CFLAGS += -DCONFIG_IEEE80211AC
endif endif
ifdef CONFIG_IEEE80211AX ifdef CONFIG_IEEE80211AX
L_CFLAGS += -DCONFIG_IEEE80211AX L_CFLAGS += -DCONFIG_IEEE80211AX
endif endif
endif
ifdef NEED_AP_MLME ifdef NEED_AP_MLME
OBJS += src/ap/wmm.c OBJS += src/ap/wmm.c

View file

@ -904,7 +904,6 @@ OBJS += ../src/ap/bss_load.o
OBJS += ../src/ap/eap_user_db.o OBJS += ../src/ap/eap_user_db.o
OBJS += ../src/ap/neighbor_db.o OBJS += ../src/ap/neighbor_db.o
OBJS += ../src/ap/rrm.o OBJS += ../src/ap/rrm.o
ifdef CONFIG_IEEE80211N
OBJS += ../src/ap/ieee802_11_ht.o OBJS += ../src/ap/ieee802_11_ht.o
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
OBJS += ../src/ap/ieee802_11_vht.o OBJS += ../src/ap/ieee802_11_vht.o
@ -912,7 +911,6 @@ endif
ifdef CONFIG_IEEE80211AX ifdef CONFIG_IEEE80211AX
OBJS += ../src/ap/ieee802_11_he.o OBJS += ../src/ap/ieee802_11_he.o
endif endif
endif
ifdef CONFIG_WNM_AP ifdef CONFIG_WNM_AP
CFLAGS += -DCONFIG_WNM_AP CFLAGS += -DCONFIG_WNM_AP
OBJS += ../src/ap/wnm_ap.o OBJS += ../src/ap/wnm_ap.o
@ -932,15 +930,12 @@ OBJS += ../src/eap_server/eap_server.o
OBJS += ../src/eap_server/eap_server_identity.o OBJS += ../src/eap_server/eap_server_identity.o
OBJS += ../src/eap_server/eap_server_methods.o OBJS += ../src/eap_server/eap_server_methods.o
ifdef CONFIG_IEEE80211N
CFLAGS += -DCONFIG_IEEE80211N
ifdef CONFIG_IEEE80211AC ifdef CONFIG_IEEE80211AC
CFLAGS += -DCONFIG_IEEE80211AC CFLAGS += -DCONFIG_IEEE80211AC
endif endif
ifdef CONFIG_IEEE80211AX ifdef CONFIG_IEEE80211AX
CFLAGS += -DCONFIG_IEEE80211AX CFLAGS += -DCONFIG_IEEE80211AX
endif endif
endif
ifdef NEED_AP_MLME ifdef NEED_AP_MLME
OBJS += ../src/ap/wmm.o OBJS += ../src/ap/wmm.o

View file

@ -438,11 +438,7 @@ CONFIG_ANDROID_LOG=y
# either wpa_supplicant or hostapd are run. # either wpa_supplicant or hostapd are run.
CONFIG_NO_RANDOM_POOL=y CONFIG_NO_RANDOM_POOL=y
# IEEE 802.11n (High Throughput) support (mainly for AP mode)
CONFIG_IEEE80211N=y
# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode) # IEEE 802.11ac (Very High Throughput) support (mainly for AP mode)
# (depends on CONFIG_IEEE80211N)
#CONFIG_IEEE80211AC=y #CONFIG_IEEE80211AC=y
# Wireless Network Management (IEEE Std 802.11v-2011) # Wireless Network Management (IEEE Std 802.11v-2011)

View file

@ -44,7 +44,6 @@ static void wpas_wps_ap_pin_timeout(void *eloop_data, void *user_ctx);
#endif /* CONFIG_WPS */ #endif /* CONFIG_WPS */
#ifdef CONFIG_IEEE80211N
static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s, static void wpas_conf_ap_vht(struct wpa_supplicant *wpa_s,
struct wpa_ssid *ssid, struct wpa_ssid *ssid,
struct hostapd_config *conf, struct hostapd_config *conf,
@ -130,7 +129,6 @@ no_vht:
conf->channel + conf->secondary_channel * 2; conf->channel + conf->secondary_channel * 2;
conf->vht_oper_chwidth = CHANWIDTH_USE_HT; conf->vht_oper_chwidth = CHANWIDTH_USE_HT;
} }
#endif /* CONFIG_IEEE80211N */
int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s, int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
@ -149,7 +147,6 @@ int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
/* TODO: enable HT40 if driver supports it; /* TODO: enable HT40 if driver supports it;
* drop to 11b if driver does not support 11g */ * drop to 11b if driver does not support 11g */
#ifdef CONFIG_IEEE80211N
/* /*
* Enable HT20 if the driver supports it, by setting conf->ieee80211n * Enable HT20 if the driver supports it, by setting conf->ieee80211n
* and a mask of allowed capabilities within conf->ht_capab. * and a mask of allowed capabilities within conf->ht_capab.
@ -269,7 +266,6 @@ int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
conf->no_pri_sec_switch = 1; conf->no_pri_sec_switch = 1;
} }
} }
#endif /* CONFIG_IEEE80211N */
return 0; return 0;
} }

View file

@ -471,11 +471,7 @@ CONFIG_DEBUG_SYSLOG=y
# Requires glibc 2.25 to build, falls back to /dev/random if unavailable. # Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
#CONFIG_GETRANDOM=y #CONFIG_GETRANDOM=y
# IEEE 802.11n (High Throughput) support (mainly for AP mode)
CONFIG_IEEE80211N=y
# IEEE 802.11ac (Very High Throughput) support (mainly for AP mode) # IEEE 802.11ac (Very High Throughput) support (mainly for AP mode)
# (depends on CONFIG_IEEE80211N)
CONFIG_IEEE80211AC=y CONFIG_IEEE80211AC=y
# Wireless Network Management (IEEE Std 802.11v-2011) # Wireless Network Management (IEEE Std 802.11v-2011)

View file

@ -233,12 +233,10 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
2 + 24 + /* peering management */ 2 + 24 + /* peering management */
2 + 96 + 32 + 32 + /* AMPE (96 + max GTKlen + max IGTKlen) */ 2 + 96 + 32 + 32 + /* AMPE (96 + max GTKlen + max IGTKlen) */
2 + 16; /* MIC */ 2 + 16; /* MIC */
#ifdef CONFIG_IEEE80211N
if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) { if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) {
buf_len += 2 + 26 + /* HT capabilities */ buf_len += 2 + 26 + /* HT capabilities */
2 + 22; /* HT operation */ 2 + 22; /* HT operation */
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (type != PLINK_CLOSE && wpa_s->mesh_vht_enabled) { if (type != PLINK_CLOSE && wpa_s->mesh_vht_enabled) {
buf_len += 2 + 12 + /* VHT Capabilities */ buf_len += 2 + 12 + /* VHT Capabilities */
@ -354,7 +352,6 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
wpabuf_put(buf, PMKID_LEN)); wpabuf_put(buf, PMKID_LEN));
} }
#ifdef CONFIG_IEEE80211N
if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) { if (type != PLINK_CLOSE && wpa_s->mesh_ht_enabled) {
u8 ht_capa_oper[2 + 26 + 2 + 22]; u8 ht_capa_oper[2 + 26 + 2 + 22];
@ -362,7 +359,6 @@ static void mesh_mpm_send_plink_action(struct wpa_supplicant *wpa_s,
pos = hostapd_eid_ht_operation(bss, pos); pos = hostapd_eid_ht_operation(bss, pos);
wpabuf_put_data(buf, ht_capa_oper, pos - ht_capa_oper); wpabuf_put_data(buf, ht_capa_oper, pos - ht_capa_oper);
} }
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
if (type != PLINK_CLOSE && wpa_s->mesh_vht_enabled) { if (type != PLINK_CLOSE && wpa_s->mesh_vht_enabled) {
u8 vht_capa_oper[2 + 12 + 2 + 5]; u8 vht_capa_oper[2 + 12 + 2 + 5];
@ -696,9 +692,7 @@ static struct sta_info * mesh_mpm_add_peer(struct wpa_supplicant *wpa_s,
struct mesh_conf *conf = wpa_s->ifmsh->mconf; struct mesh_conf *conf = wpa_s->ifmsh->mconf;
struct hostapd_data *data = wpa_s->ifmsh->bss[0]; struct hostapd_data *data = wpa_s->ifmsh->bss[0];
struct sta_info *sta; struct sta_info *sta;
#ifdef CONFIG_IEEE80211N
struct ieee80211_ht_operation *oper; struct ieee80211_ht_operation *oper;
#endif /* CONFIG_IEEE80211N */
int ret; int ret;
if (elems->mesh_config_len >= 7 && if (elems->mesh_config_len >= 7 &&
@ -729,7 +723,6 @@ static struct sta_info * mesh_mpm_add_peer(struct wpa_supplicant *wpa_s,
if (!sta->my_lid) if (!sta->my_lid)
mesh_mpm_init_link(wpa_s, sta); mesh_mpm_init_link(wpa_s, sta);
#ifdef CONFIG_IEEE80211N
copy_sta_ht_capab(data, sta, elems->ht_capabilities); copy_sta_ht_capab(data, sta, elems->ht_capabilities);
oper = (struct ieee80211_ht_operation *) elems->ht_operation; oper = (struct ieee80211_ht_operation *) elems->ht_operation;
@ -743,7 +736,6 @@ static struct sta_info * mesh_mpm_add_peer(struct wpa_supplicant *wpa_s,
} }
update_ht_state(data, sta); update_ht_state(data, sta);
#endif /* CONFIG_IEEE80211N */
#ifdef CONFIG_IEEE80211AC #ifdef CONFIG_IEEE80211AC
copy_sta_vht_capab(data, sta, elems->vht_capabilities); copy_sta_vht_capab(data, sta, elems->vht_capabilities);