NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/40955: re(4) fails to work with hardware checksumming enabled



>Number:         40955
>Category:       kern
>Synopsis:       re(4) fails to work with hardware checksumming enabled
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Mar 04 06:25:00 +0000 2009
>Originator:     David H. Gutteridge
>Release:        NetBSD 5.0_RC2
>Organization:
>Environment:


System: NetBSD arcusvii.nonus-porta.net 5.0_RC2 NetBSD 5.0_RC2 (ARCUSVII) 
#0: Mon Mar  2 23:22:17 EST 2009
disciple%arcusvii.nonus-porta.net@localhost:/home/disciple/netbsd-5/usr/src/sys/arch/i386/compile/obj/ARCUSVII
 
i386

Architecture: i386
Machine: i386
>Description:
Hello,

I've found that employing re(4) with hardware checksumming enabled
causes networking to be unusable.

[root@arcusvii:root]$ ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 
1500    
capabilities=3f80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        enabled=0
        address: 00:21:85:e1:d8:82
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.1.8 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::221:85ff:fee1:d882%re0 prefixlen 64 scopeid 0x1
[root@arcusvii:root]$ ping www.netbsd.org
PING www.netbsd.org (204.152.190.12): 56 data bytes
64 bytes from 204.152.190.12: icmp_seq=0 ttl=240 time=81.696 ms
64 bytes from 204.152.190.12: icmp_seq=1 ttl=240 time=80.499 ms
64 bytes from 204.152.190.12: icmp_seq=2 ttl=240 time=80.675 ms
^C
----www.netbsd.org PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 80.499/80.957/81.696/0.646 ms
[root@arcusvii:root]$ ifconfig re0 ip4csum
[root@arcusvii:root]$ ifconfig re0
re0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 
1500    
capabilities=3f80<TSO4,IP4CSUM_Rx,IP4CSUM_Tx,TCP4CSUM_Rx,TCP4CSUM_Tx,UDP4CSUM_Rx,UDP4CSUM_Tx>
        enabled=300<IP4CSUM_Rx,IP4CSUM_Tx>
        address: 00:21:85:e1:d8:82
        media: Ethernet autoselect (100baseTX full-duplex)
        status: active
        inet 192.168.1.8 netmask 0xffffff00 broadcast 192.168.1.255
        inet6 fe80::221:85ff:fee1:d882%re0 prefixlen 64 scopeid 0x1
[root@arcusvii:root]$ ping www.netbsd.org
[root@arcusvii:root]$ ping www.google.ca
ping: Cannot resolve "www.google.ca" (Host name lookup failure)
[root@arcusvii:root]$ ifconfig re0 -ip4csum
[root@arcusvii:root]$ ping www.google.ca
PING www.l.google.com (72.14.205.104): 56 data bytes
64 bytes from 72.14.205.104: icmp_seq=0 ttl=245 time=7.592 ms
64 bytes from 72.14.205.104: icmp_seq=1 ttl=245 time=6.659 ms
64 bytes from 72.14.205.104: icmp_seq=2 ttl=245 time=7.036 ms
^C
----www.l.google.com PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 6.659/7.096/7.592/0.469 ms

The same issue occurs if I have TCP or UDP enabled as well;
individually, they cause the same problem with their respective
protocols.

The machine in question is an LG X110 (a rebadged MSI Wind netbook),
dmesg excerpt is:

re0 at pci1 dev 0 function 0: RealTek 8100E/8101E/8102E/8102EL PCIe 
10/100BaseTX (rev. 0x02)
re0: interrupting at irq 11
re0: Ethernet address 00:21:85:e1:d8:82
re0: using 256 tx descriptors
rlphy0 at re0 phy 7: RTL8201L 10/100 media interface, rev. 1
rlphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto

At present, the packets are being sent on the wire from the machine in
question to a switch.  When I have one of these hardware checksumming
features enabled and am trying to pass applicable packets, the lights
on the switch don't seem to register incoming packets.

Regards,

Dave

>How-To-Repeat:
As above.

>Fix:
None known.  (The workaround is simply to not use the hardware checksumming, 
of course.)


>Unformatted:
 
 


Home | Main Index | Thread Index | Old Index