freebsd-nq/sys/dev/ath
Adrian Chadd af33d486ab Implement a separate, smaller pool of ath_buf entries for use by management
traffic.

* Create sc_mgmt_txbuf and sc_mgmt_txdesc, initialise/free them appropriately.
* Create an enum to represent buffer types in the API.
* Extend ath_getbuf() and _ath_getbuf_locked() to take the above enum.
* Right now anything sent via ic_raw_xmit() allocates via ATH_BUFTYPE_MGMT.
  This may not be very useful.
* Add ATH_BUF_MGMT flag (ath_buf.bf_flags) which indicates the current buffer
  is a mgmt buffer and should go back onto the mgmt free list.
* Extend 'txagg' to include debugging output for both normal and mgmt txbufs.
* When checking/clearing ATH_BUF_BUSY, do it on both TX pools.

Tested:

* STA mode, with heavy UDP injection via iperf.  This filled the TX queue
  however BARs were still going out successfully.

TODO:

* Initialise the mgmt buffers with ATH_BUF_MGMT and then ensure the right
  type is being allocated and freed on the appropriate list.  That'd save
  a write operation (to bf->bf_flags) on each buffer alloc/free.

* Test on AP mode, ensure that BAR TX and probe responses go out nicely
  when the main TX queue is filled (eg with paused traffic to a TID,
  awaiting a BAR to complete.)

PR:		kern/168170
2012-06-13 06:57:55 +00:00
..
ath_dfs/null Contribute some example code which demonstrates how to initialise the 2012-02-06 20:23:21 +00:00
ath_hal Add the AR9280 workarounds for PCIe suspend/resume. 2012-05-26 01:36:25 +00:00
ath_rate Add in some debugging code to check whether the current rate table has 2012-02-26 06:04:44 +00:00
ah_osdep.c Stop using the hardware register value byte order swapping for now, 2012-04-19 03:26:21 +00:00
ah_osdep.h Add placeholder methods for WMI command access (USB, perhaps SDIO later) 2012-04-25 01:42:22 +00:00
if_ath_ahb.c Begin merging in some of my 802.11n TX aggregation driver changes. 2011-11-08 02:12:11 +00:00
if_ath_beacon.c Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +00:00
if_ath_beacon.h Migrate most of the beacon handling functions out to if_ath_beacon.c. 2012-05-20 04:14:29 +00:00
if_ath_debug.c Revert r233227 and followup commits as it breaks CCMP PN replay detection. 2012-06-11 06:59:28 +00:00
if_ath_debug.h Migrate ath_debug and sc_debug from an int to a uint64_t / QUAD; 2012-05-15 23:39:37 +00:00
if_ath_keycache.c Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_keycache.h Add a 'vap' to ath_keyset(). 2011-11-08 19:25:52 +00:00
if_ath_led.c Since the only thing with a mux is the AR5416 and later, and we're now 2011-12-26 07:48:29 +00:00
if_ath_led.h Refactor out the software LED config code into a common function, called 2011-12-26 05:46:22 +00:00
if_ath_misc.h Implement a separate, smaller pool of ath_buf entries for use by management 2012-06-13 06:57:55 +00:00
if_ath_pci.c Override some default values to work around various issues in the deep, 2012-04-15 00:04:23 +00:00
if_ath_rx.c Create a function - ath_tx_kick() - which is called where ath_start() is 2012-06-05 03:14:49 +00:00
if_ath_rx.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_sysctl.c Implement a separate, smaller pool of ath_buf entries for use by management 2012-06-13 06:57:55 +00:00
if_ath_sysctl.h Break out most of the HAL related tweaks into a per-HAL instance, 2011-06-23 02:38:36 +00:00
if_ath_tdma.c Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tdma.h Migrate the TDMA management functions out of if_ath.c into if_ath_tdma.c. 2012-05-20 02:49:42 +00:00
if_ath_tsf.h Migrate the bulk of the RX routines out from if_ath.c to if_ath_rx.[ch]. 2012-05-20 02:05:10 +00:00
if_ath_tx_ht.c Remove a duplicate definition. 2012-06-13 05:47:24 +00:00
if_ath_tx_ht.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_ath_tx.c Implement a separate, smaller pool of ath_buf entries for use by management 2012-06-13 06:57:55 +00:00
if_ath_tx.h Revert r233227 and followup commits as it breaks CCMP PN replay detection. 2012-06-11 06:59:28 +00:00
if_ath.c Implement a separate, smaller pool of ath_buf entries for use by management 2012-06-13 06:57:55 +00:00
if_athdfs.h Change the prototype so the radar enable can fail. 2012-01-28 21:44:42 +00:00
if_athioctl.h Add a new ioctl for ath(4) which returns the aggregate statistics. 2012-06-10 06:42:18 +00:00
if_athrate.h Introduce TX aggregation and software TX queue management 2011-11-08 22:43:13 +00:00
if_athvar.h Implement a separate, smaller pool of ath_buf entries for use by management 2012-06-13 06:57:55 +00:00