aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc
diff options
context:
space:
mode:
authorJon Paul Maloy <jon.maloy@ericsson.com>2015-05-14 10:46:12 -0400
committerDavid S. Miller <davem@davemloft.net>2015-05-14 12:24:45 -0400
commit75b44b018eb086fb461aa0351d2ecb1eba684302 (patch)
tree4fed4de208c341319c91bf535e597b9132f7fa5a /net/tipc
parentb1c29f6b10d5981c89d3ea9b9991ca97141ed6d0 (diff)
tipc: simplify link timer handling
Prior to this commit, the link timer has been running at a "continuity interval" of configured link tolerance/4. When a timer wakes up and discovers that there has been no sign of life from the peer during the previous interval, it divides its own timer interval by another factor four, and starts sending one probe per new interval. When the configured link tolerance time has passed without answer, i.e. after 16 unacked probes, the link is declared faulty and reset. This is unnecessary complex. It is sufficient to continue with the original continuity interval, and instead reset the link after four missed probe responses. This makes the timer handling in the link simpler, and opens up for some planned later changes in this area. This commit implements this change. Reviewed-by: Richard Alpe <richard.alpe@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/tipc')
-rw-r--r--net/tipc/link.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c
index 266dbc6a34c1..d71e83d0959b 100644
--- a/net/tipc/link.c
+++ b/net/tipc/link.c
@@ -528,7 +528,7 @@ static void link_state_event(struct tipc_link *l_ptr, unsigned int event)
528 l_ptr->fsm_msg_cnt = 0; 528 l_ptr->fsm_msg_cnt = 0;
529 tipc_link_proto_xmit(l_ptr, STATE_MSG, 1, 0, 0, 0); 529 tipc_link_proto_xmit(l_ptr, STATE_MSG, 1, 0, 0, 0);
530 l_ptr->fsm_msg_cnt++; 530 l_ptr->fsm_msg_cnt++;
531 link_set_timer(l_ptr, cont_intv / 4); 531 link_set_timer(l_ptr, cont_intv);
532 break; 532 break;
533 case RESET_MSG: 533 case RESET_MSG:
534 pr_debug("%s<%s>, requested by peer\n", 534 pr_debug("%s<%s>, requested by peer\n",
@@ -579,7 +579,7 @@ static void link_state_event(struct tipc_link *l_ptr, unsigned int event)
579 tipc_link_proto_xmit(l_ptr, STATE_MSG, 579 tipc_link_proto_xmit(l_ptr, STATE_MSG,
580 1, 0, 0, 0); 580 1, 0, 0, 0);
581 l_ptr->fsm_msg_cnt++; 581 l_ptr->fsm_msg_cnt++;
582 link_set_timer(l_ptr, cont_intv / 4); 582 link_set_timer(l_ptr, cont_intv);
583 } else { /* Link has failed */ 583 } else { /* Link has failed */
584 pr_debug("%s<%s>, peer not responding\n", 584 pr_debug("%s<%s>, peer not responding\n",
585 link_rst_msg, l_ptr->name); 585 link_rst_msg, l_ptr->name);
@@ -1725,7 +1725,7 @@ static void link_set_supervision_props(struct tipc_link *l_ptr, u32 tol)
1725 1725
1726 l_ptr->tolerance = tol; 1726 l_ptr->tolerance = tol;
1727 l_ptr->cont_intv = msecs_to_jiffies(intv); 1727 l_ptr->cont_intv = msecs_to_jiffies(intv);
1728 l_ptr->abort_limit = tol / (jiffies_to_msecs(l_ptr->cont_intv) / 4); 1728 l_ptr->abort_limit = tol / (jiffies_to_msecs(l_ptr->cont_intv));
1729} 1729}
1730 1730
1731void tipc_link_set_queue_limits(struct tipc_link *l, u32 win) 1731void tipc_link_set_queue_limits(struct tipc_link *l, u32 win)