aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/mesh.c
diff options
context:
space:
mode:
authorChun-Yeow Yeoh <yeohchunyeow@gmail.com>2012-12-13 05:59:57 -0500
committerJohannes Berg <johannes.berg@intel.com>2013-01-03 07:01:14 -0500
commitf4eabc918c3b88763bc20dd9e2b248aa6c757005 (patch)
tree28cc8b4c78a17eba3cfaa64c79b5fa0ae879a86d /net/mac80211/mesh.c
parentbc0784d951470ca6597239f1bae6e59caf49fb10 (diff)
mac80211: use short slot time in mesh for 5GHz
Use short slot time in 5GHz for mesh. The performance is increased from 16.4Mbps to 23.4Mbps for two directly connected mesh STAs operating in legacy rate using iperf measurement. Almost similar to the results claimed in IBSS mode. Signed-off-by: Chun-Yeow Yeoh <yeohchunyeow@gmail.com> [call ieee80211_get_sdata_band() only once] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/mesh.c')
-rw-r--r--net/mac80211/mesh.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index 649ad513547f..8565c00cb644 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -607,6 +607,12 @@ void ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata)
607{ 607{
608 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; 608 struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh;
609 struct ieee80211_local *local = sdata->local; 609 struct ieee80211_local *local = sdata->local;
610 u32 changed = BSS_CHANGED_BEACON |
611 BSS_CHANGED_BEACON_ENABLED |
612 BSS_CHANGED_HT |
613 BSS_CHANGED_BASIC_RATES |
614 BSS_CHANGED_BEACON_INT;
615 enum ieee80211_band band = ieee80211_get_sdata_band(sdata);
610 616
611 local->fif_other_bss++; 617 local->fif_other_bss++;
612 /* mesh ifaces must set allmulti to forward mcast traffic */ 618 /* mesh ifaces must set allmulti to forward mcast traffic */
@@ -626,13 +632,14 @@ void ieee80211_start_mesh(struct ieee80211_sub_if_data *sdata)
626 ifmsh->mshcfg.ht_opmode; 632 ifmsh->mshcfg.ht_opmode;
627 sdata->vif.bss_conf.beacon_int = MESH_DEFAULT_BEACON_INTERVAL; 633 sdata->vif.bss_conf.beacon_int = MESH_DEFAULT_BEACON_INTERVAL;
628 sdata->vif.bss_conf.basic_rates = 634 sdata->vif.bss_conf.basic_rates =
629 ieee80211_mandatory_rates(sdata->local, 635 ieee80211_mandatory_rates(local, band);
630 ieee80211_get_sdata_band(sdata)); 636
631 ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON | 637 if (band == IEEE80211_BAND_5GHZ) {
632 BSS_CHANGED_BEACON_ENABLED | 638 sdata->vif.bss_conf.use_short_slot = true;
633 BSS_CHANGED_HT | 639 changed |= BSS_CHANGED_ERP_SLOT;
634 BSS_CHANGED_BASIC_RATES | 640 }
635 BSS_CHANGED_BEACON_INT); 641
642 ieee80211_bss_info_change_notify(sdata, changed);
636 643
637 netif_carrier_on(sdata->dev); 644 netif_carrier_on(sdata->dev);
638} 645}