diff options
author | Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de> | 2012-12-03 22:21:30 +0100 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-12-04 15:54:43 +0100 |
commit | 2f91a96799d155d56a0663dbe00fc45c6721a763 (patch) | |
tree | 7606d5f2feb8f7fcc938a31f1687ec2a6fa10376 /net/mac80211/ibss.c | |
parent | da29d2a5780d80857773d7776b7603a449b0b6e0 (diff) | |
download | linux-2f91a96799d155d56a0663dbe00fc45c6721a763.tar.gz linux-2f91a96799d155d56a0663dbe00fc45c6721a763.tar.bz2 linux-2f91a96799d155d56a0663dbe00fc45c6721a763.zip |
mac80211: adapt slot time in IBSS mode
In 5GHz/802.11a, we are allowed to use short slot times. Doing this
may increases performance by 20% for legacy connections (54 MBit/s).
I can confirm this in my tests (27% more throughput using iperf), and
also have a small positive effect (5% more throughput) for HT rates,
tested on 1 stream.
Signed-off-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
Signed-off-by: Mathias Kretschmer <mathias.kretschmer@fokus.fraunhofer.de>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ibss.c')
-rw-r--r-- | net/mac80211/ibss.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 11a6a1bde2fd..700d0ed736c9 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c @@ -201,6 +201,20 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata, bss_change |= BSS_CHANGED_BASIC_RATES; bss_change |= BSS_CHANGED_HT; bss_change |= BSS_CHANGED_IBSS; + + /* + * In 5 GHz/802.11a, we can always use short slot time. + * (IEEE 802.11-2012 18.3.8.7) + * + * In 2.4GHz, we must always use long slots in IBSS for compatibility + * reasons. + * (IEEE 802.11-2012 19.4.5) + * + * HT follows these specifications (IEEE 802.11-2012 20.3.18) + */ + sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ; + bss_change |= BSS_CHANGED_ERP_SLOT; + sdata->vif.bss_conf.ibss_joined = true; sdata->vif.bss_conf.ibss_creator = creator; ieee80211_bss_info_change_notify(sdata, bss_change); |