diff mbox series

Issue: Non-HE capable interface advertising HE

Message ID VI1PR04MB5917CCB9C0B2057E043EEE4B8D949@VI1PR04MB5917.eurprd04.prod.outlook.com
State Superseded
Headers show
Series Issue: Non-HE capable interface advertising HE | expand

Commit Message

Deepti Panchal July 26, 2022, 10:34 a.m. UTC
This mail describes the purpose of the attached "hostapd" patch.
The patch avoids issue when there is mismatch between user's 11ax config and DRV capability

Behavior (without the patch):
==========================
    Non-HE capable interface advertising HE IEs/Capabilities in Beacon/Probe Response/Association Response frames if "ieee80211ax=1" configuration is used

Patch Description:
================
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the interface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable

Patch Verification:
=================
1.      For Intel and NXP non-11ax/HE capable chip/interface, when "ieee80211ax=1" is used in the config file, NO HE IEs are added in the Beacon/Probe Response/Association Response frames
2.      For NXP 11ax/HE capable chips, the HE IEs get added correctly to the required MGMT frames

==============================================================================================================
From e19bf318ce2a27ccc03f72023b2fc7f1bf6cd496 Mon Sep 17 00:00:00 2001
From: Deepti Panchal <deepti.panchal@nxp.com>
Date: Mon, 18 Jul 2022 15:59:10 +0530
Subject: [PATCH] Issue: Non-HE capable interface advertising HE
 IEs/Capabilities in Beacon/Probe Response/Association Response frames if
 "ieee80211ax=1" configuration is used

Change Description:
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the iface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Hence now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable
---
 src/ap/hw_features.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

Comments

Deepti Panchal Aug. 1, 2022, 5:06 p.m. UTC | #1
Hi all,

Any feedback on the patch below ?
Kindly update.

Thanks,
Deepti

-----Original Message-----
From: Hostap <hostap-bounces@lists.infradead.org> On Behalf Of Deepti Panchal
Sent: Tuesday, July 26, 2022 16:04
To: hostap@lists.infradead.org
Cc: quic_jouni@quicinc.com
Subject: [EXT] [PATCH] Issue: Non-HE capable interface advertising HE

Caution: EXT Email

This mail describes the purpose of the attached "hostapd" patch.
The patch avoids issue when there is mismatch between user's 11ax config and DRV capability

Behavior (without the patch):
==========================
    Non-HE capable interface advertising HE IEs/Capabilities in Beacon/Probe Response/Association Response frames if "ieee80211ax=1" configuration is used

Patch Description:
================
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the interface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable

Patch Verification:
=================
1.      For Intel and NXP non-11ax/HE capable chip/interface, when "ieee80211ax=1" is used in the config file, NO HE IEs are added in the Beacon/Probe Response/Association Response frames
2.      For NXP 11ax/HE capable chips, the HE IEs get added correctly to the required MGMT frames

==============================================================================================================
From e19bf318ce2a27ccc03f72023b2fc7f1bf6cd496 Mon Sep 17 00:00:00 2001
From: Deepti Panchal <deepti.panchal@nxp.com>
Date: Mon, 18 Jul 2022 15:59:10 +0530
Subject: [PATCH] Issue: Non-HE capable interface advertising HE  IEs/Capabilities in Beacon/Probe Response/Association Response frames if  "ieee80211ax=1" configuration is used

Change Description:
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the iface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Hence now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable
---
 src/ap/hw_features.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c index ed5ff41d3..87d7b52bd 100644
--- a/src/ap/hw_features.c
+++ b/src/ap/hw_features.c
@@ -679,7 +679,19 @@ static int ieee80211ac_supported_vht_capab(struct hostapd_iface *iface)  #ifdef CONFIG_IEEE80211AX  static int ieee80211ax_supported_he_capab(struct hostapd_iface *iface)  {
-       return 1;
+    struct hostapd_hw_modes *mode = iface->current_mode;
+    struct he_capabilities *he_cap = 
+ &(mode->he_capab[IEEE80211_MODE_AP]);
+
+    /* Check iface HE capability, update drv_flags and HE config setting */
+    if (he_cap && he_cap->he_supported) {
+        wpa_printf(MSG_DEBUG, "iface hw he_supported: %d", he_cap->he_supported);
+        iface->drv_flags |= WPA_DRIVER_FLAGS_HE_CAPABILITIES;
+    } else {
+        wpa_printf(MSG_DEBUG, "iface does not support HE capability");
+        iface->conf->ieee80211ax = 0;
+    }
+
+    return 1;
 }
 #endif /* CONFIG_IEEE80211AX */
Deepti Panchal Sept. 9, 2022, 3:28 p.m. UTC | #2
Hi Jouni,

Gentle Reminder, Kindly review the change below.

Thanks,
Deepti

-----Original Message-----
From: Deepti Panchal 
Sent: Thursday, August 25, 2022 13:49
To: j@w1.fi
Cc: quic_jouni@quicinc.com; Amey Bhagwat <amey.bhagwat@nxp.com>; Amitkumar Karwar <amitkumar.karwar@nxp.com>
Subject: RE: [EXT] [PATCH] Issue: Non-HE capable interface advertising HE

Hi Jouni,

This is a follow up email to my "hostap patch" submission email (attached below).

I would like to know if there are any thoughts/feedback on the patch.

Thanks,
Deepti

-----Original Message-----
From: Hostap <hostap-bounces@lists.infradead.org> On Behalf Of Deepti Panchal
Sent: Tuesday, July 26, 2022 16:04
To: hostap@lists.infradead.org
Cc: quic_jouni@quicinc.com
Subject: [EXT] [PATCH] Issue: Non-HE capable interface advertising HE

Caution: EXT Email

This mail describes the purpose of the attached "hostapd" patch.
The patch avoids issue when there is mismatch between user's 11ax config and DRV capability

Behavior (without the patch):
==========================
    Non-HE capable interface advertising HE IEs/Capabilities in Beacon/Probe Response/Association Response frames if "ieee80211ax=1" configuration is used

Patch Description:
================
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the interface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable

Patch Verification:
=================
1.      For Intel and NXP non-11ax/HE capable chip/interface, when "ieee80211ax=1" is used in the config file, NO HE IEs are added in the Beacon/Probe Response/Association Response frames
2.      For NXP 11ax/HE capable chips, the HE IEs get added correctly to the required MGMT frames

==============================================================================================================
From e19bf318ce2a27ccc03f72023b2fc7f1bf6cd496 Mon Sep 17 00:00:00 2001
From: Deepti Panchal <deepti.panchal@nxp.com>
Date: Mon, 18 Jul 2022 15:59:10 +0530
Subject: [PATCH] Issue: Non-HE capable interface advertising HE  IEs/Capabilities in Beacon/Probe Response/Association Response frames if  "ieee80211ax=1" configuration is used

Change Description:
    1. The HE capability for an AP iface was read from the driver, but was not used to update the "drv_flags" for the iface
    2. Change is now added to update the HE capability in the "drv_flags" of the interface
    3. If the interface does not support HE capability, the "iface->conf->ieee80211ax" flag is set to 0
    4. Hence now Beacons/Probe response/Association Response will advertise HE capabilities ONLY if the interface is HE capable
---
 src/ap/hw_features.c | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c index ed5ff41d3..87d7b52bd 100644
--- a/src/ap/hw_features.c
+++ b/src/ap/hw_features.c
@@ -679,7 +679,19 @@ static int ieee80211ac_supported_vht_capab(struct hostapd_iface *iface)  #ifdef CONFIG_IEEE80211AX  static int ieee80211ax_supported_he_capab(struct hostapd_iface *iface)  {
-       return 1;
+    struct hostapd_hw_modes *mode = iface->current_mode;
+    struct he_capabilities *he_cap = 
+ &(mode->he_capab[IEEE80211_MODE_AP]);
+
+    /* Check iface HE capability, update drv_flags and HE config setting */
+    if (he_cap && he_cap->he_supported) {
+        wpa_printf(MSG_DEBUG, "iface hw he_supported: %d", he_cap->he_supported);
+        iface->drv_flags |= WPA_DRIVER_FLAGS_HE_CAPABILITIES;
+    } else {
+        wpa_printf(MSG_DEBUG, "iface does not support HE capability");
+        iface->conf->ieee80211ax = 0;
+    }
+
+    return 1;
 }
 #endif /* CONFIG_IEEE80211AX */
diff mbox series

Patch

diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c
index ed5ff41d3..87d7b52bd 100644
--- a/src/ap/hw_features.c
+++ b/src/ap/hw_features.c
@@ -679,7 +679,19 @@  static int ieee80211ac_supported_vht_capab(struct hostapd_iface *iface)
 #ifdef CONFIG_IEEE80211AX
 static int ieee80211ax_supported_he_capab(struct hostapd_iface *iface)
 {
-	return 1;
+    struct hostapd_hw_modes *mode = iface->current_mode;
+    struct he_capabilities *he_cap = &(mode->he_capab[IEEE80211_MODE_AP]);
+
+    /* Check iface HE capability, update drv_flags and HE config setting */
+    if (he_cap && he_cap->he_supported) {
+        wpa_printf(MSG_DEBUG, "iface hw he_supported: %d", he_cap->he_supported);
+        iface->drv_flags |= WPA_DRIVER_FLAGS_HE_CAPABILITIES;
+    } else {
+        wpa_printf(MSG_DEBUG, "iface does not support HE capability");
+        iface->conf->ieee80211ax = 0;
+    }
+
+    return 1;
 }
 #endif /* CONFIG_IEEE80211AX */