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