Subject: kern/29316: bge(4) receive errors while querying interface with ifconfig
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <njoly@pasteur.fr>
List: netbsd-bugs
Date: 02/09/2005 16:40:00
>Number:         29316
>Category:       kern
>Synopsis:       bge(4) receive errors while querying interface with ifconfig
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Feb 09 16:40:00 +0000 2005
>Originator:     Nicolas Joly
>Release:        NetBSD 2.99.15
>Organization:
Institut Pasteur
>Environment:
System: NetBSD raclette-tete2.sis.pasteur.fr 2.99.15 NetBSD 2.99.15 (QUAD) #10: Wed Feb 9 16:37:03 CET 2005 njoly@lanfeust.sis.pasteur.fr:/local/src/NetBSD/obj/amd64/sys/arch/amd64/compile/QUAD amd64
Architecture: x86_64
Machine: amd64
>Description:
During some network transferts, through a bge(4) interface, i noticed that
`ifconfig bge1' generate some receive errors. 

bge0 at pci4 dev 3 function 0: Broadcom BCM5704C Dual Gigabit Ethernet
bge0: interrupting at ioapic2 pin 3 (irq 11)
bge0: ASIC BCM5704 A3 (0x2003), Ethernet address 00:00:1a:1a:2e:8e
brgphy0 at bge0 phy 1: BCM5704 1000BASE-T media interface, rev. 0
brgphy0: using BCM5704 DSP patch
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
bge1 at pci4 dev 3 function 1: Broadcom BCM5704C Dual Gigabit Ethernet
bge1: interrupting at ioapic2 pin 0 (irq 10)
bge1: ASIC BCM5704 A3 (0x2003), Ethernet address 00:00:1a:1a:2e:8f
brgphy1 at bge1 phy 1: BCM5704 1000BASE-T media interface, rev. 0
brgphy1: using BCM5704 DSP patch
brgphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto

njoly@raclette-tete2 [~]> ifconfig -v bge1
bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        enabled=0
        address: 00:00:1a:1a:2e:8f
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        input: 0 packets, 0 bytes
        output: 6 packets, 464 bytes, 5 multicasts
        inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::200:1aff:fe1a:2e8f%bge1 prefixlen 64 scopeid 0x2
[...]
	Do some network transfert here and many `ifconfig bge1' at the
	same time. Notice errors increasing and transferred in packets
	rate falling (from 25000 to 1000 in my case).
	Stopping the queries restore a `working' interface.
[...]
njoly@raclette-tete2 [~]> ifconfig -v bge1                  
bge1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        capabilities=7<IP4CSUM,TCP4CSUM,UDP4CSUM>
        enabled=0
        address: 00:00:1a:1a:2e:8f
        media: Ethernet autoselect (1000baseT full-duplex)
        status: active
        input: 2141684 packets, 3136723506 bytes, 3116 errors
        output: 94093 packets, 14113418 bytes, 5 multicasts
        inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
        inet6 fe80::200:1aff:fe1a:2e8f%bge1 prefixlen 64 scopeid 0x2

Same results while running at 100Mbits or 1Gbit; and i was able to reproduce
this on a NetBSD/i386 running 2.0 too.

>How-To-Repeat:
Start some network transfert, and run the following loop:
	while :; ifconfig bge1; done
>Fix: