fun with if_re

Pyun YongHyeon pyunyh at gmail.com
Wed Feb 4 02:46:01 PST 2009


On Wed, Feb 04, 2009 at 10:05:07AM +0100, Gerrit K?hn wrote:
> 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]
> ---
> 

Since you're using RTL8169SC it could be related with my commit
r180519(cvs rev 1.95.2.22). It seems that RTL8169SC does not like
memory mapped register access and I think jkim@ committed patch
for the issue. Would you try re(4) in HEAD?
(Just copying if_re.c, if_rlreg.h and if_rl.c from HEAD to
stable would be enough to build re(4) on stable).


More information about the freebsd-stable mailing list