From owner-freebsd-current Tue May 14 2:42:38 2002 Delivered-To: freebsd-current@freebsd.org Received: from harrier.prod.itd.earthlink.net (harrier.mail.pas.earthlink.net [207.217.120.12]) by hub.freebsd.org (Postfix) with ESMTP id 5C96D37B403 for ; Tue, 14 May 2002 02:42:34 -0700 (PDT) Received: from pool0043.cvx21-bradley.dialup.earthlink.net ([209.179.192.43] helo=mindspring.com) by harrier.prod.itd.earthlink.net with esmtp (Exim 3.33 #2) id 177YpD-0005ma-00; Tue, 14 May 2002 02:42:31 -0700 Message-ID: <3CE0DBC8.963475C5@mindspring.com> Date: Tue, 14 May 2002 02:41:28 -0700 From: Terry Lambert X-Mailer: Mozilla 4.7 [en]C-CCK-MCD {Sony} (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Cristan Szmajda Cc: current@freebsd.org Subject: Re: bad tcp cksum fffe! References: Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Cristan Szmajda wrote: > > Dear freebsd-current, > > Any suggestions you have regarding this problem would be > much appreciated. > > My laptop running -CURRENT is suddenly generating bad TCP > checksums when talking to some IPs but not others. For > example, 129.94.209.220 is a problem, What do you mean "suddenly"? If you downgrade, but have all the IP addresses and payloads exactly the same, you don't get the problem? The NAT code is known to use the RFC 1141 rather than RFC 1624 incremental checksum update method, which can result in checksum errors like those you are seeing, as a result of carry underflow screwing up the calculation (the calculation should accumulate the old and new checksum values in different registers, and then combine them only after dealing with carry to get them into 16 bits). I've commented on this before, with patched calculation code. If the problem happens on both the old and the new FreeBSD code, then it's probably that you are going through a NAT. If it happens only on the newer code, then it's something that's changed, and you can use CVS to binary search for the change that caused the problem (8 kernels will find any kernel in the last 8.5 months where a breaking change occurred, if you use a binary search). If it's just the compiler change alone, then it's a deeper problem. It's not like the WaveLAN driver supports checksum offloading, which is the problem du jour for the BCG570x... -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message