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

Adrian Chadd adrian at FreeBSD.org
Tue Feb 8 20:16:44 UTC 2011


Author: adrian
Date: Tue Feb  8 20:16:43 2011
New Revision: 218453
URL: http://svn.freebsd.org/changeset/base/218453

Log:
  net80211 really doesn't want A_MPDU to appear on non-11n station node mbufs.
  Revert back to the previous method of doing it for where a node can be
  identified and it's an 11n node.
  
  I'll have to do some further research into exactly what is being messed up
  with the sequence number matching and I'll then revisit this.

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

Modified: head/sys/dev/ath/if_ath.c
==============================================================================
--- head/sys/dev/ath/if_ath.c	Tue Feb  8 19:51:40 2011	(r218452)
+++ head/sys/dev/ath/if_ath.c	Tue Feb  8 20:16:43 2011	(r218453)
@@ -3892,12 +3892,14 @@ rx_accept:
 				IEEE80211_KEYIX_NONE : rs->rs_keyix);
 		sc->sc_lastrs = rs;
 		/* tag AMPDU aggregates for reorder processing */
+#if 0
 		/*
 		 * 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;
+#endif
 
 		/* Keep statistics on the number of aggregate packets received */
 		if (rs->rs_isaggr)
@@ -3905,6 +3907,13 @@ rx_accept:
 
 		if (ni != NULL) {
 			/*
+ 			 * Only punt packets for ampdu reorder processing for 11n nodes;
+ 			 * net80211 enforces that M_AMPDU is only set for 11n nodes.
+ 			 */
+			if (ni->ni_flags & IEEE80211_NODE_HT)
+				m->m_flags |= M_AMPDU;
+
+			/*
 			 * Sending station is known, dispatch directly.
 			 */
 			type = ieee80211_input(ni, m, rs->rs_rssi, nf);


More information about the svn-src-head mailing list