diff options
author | Simon Wunderlich <simon.wunderlich@s2003.tu-chemnitz.de> | 2012-12-03 16:21:30 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2012-12-04 09:54:43 -0500 |
commit | 2f91a96799d155d56a0663dbe00fc45c6721a763 (patch) | |
tree | 7606d5f2feb8f7fcc938a31f1687ec2a6fa10376 /net/mac80211 | |
parent | da29d2a5780d80857773d7776b7603a449b0b6e0 (diff) |
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')
-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, | |||
201 | bss_change |= BSS_CHANGED_BASIC_RATES; | 201 | bss_change |= BSS_CHANGED_BASIC_RATES; |
202 | bss_change |= BSS_CHANGED_HT; | 202 | bss_change |= BSS_CHANGED_HT; |
203 | bss_change |= BSS_CHANGED_IBSS; | 203 | bss_change |= BSS_CHANGED_IBSS; |
204 | |||
205 | /* | ||
206 | * In 5 GHz/802.11a, we can always use short slot time. | ||
207 | * (IEEE 802.11-2012 18.3.8.7) | ||
208 | * | ||
209 | * In 2.4GHz, we must always use long slots in IBSS for compatibility | ||
210 | * reasons. | ||
211 | * (IEEE 802.11-2012 19.4.5) | ||
212 | * | ||
213 | * HT follows these specifications (IEEE 802.11-2012 20.3.18) | ||
214 | */ | ||
215 | sdata->vif.bss_conf.use_short_slot = chan->band == IEEE80211_BAND_5GHZ; | ||
216 | bss_change |= BSS_CHANGED_ERP_SLOT; | ||
217 | |||
204 | sdata->vif.bss_conf.ibss_joined = true; | 218 | sdata->vif.bss_conf.ibss_joined = true; |
205 | sdata->vif.bss_conf.ibss_creator = creator; | 219 | sdata->vif.bss_conf.ibss_creator = creator; |
206 | ieee80211_bss_info_change_notify(sdata, bss_change); | 220 | ieee80211_bss_info_change_notify(sdata, bss_change); |