svn commit: r225391 - user/adrian/if_ath_tx/sys/dev/ath/ath_rate/sample

Adrian Chadd adrian at FreeBSD.org
Mon Sep 5 09:39:35 UTC 2011


Author: adrian
Date: Mon Sep  5 09:39:35 2011
New Revision: 225391
URL: http://svn.freebsd.org/changeset/base/225391

Log:
  Disable the code which also sets the successive_retries field
  for the larger size buckets.
  
  This is causing issues with 11n TX where aggregate frames can
  sometimes entirely fail. This started marking other rates as
  unavailable.

Modified:
  user/adrian/if_ath_tx/sys/dev/ath/ath_rate/sample/sample.c

Modified: user/adrian/if_ath_tx/sys/dev/ath/ath_rate/sample/sample.c
==============================================================================
--- user/adrian/if_ath_tx/sys/dev/ath/ath_rate/sample/sample.c	Mon Sep  5 09:31:26 2011	(r225390)
+++ user/adrian/if_ath_tx/sys/dev/ath/ath_rate/sample/sample.c	Mon Sep  5 09:39:35 2011	(r225391)
@@ -742,9 +742,17 @@ update_stats(struct ath_softc *sc, struc
 			 (tt * (100 - ssc->smoothing_rate))) / 100;
 	}
 	
+	/*
+	 * XXX Don't mark the higher bit rates as also having failed; as this
+	 * unfortunately stops those rates from being tasted when trying to
+	 * TX. This happens with 11n aggregation.
+	 */
 	if (nframes == nbad) {
+#if 0
 		int y;
+#endif
 		sn->stats[size_bin][rix0].successive_failures += nbad;
+#if 0
 		for (y = size_bin+1; y < NUM_PACKET_SIZE_BINS; y++) {
 			/*
 			 * Also say larger packets failed since we
@@ -756,6 +764,7 @@ update_stats(struct ath_softc *sc, struc
 			sn->stats[y][rix0].tries += tries;
 			sn->stats[y][rix0].total_packets += nframes;
 		}
+#endif
 	} else {
 		sn->stats[size_bin][rix0].packets_acked += (nframes - nbad);
 		sn->stats[size_bin][rix0].successive_failures = 0;


More information about the svn-src-user mailing list