]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
EHT: AP mode configuration options to enable/disable the support
authorAloka Dixit <quic_alokad@quicinc.com>
Tue, 19 Apr 2022 18:04:03 +0000 (11:04 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 29 Apr 2022 14:28:39 +0000 (17:28 +0300)
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>
hostapd/Android.mk
hostapd/Makefile
hostapd/config_file.c
hostapd/defconfig
hostapd/hostapd.conf
src/ap/ap_config.c
src/ap/ap_config.h
wpa_supplicant/Android.mk
wpa_supplicant/Makefile
wpa_supplicant/defconfig

index b89f3a69f1678d989be0ade7202ed13ed3f99a17..f36957594bfa0411259adb1e76dd62de42ae0a7e 100644 (file)
@@ -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
index 0f92390529e12d670198f560b47905227a8764f4..25d6530d370a25bfd443affcdbdc753161091d8e 100644 (file)
@@ -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
index ce29c62f4cff79c95b70ed89cdf216641d0e6c2a..a3ebfb2bcdeb72cd6c647f3aaf9c404d69cb91f8 100644 (file)
@@ -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'",
index c458e7fa2419ec7da99e7722a34943d6a997b41b..a9eab4d9cebb9ea744a2fdd20c99a2c7f3abcbb1 100644 (file)
@@ -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
 
index 4efb73467c341b4b11ad8eae97fa61093056d731..b24cd6ffb7a7d3eaf2b7f0571855c1d1a26a4de3 100644 (file)
@@ -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
index 50fea3435b25805f2af37271d423e3f542a451d0..ac0617e3f8fe6fbabaaccc54acac2a751846d400 100644 (file)
@@ -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;
index 7d66cd8afd0de9060f83cb8925bae4ff4f9f6017..05bc380a1e42fb658067572635a7db1db388be86 100644 (file)
@@ -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;
 };
 
 
index ed1f1dc496098ddf83af6bd978e2e998c2e0cb8f..bddeaf52648ed4ff535fcacb59dc96185b1650c5 100644 (file)
@@ -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
index 12787c0c7d0fbca1002c377268a91edec3b5a52d..575d22340812e29e2ddc4e33493a016edbf52eaf 100644 (file)
@@ -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
index e1de3990c8049330de5667b4c06ad23f46f99b28..a4f20d439ab9665eeaca33dcccf986e86a2b6504 100644 (file)
@@ -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