]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
(more) correctly account TX completion status for A-MPDU session frames.
authorAdrian Chadd <adrian@FreeBSD.org>
Mon, 8 Sep 2014 03:16:28 +0000 (03:16 +0000)
committerAdrian Chadd <adrian@FreeBSD.org>
Mon, 8 Sep 2014 03:16:28 +0000 (03:16 +0000)
commit339503ab41d52f4dc7a4604d818c9435f4ef66c2
treed815d4799e3042c6722bb34bdf1b75247b544ac1
parentf7efe7e9992b43bf551dfeb359943fdd74cc13d7
(more) correctly account TX completion status for A-MPDU session frames.

The rules turn out to be:

* for non-aggregation session TX queues - it's either sent or not sent.
* for aggregation session TX queues - if nframes=1, then the status reflects
  the completed transmission.
* however, for nframes > 1, then this is just a status reflecting what
  the initial transmission did.  The compressed BA (immediate or delayed)
  may not have yet been received, so the actual frame status is in the
  compressed BA updates.

Whilst here, I fiddled with debugging and formatting a bit.

There's also RTS attempts (what the atheros chips call "short retries")
which weren't being logged and they aren't yet being used in the rate
control statistics updates.  For now, at least log them.

TODO:

* This still isn't 100% correct! So I have to tinker with this some more.
  (The failures aren't always failures..)
* Extend the rate control API in net80211 so it can take both short and
  long retry counts.

Tested:

* Intel 5100, STA mode
sys/dev/iwn/if_iwn.c