From 26b2191b1f43832b8080496533252acdc883b3ae Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 23 Apr 2008 01:28:15 +0000 Subject: [PATCH] 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 --- ath/if_athvar.h | 4 ++++ ath_rate/minstrel/minstrel.c | 4 ++-- ath_rate/minstrel/minstrel.h | 8 -------- ath_rate/sample/sample.c | 4 ++-- ath_rate/sample/sample.h | 3 --- 5 files changed, 8 insertions(+), 15 deletions(-) diff --git a/ath/if_athvar.h b/ath/if_athvar.h index 16ee6dd..31d2f50 100644 --- a/ath/if_athvar.h +++ b/ath/if_athvar.h @@ -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" diff --git a/ath_rate/minstrel/minstrel.c b/ath_rate/minstrel/minstrel.c index 67e1246..26938a7 100644 --- a/ath_rate/minstrel/minstrel.c +++ b/ath_rate/minstrel/minstrel.c @@ -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; diff --git a/ath_rate/minstrel/minstrel.h b/ath_rate/minstrel/minstrel.h index 56ce528..af3aed5 100644 --- a/ath_rate/minstrel/minstrel.h +++ b/ath_rate/minstrel/minstrel.h @@ -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 diff --git a/ath_rate/sample/sample.c b/ath_rate/sample/sample.c index 3ac5aaf..e264f2c 100644 --- a/ath_rate/sample/sample.c +++ b/ath_rate/sample/sample.c @@ -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; diff --git a/ath_rate/sample/sample.h b/ath_rate/sample/sample.h index 29ff8d3..d4c4620 100644 --- a/ath_rate/sample/sample.h +++ b/ath_rate/sample/sample.h @@ -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 -- 2.35.1