[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <D3B72A8DFCA0A8418CB61D1E9E310A99E5F35252@US01XMB01.org.nasdaqomx.com>
Date: Wed, 25 Aug 2010 10:43:23 -0400
From: Robert Evans <robert.evans@...daqomx.com>
To: 'Ilpo Järvinen' <ilpo.jarvinen@...sinki.fi>,
Jesse Brandeburg <jesse.brandeburg@...il.com>
CC: Herbert Xu <herbert@...dor.hengli.com.au>,
Eric Dumazet <eric.dumazet@...il.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: tcp_shift_skb_data uses wrong mss in non-gso case?
> > > Is the small gso_size the correct and/or desired behavior? Or am I missing
> > > something else that prevents this from being a problem?
> >
> > I believe that this is invalid for the stack to do, Ilpo, Herbert?
> > what do you think?
>
> The point of this code is to work with already SACKed segments (or to
> become SACKed from the current ACK), only TCP code is interested in them
> anymore. They should not be sent again to wire unless SACK reneging occurs
> but then retransmission code should deal with this just fine:
>
> if (skb->len > cur_mss) {
> if (tcp_fragment(sk, skb, cur_mss, cur_mss))
> return -ENOMEM; /* We'll try again later. */
> } else {
> int oldpcount = tcp_skb_pcount(skb);
>
> if (unlikely(oldpcount > 1)) {
> tcp_init_tso_segs(sk, skb, cur_mss);
> tcp_adjust_pcount(sk, skb, oldpcount - tcp_skb_pcount(skb));
> }
> }
Ilpo is right, the code in the retransmit path will prevent any packets
with tiny gso_size from being sent out to the net device.
However, that code was added after Ilpo's SACK patches. The original patch
went in for 2.6.29, and Ilpo fixed the retransmit in 2.6.30. So 2.6.29 and
its descendants can have this problem. I'm using 2.6.29.4, so there you
have it.
A kernel update will definitely fix my problem, so that should be the
end of it. Thanks for your time everyone!
-Bob
--
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