Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6d91e1d80822da1c3e790bfbe8df432360fd7f68
Commit:     6d91e1d80822da1c3e790bfbe8df432360fd7f68
Parent:     036cd1ec038f7e3a36740beaf2aa4a0d2e8ed2c1
Author:     Bruno Randolf <[EMAIL PROTECTED]>
AuthorDate: Sat Jan 19 18:18:41 2008 +0900
Committer:  David S. Miller <[EMAIL PROTECTED]>
CommitDate: Mon Jan 28 15:10:53 2008 -0800

    ath5k: configure backoff for IBSS beacon queue
    
    in "11.1.2.2 Beacon generation in an IBSS" the IEEE802.11 standard says, 
each
    STA should... "b) Calculate a random delay uniformly distributed in the 
range
    between zero and twice aCWmin × aSlotTime,".
    
    configure cwmin and cwmax of the beacon queue in IBSS mode according to 
this.
    unfortunately beacon backoff does not work reliably yet, so i suspect we 
have a
    problem somewhere else, since the same settings (and similar beacon timer
    configuration) work for madwifi.
    
    drivers/net/wireless/ath5k/base.c:      Changes-licensed-under: 3-Clause-BSD
    
    Signed-off-by: Bruno Randolf <[EMAIL PROTECTED]>
    Signed-off-by: John W. Linville <[EMAIL PROTECTED]>
---
 drivers/net/wireless/ath5k/base.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/ath5k/base.c 
b/drivers/net/wireless/ath5k/base.c
index eb98284..b2a6ef5 100644
--- a/drivers/net/wireless/ath5k/base.c
+++ b/drivers/net/wireless/ath5k/base.c
@@ -1458,8 +1458,7 @@ ath5k_beaconq_config(struct ath5k_softc *sc)
        ret = ath5k_hw_get_tx_queueprops(ah, sc->bhalq, &qi);
        if (ret)
                return ret;
-       if (sc->opmode == IEEE80211_IF_TYPE_AP ||
-           sc->opmode == IEEE80211_IF_TYPE_IBSS) {
+       if (sc->opmode == IEEE80211_IF_TYPE_AP) {
                /*
                 * Always burst out beacon and CAB traffic
                 * (aifs = cwmin = cwmax = 0)
@@ -1467,8 +1466,19 @@ ath5k_beaconq_config(struct ath5k_softc *sc)
                qi.tqi_aifs = 0;
                qi.tqi_cw_min = 0;
                qi.tqi_cw_max = 0;
+       } else if (sc->opmode == IEEE80211_IF_TYPE_IBSS) {
+               /*
+                * Adhoc mode; backoff between 0 and (2 * cw_min).
+                */
+               qi.tqi_aifs = 0;
+               qi.tqi_cw_min = 0;
+               qi.tqi_cw_max = 2 * ah->ah_cw_min;
        }
 
+       ATH5K_DBG(sc, ATH5K_DEBUG_BEACON,
+               "beacon queueprops tqi_aifs:%d tqi_cw_min:%d tqi_cw_max:%d\n",
+               qi.tqi_aifs, qi.tqi_cw_min, qi.tqi_cw_max);
+
        ret = ath5k_hw_setup_tx_queueprops(ah, sc->bhalq, &qi);
        if (ret) {
                ATH5K_ERR(sc, "%s: unable to update parameters for beacon "
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to