aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2007-11-15 12:13:32 -0500
committerVlad Yasevich <vladislav.yasevich@hp.com>2007-11-29 10:17:41 -0500
commitfd10279bc7405c4f1e47a008686d3d9ad71d7f6d (patch)
tree8b7c4b6b110fe3c439e57a393276ef21baa20056
parenta357dde9df33f28611e6a3d4f88265e39bcc8880 (diff)
SCTP: Fix the number of HB transmissions.
Our treatment of Heartbeats is special in that the inital HB chunk counts against the error count for the association, where as for other chunks, only retransmissions or timeouts count against us. As a result, we had an off-by-1 situation with a number of Heartbeats we could send. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
-rw-r--r--net/sctp/sm_statefuns.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index b8bbb960723c..5fb84778846d 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -959,7 +959,7 @@ sctp_disposition_t sctp_sf_sendbeat_8_3(const struct sctp_endpoint *ep,
959{ 959{
960 struct sctp_transport *transport = (struct sctp_transport *) arg; 960 struct sctp_transport *transport = (struct sctp_transport *) arg;
961 961
962 if (asoc->overall_error_count >= asoc->max_retrans) { 962 if (asoc->overall_error_count > asoc->max_retrans) {
963 sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR, 963 sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR,
964 SCTP_ERROR(ETIMEDOUT)); 964 SCTP_ERROR(ETIMEDOUT));
965 /* CMD_ASSOC_FAILED calls CMD_DELETE_TCB. */ 965 /* CMD_ASSOC_FAILED calls CMD_DELETE_TCB. */