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