Subject: Re: M_CSUM_DATA verus bge
To: Jonathan Stone <jonathan@DSG.Stanford.EDU>
From: Jason R Thorpe <>
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 <>