Fix contention window calculation in sample and minstrel code

The contention window is supposed to be a power of two minus one, i.e.
15, 31, 63, 127...  Due to a wrong formula, the actual sequence was 15,
32, 66, 134...

Bug reported by Dan Halperin <dhalperi@cs.washington.edu>


git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4097 0192ed92-7a03-0410-a25b-9323aeb14dbd
This commit is contained in:
proski 2009-09-19 04:03:53 +00:00
parent 922778b6ef
commit acbbdd0bb6
2 changed files with 2 additions and 2 deletions

View File

@ -283,7 +283,7 @@ calc_usecs_unicast_packet(struct ath_softc *sc, int length,
tt += (long_retries + 1) * ath_hal_computetxtime(sc->sc_ah, rt, length,
rix, AH_TRUE);
for (x = 0; x <= short_retries + long_retries; x++) {
cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
cw = MIN(ATH_DEFAULT_CWMAX, (cw << 1) | 1);
tt += (t_slot * cw / 2);
}
return tt;

View File

@ -254,7 +254,7 @@ calc_usecs_unicast_packet(struct ath_softc *sc, int length,
tt += (long_retries+1)*ath_hal_computetxtime(sc->sc_ah, rt, length,
rix, AH_TRUE);
for (x = 0; x <= short_retries + long_retries; x++) {
cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
cw = MIN(ATH_DEFAULT_CWMAX, (cw << 1) | 1);
tt += (t_slot * cw / 2);
}
return tt;