PERFORCE change 136395 for review
Sam Leffler
sam at FreeBSD.org
Fri Feb 29 19:47:28 UTC 2008
http://perforce.freebsd.org/chv.cgi?CH=136395
Change 136395 by sam at sam_ebb on 2008/02/28 05:01:49
blindly convert
Affected files ...
.. //depot/projects/vap/sys/dev/ath/ath_rate/onoe/onoe.c#9 edit
Differences ...
==== //depot/projects/vap/sys/dev/ath/ath_rate/onoe/onoe.c#9 (text+ko) ====
@@ -255,11 +255,12 @@
ath_rate_ctl_start(struct ath_softc *sc, struct ieee80211_node *ni)
{
#define RATE(_ix) (ni->ni_rates.rs_rates[(_ix)] & IEEE80211_RATE_VAL)
- struct ieee80211com *ic = &sc->sc_ic;
+ struct ath_node *an = ATH_NODE(ni);
+ const struct ieee80211_txparam *tp = an->an_tp;
int srate;
KASSERT(ni->ni_rates.rs_nrates > 0, ("no rates"));
- if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE) {
+ if (tp == NULL || tp->ucastrate == IEEE80211_FIXED_RATE_NONE) {
/*
* No fixed rate is requested. For 11b start with
* the highest negotiated rate; otherwise, for 11g
@@ -285,7 +286,7 @@
*/
/* NB: the rate set is assumed sorted */
srate = ni->ni_rates.rs_nrates - 1;
- for (; srate >= 0 && RATE(srate) != ic->ic_fixed_rate; srate--)
+ for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--)
;
}
/*
@@ -310,22 +311,24 @@
* Reset the rate control state for each 802.11 state transition.
*/
void
-ath_rate_newstate(struct ath_softc *sc, enum ieee80211_state state)
+ath_rate_newstate(struct ieee80211vap *vap, enum ieee80211_state state)
{
+ struct ieee80211com *ic = vap->iv_ic;
+ struct ath_softc *sc = ic->ic_ifp->if_softc;
struct onoe_softc *osc = (struct onoe_softc *) sc->sc_rc;
- struct ieee80211com *ic = &sc->sc_ic;
+ const struct ieee80211_txparam *tp;
struct ieee80211_node *ni;
if (state == IEEE80211_S_INIT) {
callout_stop(&osc->timer);
return;
}
- if (ic->ic_opmode == IEEE80211_M_STA) {
+ if (vap->iv_opmode == IEEE80211_M_STA) {
/*
* Reset local xmit state; this is really only
* meaningful when operating in station mode.
*/
- ni = ic->ic_bss;
+ ni = vap->iv_bss;
if (state == IEEE80211_S_RUN) {
ath_rate_ctl_start(sc, ni);
} else {
@@ -339,9 +342,10 @@
* tx rate state of each node.
*/
ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_cb, sc);
- ath_rate_update(sc, ic->ic_bss, 0);
+ ath_rate_update(sc, vap->iv_bss, 0);
}
- if (ic->ic_fixed_rate == IEEE80211_FIXED_RATE_NONE &&
+ tp = ATH_NODE(vap->iv_bss)->an_tp;
+ if (tp->ucastrate == IEEE80211_FIXED_RATE_NONE &&
state == IEEE80211_S_RUN) {
int interval;
/*
@@ -349,10 +353,10 @@
* are not configured to use a fixed xmit rate.
*/
interval = ath_rateinterval;
- if (ic->ic_opmode == IEEE80211_M_STA)
+ if (vap->iv_opmode == IEEE80211_M_STA)
interval /= 2;
callout_reset(&osc->timer, (interval * hz) / 1000,
- ath_ratectl, sc->sc_ifp);
+ ath_ratectl, vap);
}
}
@@ -430,25 +434,25 @@
static void
ath_ratectl(void *arg)
{
- struct ifnet *ifp = arg;
+ struct ieee80211vap *vap = arg;
+ struct ieee80211com *ic = vap->iv_ic;
+ struct ifnet *ifp = ic->ic_ifp;
struct ath_softc *sc = ifp->if_softc;
struct onoe_softc *osc = (struct onoe_softc *) sc->sc_rc;
- struct ieee80211com *ic = &sc->sc_ic;
int interval;
if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
sc->sc_stats.ast_rate_calls++;
- if (ic->ic_opmode == IEEE80211_M_STA)
- ath_rate_ctl(sc, ic->ic_bss); /* NB: no reference */
+ if (vap->iv_opmode == IEEE80211_M_STA)
+ ath_rate_ctl(sc, vap->iv_bss); /* NB: no reference */
else
ieee80211_iterate_nodes(&ic->ic_sta, ath_rate_ctl, sc);
}
interval = ath_rateinterval;
- if (ic->ic_opmode == IEEE80211_M_STA)
+ if (vap->iv_opmode == IEEE80211_M_STA)
interval /= 2;
- callout_reset(&osc->timer, (interval * hz) / 1000,
- ath_ratectl, sc->sc_ifp);
+ callout_reset(&osc->timer, (interval * hz) / 1000, ath_ratectl, arg);
}
static void
More information about the p4-projects
mailing list