Subject: kern/19748: ip4csum causes IP packets to not be forwarded
To: None <gnats-bugs@gnats.netbsd.org>
From: Bill Studenmund <wrstuden@netbsd.org>
List: netbsd-bugs
Date: 01/08/2003 17:02:58
>Number:         19748
>Category:       kern
>Synopsis:       ip4csum causes IP packets to not be forwarded
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jan 08 17:04:00 PST 2003
>Closed-Date:
>Last-Modified:
>Originator:     Bill Studenmund
>Release:        NetBSD 1.6K
>Organization:
	<organization of PR author (multiple lines)>
>Environment:
	<The following information is extracted from your kernel. Please>
	<append output of "ldd", "ident" where relevant (multiple lines).>
Architecture: i386
Machine: i386
>Description:
	Turning on ip4csum causes some packets to not be forwarded
correctly.

dmesg reports:

wm1: wm_tx_cksum: need to m_pullup, packet dropped

>How-To-Repeat:
	Setup:

	Athlon with three NICs: fxp0, wm0, and wm1 (dual-port Intel card).

fxp0 at pci0 dev 11 function 0: i82559 Ethernet, rev 8
fxp0: interrupting at irq 5
fxp0: Ethernet address 00:03:47:95:5b:a6
inphy0 at fxp0 phy 1: i82555 10/100 media interface, rev. 4
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
wm0 at pci0 dev 13 function 0: Intel i82546EB 1000BASE-T Ethernet, rev. 1
wm0: interrupting at irq 11
wm0: Ethernet address 00:07:e9:08:f9:b2
makphy0 at wm0 phy 1: Marvell 88E1011 Gigabit PHY, rev. 3
makphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
wm1 at pci0 dev 13 function 1: Intel i82546EB 1000BASE-T Ethernet, rev. 1
wm1: interrupting at irq 11
wm1: Ethernet address 00:07:e9:08:f9:b3
makphy1 at wm1 phy 1: Marvell 88E1011 Gigabit PHY, rev. 3
makphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto

ifconfig:
fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        address: 00:03:47:95:5b:a6
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 10.0.0.6 netmask 0xffff0000 broadcast 10.0.255.255
wm0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        enabled=0
        address: 00:07:e9:08:f9:b2
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        inet 10.3.0.6 netmask 0xffff0000 broadcast 10.3.255.255
wm1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        enabled=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        address: 00:07:e9:08:f9:b3
        media: Ethernet autoselect (1000baseT full-duplex,master)
        status: active
        inet 10.4.0.6 netmask 0xffff0000 broadcast 10.4.255.255

ifconfig wm1 ip4csum
causes packets to start getting dropped in the kernel.

For instance, a ping from 10.4.0.9 to 10.0.0.1, which transits the
box in question, stops as soon as ip4csum is activated. tcpdump indicates
that PING requests come into and go out of the box, while PING responses
come in yet don't go out.

>Fix:
Don't know.

>Release-Note:
>Audit-Trail:
>Unformatted:
 	<Please check that the above is correct for the bug being reported,>
 	<and append source date of snapshot, if applicable (one line).>