From: Michael Tokarev <mjt@tls.msk.ru>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: netdev@vger.kernel.org
Subject: Re: rare bad TCP checksum with 2.6.19?
Date: Mon, 15 Jan 2007 16:34:41 +0300 [thread overview]
Message-ID: <45AB82F1.9000409@tls.msk.ru> (raw)
In-Reply-To: <E1H6OJU-0001EC-00@gondolin.me.apana.org.au>
Herbert Xu wrote:
> Michael Tokarev <mjt@tls.msk.ru> wrote:
>> Note there's no funny/interesting hardware involved, like network cards with
>> tcp checksumming offload capabilities (this is plain dumb 8139 card).
>
> The 8139 card might be dumb, but the driver isn't :) It emulates
> checksum offload in software, meaning that tcpdump will show bogus
> checksums.
>
> So please disable hardware checksum offload with ethtool -K and
> then try again.
# ethtool -k eth0
Offload parameters for eth0:
Cannot get device rx csum settings: Operation not supported
Cannot get device tx csum settings: Operation not supported
Cannot get device scatter-gather settings: Operation not supported
Cannot get device tcp segmentation offload settings: Operation not supported
no offload info available
# ethtool -K eth0 rx off tx off tso off
Cannot set device rx csum settings: Operation not supported
So I guess the problem is not related to hw checksumming offloading.
Meanwhile, I tried many times to reproduce the problem - with little
success. With different sizings, options, et al - I can't force the
sending side to send some data within a FIN packet. I.e, most of the
time, the thing just works, because no data goes with FIN packet.
But once every 50..100 tries, I see single FIN-with-data packet, and
that one ALWAYS has bad checksum.
I was never able to reproduce the problem on a LAN, only when going from
a distant host. And even with that distant host, it's very difficult to
reproduce.
At least one network (also distant) triggers this problem on every 2nd
try or so (the one I experimented with yesterday). But I've no access
to that network - I kindly asked for help yesterday, but I can't abuse
their willingness to help more.
And another thing I noticed. Right now I'm experimenting with another
machine, running 2.6.17(.13) - it also shows similar behavior with bad
csums, but MUCH rarer than this 2.6.19. Like this:
16:29:32.490976 IP (tos 0x60, ttl 48, id 14110, offset 0, flags [DF], length: 80)
69.42.67.34.2612 > 81.13.94.6.1234: . [bad tcp cksum f4b4 (->c1cc)!] ack 93407 win 9821
<nop,nop,timestamp 1046528199 5497679,nop,nop,sack sack 3 {104991:109335}{110783:112231}{104991:109335} >
16:29:32.525988 IP (tos 0x60, ttl 48, id 14112, offset 0, flags [DF], length: 80)
69.42.67.34.2612 > 81.13.94.6.1234: . [bad tcp cksum 3fb1 (->1819)!] ack 93407 win 9821
<nop,nop,timestamp 1046528202 5497679,nop,nop,sack sack 3 {110783:113679}{122367:123815}{110783:113679} >
16:29:32.561407 IP (tos 0x60, ttl 48, id 14116, offset 0, flags [DF], length: 80)
69.42.67.34.2612 > 81.13.94.6.1234: . [bad tcp cksum 87c0 (->2610)!] ack 93407 win 9821
<nop,nop,timestamp 1046528205 5497679,nop,nop,sack sack 3 {122367:127103}{128551:129572}{122367:127103} >
Here, 69.42.67.34 is 2.6.17 from which I'm requesting data, and
81.13.94.6 is the sender. This behavior so far is demonstrated with
sack packets only, but I've seen it in other direction too (also with
sack), at least once.
Any idea how to force sending FIN-with-data?
Thanks!
/mjt
next prev parent reply other threads:[~2007-01-15 13:34 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-01-14 22:59 rare bad TCP checksum with 2.6.19? Michael Tokarev
2007-01-15 9:39 ` Herbert Xu
2007-01-15 13:34 ` Michael Tokarev [this message]
2007-01-15 14:25 ` Michael Tokarev
2007-01-15 18:13 ` Eric Dumazet
2007-01-15 19:33 ` Michael Tokarev
2007-01-15 23:36 ` Eric Dumazet
2007-01-15 20:10 ` Herbert Xu
2007-01-15 21:46 ` Michael Tokarev
2007-01-15 23:35 ` Herbert Xu
2007-01-16 3:27 ` Herbert Xu
2007-01-16 3:38 ` Herbert Xu
2007-01-16 8:08 ` Michael Tokarev
2007-01-16 11:50 ` Herbert Xu
2007-01-16 12:15 ` Patrick McHardy
2007-01-16 14:38 ` Michael Tokarev
2007-01-17 14:12 ` Michael Tokarev
2007-01-19 11:06 ` [PATCH] tcp_output: " Jarek Poplawski
2007-01-19 12:14 ` Patrick McHardy
2007-01-19 13:23 ` Michael Tokarev
2007-01-19 14:32 ` Jarek Poplawski
2007-01-19 13:20 ` Michael Tokarev
2007-01-19 14:08 ` Jarek Poplawski
2007-01-22 7:13 ` Jarek Poplawski
2007-01-22 7:19 ` Michael Tokarev
2007-01-22 8:03 ` Jarek Poplawski
2007-01-19 21:10 ` Herbert Xu
2007-01-22 6:52 ` Jarek Poplawski
2007-01-22 7:45 ` Herbert Xu
2007-01-22 8:48 ` Jarek Poplawski
2007-01-22 13:46 ` Patrick McHardy
2007-01-24 6:08 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45AB82F1.9000409@tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).