summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-02-08 20:16:43 +0000
committeradrian <adrian@FreeBSD.org>2011-02-08 20:16:43 +0000
commit34a093ebf2ea646a5de15083ceade4c5aa0ad412 (patch)
tree0815bfd4d6b56674747a88018f7ea974e51608e4
parent85440e5501344465392163e6c6b96b2701b30b9e (diff)
downloadFreeBSD-src-34a093ebf2ea646a5de15083ceade4c5aa0ad412.zip
FreeBSD-src-34a093ebf2ea646a5de15083ceade4c5aa0ad412.tar.gz
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.
-rw-r--r--sys/dev/ath/if_ath.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index eb0d27c..f7f116a 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -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);
OpenPOWER on IntegriCloud