802.11n support for the ath(4) NICs
| Driver | HAL | Supported Hardware | 802.11n support | Debugging |
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: AdrianChadd/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.