Subject: UDP problems with NetBSD 3.0_BETA
To: None <tech-net@NetBSD.org>
From: Matthias Scheler <tron@zhadum.de>
List: tech-net
Date: 04/13/2005 19:23:40
	Hello,

after upgrading my server from NetBSD 2.0.2 to 3.0_BETA its clients started
to experience DNS service problems. "netstat -s -p udp" suggested that
the problem is related to UDP packets with bad checksums. So I started
"tcpdump" on the client and captured e.g. this packet:

Frame 62 (82 bytes on wire, 82 bytes captured)
Ethernet II, Src: 00:07:e9:67:18:7b, Dst: 00:07:e9:0e:bb:33
Internet Protocol, Src Addr: 81.187.181.115 (81.187.181.115), Dst Addr: 81.187.181.114 (81.187.181.114)
User Datagram Protocol, Src Port: 1022 (1022), Dst Port: nfs (2049)
    Source port: 1022 (1022)
    Destination port: nfs (2049)
    Length: 48
    Checksum: 0x0e9e (incorrect, should be 0x3a47)
Remote Procedure Call, Type:Call XID:0x00002442
Network File System, NULL Call

My first guess was the hardware checksum support in the wm(4) driver used
on the server. But the problem still occurs after disabling it:

Frame 803 (150 bytes on wire, 150 bytes captured)
Ethernet II, Src: 00:07:e9:0e:bb:33, Dst: 00:07:e9:67:18:7b
Internet Protocol, Src Addr: 81.187.181.114 (81.187.181.114), Dst Addr: 81.187.181.115 (81.187.181.115)
User Datagram Protocol, Src Port: domain (53), Dst Port: 56918 (56918)
    Source port: domain (53)
    Destination port: 56918 (56918)
    Length: 116
    Checksum: 0x0ee2 (incorrect, should be 0xf6ac)
Domain Name System (response)

This is somewhat confusing because either hardware or software checksum
should work. And the problem only affects UDP packets, "netstat" doesn't
report a single bad checksum in a TCP packet.

Because I ran out of ideas I've also connected the two systems via another
switch and set of cables. But the problem remained.

Any ideas?

	Kind regards

-- 
Matthias Scheler                                  http://scheler.de/~matthias/