Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Aug 2007 09:28:39 GMT
From:      Yuri Bushmelev <jay-dev@simcom.ru>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/115678: All tcp/udp packet have wrong checksums on -current
Message-ID:  <200708210928.l7L9SdKq057001@www.freebsd.org>
Resent-Message-ID: <200708210930.l7L9UHUu079184@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         115678
>Category:       kern
>Synopsis:       All tcp/udp packet have wrong checksums on -current
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 21 09:30:17 GMT 2007
>Closed-Date:
>Last-Modified:
>Originator:     Yuri Bushmelev
>Release:        FreeBSD 7.0-CURRENT
>Organization:
>Environment:
FreeBSD installer.home 7.0-CURRENT FreeBSD 7.0-CURRENT #2: Tue Aug 21 11:54:41 UTC 2007 root@installer.home:/usr/obj/usr/src/sys/GATE.HOME i386
>Description:
Today I've upgraded 6.2-RELEASE on my test computer to 7.0-CURRENT via sources (for gjournal, tmpfs and zfs testing).
After upgrade no one of tcp/udp packets come between my home desktop (6.2-REL p4) and test computer. tcpdump show that all tcp/udp packets have incorrect checksums. Same problem between my wife's desktop (WinXP/FreeBSD 6.1) and test machine.
But between test computer and my adsl router (ZyXEL P-660RT EE) tcp session was successfully established (telnet to ports 23 and 80 works fine). May be router's IP stack does not control checksums?

My test machine is VIA EPIA ML6000EA with VIA Eden processor onboard. Problem reported with this NICs: vr, rl, em. em was tested on IBM xSeries 306 server with and without rxcsum/txcsum ifconfig options. All NIC's was loaded as modules from loader.conf. I have no NIC's compiled in kernel.

I have pf on my desktop, but it is disabled at time of tests.

Here is tcpdump from my desktop:
12:43:49.933700 IP (tos 0x0, ttl  64, id 29, offset 0, flags [none], proto: UDP (17), length: 70) 192.168.1.234.63954 > 192.168.1.253.53: [bad udp cksum fffe!]  61074+ PTR? 1.1.168.192.in-addr.arpa. (42)
12:43:59.933957 arp who-has 192.168.1.1 tell 192.168.1.234
12:44:14.685070 IP (tos 0x0, ttl  64, id 34, offset 0, flags [none], proto: UDP (17), length: 72) 192.168.1.234.61272 > 192.168.1.253.53: [bad udp cksum fffe!]  47829+ PTR? 253.1.168.192.in-addr.arpa. (44)
12:44:19.684848 IP (tos 0x0, ttl  64, id 35, offset 0, flags [none], proto: UDP (17), length: 72) 192.168.1.234.61272 > 192.168.1.253.53: [bad udp cksum fffe!]  47829+ PTR? 253.1.168.192.in-addr.arpa. (44)
12:44:29.685005 IP (tos 0x10, ttl  64, id 36, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.234.56412 > 192.168.1.253.80: S, cksum 0xde00 (incorrect (-> 0xdd00), 2892320748:2892320748(0) win 65535 <mss 1460,nop,wscale 8,sackOK,timestamp 396482 0>
12:44:32.683734 IP (tos 0x10, ttl  64, id 37, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.234.56412 > 192.168.1.253.80: S, cksum 0xd248 (incorrect (-> 0xd148), 2892320748:2892320748(0) win 65535 <mss 1460,nop,wscale 8,sackOK,timestamp 399482 0>
12:44:35.883155 IP (tos 0x10, ttl  64, id 38, offset 0, flags [DF], proto: TCP (6), length: 60) 192.168.1.234.56412 > 192.168.1.253.80: S, cksum 0xc5c8 (incorrect (-> 0xc4c8), 2892320748:2892320748(0) win 65535 <mss 1460,nop,wscale 8,sackOK,timestamp 402682 0>

Please note that checksum differs only by one in 3rd byte.

World was first time compiled with CPUTYPE?=c3 CFLAGS='-O2 -fno-strict-aliasing -pipe'. But when I see that kernel maked with same CFLAGS (bug?), I have recompiled only kernel with CFLAGS='-O -pipe'.

>How-To-Repeat:
Install FreeBSD 7.0-CURRENT today (around Aug 21 11:54:41 UTC 2007) and try to telnet to port 22 e.g. Or try to telnet from this computer to another. "tcpdump -i <nic> -nvvv" must show packets with incorrect checksums.
>Fix:


>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200708210928.l7L9SdKq057001>