Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932447Ab3JOOMD (ORCPT ); Tue, 15 Oct 2013 10:12:03 -0400 Received: from mail-qe0-f43.google.com ([209.85.128.43]:39318 "EHLO mail-qe0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758961Ab3JOOMB (ORCPT ); Tue, 15 Oct 2013 10:12:01 -0400 Message-ID: <525D4D2D.8000506@gmail.com> Date: Tue, 15 Oct 2013 10:11:57 -0400 From: Vlad Yasevich User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.0 MIME-Version: 1.0 To: Chang Xiangzhong , nhorman@tuxdriver.com CC: davem@davemloft.net, linux-sctp@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] net: sctp: fix a cacc_saw_newack missetting issue References: <1381757623-12803-1-git-send-email-changxiangzhong@gmail.com> In-Reply-To: <1381757623-12803-1-git-send-email-changxiangzhong@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2675 Lines: 82 On 10/14/2013 09:33 AM, Chang Xiangzhong wrote: > For for each TSN t being newly acked (Not only cumulatively, > but also SELECTIVELY) cacc_saw_newack should be set to 1. > > Signed-off-by: Xiangzhong Chang > --- > net/sctp/outqueue.c | 42 +++++++++++++++++++++--------------------- > 1 file changed, 21 insertions(+), 21 deletions(-) > > diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c > index 94df758..d86032b 100644 > --- a/net/sctp/outqueue.c > +++ b/net/sctp/outqueue.c > @@ -1398,6 +1398,27 @@ static void sctp_check_transmitted(struct sctp_outq *q, > forward_progress = true; > } > > + if (!tchunk->tsn_gap_acked) { You can remove this test since the block just above already performs it. Just fold this code into the block above. -vlad > + /* > + * SFR-CACC algorithm: > + * 2) If the SACK contains gap acks > + * and the flag CHANGEOVER_ACTIVE is > + * set the receiver of the SACK MUST > + * take the following action: > + * > + * B) For each TSN t being acked that > + * has not been acked in any SACK so > + * far, set cacc_saw_newack to 1 for > + * the destination that the TSN was > + * sent to. > + */ > + if (transport && > + sack->num_gap_ack_blocks && > + q->asoc->peer.primary_path->cacc. > + changeover_active) > + transport->cacc.cacc_saw_newack = 1; > + } > + > if (TSN_lte(tsn, sack_ctsn)) { > /* RFC 2960 6.3.2 Retransmission Timer Rules > * > @@ -1411,27 +1432,6 @@ static void sctp_check_transmitted(struct sctp_outq *q, > restart_timer = 1; > forward_progress = true; > > - if (!tchunk->tsn_gap_acked) { > - /* > - * SFR-CACC algorithm: > - * 2) If the SACK contains gap acks > - * and the flag CHANGEOVER_ACTIVE is > - * set the receiver of the SACK MUST > - * take the following action: > - * > - * B) For each TSN t being acked that > - * has not been acked in any SACK so > - * far, set cacc_saw_newack to 1 for > - * the destination that the TSN was > - * sent to. > - */ > - if (transport && > - sack->num_gap_ack_blocks && > - q->asoc->peer.primary_path->cacc. > - changeover_active) > - transport->cacc.cacc_saw_newack > - = 1; > - } > > list_add_tail(&tchunk->transmitted_list, > &q->sacked); > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/