From patchwork Wed Aug 19 07:01:07 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: chunbo.luo@windriver.com X-Patchwork-Id: 31632 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@bilbo.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from ozlabs.org (ozlabs.org [203.10.76.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client CN "mx.ozlabs.org", Issuer "CA Cert Signing Authority" (verified OK)) by bilbo.ozlabs.org (Postfix) with ESMTPS id 9E78CB7067 for ; Wed, 19 Aug 2009 17:01:47 +1000 (EST) Received: by ozlabs.org (Postfix) id 8F834DDDA0; Wed, 19 Aug 2009 17:01:47 +1000 (EST) Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by ozlabs.org (Postfix) with ESMTP id 29D6EDDD1B for ; Wed, 19 Aug 2009 17:01:47 +1000 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751372AbZHSHBN (ORCPT ); Wed, 19 Aug 2009 03:01:13 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751359AbZHSHBM (ORCPT ); Wed, 19 Aug 2009 03:01:12 -0400 Received: from mail.windriver.com ([147.11.1.11]:36894 "EHLO mail.windriver.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751285AbZHSHBL (ORCPT ); Wed, 19 Aug 2009 03:01:11 -0400 Received: from localhost.localdomain (pek-lpgbuild6.wrs.com [128.224.153.36]) by mail.windriver.com (8.14.3/8.14.3) with ESMTP id n7J719bI019245; Wed, 19 Aug 2009 00:01:10 -0700 (PDT) From: Chunbo Luo To: davem@davemloft.net Cc: netdev@vger.kernel.org, linux-sctp@vger.kernel.org, chunbo.luo@windriver.com Subject: [PATCH 1/2] sctp: fix heartbeat count of association failure Date: Wed, 19 Aug 2009 15:01:07 +0800 Message-Id: <1250665268-29770-1-git-send-email-chunbo.luo@windriver.com> X-Mailer: git-send-email 1.6.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org RFC4960 Section 8.1 defined that the association should enter CLOSE state when the value of association error counter exceeds the limit indicated in the protocol parameter 'Association.Max.Retrans'. This means that the association should enter CLOSE state after max_retrans+1 heartbeats are not acknowledged. Signed-off-by: Chunbo Luo --- net/sctp/sm_statefuns.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c index 7288192..90e4f06 100644 --- a/net/sctp/sm_statefuns.c +++ b/net/sctp/sm_statefuns.c @@ -5190,7 +5190,7 @@ sctp_disposition_t sctp_sf_do_6_3_3_rtx(const struct sctp_endpoint *ep, SCTP_INC_STATS(SCTP_MIB_T3_RTX_EXPIREDS); - if (asoc->overall_error_count >= asoc->max_retrans) { + if (asoc->overall_error_count > asoc->max_retrans) { sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR, SCTP_ERROR(ETIMEDOUT)); /* CMD_ASSOC_FAILED calls CMD_DELETE_TCB. */ @@ -5404,7 +5404,7 @@ sctp_disposition_t sctp_sf_t2_timer_expire(const struct sctp_endpoint *ep, ((struct sctp_association *)asoc)->shutdown_retries++; - if (asoc->overall_error_count >= asoc->max_retrans) { + if (asoc->overall_error_count > asoc->max_retrans) { sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR, SCTP_ERROR(ETIMEDOUT)); /* Note: CMD_ASSOC_FAILED calls CMD_DELETE_TCB. */ @@ -5487,7 +5487,7 @@ sctp_disposition_t sctp_sf_t4_timer_expire( * RFC2960 [5] section 8.1 and 8.2. * association error counter is incremented in SCTP_CMD_STRIKE. */ - if (asoc->overall_error_count >= asoc->max_retrans) { + if (asoc->overall_error_count > asoc->max_retrans) { sctp_add_cmd_sf(commands, SCTP_CMD_TIMER_STOP, SCTP_TO(SCTP_EVENT_TIMEOUT_T4_RTO)); sctp_add_cmd_sf(commands, SCTP_CMD_SET_SK_ERR,