Message ID | 1304719911-22636-1-git-send-email-javier@cozybit.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Fri, 2011-05-06 at 15:11 -0700, Javier Cardona wrote: > From: Fabrice Deyber <fabricedeyber@agilemesh.com> > > This fixes routing loops in PREP propagation and is in accordance with Draft > 11, Section: 11C.9.8.4. > +++ b/net/mac80211/mesh_hwmp.c > @@ -391,7 +391,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, > (mpath->flags & MESH_PATH_SN_VALID)) { > if (SN_GT(mpath->sn, orig_sn) || > (mpath->sn == orig_sn && > - action == MPATH_PREQ && I don't understand how removing the action comparison maps to the patch description -- can you explain a bit more? johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, May 6, 2011 at 3:17 PM, Johannes Berg <johannes@sipsolutions.net> wrote: > On Fri, 2011-05-06 at 15:11 -0700, Javier Cardona wrote: >> From: Fabrice Deyber <fabricedeyber@agilemesh.com> >> >> This fixes routing loops in PREP propagation and is in accordance with Draft >> 11, Section: 11C.9.8.4. > >> +++ b/net/mac80211/mesh_hwmp.c >> @@ -391,7 +391,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, >> (mpath->flags & MESH_PATH_SN_VALID)) { >> if (SN_GT(mpath->sn, orig_sn) || >> (mpath->sn == orig_sn && >> - action == MPATH_PREQ && > > I don't understand how removing the action comparison maps to the patch > description -- can you explain a bit more? If the if condition is true, this PREQ or PREP will be ignored. The first part of the condition eliminates old sequence numbers, where the metric is not checked. The second part of the if condidion (|| (mpath->sn == ...) used to eliminate all the PREQs with equal seq number and worse metric. The patch modifies it to also eliminate PREPs. j
On Fri, 2011-05-06 at 15:28 -0700, Javier Cardona wrote: > >> This fixes routing loops in PREP propagation and is in accordance with Draft > >> 11, Section: 11C.9.8.4. > > > >> +++ b/net/mac80211/mesh_hwmp.c > >> @@ -391,7 +391,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, > >> (mpath->flags & MESH_PATH_SN_VALID)) { > >> if (SN_GT(mpath->sn, orig_sn) || > >> (mpath->sn == orig_sn && > >> - action == MPATH_PREQ && > > > > I don't understand how removing the action comparison maps to the patch > > description -- can you explain a bit more? > > If the if condition is true, this PREQ or PREP will be ignored. The > first part of the condition eliminates old sequence numbers, where the > metric is not checked. The second part of the if condidion (|| > (mpath->sn == ...) used to eliminate all the PREQs with equal seq > number and worse metric. The patch modifies it to also eliminate > PREPs. Ah. Thanks for the explanation, guess I shouldn't be trying to read this after midnight :-) johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c index e57f2e7..849fecd 100644 --- a/net/mac80211/mesh_hwmp.c +++ b/net/mac80211/mesh_hwmp.c @@ -391,7 +391,6 @@ static u32 hwmp_route_info_get(struct ieee80211_sub_if_data *sdata, (mpath->flags & MESH_PATH_SN_VALID)) { if (SN_GT(mpath->sn, orig_sn) || (mpath->sn == orig_sn && - action == MPATH_PREQ && new_metric >= mpath->metric)) { process = false; fresh_info = false;