]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
In preparation for supporting 11n TX/RX properly, allow for TX queue draining
authoradrian <adrian@FreeBSD.org>
Tue, 8 Nov 2011 18:56:52 +0000 (18:56 +0000)
committeradrian <adrian@FreeBSD.org>
Tue, 8 Nov 2011 18:56:52 +0000 (18:56 +0000)
commit913f44bdc8de61877e6a27e18cadc68090255d40
tree2a56086b2c5e4aed70307b0d2110fc3b2499fa71
parent5b3fc4fe6ecb66d337f9b4f33c0724b5c8bf0877
In preparation for supporting 11n TX/RX properly, allow for TX queue draining
and interface resets to be marked as ATH_RESET_DEFAULT, ATH_RESET_FULL,
ATH_RESET_NOLOSS.

Currently a reset is still a reset - ie, all tx/rx frames in the hardware
queues are purged. This means that those frames will be lost to the 11n TX
and RX aggregation state tracking, breaking AMPDU sessions.

The (eventual) new semantics:

* ATH_RESET_DEFAULT:
      full reset, this is the default for reset situations
      which I haven't yet figured out what they should be.
* ATH_RESET_FULL:
      A full reset - for things such as channel changes.
* ATH_RESET_NOLOSS:
      Don't flush TX/RX queues - handle pending RX frames and leave TX
      frames where they are; restart TX DMA from where it was.
sys/dev/ath/if_ath.c
sys/dev/ath/if_ath_misc.h
sys/dev/ath/if_ath_sysctl.c