u32 bw = U32_MAX;
int link_id;
+ if (vif->type == NL80211_IFTYPE_NAN ||
+ vif->type == NL80211_IFTYPE_NAN_DATA)
+ return;
+
rcu_read_lock();
for (link_id = 0;
link_id < ARRAY_SIZE(vif->link_conf);
static int mac80211_hwsim_set_rts_threshold(struct ieee80211_hw *hw,
int radio_idx, u32 value)
{
- return -EOPNOTSUPP;
+ /* hwsim ignores the use_rts instruction from mac80211 anyway */
+ return 0;
}
static int mac80211_hwsim_change_vif_links(struct ieee80211_hw *hw,
.abort_pmsr = mac80211_hwsim_abort_pmsr, \
.set_radar_background = mac80211_hwsim_set_radar_background, \
.set_key = mac80211_hwsim_set_key, \
+ .set_rts_threshold = mac80211_hwsim_set_rts_threshold, \
.start_nan = mac80211_hwsim_nan_start, \
.stop_nan = mac80211_hwsim_nan_stop, \
.nan_change_conf = mac80211_hwsim_nan_change_config, \
static const struct ieee80211_ops mac80211_hwsim_mlo_ops = {
HWSIM_COMMON_OPS
HWSIM_CHANCTX_OPS
- .set_rts_threshold = mac80211_hwsim_set_rts_threshold,
.change_vif_links = mac80211_hwsim_change_vif_links,
.change_sta_links = mac80211_hwsim_change_sta_links,
.sta_state = mac80211_hwsim_sta_state,
hw->wiphy->nan_capa.phy.ht = hwsim_nan_ht_cap;
hw->wiphy->nan_capa.phy.vht = hwsim_nan_vht_cap;
hw->wiphy->nan_capa.phy.he = hwsim_nan_he_cap;
+
+ /*
+ * NAN switches between bands/channels per its schedule,
+ * so mac80211 rate control can't work here.
+ */
+ ieee80211_hw_set(hw, HAS_RATE_CONTROL);
}
data->if_combination.radar_detect_widths =