svn commit: r270206 - head/sys/net80211

Adrian Chadd adrian at FreeBSD.org
Wed Aug 20 09:10:03 UTC 2014


Author: adrian
Date: Wed Aug 20 09:10:03 2014
New Revision: 270206
URL: http://svnweb.freebsd.org/changeset/base/270206

Log:
  After much toying around with this AMRR initial rate stuff,
  I've decided that for 11n rates it's best to start (very) low and work
  our way up.
  
  So, from now on, the initial rate for AMRR 11n is MCS4.
  It doesn't try MCS12 or MCS20 - at low signal strengths those don't
  work very well at all.
  
  AMRR will step the rate control up over time if things work out better.
  
  Tested:
  
  * Intel 5100
  * Intel 5300 (using local diffs to test out 3x3 stream support)

Modified:
  head/sys/net80211/ieee80211_amrr.c

Modified: head/sys/net80211/ieee80211_amrr.c
==============================================================================
--- head/sys/net80211/ieee80211_amrr.c	Wed Aug 20 08:24:37 2014	(r270205)
+++ head/sys/net80211/ieee80211_amrr.c	Wed Aug 20 09:10:03 2014	(r270206)
@@ -195,12 +195,13 @@ amrr_node_init(struct ieee80211_node *ni
 		rate &= IEEE80211_RATE_VAL;
 
 	/* pick initial rate from the rateset - HT or otherwise */
+	/* Pick something low that's likely to succeed */
 	for (amn->amn_rix = rs->rs_nrates - 1; amn->amn_rix > 0;
 	    amn->amn_rix--) {
 		/* legacy - anything < 36mbit, stop searching */
-		/* 11n - stop at MCS4 / MCS12 / MCS28 */
+		/* 11n - stop at MCS4 */
 		if (amrr_node_is_11n(ni)) {
-			if ((rs->rs_rates[amn->amn_rix] & 0x7) < 4)
+			if ((rs->rs_rates[amn->amn_rix] & 0x1f) < 4)
 				break;
 		} else if ((rs->rs_rates[amn->amn_rix] & IEEE80211_RATE_VAL) <= 72)
 			break;


More information about the svn-src-head mailing list