提交 c028c630 编写于 作者: J Johannes Berg

cfg80211: use only 1Mbps for basic rates in mesh

Mesh used to use the mandatory rates as basic rates, but we got
the calculation of mandatory rates wrong until some time ago.
Fix this this broke interoperability with older versions since
now more basic rates are required, and thus the MBSS isn't the
same and the network stops working.

Fix this by simply using only 1Mbps as the basic rate in 2.4GHz.
Since the changed mandatory rates only affected 2.4GHz, this is
all we need to make it work again.
Reported-and-tested-by: NMatthias Schiffer <mschiffer@universe-factory.net>
Fixes: 1bd773c0 ("wireless: set correct mandatory rate flags")
Signed-off-by: NJohannes Berg <johannes.berg@intel.com>
上级 ba804bb4
...@@ -170,9 +170,28 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev, ...@@ -170,9 +170,28 @@ int __cfg80211_join_mesh(struct cfg80211_registered_device *rdev,
enum nl80211_bss_scan_width scan_width; enum nl80211_bss_scan_width scan_width;
struct ieee80211_supported_band *sband = struct ieee80211_supported_band *sband =
rdev->wiphy.bands[setup->chandef.chan->band]; rdev->wiphy.bands[setup->chandef.chan->band];
scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
setup->basic_rates = ieee80211_mandatory_rates(sband, if (setup->chandef.chan->band == NL80211_BAND_2GHZ) {
scan_width); int i;
/*
* Older versions selected the mandatory rates for
* 2.4 GHz as well, but were broken in that only
* 1 Mbps was regarded as a mandatory rate. Keep
* using just 1 Mbps as the default basic rate for
* mesh to be interoperable with older versions.
*/
for (i = 0; i < sband->n_bitrates; i++) {
if (sband->bitrates[i].bitrate == 10) {
setup->basic_rates = BIT(i);
break;
}
}
} else {
scan_width = cfg80211_chandef_to_scan_width(&setup->chandef);
setup->basic_rates = ieee80211_mandatory_rates(sband,
scan_width);
}
} }
err = cfg80211_chandef_dfs_required(&rdev->wiphy, err = cfg80211_chandef_dfs_required(&rdev->wiphy,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册