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
