Subject: port-i386/35765: wrong hw-checksum for ipv6
To: None <port-i386-maintainer@netbsd.org, gnats-admin@netbsd.org,>
From: None <6bone@6bone.informatik.uni-leipzig.de>
List: netbsd-bugs
Date: 02/21/2007 13:45:00
>Number:         35765
>Category:       port-i386
>Synopsis:       wrong hw-checksum for ipv6
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    port-i386-maintainer
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 21 13:45:00 +0000 2007
>Originator:     Uwe Toenjes
>Release:        NetBSD 3.1.0
>Organization:
University of Leipzig
>Environment:
NetBSD gate.ipv6.uni-leipzig.de 3.1.0_PATCH NetBSD 3.1.0_PATCH
>Description:
network interface:

wm0 at pci3 dev 4 function 0: Intel i82546GB 1000BASE-T Ethernet, rev. 3
wm0: interrupting at ioapic2 pin 6 (irq 7)
wm0: 64-bit 66MHz PCI bus
wm0: 256 word (8 address bits) MicroWire EEPROM

configuration:

wm0:flags=8a43<UP,BROADCAST,RUNNING,ALLMULTI,SIMPLEX,MULTICAST> mtu 1500
     capabilities=87<IP4CSUM,TCP4CSUM,UDP4CSUM,TSO4>
     enabled=0
     address: 00:04:23:c1:c4:34
     media: Ethernet autoselect (1000baseT full-duplex)
     status: active
     inet x.x.x.x netmask 0xfffffff8 broadcast y.y.y.y
     inet alias z.z.z.z netmask 0xffffffff broadcast z.z.z.z
     inet6 fe80::204:23ff:fec1:c434%wm0 prefixlen 64 scopeid 0x1
     inet6 2001:....:1 prefixlen 64
     inet6 2001:....:10 prefixlen 128

gif0:flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1280
     tunnel inet x.x.x.x --> d.d.d.d
     inet6 fe80::204:23ff:fec1:c434%gif0 ->  prefixlen 64 scopeid 0x15
     inet6 2001:....:1 -> 2001:....:2 prefixlen 128

vlan42:flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
      vlan: 42 parent: wm0
      address: 00:04:23:c1:c4:34
      inet6 fe80::204:23ff:fec1:c434%vlan42 prefixlen 64 scopeid 0xc
      inet6 2001:....:1 prefixlen 64

if ("enabled=0") all works fine.
if ("enabled=87") for IPv6 packets incoming from gif0, outgoing to vlan42 the ipv6-src-addr will be modified. I think it is the hardware checksum for IPv4 that will be applied to the IPv6 package.
>How-To-Repeat:
see full description
>Fix: