freebsd-nq/sys/dev/ath/ath_hal
Adrian Chadd 7ff1939db0 [ath] [ath_hal] break out the duration calculation to optionally include SIFS.
The pre-11n calculations include SIFS, but the 11n ones don't.

The reason is that (mostly) the 11n hardware is doing the SIFS calculation
for us but the pre-11n hardware isn't.  This means that we're over-shooting
the times in the duration field for non-11n frames on 11n hardware, which
is OK, if not a little inefficient.

Now, this is all fine for what the hardware needs for doing duration math
for ACK, RTS/CTS, frame length, etc, but it isn't useful for doing PHY
duration calculations.  Ie, given a frame to TX and its timestamp, what
would the end of the actual transmission time be; and similar for an
RX timestamp and figuring out its original length.

So, this adds a new field to the duration routines which requests
SIFS or no SIFS to be included.  All the callers currently will call
it requesting SIFS, so this /should/ be a glorious no-op.  I'm however
planning some future work around airtime fairness and positioning which
requires these routines to have SIFS be optional.

Notably though, the 11n version doesn't do any SIFS addition at the moment.
I'll go and tweak and verify all of the packet durations before I go and
flip that part on.

Tested:

* AR9330, STA mode
* AR9330, AP mode
* AR9380, STA mode
2016-07-15 06:39:35 +00:00
..
ah_regdomain
ar5210 [ath_hal] retire a "long RX desc" flag, store/use the TX/RX timestamp length. 2016-07-08 21:34:39 +00:00
ar5211 [ath_hal] retire a "long RX desc" flag, store/use the TX/RX timestamp length. 2016-07-08 21:34:39 +00:00
ar5212 [ath] [ath_hal] break out the duration calculation to optionally include SIFS. 2016-07-15 06:39:35 +00:00
ar5312 ath(4): begin fleshing out a "reset type" extension to force cold/warn resets. 2015-11-09 15:59:42 +00:00
ar5416 [ath_hal] retire a "long RX desc" flag, store/use the TX/RX timestamp length. 2016-07-08 21:34:39 +00:00
ar9001 Add initial support for the AR9485 CUS198 / CUS230 variants. 2014-09-30 03:19:29 +00:00
ar9002 dev/ath: minor spelling fixes in comments. 2016-05-02 19:56:48 +00:00
ar9003 [ath_hal] use the correct revision information for QCA953x. 2015-11-28 06:50:09 +00:00
ah_btcoex.h [ath_hal] add BTCOEX_STOMP_AUDIO; delete unused methods. 2016-06-04 07:28:09 +00:00
ah_debug.h
ah_decode.h Add two new debug mark entries for chip power configuration. 2014-08-09 09:13:10 +00:00
ah_desc.h [ath_hal] extend the TX/RX descriptor layout to include location/beamforming fields. 2016-07-08 19:16:50 +00:00
ah_devid.h * Add device string for QCA955x (scorpion); 2015-11-28 00:27:16 +00:00
ah_diagcodes.h
ah_eeprom_9287.c
ah_eeprom_9287.h
ah_eeprom_v1.c
ah_eeprom_v1.h
ah_eeprom_v3.c
ah_eeprom_v3.h
ah_eeprom_v4k.c
ah_eeprom_v4k.h
ah_eeprom_v14.c
ah_eeprom_v14.h
ah_eeprom.h
ah_internal.h [ath_hal] retire a "long RX desc" flag, store/use the TX/RX timestamp length. 2016-07-08 21:34:39 +00:00
ah_regdomain.c [ath] convert recent changes over to HAL format. 2016-05-20 06:06:21 +00:00
ah_regdomain.h ath: refactor/split getchannels() method. 2016-05-19 23:00:30 +00:00
ah_soc.h
ah.c [ath] [ath_hal] break out the duration calculation to optionally include SIFS. 2016-07-15 06:39:35 +00:00
ah.h [ath] [ath_hal] break out the duration calculation to optionally include SIFS. 2016-07-15 06:39:35 +00:00