lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<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

Powered by Openwall GNU/*/Linux Powered by OpenVZ