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
| ||
|
Date: Fri, 24 Jun 2016 09:25:07 -0700 From: Eric Dumazet <eric.dumazet@...il.com> To: Eric Dumazet <edumazet@...gle.com>, "Arjun V." <arjun@...lsio.com> Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>, Hariprasad S <hariprasad@...lsio.com>, Casey Leedom <leedom@...lsio.com>, Kumar A S <kumaras@...lsio.com>, Santosh Rastapur <santosh@...lsio.com>, Nirranjan Kirubaharan <nirranjan@...lsio.com>, "davem@...emloft.net" <davem@...emloft.net>, "ycheng@...gle.com" <ycheng@...gle.com> Subject: Re: [REGRESSION, bisect]cxgb4 port failure with TSO traffic after commit 10d3be569243def8("tcp-tso: do not split TSO packets at retransmit time") On Fri, 2016-06-24 at 07:25 -0700, Eric Dumazet wrote: > Please do not top post on netdev mailing list > > On Fri, Jun 24, 2016 at 4:38 AM, Arjun V. <arjun@...lsio.com> wrote: > > Eric, > > We are seeing skb's with length(skb->len) greater than 65536 coming into our ndo_start_xmit() callback routine. > > We can add a check in our eth_xmit() routine to skip those packets, but it will be better if you fix this in kernel. > > > > > > I have attached pcap file obtained from tcpdump. In the pcap file there are 2 such packets(I used tcpdump filter to extract out those packets). > > > > Let us know if you need anything else. > > > > Beats me really. > > At retransmit time, we only can eventually reduce packet sizes > (assuming GSO is used, because we might coalesce sub-mss packets in > tcp_retrans_try_collapse()) > > So why are you seeing too big packets at retransmit, I really have no idea. > > MIght be some bug related to MSS computation, overflowing somehow ? Could you try this ? Thanks ! diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c index d39e9e47a26e55ad2b8f775bf9ea9dfb5b12aee5..27013056bcfb9aa49601806bb3aa55a1ac664873 100644 --- a/net/ipv4/af_inet.c +++ b/net/ipv4/af_inet.c @@ -1177,6 +1177,7 @@ int inet_sk_rebuild_header(struct sock *sk) /* Routing failed... */ sk->sk_route_caps = 0; + sk->sk_gso_max_segs = 1; /* * Other protocols have to map its equivalent state to TCP_SYN_SENT. * DCCP maps its DCCP_REQUESTING state to TCP_SYN_SENT. -acme diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c index 2076c21107d07e4e78a0a29f1d374c3414b8e1bd..ecc0281acfb702b138c68ac51e3a0518052785b0 100644 --- a/net/ipv6/af_inet6.c +++ b/net/ipv6/af_inet6.c @@ -685,6 +685,7 @@ int inet6_sk_rebuild_header(struct sock *sk) dst = ip6_dst_lookup_flow(sk, &fl6, final_p); if (IS_ERR(dst)) { sk->sk_route_caps = 0; + sk->sk_gso_max_segs = 1; sk->sk_err_soft = -PTR_ERR(dst); return PTR_ERR(dst); }
Powered by blists - more mailing lists