[run] Add initial 802.11n support.
- Enable self-generated 11n frames
- add MCS rates for 1-stream and 2-stream rates; will do 3-stream once the rest of this tests out OK with other people.
- Hard-code 1 stream for now
- Add A-MPDU RX mbuf tagging
- RTS/CTS if doing RTSCTS in HT protmode as well as legacy; they're separate configuration flags
- Update the amrr rate index stuff - walk the rates array like others to find the right one - this now works for MCS and CCK/OFDM rates
- Add support for atheros fast frames/AMSDU support as we can generate those in net80211.
TODO:
- HT40 isn't enabled yet
- No A-MPDU support just yet; that requires some more firmware research and maybe porting some ath(4) A-MPDU support/tracking into net80211
- Short preamble flags aren't set yet for MCS; need to check the linux driver and see what's going on there
- Add 3x3 rates and set tx/rx stream configuration appropriately
- More 5GHz testing; I have a 3x3 dual band USB NIC coming soon that'll let me test this.
- Figure out why the RX path isn't performing as fast as it could - there's only a single buffer loaded at a time for the receive path in the USB bulk handler and this may not be super useful.
Tested:
- RT5390 usb, 1x1, RF5370 (2GHz radio), STA mode - A-MSDU TX, A-MPDU RX
Submitted by: Ashish Gupta <ashishgu@andrew.cmu.edu>
Differential Revision: https://reviews.freebsd.org/D22840