Yes, you are right. I forgot about the abort limit calculation. So then I guess 
everything is ok.

///jon


> -----Original Message-----
> From: [email protected] <[email protected]>
> Sent: October 18, 2018 11:42 AM
> To: Jon Maloy <[email protected]>
> Cc: [email protected]; [email protected]
> Subject: Re: more STATE_MSG sent although with high tolerance;
> 
> Hi Jon,
> 
> No, tolerance value is correct, but we always update the node keep alive
> interval if the new one less than current one:
> static void tipc_node_calculate_timer(struct tipc_node *n, struct tipc_link 
> *l)
> {
>       unsigned long tol = tipc_link_tolerance(l);
>       unsigned long intv = ((tol / 4) > 500) ? 500 : tol / 4;
> 
>       /* Link with lowest tolerance determines timer interval */
>       if (intv < n->keepalive_intv) <= this line caused unexpected
>               n->keepalive_intv = intv;
> 
>       /* Ensure link's abort limit corresponds to current tolerance */
>       tipc_link_set_abort_limit(l, tol / n->keepalive_intv); } Regards Hoang
> Quoting Jon Maloy <[email protected]>:
> 
> > Ho Hoang,
> > No, this isn't correct at all. Of course, when you move the tolerance
> > back to 1500 ms the keepalive timer should go back to 375 ms,
> > otherwise the tolerance in practice remains at 500 ms.
> > The same is true for the last change. Internally, tolerance is 4 *
> > keepalive_intv, so if this one is wrong, the tolerance also becomes
> > wrong.
> >
> > ///jon
> >
> >
> > From: Hoang Le <[email protected]>
> > Sent: October 18, 2018 6:11 AM
> > To: Jon Maloy <[email protected]>
> > Cc: [email protected]; [email protected]
> > Subject: more STATE_MSG sent although with high tolerance;
> >
> > Hi Jon,
> >
> > Do you think below behavior of tipc_node_calculate_timer correct
> > whether or not:
> >
> > Step 0:
> > tipc_node_create:
> > n->keepalive_intv = U32_MAX
> >
> > Step 1:
> > Link up with tolerance default 1500ms
> >
> >
> > tipc_node_calculate_timer:
> > n->keepalive_intv = 375ms;
> >
> > Step 2:
> > Setting tolerance for link to 500ms
> >
> > tipc_node_calculate_timer:
> > n->keepalive_intv = 125ms;
> >
> > Step 3:
> > Setting tolerance for link back to default 1500ms
> >
> > tipc_node_calculate_timer:
> > n->keepalive_intv = 125ms;
> >
> > Step 4:
> > Increase tolerance to 9000ms
> >
> > tipc_node_calculate_timer:
> > n->keepalive_intv = 125ms;
> >
> > At result, more STATE_MSG sent out than expected within short time
> > when increasing tolerance if system is running with heavy traffic.
> >
> > Regards,
> > Hoang


_______________________________________________
tipc-discussion mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tipc-discussion

Reply via email to