kern/63982: em0 hardware checksum offloading causes bogus errors in tcpdump

ian j hart ict at cardinalnewman.coventry.sch.uk
Tue Mar 9 04:00:32 PST 2004


>Number:         63982
>Category:       kern
>Synopsis:       em0 hardware checksum offloading causes bogus errors in tcpdump
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Mar 09 04:00:31 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     ian j hart
>Release:        4.9-RELEASEp3
>Organization:
Cardinal Newman School
>Environment:
backup.cardinalnewman.lan 4.9-RELEASE-p3 FreeBSD 4.9-RELEASE-p3 #12: Tue Mar  9 10:13:10 GMT 2004     root at backup.cardinalnewman.lan:/usr/obj/usr/src/sys/GENERIC  i386

patched with src/sys/dev/em from RELENG_4
>Description:
      Running tcpdump -v shows many packets marked as having bad
checksums. The packets are delivered okay with correct checksums. This
mainly affects UDP.

I booted from disc2.iso for 4.7, 4.8, and 5.2.1RC and confirmed the
problem there.

One motherboard (GA-7VAXP-A Ultra) DOES work but all others tried so far, fail. Card in different slots, natch`. irq/timing?

>How-To-Repeat:
      tcpdump -v | grep bad
Then generate some UDP traffic
>Fix:
      A workaround and proof of the source of the problem is to
disable the hardware checksum.

/usr/src/sys/dev/em/if_em.h
#define EM_CHECKSUM_FEATURES            (CSUM_TCP | CSUM_UDP)

Set to zero
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list