add the default values for cwmin and cwmax to the if_athvar.h header file and remove them from the rate control file - the minstrel variant of this is totally wrong and leads to inefficient rate control behavior

git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@3563 0192ed92-7a03-0410-a25b-9323aeb14dbd
This commit is contained in:
nbd 2008-04-23 01:28:15 +00:00
parent cff0e47587
commit 26b2191b1f
5 changed files with 8 additions and 15 deletions

View File

@ -253,6 +253,10 @@ static inline struct net_device *_alloc_netdev(int sizeof_priv, const char *mask
#define AES_ICV_FIELD_SIZE 8 /* AES ICV field size */
#define EXT_IV_FIELD_SIZE 4 /* ext IV field size */
/* This is what the HAL uses by default for 11a+g */
#define ATH_DEFAULT_CWMIN 15
#define ATH_DEFAULT_CWMAX 1023
/* XR specific macros */
#define XR_DEFAULT_GRPPOLL_RATE_STR "0.25 1 1 3 3 6 6 20"

View File

@ -198,7 +198,7 @@ calc_usecs_unicast_packet(struct ath_softc *sc, int length,
unsigned int x = 0, tt = 0;
unsigned int cix = rt->info[rix].controlRate;
int rts = 0, cts = 0;
int cw = WIFI_CW_MIN;
int cw = ATH_DEFAULT_CWMIN;
KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
@ -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(WIFI_CW_MAX, (cw + 1) * 2);
cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
tt += (t_slot * cw / 2);
}
return tt;

View File

@ -180,14 +180,6 @@ struct minstrel_node {
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
#if 0
#define WIFI_CW_MIN 31
#define WIFI_CW_MAX 1023
#else
#define WIFI_CW_MIN 3
#define WIFI_CW_MAX 10
#endif
/*
* Definitions for pulling the rate and trie counts from
* a 5212 h/w descriptor. These Don't belong here; the

View File

@ -168,7 +168,7 @@ calc_usecs_unicast_packet(struct ath_softc *sc, int length,
struct ieee80211com *ic = &sc->sc_ic;
unsigned int tt = 0;
unsigned int x;
unsigned int cw = WIFI_CW_MIN;
unsigned int cw = ATH_DEFAULT_CWMIN;
unsigned int cix = rt->info[rix].controlRate;
KASSERT(rt != NULL, ("no rate table, mode %u", sc->sc_curmode));
@ -252,7 +252,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(WIFI_CW_MAX, (cw + 1) * 2);
cw = MIN(ATH_DEFAULT_CWMAX, (cw + 1) * 2);
tt += (t_slot * cw / 2);
}
return tt;

View File

@ -106,9 +106,6 @@ struct sample_node {
#define MAX(a,b) ((a) > (b) ? (a) : (b))
#endif
#define WIFI_CW_MIN 31
#define WIFI_CW_MAX 1023
/*
* Definitions for pulling the rate and trie counts from
* a 5212 h/w descriptor. These Don't belong here; the