Bug 194620

Summary: [ath] [net80211] take ampdu length and error rate into account when select ampdu length
Product: Base System Reporter: Adrian Chadd <adrian>
Component: wirelessAssignee: freebsd-wireless (Nobody) <wireless>
Status: New ---    
Severity: Affects Only Me    
Priority: ---    
Version: CURRENT   
Hardware: Any   
OS: Any   

Description Adrian Chadd freebsd_committer freebsd_triage 2014-10-27 02:02:42 UTC
Right now the A-MPDU error logic in ath_rate_sample only looks at the error rate, not at where the errors are.

eg:

http://www.mwnl.snu.ac.kr/~schoi/publication/Conferences/14-CONEXT-BYEON.pdf

so for longer frames, things like changing channel conditions, clock drift/phase drift and such will cause the BER for the later subframes to be greater than the earlier frames.

The atheros NICs do channel estimate at the beginning of each frame.

So, let's add a bit of logic to check the RX AMPDU BER pattern and if we see the later sub-frames with a higher BER than the earlier subframes, start shortening the AMPDU.