mac80211: Early detection of broken mesh paths when using minstrel.
This change triggers a path discovery as soon as the link quality degrades below a certain threshold. This results in a faster path recovery time than by simply relying on the periodic path refresh mechanism to detect broken links. Signed-off-by: Javier Cardona <javier@cozybit.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
d403a1c66e
Коммит
5815814bfa
|
@ -51,6 +51,7 @@
|
|||
#include <linux/random.h>
|
||||
#include <linux/ieee80211.h>
|
||||
#include <net/mac80211.h>
|
||||
#include "mesh.h"
|
||||
#include "rate.h"
|
||||
#include "rc80211_minstrel.h"
|
||||
|
||||
|
@ -178,9 +179,14 @@ minstrel_tx_status(void *priv, struct ieee80211_supported_band *sband,
|
|||
|
||||
if ((i != IEEE80211_TX_MAX_RATES - 1) && (ar[i + 1].idx < 0)) {
|
||||
mi->r[ndx].success += success;
|
||||
if (si)
|
||||
if (si) {
|
||||
si->fail_avg = (18050 - mi->r[ndx].probability)
|
||||
/ 180;
|
||||
WARN_ON(si->fail_avg > 100);
|
||||
if (si->fail_avg == 100 &&
|
||||
ieee80211_vif_is_mesh(&si->sdata->vif))
|
||||
mesh_plink_broken(si);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче