mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-24 11:29:10 +00:00
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.
This commit is contained in:
parent
f673a81060
commit
a07e9ddb3b
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=218379
@ -3891,12 +3891,19 @@ ath_rx_proc(void *arg, int npending)
|
||||
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.
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user