EHT: AP mode configuration options to enable/disable the support
Add compilation support for IEEE 802.11be along with options to enable EHT support per radio and disable per interface. Enabling HE is mandatory to enable EHT mode. Tested-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com> Signed-off-by: Aloka Dixit <quic_alokad@quicinc.com> Signed-off-by: Pradeep Kumar Chitrapu <quic_pradeepc@quicinc.com>
This commit is contained in:
parent
9f7da264bd
commit
8dcc2139ff
10 changed files with 67 additions and 0 deletions
|
@ -294,6 +294,11 @@ ifdef CONFIG_IEEE80211AC
|
|||
L_CFLAGS += -DCONFIG_IEEE80211AC
|
||||
endif
|
||||
|
||||
ifdef CONFIG_IEEE80211BE
|
||||
CONFIG_IEEE80211AX=y
|
||||
L_CFLAGS += -DCONFIG_IEEE80211BE
|
||||
endif
|
||||
|
||||
ifdef CONFIG_IEEE80211AX
|
||||
L_CFLAGS += -DCONFIG_IEEE80211AX
|
||||
endif
|
||||
|
|
|
@ -339,6 +339,11 @@ ifdef CONFIG_IEEE80211AC
|
|||
CFLAGS += -DCONFIG_IEEE80211AC
|
||||
endif
|
||||
|
||||
ifdef CONFIG_IEEE80211BE
|
||||
CONFIG_IEEE80211AX=y
|
||||
CFLAGS += -DCONFIG_IEEE80211BE
|
||||
endif
|
||||
|
||||
ifdef CONFIG_IEEE80211AX
|
||||
CFLAGS += -DCONFIG_IEEE80211AX
|
||||
OBJS += ../src/ap/ieee802_11_he.o
|
||||
|
|
|
@ -4669,6 +4669,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
|||
bss->disable_11ac = !!atoi(pos);
|
||||
} else if (os_strcmp(buf, "disable_11ax") == 0) {
|
||||
bss->disable_11ax = !!atoi(pos);
|
||||
} else if (os_strcmp(buf, "disable_11be") == 0) {
|
||||
bss->disable_11be = !!atoi(pos);
|
||||
#ifdef CONFIG_PASN
|
||||
#ifdef CONFIG_TESTING_OPTIONS
|
||||
} else if (os_strcmp(buf, "force_kdk_derivation") == 0) {
|
||||
|
@ -4696,6 +4698,10 @@ static int hostapd_config_fill(struct hostapd_config *conf,
|
|||
return 1;
|
||||
} else if (os_strcmp(buf, "rnr") == 0) {
|
||||
bss->rnr = atoi(pos);
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
} else if (os_strcmp(buf, "ieee80211be") == 0) {
|
||||
conf->ieee80211be = atoi(pos);
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
} else {
|
||||
wpa_printf(MSG_ERROR,
|
||||
"Line %d: unknown configuration item '%s'",
|
||||
|
|
|
@ -158,6 +158,13 @@ CONFIG_IPV6=y
|
|||
# IEEE 802.11ax HE support
|
||||
#CONFIG_IEEE80211AX=y
|
||||
|
||||
# IEEE 802.11be EHT support
|
||||
# CONFIG_IEEE80211AX is mandatory for setting CONFIG_IEEE80211BE.
|
||||
# Note: This is experimental and work in progress. The definitions are still
|
||||
# subject to change and this should not be expected to interoperate with the
|
||||
# final IEEE 802.11be version.
|
||||
#CONFIG_IEEE80211BE=y
|
||||
|
||||
# Simultaneous Authentication of Equals (SAE), WPA3-Personal
|
||||
#CONFIG_SAE=y
|
||||
|
||||
|
|
|
@ -990,6 +990,16 @@ wmm_ac_vo_acm=0
|
|||
# Valid range: 0..20 TUs; default is 0 (disabled)
|
||||
#unsol_bcast_probe_resp_interval=0
|
||||
|
||||
##### IEEE 802.11be related configuration #####################################
|
||||
|
||||
#ieee80211be: Whether IEEE 802.11be (EHT) is enabled
|
||||
# 0 = disabled (default)
|
||||
# 1 = enabled
|
||||
#ieee80211be=1
|
||||
|
||||
#disable_11be: Boolean (0/1) to disable EHT for a specific BSS
|
||||
#disable_11be=0
|
||||
|
||||
##### IEEE 802.1X-2004 related configuration ##################################
|
||||
|
||||
# Require IEEE 802.1X authorization
|
||||
|
|
|
@ -1435,6 +1435,14 @@ static int hostapd_config_check_bss(struct hostapd_bss_config *bss,
|
|||
}
|
||||
#endif /* CONFIG_FILS */
|
||||
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
if (full_config && !bss->disable_11be && bss->disable_11ax) {
|
||||
bss->disable_11be = true;
|
||||
wpa_printf(MSG_INFO,
|
||||
"Disabling IEEE 802.11be as IEEE 802.11ax is disabled for this BSS");
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1510,6 +1518,14 @@ int hostapd_config_check(struct hostapd_config *conf, int full_config)
|
|||
return -1;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_IEEE80211BE
|
||||
if (full_config && conf->ieee80211be && !conf->ieee80211ax) {
|
||||
wpa_printf(MSG_ERROR,
|
||||
"Cannot set ieee80211be without ieee80211ax");
|
||||
return -1;
|
||||
}
|
||||
#endif /* CONFIG_IEEE80211BE */
|
||||
|
||||
for (i = 0; i < conf->num_bss; i++) {
|
||||
if (hostapd_config_check_bss(conf->bss[i], conf, full_config))
|
||||
return -1;
|
||||
|
|
|
@ -541,6 +541,7 @@ struct hostapd_bss_config {
|
|||
bool disable_11n;
|
||||
bool disable_11ac;
|
||||
bool disable_11ax;
|
||||
bool disable_11be;
|
||||
|
||||
/* IEEE 802.11v */
|
||||
int time_advertisement;
|
||||
|
@ -1114,6 +1115,8 @@ struct hostapd_config {
|
|||
unsigned int airtime_update_interval;
|
||||
#define AIRTIME_MODE_MAX (__AIRTIME_MODE_MAX - 1)
|
||||
#endif /* CONFIG_AIRTIME_POLICY */
|
||||
|
||||
int ieee80211be;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -933,6 +933,10 @@ OBJS += src/eap_server/eap_server_methods.c
|
|||
ifdef CONFIG_IEEE80211AC
|
||||
L_CFLAGS += -DCONFIG_IEEE80211AC
|
||||
endif
|
||||
ifdef CONFIG_IEEE80211BE
|
||||
CONFIG_IEEE80211AX=y
|
||||
L_CFLAGS += -DCONFIG_IEEE80211BE
|
||||
endif
|
||||
ifdef CONFIG_IEEE80211AX
|
||||
L_CFLAGS += -DCONFIG_IEEE80211AX
|
||||
endif
|
||||
|
|
|
@ -968,6 +968,10 @@ OBJS += ../src/eap_server/eap_server_methods.o
|
|||
ifdef CONFIG_IEEE80211AC
|
||||
CFLAGS += -DCONFIG_IEEE80211AC
|
||||
endif
|
||||
ifdef CONFIG_IEEE80211BE
|
||||
CONFIG_IEEE80211AX=y
|
||||
CFLAGS += -DCONFIG_IEEE80211BE
|
||||
endif
|
||||
ifdef CONFIG_IEEE80211AX
|
||||
CFLAGS += -DCONFIG_IEEE80211AX
|
||||
endif
|
||||
|
|
|
@ -486,6 +486,13 @@ CONFIG_IEEE80211AC=y
|
|||
# IEEE 802.11ax HE support (mainly for AP mode)
|
||||
CONFIG_IEEE80211AX=y
|
||||
|
||||
# IEEE 802.11be EHT support (mainly for AP mode)
|
||||
# CONFIG_IEEE80211AX is mandatory for setting CONFIG_IEEE80211BE.
|
||||
# Note: This is experimental and work in progress. The definitions are still
|
||||
# subject to change and this should not be expected to interoperate with the
|
||||
# final IEEE 802.11be version.
|
||||
#CONFIG_IEEE80211BE=y
|
||||
|
||||
# Wireless Network Management (IEEE Std 802.11v-2011)
|
||||
# Note: This is experimental and not complete implementation.
|
||||
#CONFIG_WNM=y
|
||||
|
|
Loading…
Reference in a new issue