diff options
author | adrian <adrian@FreeBSD.org> | 2011-01-31 22:44:28 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-01-31 22:44:28 +0000 |
commit | 2dc0fc4cc657e98ee44f029ab296c2287ce39985 (patch) | |
tree | c8ccf657bc2cd5394785550a35147aee5f576d4c | |
parent | 7bf6fae0847bd215c3e0d5262f0c72740e249683 (diff) | |
download | FreeBSD-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.c | 6 |
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. */ |