On 10/12/2018 04:02 AM, Jon Maloy wrote: > In the commit referred to below we added link tolerance as an additional > criteria for declaring broadcast transmission "stale" and resetting the > unicast links to the affected node. > > Unfortunately, this 'improvement' introduced two bugs, which each and > one alone cause only limited problems, but combined lead to seemingly > stochastic unicast link resets, depending on the amount of broadcast > traffic transmitted. > > The first issue, a missing initialization of the 'tolerance' field of > the receiver broadcast link, was recently fixed by commit 047491ea334a > ("tipc: set link tolerance correctly in broadcast link"). > > Ths second issue, where we omit to reset the 'stale_cnt' field of > the same link after a 'stale' period is over, leads to this counter > accumulating over time, and in the absence of the 'tolerance' criteria > leads to the above described symptoms. This commit adds the missing > initialization. > > Fixes: a4dc70d46cf1 ("tipc: extend link reset criteria for stale packet > retransmission") > > Signed-off-by: Jon Maloy <jon.ma...@ericsson.com>
Acked-by: Ying Xue <ying....@windriver.com> > --- > net/tipc/link.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/net/tipc/link.c b/net/tipc/link.c > index f6552e4..201c3b5 100644 > --- a/net/tipc/link.c > +++ b/net/tipc/link.c > @@ -1041,6 +1041,7 @@ static int tipc_link_retrans(struct tipc_link *l, > struct tipc_link *r, > if (r->last_retransm != buf_seqno(skb)) { > r->last_retransm = buf_seqno(skb); > r->stale_limit = jiffies + msecs_to_jiffies(r->tolerance); > + r->stale_cnt = 0; > } else if (++r->stale_cnt > 99 && time_after(jiffies, r->stale_limit)) { > link_retransmit_failure(l, skb); > if (link_is_bc_sndlink(l)) > _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion