svn commit: r218379 - head/sys/dev/ath

Adrian Chadd adrian at FreeBSD.org
Sun Feb 6 20:11:24 UTC 2011


Author: adrian
Date: Sun Feb  6 20:11:24 2011
New Revision: 218379
URL: http://svn.freebsd.org/changeset/base/218379

Log:
  Just tag all RX packets as needing reorder processing for now.
  
  This fixes two problems -
  
  * All packets need to be processed here, not just aggregate ones - as any
    received frames (AMPDU or otherwise) in the given TID (traffic class id)
    will update the sequence number and, implied with that, update the window;
  * It seems there's situations where packets aren't matching a current node but
    somehow need to be tracked. Thus just tag them all for now; I'll figure out
    the why later.
  
  Whilst I'm here, bump the stats counters whilst I'm at it.
  
  This fixes AMPDU RX in my tests; the main problems now stem from what look
  like PHY level error/retransmits which are impeding general throughput, incl.
  AMPDU.

Modified:
  head/sys/dev/ath/if_ath.c

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Sun Feb  6 17:40:27 2011	(r218378)
+++ head/sys/dev/ath/if_ath.c	Sun Feb  6 20:11:24 2011	(r218379)
@@ -3891,12 +3891,19 @@ rx_accept:
 			rs->rs_keyix == HAL_RXKEYIX_INVALID ?
 				IEEE80211_KEYIX_NONE : rs->rs_keyix);
 		sc->sc_lastrs = rs;
+		/* tag AMPDU aggregates for reorder processing */
+		/*
+		 * Just make sure all frames are tagged for AMPDU reorder checking.
+		 * As there seems to be some situations where single frames aren't
+		 * matching a node but bump the seqno. This needs to be investigated.
+		 */
+		m->m_flags |= M_AMPDU;
+
+		/* Keep statistics on the number of aggregate packets received */
+		if (rs->rs_isaggr)
+			sc->sc_stats.ast_rx_agg++;
+
 		if (ni != NULL) {
-			/* tag AMPDU aggregates for reorder processing */
-			if (rs->rs_isaggr) {
-				
-				m->m_flags |= M_AMPDU;
-			}
 			/*
 			 * Sending station is known, dispatch directly.
 			 */


More information about the svn-src-head mailing list