diff options
author | 2020-03-05 11:49:26 +0000 | |
---|---|---|
committer | 2020-03-05 11:49:26 +0000 | |
commit | c43fed7076be788ab74af3df1b4307d98631d3a4 (patch) | |
tree | 5de77f208333c48fb5e74d6277f1159ae2d801e8 | |
parent | fix build without MIRA_AGGRESSIVE_DOWNWARDS_PROBING (diff) | |
download | wireguard-openbsd-c43fed7076be788ab74af3df1b4307d98631d3a4.tar.xz wireguard-openbsd-c43fed7076be788ab74af3df1b4307d98631d3a4.zip |
Cancel MiRA probing timeouts if a channel quality change triggers probing.
Avoids unnecessary re-probing in case a timeout had been scheduled already.
tweak + ok tb@
-rw-r--r-- | sys/net80211/ieee80211_mira.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_mira.c b/sys/net80211/ieee80211_mira.c index e69b02d42b2..34bee05d88a 100644 --- a/sys/net80211/ieee80211_mira.c +++ b/sys/net80211/ieee80211_mira.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee80211_mira.c,v 1.20 2020/03/05 10:13:52 stsp Exp $ */ +/* $OpenBSD: ieee80211_mira.c,v 1.21 2020/03/05 11:49:26 stsp Exp $ */ /* * Copyright (c) 2016 Stefan Sperling <stsp@openbsd.org> @@ -1212,6 +1212,7 @@ ieee80211_mira_choose(struct ieee80211_mira_node *mn, struct ieee80211com *ic, mn->candidate_rates = (1 << ieee80211_mira_next_lower_intra_rate(mn, ni)); #endif + ieee80211_mira_cancel_timeouts(mn); } else if (g->measured >= g->average + 2 * g->stddeviation) { /* Channel becomes good. */ DPRINTFN(2, ("channel becomes good; probe upwards\n")); @@ -1226,6 +1227,7 @@ ieee80211_mira_choose(struct ieee80211_mira_node *mn, struct ieee80211com *ic, /* Probe the upper candidate rate to see if it's any better. */ mn->candidate_rates = (1 << ieee80211_mira_next_intra_rate(mn, ni)); + ieee80211_mira_cancel_timeouts(mn); } else { /* Remain at current rate. */ mn->probing = IEEE80211_MIRA_NOT_PROBING; |