Re: [PATCH] wpa_supplicant: allow overriding HT STBC capabilities

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> > Allow user to override STBC configuration for Rx and Tx spatial streams.
> > Add new configuration options to test for HT capability overrides.
> 
> Thanks applied. However, I noticed that this override value does not
> seem to have any impact on mac80211-based drivers and in particular, not
> with mac80211_hwsim (even after making it indicate STBC capability).
> Would you happen to have any plans on extending mac80211 to support this
> override?

Hello Jouni,

All the bits required to pass overrides for HT/VHT capabilities appear
to be in place for both cfg80211-based and mac80211-based drivers.

The reason why RX/TX STBC capabilities are not modified for mac80211_hwsim
driver is as follows. All drivers need to specify supported HT/VHT overrides
explicitly: see ht_capa_mod_mask and vht_capa_mod_mask fields of wiphy structure.
Only supported overrides will be passed to drivers by cfg80211_connect and
cfg80211_mlme_assoc operations: see bitwise 'AND' performed by
cfg80211_oper_and_ht_capa and cfg80211_oper_and_vht_capa.

Currently STBC flags are not in default mac80211_ht_capa_mod_mask structure.
IIUC, there are two options to enable STBC changes for mac80211_hwsim driver:

- add support for RX/TX STBC changes for all mac80211-based drivers
  -- update common mac80211_ht_capa_mod_mask (net/mac80211/main.c)

- add support RX/TX STBC changes for specific driver
  -- e.g., create a separate wiphy->ht_capa_mod_mask instance for mac80211_hwsim

I would suggest to chose the first approach with STBC flags disabled by default.
Experimental patch for this case is provided below. I will test it and
send as RFC.

Regards,
Sergey

diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index f849ea814993..f5a90e53cf0b 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -103,6 +103,12 @@ void ieee80211_apply_htcap_overrides(struct ieee80211_sub_if_data *sdata,
 	__check_htcap_disable(ht_capa, ht_capa_mask, ht_cap,
 			      IEEE80211_HT_CAP_LDPC_CODING);
 
+	/* Allow user to enable STBC */
+	__check_htcap_enable(ht_capa, ht_capa_mask, ht_cap,
+			     IEEE80211_HT_CAP_TX_STBC);
+	__check_htcap_enable(ht_capa, ht_capa_mask, ht_cap,
+			     IEEE80211_HT_CAP_RX_STBC);
+
 	/* Allow user to enable 40 MHz intolerant bit. */
 	__check_htcap_enable(ht_capa, ht_capa_mask, ht_cap,
 			     IEEE80211_HT_CAP_40MHZ_INTOLERANT);
diff --git a/net/mac80211/main.c b/net/mac80211/main.c
index 83e71e6b2ebe..0e13ca7ff5b8 100644
--- a/net/mac80211/main.c
+++ b/net/mac80211/main.c
@@ -478,6 +478,8 @@ static const struct ieee80211_ht_cap mac80211_ht_capa_mod_mask = {
 				IEEE80211_HT_CAP_MAX_AMSDU |
 				IEEE80211_HT_CAP_SGI_20 |
 				IEEE80211_HT_CAP_SGI_40 |
+				IEEE80211_HT_CAP_TX_STBC |
+				IEEE80211_HT_CAP_RX_STBC |
 				IEEE80211_HT_CAP_LDPC_CODING |
 				IEEE80211_HT_CAP_40MHZ_INTOLERANT),
 	.mcs = {


_______________________________________________
Hostap mailing list
Hostap@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/hostap



[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux