Subject: Re: M_CSUM_DATA verus bge
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Jason R Thorpe <thorpej@wasabisystems.com>
List: tech-net
Date: 03/12/2003 15:29:21
On Wed, Mar 12, 2003 at 02:00:52PM -0800, Jonathan Stone wrote:
> I found why by comparison to FreeBSD: quite apart from any hardware
> bugs, when the bge hardware returns an Rx TCP or UDP checksum, that
> value does *not* include the e TCP pseudo-header.
Wow, gross.
> An obvious fix: allocate a high-order bit in csu_flags to indicate
> this quirk. Modify tcp_input.c and udp_usrreq to check for this
> quirk, and if found, compute the pseudo-header sum in software and
> update the csum_data field to the `normal' value, and strip the quirk flag.
I'd say handle it in the bge driver itself. No need to pollute the rest
of the kernel that knowledge.
--
-- Jason R. Thorpe <thorpej@wasabisystems.com>