correct fixed rate handling; the rixmap was changed a while back
to be indexed by the ieee rate code
This commit is contained in:
parent
7ee3780799
commit
5f82a460f8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=186879
@ -754,23 +754,18 @@ ath_rate_ctl_reset(struct ath_softc *sc, struct ieee80211_node *ni)
|
||||
sn->static_rix = -1;
|
||||
if (tp != NULL && tp->ucastrate != IEEE80211_FIXED_RATE_NONE) {
|
||||
/*
|
||||
* A fixed rate is to be used; ic_fixed_rate is the
|
||||
* IEEE code for this rate (sans basic bit). Convert this
|
||||
* to the index into the negotiated rate set for
|
||||
* the node.
|
||||
* A fixed rate is to be used; ucastrate is the IEEE code
|
||||
* for this rate (sans basic bit). Check this against the
|
||||
* negotiated rate set for the node. Note the fixed rate
|
||||
* may not be available for various reasons so we only
|
||||
* setup the static rate index if the lookup is successful.
|
||||
* XXX handle MCS
|
||||
*/
|
||||
/* NB: the rate set is assumed sorted */
|
||||
srate = ni->ni_rates.rs_nrates - 1;
|
||||
for (; srate >= 0 && RATE(srate) != tp->ucastrate; srate--)
|
||||
;
|
||||
/*
|
||||
* The fixed rate may not be available due to races
|
||||
* and mode settings. Also orphaned nodes created in
|
||||
* adhoc mode may not have any rate set so this lookup
|
||||
* can fail.
|
||||
*/
|
||||
if (srate >= 0)
|
||||
sn->static_rix = sc->sc_rixmap[srate];
|
||||
for (srate = ni->ni_rates.rs_nrates - 1; srate >= 0; srate--)
|
||||
if (RATE(srate) == tp->ucastrate) {
|
||||
sn->static_rix = sc->sc_rixmap[tp->ucastrate];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user