On Thu, 21 Feb 2008 20:17:08 -0800 Luis Carlos Cobo <luisca@xxxxxxxxxxx> wrote: > diff --git a/net/mac80211/rc80211_pid_algo.c b/net/mac80211/rc80211_pid_algo.c > index da8462b..5322486 100644 > --- a/net/mac80211/rc80211_pid_algo.c > +++ b/net/mac80211/rc80211_pid_algo.c > @@ -15,6 +15,9 @@ > #include <linux/debugfs.h> > #include <net/mac80211.h> > #include "ieee80211_rate.h" > +#ifdef CONFIG_MAC80211_MESH > +#include "mesh.h" > +#endif > > #include "rc80211_pid.h" > > @@ -148,6 +151,9 @@ static void rate_control_pid_sample(struct rc_pid_info *pinfo, > struct ieee80211_local *local, > struct sta_info *sta) > { > +#ifdef CONFIG_MAC80211_MESH > + struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(sta->dev); > +#endif > struct rc_pid_sta_info *spinfo = sta->rate_ctrl_priv; > struct rc_pid_rateinfo *rinfo = pinfo->rinfo; > struct ieee80211_supported_band *sband; > @@ -178,7 +184,14 @@ static void rate_control_pid_sample(struct rc_pid_info *pinfo, > pf = spinfo->last_pf; > else { > pf = spinfo->tx_num_failed * 100 / spinfo->tx_num_xmit; > +#ifdef CONFIG_MAC80211_MESH > + if (pf == 100 && > + sdata->vif.type == IEEE80211_IF_TYPE_MESH_POINT) > + mesh_plink_broken(sta); > +#endif I'd like to have this moved, maybe right before this: /* Compute the controller output. */ > pf <<= RC_PID_ARITH_SHIFT; > + sta->fail_avg = ((pf + (spinfo->last_pf << 3)) / 9) > + >> RC_PID_ARITH_SHIFT; > } What do you need fail_avg for? Please note that we have better estimates of the frame failure trends (e.g., err_avg). What these magic values are? -- Ciao Stefano - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html