NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
kern/49739: re(4) Realtek 8111C IP4CSUM does not work
>Number: 49739
>Category: kern
>Synopsis: re(4) Realtek 8111C IP4CSUM does not work
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Mar 09 15:40:00 +0000 2015
>Originator: fukumoto%imasy.or.jp@localhost
>Release: NetBSD 7.0_BETA
>Organization:
>Environment:
System: NetBSD kestrel 7.0_BETA NetBSD 7.0_BETA (GENERIC.201503082150Z) amd64
Architecture: x86_64
Machine: amd64
>Description:
Checksum of transmitted packet is not calculated properly and
filled with 0x0000 if IP4CSUM option is used. Hardware is
GIGABYTE GA-MA785GM-US2H motherboard with Realtek 8111C chip.
In the following typescript, ping successes initially since
ip4csum is off, and then fails when ip4csum is turned on, then
successes again after ip4csum is turned off. I confirmed at
the target host that the same packet with zero checksum field
is observed by tcpdump.
$ dmesg | grep re0
re0 at pci2 dev 0 function 0: RealTek 8168/8111 PCIe Gigabit Ethernet (rev. 0x02)
re0: interrupting at ioapic0 pin 18
re0: Ethernet address xx:xx:xx:xx:xx:xx
re0: using 256 tx descriptors
rgephy0 at re0 phy 7: RTL8169S/8110S/8211 1000BASE-T media interface, rev. 2
$ sudo tcpdump -v -x -l icmp &
[1] 15752
$ tcpdump: listening on re0, link-type EN10MB (Ethernet), capture size 65535 bytes
$
$ sudo ifconfig re0 -ip4csum
$ ping -c 1 hummingbird
PING hummingbird (192.168.0.8): 64 data bytes
64 bytes from 192.168.0.8: icmp_seq=0 ttl=255 time=0.795274 ms
----hummingbird PING Statistics----
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 0.795274/0.795274/0.795274/0.000000 ms
$ 21:49:50.508345 IP (tos 0x0, ttl 255, id 8777, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.3 > 192.168.0.8: ICMP echo request, id 27933, seq 0, length 64
0x0000: 4500 0054 2249 0000 ff01 1804 c0a8 0003
0x0010: c0a8 0008 0800 99d5 6d1d 0000 28a2 0000
0x0020: 0000 0000 b464 0406 0000 0000 1000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000
21:49:50.508990 IP (tos 0x0, ttl 255, id 7586, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.8 > 192.168.0.3: ICMP echo reply, id 27933, seq 0, length 64
0x0000: 4500 0054 1da2 0000 ff01 1cab c0a8 0008
0x0010: c0a8 0003 0000 a1d5 6d1d 0000 28a2 0000
0x0020: 0000 0000 b464 0406 0000 0000 1000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000
$ sudo ifconfig re0 ip4csum
$ ping -c 1 hummingbird
PING hummingbird (192.168.0.8): 64 data bytes
21:50:15.877814 IP (tos 0x0, ttl 255, id 8782, offset 0, flags [none], proto ICMP (1), length 84, bad cksum 0 (->17ff)!)
192.168.0.3 > 192.168.0.8: ICMP echo request, id 56669, seq 0, length 64
0x0000: 4500 0054 224e 0000 ff01 0000 c0a8 0003
0x0010: c0a8 0008 0800 aecf dd5d 0000 41a2 0000
0x0020: 0000 0000 1014 0a1c 0000 0000 1000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000
^C
----hummingbird PING Statistics----
1 packets transmitted, 0 packets received, 100.0% packet loss
$ sudo ifconfig re0 -ip4csum
$ ping -c 1 hummingbird
PING hummingbird (192.168.0.8): 64 data bytes
64 bytes from 192.168.0.8: icmp_seq=0 ttl=255 time=1.020751 ms
----hummingbird PING Statistics----
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 1.020751/1.020751/1.020751/0.000000 ms
$ 21:50:37.734016 IP (tos 0x0, ttl 255, id 8787, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.3 > 192.168.0.8: ICMP echo request, id 5787, seq 0, length 64
0x0000: 4500 0054 2253 0000 ff01 17fa c0a8 0003
0x0010: c0a8 0008 0800 84d2 169b 0000 57a2 0000
0x0020: 0000 0000 7ddc 7713 0000 0000 1000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000
21:50:37.734884 IP (tos 0x0, ttl 255, id 7588, offset 0, flags [none], proto ICMP (1), length 84)
192.168.0.8 > 192.168.0.3: ICMP echo reply, id 5787, seq 0, length 64
0x0000: 4500 0054 1da4 0000 ff01 1ca9 c0a8 0008
0x0010: c0a8 0003 0000 8cd2 169b 0000 57a2 0000
0x0020: 0000 0000 7ddc 7713 0000 0000 1000 0000
0x0030: 0000 0000 0000 0000 0000 0000 0000 0000
0x0040: 0000 0000 0000 0000 0000 0000 0000 0000
0x0050: 0000 0000
$
>How-To-Repeat:
>Fix:
>Unformatted:
Home |
Main Index |
Thread Index |
Old Index