> > 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