ca12c0c83334a84581bb01daaedf1009deb09204 |
|
09-Sep-2014 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: Unify rate statistic variables between Minstrel & Minstrel_HT Minstrel and Mintrel_HT used there own structs to keep track of rate statistics. Unify those variables in struct minstrel_rate_states and move it to rc80211_minstrel.h for common usage. This is a clean-up patch to prepare Minstrel and Minstrel_HT codebase for upcoming TPC. Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
631ad703ba3a585e96acbfd2ac8c0f0fee1ad99b |
|
20-Jan-2014 |
Johannes Berg <johannes.berg@intel.com> |
mac80211: make rate control ops const Change the code to allow making all the rate control ops const, nothing ever needs to change them. Also change all drivers to make use of this and mark the ops const. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
06d961a8e210035bff7e82f466107f9ab4a8fd94 |
|
22-Apr-2013 |
Felix Fietkau <nbd@openwrt.org> |
mac80211/minstrel: use the new rate control API Pass the rate selection table to mac80211 from minstrel_update_stats. Only rates for sample attempts are set in info->control.rates, with deferred sampling, only the second slot gets changed. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
eea85999eca4d7f3528010cd8277392cd56ba713 |
|
17-Apr-2013 |
Karl Beldan <karl.beldan@rivierawaves.com> |
mac80211: optimize minstrel_ewma Use powers of two in ewma of minstrel. This changes : - EWMA_DIV from 100 to 2^7 - EWMA_LEVEL from 75 (/EWMA_DIV=100) to 2^6 + 2^5 (/EWMA_DIV=128) Note that this changes EWMA_DIV - EWMA_LEVEL from 25 to 2^5 and keeps EWMA_LEVEL / EWMA_DIV == 0.75. Signed-off-by: Karl Beldan <karl.beldan@rivierawaves.com> Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
2ff2b690c56588efc063288f71a9d1cea33772cb |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: improve minstrels rate sorting by means of throughput & probability This patch improves the way minstrel sorts rates according to throughput and success probability. 3 FOR-loops across the entire rate set in function minstrel_update_stats() which where used to determine the fastest, second fastest and most robust rate are reduced to 1 FOR-loop. The sorted list of rates according throughput is extended to the best four rates as we need them in upcoming joint rate and power control. The sorting is done via the new function minstrel_sort_best_tp_rates(). The most robust rate selection is aligned with minstrel_ht's approach. Once any success probability is above 95% the one with the highest throughput is chosen as most robust rate. If success probabilities of all rates are below 95%, the rate with the highest succ. prob. is elected as most robust one Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
f744bf81f7501d03f45ba23f9cf947abc3b422c9 |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: add lowest rate into minstrel's random rate sampling table While minstrel bootstraps and fills the success probabilities of each rate the lowest rate has typically a very high success probability (often 100% in our tests). Its statistics are never updated but considered to setup the mrr chain. In our tests we see that especially the 3rd mrr stage (which is that rate providing highest success probability) is filled with the lowest rate because its initial high sucess probability is never updated. By design the 4th mrr stage is filled with the lowest rate so often 3rd and 4th mrr stage are equal. This patch follows minstrels general approach of assuming as little as possible about rate dependencies. Consequently we include the lowest rate into the random sampling table to get balanced up-to-date statistics of all rates and therefore balanced decisions. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
1e9c27df7b4a59f2269b9c88a5cef1e9018e77f6 |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: extend minstrel's rate sampling to avoid unsampled rates Minstrel's decision which rate should be directly sampled within the 1st mrr stage is limited to such rates faster than the current max throughput rate. All rates below the current max. throughput rate are indirectly sampled via the 2nd mrr stage. This approach leads to deprecated per rate statistics and therfore a deprecated mrr chain setup. This patch uses the sampling approach from minstrel_ht. A counter is added to sum all indirect sample attempts per rate. After 20 indirect sampling attempts the rate is directly sampled within the 1st mrr stage. Therefore more up-to-date statistics for all rates are maintained and used to setup the mrr chain. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
8f15761197c73e1968777e4b4d968ab0fba2cb74 |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: add documentation and verbose variable names in Add documentation and more verbose variable names to minstrel's multi-rate-retry setup within function minstrel_get_rate() to increase the readability of the algorithm. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
c8ca8c2f933a516b5f4586d7dc6055b72107f246 |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: merge value scaling macros of minstrel_ht and minstrel Both minstrel versions use individual ways to scale up integer values to perform calculations. Merge minstrel_ht's scaling macros into minstrels header file and use them in both minstrel versions. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
a512d4b543ea20ec84f712f90a5229ab88a9709c |
|
04-Mar-2013 |
Thomas Huehn <thomas@net.t-labs.tu-berlin.de> |
mac80211: merge EWMA calculation of minstrel_ht and minstrel Both rate control algorithms (minstrel and minstrel_ht) calculate averages based on EWMA. Shift function minstrel_ewma() into rc80211_minstrel.h and make use of it in both minstrel version. Also shift the default EWMA level (75%) definition to the header file and clean up variable usage. Acked-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: Thomas Huehn <thomas@net.t-labs.tu-berlin.de> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
a0497f9f57478c5a37c5628eb32833dd9729a821 |
|
13-Feb-2013 |
Felix Fietkau <nbd@openwrt.org> |
mac80211/minstrel_ht: add support for using CCK rates When MCS rates start to get bad in 2.4 GHz because of long range or strong interference, CCK rates can be a lot more robust. This patch adds a pseudo MCS group containing CCK rates (long preamble in the lower 4 slots, short preamble in the upper slots). Signed-off-by: Felix Fietkau <nbd@openwrt.org> [make minstrel_ht_get_stats static] Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
24f7580e852b5472b51eea322bb78454df0054b8 |
|
20-May-2011 |
Zefir Kurtisi <zefir.kurtisi@neratec.com> |
minstrel_ht: fixed rate mode through debugfs Found several threads about fixed rate mode in minstrel_ht for test environments, but no patches for it. This patch provides such a mode through debugfs. Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
eae44756d60c4e938259358090dba5df675dced0 |
|
01-Mar-2010 |
Felix Fietkau <nbd@openwrt.org> |
minstrel: make the rate control ops reusable from another rc implementation This patch makes it possible to reuse the minstrel rate control ops from another rate control module. This is useful in preparing for the new 802.11n implementation of minstrel, which will reuse the old code for legacy stations. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
44ac91ea8450b0e7a27b4a1fd64aefd35a144728 |
|
01-Mar-2010 |
Felix Fietkau <nbd@openwrt.org> |
minstrel: simplify and fix debugfs code This patch cleans up the debugfs read function for the statistics by using simple_read_from_buffer instead of its own semi-broken hack. Also removes a useless member of the minstrel debugfs info struct. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
1c4e9ab3f1cc458306b3b910000371ba4f71c4d2 |
|
21-Aug-2009 |
Arnd Hannemann <hannemann@nets.rwth-aachen.de> |
mac80211: Remove unnused throughput field from minstrel_rate. I noticed that the throughput field of the minstrel_rate struct is never used, so remove it. Signed-off-by: Arnd Hannemann <hannemann@nets.rwth-aachen.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
f4a8cd94fc43829d065aae94f6d379c6f0f1301c |
|
15-Oct-2008 |
Felix Fietkau <nbd@openwrt.org> |
minstrel: improve performance for non-MRR drivers This patch enhances minstrel's performance for non-MRR setups, by preventing it from sampling slower rates with >95% success probability and by putting at least 1 non-sample frame between several sample frames. Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|
cccf129f820e431d84690729254a32f1709328fb |
|
05-Oct-2008 |
Felix Fietkau <nbd@openwrt.org> |
mac80211: add the 'minstrel' rate control algorithm Signed-off-by: Felix Fietkau <nbd@openwrt.org> Signed-off-by: John W. Linville <linville@tuxdriver.com>
|