[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1420737469.5947.66.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Thu, 08 Jan 2015 09:17:49 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Neal Cardwell <ncardwell@...gle.com>
Cc: Sébastien Barré <sebastien.barre@...ouvain.be>,
David Miller <davem@...emloft.net>,
Netdev <netdev@...r.kernel.org>,
Gregory Detal <gregory.detal@...ouvain.be>,
Nandita Dukkipati <nanditad@...gle.com>,
Yuchung Cheng <ycheng@...gle.com>
Subject: Re: [PATCH net-next v2] tcp: avoid reducing cwnd when ACK+DSACK is
received
On Thu, 2015-01-08 at 08:25 -0800, Eric Dumazet wrote:
> On Thu, 2015-01-08 at 10:49 -0500, Neal Cardwell wrote:
> > On Thu, Jan 8, 2015 at 10:39 AM, Sébastien Barré
> > <sebastien.barre@...ouvain.be> wrote:
> > > What do you and Neal think ?
> >
> > My preference is to have the whole expression detecting the case where
> > the receiver got the probe packet encoded in a single expression. I
> > don't have a strong feeling about whether it should be stored in a
> > bool (to reduce the size of the diff) or written directly into the if
> > () expression (to reduce the size of the code). I'll defer to Eric on
> > which he thinks is better. :-)
>
> There is no shame using helpers with nice names to help understand this
> TCP stack. Even if the helper is used exactly once.
>
> In this case, it seems we test 2 different conditions, so this could use
> 2 helpers with self describing names.
>
> When I see :
>
> > + if (((ack == tp->tlp_high_seq) &&
> > + !(flag & (FLAG_SND_UNA_ADVANCED |
> > + FLAG_NOT_DUP | FLAG_DATA_SACKED))) ||
> > + (!before(ack, tp->tlp_high_seq) && (flag & FLAG_DSACKING_ACK))) {
> > tp->tlp_high_seq = 0;
>
> My brain hurts.
BTW, tlp_high_seq is used no matter what (initial value is 0).
While the probability ACK seq being exactly 0 is small (1 out of 2^32),
probability that !before(ack, tp->tlp_high_seq) being a false positive
is very high. Initial sequence number are supposed to be random.
I wonder if setting tp->tlp_high_seq to 0 is the right thing to do.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists