From owner-freebsd-amd64@FreeBSD.ORG Sat Feb 21 13:19:45 2004 Return-Path: Delivered-To: freebsd-amd64@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 865E216A4E1; Sat, 21 Feb 2004 13:19:45 -0800 (PST) Received: from mail.atl.us.wormulon.net (unknown [63.223.8.130]) by mx1.FreeBSD.org (Postfix) with ESMTP id 4D08F43D1D; Sat, 21 Feb 2004 13:19:45 -0800 (PST) (envelope-from hscholz@slurmcan.wormulon.net) Received: from localhost (unknown [63.223.8.130]) by mail.atl.us.wormulon.net (Postfix) with ESMTP id 5517A5D878; Sat, 21 Feb 2004 16:20:22 -0500 (EST) Received: from mail.atl.us.wormulon.net ([63.223.8.130]) by localhost (plant.wormulon.net [63.223.8.130]) (amavisd-new, port 10024) with ESMTP id 53207-10; Sat, 21 Feb 2004 16:20:21 -0500 (EST) Received: from slurmcan.wormulon.net (unknown [63.223.7.6]) by mail.atl.us.wormulon.net (Postfix) with ESMTP id 4F0CF5D80B; Sat, 21 Feb 2004 16:20:21 -0500 (EST) Received: by slurmcan.wormulon.net (Postfix, from userid 1001) id F423939845; Sat, 21 Feb 2004 16:20:05 -0500 (EST) To: FreeBSD-gnats-submit@freebsd.org From: Hendrik Scholz X-send-pr-version: 3.113 X-GNATS-Notify: Message-Id: <20040221212005.F423939845@slurmcan.wormulon.net> Date: Sat, 21 Feb 2004 16:20:05 -0500 (EST) X-Virus-Scanned: turning SPAM into Slurm since 2003 (wormulon.net) cc: freebsd-amd64@freebsd.org Subject: ti(4) broken on amd64 X-BeenThere: freebsd-amd64@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Hendrik Scholz List-Id: Porting FreeBSD to the AMD64 platform List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Feb 2004 21:19:45 -0000 >Submitter-Id: current-users >Originator: Hendrik Scholz >Organization: >Confidential: no >Synopsis: ti(4) broken on amd64 >Severity: non-critical >Priority: low >Category: amd64 >Class: sw-bug >Release: FreeBSD 5.2.1-RC amd64 >Environment: System: FreeBSD slurmcan.wormulon.net 5.2.1-RC FreeBSD 5.2.1-RC #0: Sat Jan 31 12:38:34 GMT 2004 root@ngoc.NUXI.com:/usr/obj/usr/src/sys/GENERIC amd64 >Description: >Description: ti0: mem 0xfc8bc000-0xfc8bffff irq 28 at device 1.0 on pci1 ti0: Ethernet address: 00:60:cf:20:6b:a6 (full dmesg at http://dump.wormulon.net/dmesg/MSI_K8D/dmesg.txt) $ ifconfig ti0 ti0: flags=8843 mtu 1500 options=1b inet6 fe80::260:cfff:fe20:6ba6%ti0 prefixlen 64 scopeid 0x1 inet 63.223.8.203 netmask 0xffffff00 broadcast 63.223.8.255 ether 00:60:cf:20:6b:a6 media: Ethernet autoselect (1000baseSX ) status: active TCP based protocols (ssh) work but scp is very slow and sometimes the connection is dropped due to bad packets. ICMP just misses a bunch of packets: $ ping 63.223.8.133 PING 63.223.8.133 (63.223.8.133): 56 data bytes 64 bytes from 63.223.8.133: icmp_seq=1 ttl=64 time=0.277 ms 64 bytes from 63.223.8.133: icmp_seq=3 ttl=64 time=0.200 ms .. 11 packets transmitted, 8 packets received, 27% packet loss round-trip min/avg/max/stddev = 0.200/0.260/0.316/0.039 ms $ Doing a tcpdump on the host itself reveals: 63.223.8.203 > 63.223.8.34: icmp: echo request (ttl 64, id 29322, len 84, bad cksum 0!) 63.223.8.34 > 63.223.8.203: icmp: echo reply (ttl 128, id 42958, len 84) truncated-ip - 70 bytes missing! 63.223.7.6.22 > 24.30.48.121.1921: P 4294962720:4294962784(64) ack 4294964481 win 33304 (DF) [tos 0x10] (ttl 64, id 29087, len 116, bad cksum 0!) truncated-ip - 38 bytes missing! 63.223.7.6.22 > 24.30.48.121.1850: P 7760:7792(32) ack 1185 win 33304 (DF) [tos 0x10] (ttl 64, id 29247, len 84, bad cksum 0!) truncated-ip - 38 bytes missing! 63.223.7.6.22 > 24.30.48.121.1850: P 7760:7792(32) ack 1185 win 33304 (DF) [tos 0x10] (ttl 64, id 29247, len 84, bad cksum 0!) truncated-ip - 38 bytes missing! 63.223.7.6.22 > 24.30.48.121.1850: P 3808:3840(32) ack 289 win 33304 (DF) [tos 0x10] (ttl 64, id 28931, len 84, bad cksum 0!) truncated-ip - 38 bytes missing! 63.223.7.6.22 > 24.30.48.121.1850: P 4294959456:4294959488(32) ack 4294965025 win 33304 (DF) [tos 0x10] (ttl 64, id 28359, len 84, bad cksum 0!) the target sees this: 63.223.8.203 > 63.223.8.34: icmp: echo request (ttl 64, id 29269, len 84) 63.223.8.34 > 63.223.8.203: icmp: echo reply (ttl 128, id 42940, len 84, bad cksum 0!) 63.223.8.203 > 63.223.8.34: icmp: echo request (ttl 64, id 29272, len 84) 63.223.8.34 > 63.223.8.203: icmp: echo reply (ttl 128, id 42943, len 84, bad cksum 0!) ... bad chksum is ok since its a broadcom card with enabled TXCSUM: bge0: flags=8843 mtu 1500 options=1b inet 63.223.8.34 netmask 0xffffff00 broadcast 63.223.8.255 Let's get back to the first tcpdump: - received packets are missing data (arp is always ok!) - the bpf sees packets that belong to another interface $ route get 63.223.7.6 route to: unknown63223007006.ibis7.net destination: 63.223.7.0 mask: 255.255.255.224 interface: bge1 bge1 is used as main interface and the ssh session runs on this interface. - amount of missing data reported by tcpdump for packets from other interface are somewhat static: 6 (very uncommon), 38, 54, 70 Bytes (all for ssh PSH packets) - filtered traffic on host with ti(4): $ tcpdump -ntvi ti0 not arp and not host 63.223.7.6 (outgoing request and the matching incoming reply) 63.223.8.203 > 63.223.8.133: icmp: echo request (ttl 64, id 32019, len 84, bad cksum 0!) 85:54:6e:39:6e:e2 e1:72:44:af:9e:9d d67f 60: 06f0 381a ff4e cd44 c5f0 bef7 d65f f8b0 bf1d a26b 4b19 9ce1 ddb7 85ab fef3 6f09 c73e c2cf 2f04 a8da 0a85 c241 c9e2 16Bytes (MAC + MAC + 08:00) + 46 Bytes data = 62 Bytes The reply packet should be 84 Bytes long. I reproduced this problem on two different Opteron Systems running 5.2.1-RC/amd64 with two different ti cards (same Alteon type) and different cables. The same configuration runs fine on FreeBSD/i386. Hendrik >How-To-Repeat: >Fix: