diff mbox series

cfg80211: propagate iftype HE 6 GHz capability

Message ID 1590467491-21187-1-git-send-email-rmanohar@codeaurora.org (mailing list archive)
State Superseded
Delegated to: Johannes Berg
Headers show
Series cfg80211: propagate iftype HE 6 GHz capability | expand

Commit Message

Rajkumar Manoharan May 26, 2020, 4:31 a.m. UTC
Advertise per interface HE 6 GHz band capability to user space
which will be used to build IEs.

Signed-off-by: Rajkumar Manoharan <rmanohar@codeaurora.org>
---
 include/uapi/linux/nl80211.h | 3 +++
 net/wireless/nl80211.c       | 7 +++++++
 2 files changed, 10 insertions(+)

Comments

Arend van Spriel May 26, 2020, 8:10 a.m. UTC | #1
On 5/26/2020 6:31 AM, Rajkumar Manoharan wrote:
> Advertise per interface HE 6 GHz band capability to user space
> which will be used to build IEs.

I am missing the bigger picture here. It should really be determined by 
the band in which the interface type is operating, right? Can you refer 
to patches on the hostap mailing list relying on this one?

Regards,
Arend
Rajkumar Manoharan May 26, 2020, 4:58 p.m. UTC | #2
On 2020-05-26 01:10, Arend Van Spriel wrote:
> On 5/26/2020 6:31 AM, Rajkumar Manoharan wrote:
>> Advertise per interface HE 6 GHz band capability to user space
>> which will be used to build IEs.
> 
> I am missing the bigger picture here. It should really be determined
> by the band in which the interface type is operating, right? Can you
> refer to patches on the hostap mailing list relying on this one?
> 
HE capabilities are exposed to user space via NL80211_BAND_IFTYPE_ATTR_*
as each iftype has different set of capabilities. My last series of 
hostapd
6 GHz changes are depending on HT/VHT capability for IE and config 
validation.
Planning to get rid of such dependency by announcing 6 GHz capability by 
driver
and use it in hostapd. Will post hostapd changes sooner.

-Rajkumar
diff mbox series

Patch

diff --git a/include/uapi/linux/nl80211.h b/include/uapi/linux/nl80211.h
index 9c0a912f1684..10dd250c7d6a 100644
--- a/include/uapi/linux/nl80211.h
+++ b/include/uapi/linux/nl80211.h
@@ -3527,6 +3527,8 @@  enum nl80211_mpath_info {
  *     capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE: HE PPE thresholds information as
  *     defined in HE capabilities IE
+ * @NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAP: HE 6 GHz band capabilities as in HE
+ *     6 GHz band capabilities IE
  * @NL80211_BAND_IFTYPE_ATTR_MAX: highest band HE capability attribute currently
  *     defined
  * @__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST: internal use
@@ -3539,6 +3541,7 @@  enum nl80211_band_iftype_attr {
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PHY,
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_MCS_SET,
 	NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
+	NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAP,
 
 	/* keep last */
 	__NL80211_BAND_IFTYPE_ATTR_AFTER_LAST,
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index bcd7a452e8b1..af9f296ed2af 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -1607,6 +1607,13 @@  nl80211_send_iftype_data(struct sk_buff *msg,
 		    nla_put(msg, NL80211_BAND_IFTYPE_ATTR_HE_CAP_PPE,
 			    sizeof(he_cap->ppe_thres), he_cap->ppe_thres))
 			return -ENOBUFS;
+
+		if (he_cap->has_he_6ghz) {
+			if (nla_put_u16(msg,
+					NL80211_BAND_IFTYPE_ATTR_HE_6GHZ_CAP,
+					he_cap->he_6ghz.cap))
+				return -ENOBUFS;
+		}
 	}
 
 	return 0;