Files
wlan-ap/feeds/ipq807x_v5.4/hostapd/patches/r00-002-hostapd-Add-config-to-truncate-ext-capabilities.patch
John Crispin 3b6582117b ipq807x: add ath12 / v5.4 support
Signed-off-by: John Crispin <john@phrozen.org>
2023-04-10 14:25:48 +02:00

62 lines
2.2 KiB
Diff

From 7b3815cd66132ec32d5f8fadc2fa5f137d7eb1c9 Mon Sep 17 00:00:00 2001
From: Nagarajan Maran <quic_nmaran@quicinc.com>
Date: Tue, 5 Jul 2022 11:38:25 +0530
Subject: [PATCH] hostapd: Add config to truncate ext capabilities
Certain legacy clients are not able to scan 11ax vaps due to
extended capabilities which are more than 8bytes in length.
Hence added a work around to trucate the ext caps to 8bytes
based on the hostapd config ext_cap_len.
Legacy clients are able to scan and connect if hostapd config
as ext_cap_len=8, ieee80211ac=1, ieee80211ax=0
Signed-off-by: Nagarajan Maran <quic_nmaran@quicinc.com>
---
hostapd/config_file.c | 2 ++
src/ap/ap_config.h | 1 +
ap/ieee802_11_shared.c | 3 +++
3 files changed, 6 insertions(+)
diff --git a/hostapd/config_file.c b/hostapd/config_file.c
index 009abb06cb22..794532f0ce00 100644
--- a/hostapd/config_file.c
+++ b/hostapd/config_file.c
@@ -2344,6 +2344,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
conf->country[2] = strtol(pos, NULL, 16);
} else if (os_strcmp(buf, "ieee80211d") == 0) {
conf->ieee80211d = atoi(pos);
+ } else if (os_strcmp(buf, "ext_cap_len") == 0) {
+ conf->ext_cap_len = atoi(pos);
} else if (os_strcmp(buf, "ieee80211h") == 0) {
conf->ieee80211h = atoi(pos);
} else if (os_strcmp(buf, "dfs_test_mode") == 0) {
diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
index 44d617363a13..163f24dd8dd3 100644
--- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h
@@ -1036,6 +1036,7 @@ struct hostapd_config {
/* Use driver-generated interface addresses when adding multiple BSSs */
u8 use_driver_iface_addr;
u8 skip_unii1_dfs_switch;
+ u8 ext_cap_len;
#ifdef CONFIG_FST
struct fst_iface_cfg fst_cfg;
diff --git a/src/ap/ieee802_11_shared.c b/src/ap/ieee802_11_shared.c
index 89fa47241c43..2861f540b02b 100644
--- a/src/ap/ieee802_11_shared.c
+++ b/src/ap/ieee802_11_shared.c
@@ -530,6 +530,9 @@ u8 * hostapd_eid_ext_capab(struct hostapd_data *hapd, u8 *eid)
if (len == 0)
return eid;
+ if (hapd->iconf->ext_cap_len > 0 && hapd->iconf->ext_cap_len < len)
+ len = hapd->iconf->ext_cap_len;
+
*pos++ = WLAN_EID_EXT_CAPAB;
*pos++ = len;
for (i = 0; i < len; i++, pos++) {
--
2.17.1