802.11n support for the ath(4) NICs
Overview
The driver in FreeBSD-HEAD supports 802.11n TX and RX. It is still under active development and is suitable for local testing.
The 802.11n support is for station, hostap, IBSS and TDMA operation. Mesh is currently not supported.
Current Development
The details can be found on the development page: AtherosTxAgg.
Hardware
The following NICs are supported for 802.11n operation:
AR5416, AR5418
AR9130 (Wireless SoC)
AR9160
AR9220, AR9280
AR9285
AR9227, AR9287
AR93xx
AR94xx
QCA95xx
How to use it
You must be using FreeBSD-HEAD.
Add “options ATH_ENABLE_11N” to the kernel configuration and recompile.
Also add AH_DEBUG, ATH_DEBUG and ATH_DIAGAPI options as well to aid in debugging.
“ifconfig -v wlan0 list channel” should show 802.11n channels “ht”.
In station mode, it will negotiate 802.11n as required.
In hostap mode, 802.11n can be specified in the channel configuration:
# ifconfig wlan0 channel 6:ht/40
Caveats
The only encryption supported in 802.11n mode is AES-CCMP. TKIP and WEP will work but as they are not covered in the 802.11n specification, unpredictable results may occur. If configuring the NIC in hostap mode, please ensure that the group and session key only uses AES-CCMP.
wpa_pairwise=CCMP
Known issues
bgscan and scan during traffic isn't supported. Please don't do it or your traffic may stall. See below.
Don't do a foreground scan manually if live traffic is currently going on or you'll find that your aggregation session will hang. It's for similar reasons as to why bgscan doesn't work.
Fixed issues
The driver doesn't support filtered frames from the TX engine and thus power save support/behaviour is very sub-optimal.
.. and for now, please understand that (hostap only) PS-Poll and power save support likely don't work with aggregation enabled.
There's no STA/adhoc power save support at the present moment.
Reporting issues
Please report issues to freebsd-wireless@freebsd.org . Please keep in mind that AdrianChadd won't help unless:
You're running FreeBSD-HEAD - ie, if you run the driver on -8 or -9 then you're on your own;
All the debugging options above are enabled;
Make sure the tools in src/tools/ath/ath/athstats/ have been compiled;
Please ensure the -HEAD debugging options are enabled - specifically the locking, witness and invariants checks.