fun with if_re

Gerrit Kühn gerrit at pmp.uni-hannover.de
Wed Feb 4 01:32:02 PST 2009


Hi folks,

I have several routers here which are based on Jetway J7F4 ITX boards that
come with two onboard re-interfaces. I run 7-stable on them via nanobsd
and update them about once in three or four months.

After the last update (11th December 2008) I have noticed the following
strange behaviour on at least two machines (identical hard- and software):
After weeks of flawless operation, the network connection on both
interfaces suddenly starts to mangle packages. Even a simple ping can show
up to 50% or so package loss. The machine is mostly unreachable via net.
ifconfig up/down did not cure this, turning off checksum-offloading
and stuff did not help. Even simply rebooting the machine did not make the
problem go away! I had to power-cycle them by unplugging all cables to get
back to normal operation.

I have seen this behaviour on two different machines, so I can most
probably rule out a hardware issue. It does not appear to happen often,
though. I did not see this with an earlier image of 7-stable from June
2008, and probably even an image from early September was working fine
(although I did not use that one for such a long time).

Visiting the webcvs I noticed that there are a lot of patches for if_re in
December 2008 and January 2009. The revision I'm having problems with is
tagged "1.95.2.37 2008/12/09 11:01:17". Does anyone have an idea what
broke if_re for me, and how I can get back to stable operation? Is it
possible to use if_re from head as drop-in replacement to test the patches
available after 12/09? I would prefer not to move the machines completely
from -stable to -current.

Here some further information about the NICs:

---pciconf---
re0 at pci0:0:9:0: class=0x020000 card=0x10ec16f3 chip=0x816710ec rev=0x10
hdr=0x00 vendor     = 'Realtek Semiconductor'
    device     = 'RTL8169/8110 Family Gigabit Ethernet NIC'
    class      = network
    subclass   = ethernet
re1 at pci0:0:11:0:        class=0x020000 card=0x10ec16f3 chip=0x816710ec
rev=0x10 hdr=0x00 vendor     = 'Realtek Semiconductor'
    device     = 'RTL8169/8110 Family Gigabit Ethernet NIC'
    class      = network
    subclass   = ethernet
---


---dmesg---
re0: <RealTek 8169SC/8110SC Single-chip Gigabit Ethernet> port
0xf000-0xf0ff mem 0xfdfff000-0xfdfff0ff irq 10 at device 9.0 on pci0 re0:
Chip rev. 0x18000000 re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus0
rgephy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
1000baseT-FDX, auto re0: Ethernet address: 00:30:18:ab:d0:19
re0: [FILTER]
re1: <RealTek 8169SC/8110SC Single-chip Gigabit Ethernet> port
0xf200-0xf2ff mem 0xfdffe000-0xfdffe0ff irq 10 at device 11.0 on pci0 re1:
Chip rev. 0x18000000 re1: MAC rev. 0x00000000
miibus1: <MII bus> on re1
rgephy1: <RTL8169S/8110S/8211B media interface> PHY 1 on miibus1
rgephy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT,
1000baseT-FDX, auto re1: Ethernet address: 00:30:18:ab:d0:1a
re1: [FILTER]
---



cu
  Gerrit


More information about the freebsd-stable mailing list