From bf57b7b2ce917f824aadacdcdb900c21c0ebf3e6 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Wed, 31 Oct 2012 06:35:50 +0000 Subject: [PATCH] I've had some feedback that CCK rates are more reliable than MCS 0 in some very degenerate conditions. However, until ath_rate_form_aggr() is taught to not form aggregates if ANY selected rate is non-MCS, this can't yet be enabled. So, just add a comment. --- sys/dev/ath/ath_rate/sample/sample.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/sys/dev/ath/ath_rate/sample/sample.c b/sys/dev/ath/ath_rate/sample/sample.c index 1ec9b533719..54360f510cd 100644 --- a/sys/dev/ath/ath_rate/sample/sample.c +++ b/sys/dev/ath/ath_rate/sample/sample.c @@ -272,12 +272,29 @@ pick_sample_rate(struct sample_softc *ssc , struct ath_node *an, continue; } + /* + * The following code stops trying to sample + * non-MCS rates when speaking to an MCS node. + * However, at least for CCK rates in 2.4GHz mode, + * the non-MCS rates MAY actually provide better + * PER at the very far edge of reception. + * + * However! Until ath_rate_form_aggr() grows + * some logic to not form aggregates if the + * selected rate is non-MCS, this won't work. + * + * So don't disable this code until you've taught + * ath_rate_form_aggr() to drop out if any of + * the selected rates are non-MCS. + */ +#if 1 /* if the node is HT and the rate isn't HT, don't bother sample */ if ((an->an_node.ni_flags & IEEE80211_NODE_HT) && (rt->info[rix].phy != IEEE80211_T_HT)) { mask &= ~((uint64_t) 1<stats[size_bin][rix].perfect_tx_time > current_tt) {