blob: 889ab957c5ef99ed1090d51eba2b767eecf2a8f4 [file] [log] [blame]
From 98cbf8b36d141112c7bc9e3a366ecc333b60ee90 Mon Sep 17 00:00:00 2001
From: Peter Chiu <chui-hao.chiu@mediatek.com>
Date: Tue, 18 Jan 2022 20:56:46 +0800
Subject: [PATCH 2/2] AP Add user configuration for TWT responder role
Change-Id: I4f669319eb72e37d22bd97901a0d418450f301c3
---
...configuration-for-TWT-responder-role.patch | 87 +++++++++++++++++++
1 file changed, 87 insertions(+)
create mode 100644 package/network/services/hostapd/patches/905-AP-Add-user-configuration-for-TWT-responder-role.patch
diff --git a/package/network/services/hostapd/patches/905-AP-Add-user-configuration-for-TWT-responder-role.patch b/package/network/services/hostapd/patches/905-AP-Add-user-configuration-for-TWT-responder-role.patch
new file mode 100644
index 0000000..1ece165
--- /dev/null
+++ b/package/network/services/hostapd/patches/905-AP-Add-user-configuration-for-TWT-responder-role.patch
@@ -0,0 +1,87 @@
+From c0ce87b34e120d1bc79bdca349fa8211ecff3a71 Mon Sep 17 00:00:00 2001
+From: Mohammad Asaad Akram <asadkrm@codeaurora.org>
+Date: Fri, 28 May 2021 09:47:38 +0530
+Subject: [PATCH 1/7] AP: Add user configuration for TWT responder role
+
+Add user configuration he_twt_responder for enabling/disabling TWT
+responder role, in addition to checking the driver's capability. The
+default configuration is to enable TWT responder role when the driver
+supports this.
+
+Signed-off-by: Mohammad Asaad Akram <asadkrm@codeaurora.org>
+---
+ hostapd/config_file.c | 2 ++
+ hostapd/hostapd.conf | 5 +++++
+ src/ap/ap_config.c | 1 +
+ src/ap/ap_config.h | 1 +
+ src/ap/ieee802_11_he.c | 3 ++-
+ 5 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/hostapd/config_file.c b/hostapd/config_file.c
+index 8f6281a..45aa809 100644
+--- a/hostapd/config_file.c
++++ b/hostapd/config_file.c
+@@ -3537,6 +3537,8 @@ static int hostapd_config_fill(struct hostapd_config *conf,
+ conf->he_op.he_default_pe_duration = atoi(pos);
+ } else if (os_strcmp(buf, "he_twt_required") == 0) {
+ conf->he_op.he_twt_required = atoi(pos);
++ } else if (os_strcmp(buf, "he_twt_responder") == 0) {
++ conf->he_op.he_twt_responder = atoi(pos);
+ } else if (os_strcmp(buf, "he_rts_threshold") == 0) {
+ conf->he_op.he_rts_threshold = atoi(pos);
+ } else if (os_strcmp(buf, "he_basic_mcs_nss_set") == 0) {
+diff --git a/hostapd/hostapd.conf b/hostapd/hostapd.conf
+index 0c951a9..77775fc 100644
+--- a/hostapd/hostapd.conf
++++ b/hostapd/hostapd.conf
+@@ -838,6 +838,11 @@ wmm_ac_vo_acm=0
+ # 1 = required
+ #he_twt_required=0
+
++#he_twt_responder: Whether TWT (HE) responder is enabled
++# 0 = disabled
++# 1 = enabled if supported by the driver (default)
++#he_twt_responder=1
++
+ #he_rts_threshold: Duration of STA transmission
+ # 0 = not set (default)
+ # unsigned integer = duration in units of 16 us
+diff --git a/src/ap/ap_config.c b/src/ap/ap_config.c
+index ce281ac..59c356d 100644
+--- a/src/ap/ap_config.c
++++ b/src/ap/ap_config.c
+@@ -274,6 +274,7 @@ struct hostapd_config * hostapd_config_defaults(void)
+ conf->he_op.he_bss_color_disabled = 1;
+ conf->he_op.he_bss_color_partial = 0;
+ conf->he_op.he_bss_color = 1;
++ conf->he_op.he_twt_responder = 1;
+ conf->he_6ghz_max_mpdu = 2;
+ conf->he_6ghz_max_ampdu_len_exp = 7;
+ conf->he_6ghz_rx_ant_pat = 1;
+diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h
+index ffc3c2c..28d199e 100644
+--- a/src/ap/ap_config.h
++++ b/src/ap/ap_config.h
+@@ -921,6 +921,7 @@ struct he_operation {
+ u8 he_bss_color_partial;
+ u8 he_default_pe_duration;
+ u8 he_twt_required;
++ u8 he_twt_responder;
+ u16 he_rts_threshold;
+ u16 he_basic_mcs_nss_set;
+ };
+diff --git a/src/ap/ieee802_11_he.c b/src/ap/ieee802_11_he.c
+index 8ff3835..cbe5e63 100644
+--- a/src/ap/ieee802_11_he.c
++++ b/src/ap/ieee802_11_he.c
+@@ -514,5 +514,6 @@ int hostapd_get_he_twt_responder(struct hostapd_data *hapd,
+
+ mac_cap = hapd->iface->current_mode->he_capab[mode].mac_cap;
+
+- return !!(mac_cap[HE_MAC_CAPAB_0] & HE_MACCAP_TWT_RESPONDER);
++ return !!(mac_cap[HE_MAC_CAPAB_0] & HE_MACCAP_TWT_RESPONDER) &&
++ hapd->iface->conf->he_op.he_twt_responder;
+ }
+--
+2.29.2
+
--
2.29.2