summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-01-31 22:44:28 +0000
committeradrian <adrian@FreeBSD.org>2011-01-31 22:44:28 +0000
commit2dc0fc4cc657e98ee44f029ab296c2287ce39985 (patch)
treec8ccf657bc2cd5394785550a35147aee5f576d4c
parent7bf6fae0847bd215c3e0d5262f0c72740e249683 (diff)
downloadFreeBSD-src-2dc0fc4cc657e98ee44f029ab296c2287ce39985.zip
FreeBSD-src-2dc0fc4cc657e98ee44f029ab296c2287ce39985.tar.gz
Enable AMPDU reorder processing and receiving BAR frames when doing 802.11n.
Obtained from: rpaulo@
-rw-r--r--sys/dev/ath/if_ath.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/dev/ath/if_ath.c b/sys/dev/ath/if_ath.c
index 43ad7ce..30c7459 100644
--- a/sys/dev/ath/if_ath.c
+++ b/sys/dev/ath/if_ath.c
@@ -2312,6 +2312,8 @@ ath_calcrxfilter(struct ath_softc *sc)
}
if (ic->ic_opmode == IEEE80211_M_MONITOR)
rfilt |= HAL_RX_FILTER_CONTROL;
+ if (IEEE80211_IS_CHAN_HT(ic->ic_curchan))
+ rfilt |= HAL_RX_FILTER_COMPBAR;
DPRINTF(sc, ATH_DEBUG_MODE, "%s: RX filter 0x%x, %s if_flags 0x%x\n",
__func__, rfilt, ieee80211_opmode_name[ic->ic_opmode], ifp->if_flags);
return rfilt;
@@ -3891,6 +3893,10 @@ rx_accept:
IEEE80211_KEYIX_NONE : rs->rs_keyix);
sc->sc_lastrs = rs;
if (ni != NULL) {
+ /* tag AMPDU aggregates for reorder processing */
+ if (ni->ni_flags & IEEE80211_NODE_HT)
+ m->m_flags |= M_AMPDU;
+
/*
* Sending station is known, dispatch directly.
*/
OpenPOWER on IntegriCloud