Subject: kern/28595: wm driver routing problem if hardware checksum enabled
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: Markus W Kilbinger <kilbi@rad.rwth-aachen.de>
List: netbsd-bugs
Date: 12/09/2004 21:24:02
>Number:         28595
>Category:       kern
>Synopsis:       recent -current/wm driver changes breaks packet routing if hardware checksum is enabled
>Confidential:   no
>Severity:       non-critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Dec 09 21:24:02 +0000 2004
>Originator:     kilbi@rad.rwth-aachen.de
>Release:        NetBSD 2.99.11
>Organization:
>Environment:
System: NetBSD mogli 2.99.11 NetBSD 2.99.11 (MOGLI) #0: Thu Dec 9 14:00:44 MET 2004 root@lwle5:/usr/src/sys/arch/i386/compile/MOGLI i386
Architecture: i386
Machine: i386
>Description:
	-current changes between Nov 13th and Nov 30th 2004 prevents
	our router with its two wm nics from routing network packets
	if hardware checksums ({ip,tcp,udp}4csum) are enabled. Instead
	it produces error messages like:

wm1: wm_tx_offload: packet headers did not fit in first mbuf, packet dropped
wm0: wm_tx_offload: packet headers did not fit in first mbuf, packet dropped

	(see
	http://mail-index.netbsd.org/current-users/2004/11/30/0003.html
	for more wm details) and does not route (ipv4) packets. Remote
	login over network into this machine still seems to work in
	this situation.

	A -current kernel from Nov 13th sources seems to work/route
	properly with *4csum turned on.
>How-To-Repeat:
	Take a (i386) machine with two wm nics and a -current kernel,
	configure the wm nics with *4csum's enabled, put the machine
	in a routing position and try to route network packets over
	this machine as a router.

	Sorry, it's the only machine with wm nics and in a production
	environment, so I cannot play with its nic situation freely.
>Fix:
	Workaround: Turning off all *4csum's re-enables routing again
	and the above mentioned error messages disappear.
	Otherwise: n/a