Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jul 2013 22:30:40 +0200
From:      Andreas Longwitz <longwitz@incore.de>
To:        pyunyh@gmail.com
Cc:        freebsd-net@freebsd.org
Subject:   Re: sis(4) flow control
Message-ID:  <51E1B8F0.5030100@incore.de>
In-Reply-To: <20130711002557.GA6697@michelle.cdnetworks.com>
References:  <51DC1599.8040805@incore.de> <20130710023512.GB2753@michelle.cdnetworks.com> <51DDDDAB.6070100@incore.de> <20130711002557.GA6697@michelle.cdnetworks.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Yonghyeon PYUN wrote:

>>> Try attached patch and let me know how it works.
>> Thanks for your patch. I will test it on next update of my soekris boxes
>> with sis interfaces. Because they are all remote far away this will need
>> some time.
> 
> Ok. Make sure to check established link before testing
> flow-control. 'ifconfig sis0' will show current media and you
> should have something like the following.
>   ...
>   media: Ethernet autoselect <flowcontrol> (100baseTX <full-duplex,flowcontrol,rxpause,txpause>)
> 
> If you don't see 'rxpause', re-negotiate flow-control with
> 'ifconfig sis0 mediaopt flow'.

Because sis(4) (soekris 4801) is not available for me at the moment, I
tried with vr(4) (soekris 5501). In production I run both types of boxes
with FreeBSD 6 and a simple SETBIT patch to honor RX pause frames.
Now I want to go with FreeBSD 8 Stable and eliminate my patch.

"ifconfig vr0" gives
   media: Ethernet autoselect (100baseTX <full-duplex>),
therefore I tried (using serial console) "ifconfig vr0 flow"
and now "ifconfig vr0" as expected gives
   media: Ethernet autoselect <flowcontrol> (100baseTX
     <full-duplex,flowcontrol,rxpause,txpause>),
but the interface vr0 hangs. Outgoing packets are ok, but all incoming
packets are blocked. In this situation I can give "ifconfig vr0
-mediaopt flowcontrol" and see after "ifconfig vr0"
   media: Ethernet autoselect (none)
   status: no carrier
and one second later
   media: Ethernet autoselect (100baseTX <full-duplex>)
   status: active
and interface works correct again.

>From console:
vr0: <VIA VT6105M Rhine III 10/100BaseTX> port 0xe100-0xe1ff mem
   0xa0004000-0xa00040ff irq 11 at device 6.0 on pci0
vr0: Quirks: 0x2
vr0: Revision: 0x96
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto,
         auto-flow
vr0: Ethernet address: 00:00:24:cb:1e:34
vr0: [ITHREAD]

My switch is D-Link DGS-1008D green Ethernet (has support for IEEE
802.3x Flow-Control). On the same switch I have connected two other
machines using msk driver (88E8050 and 88E8055) and "ifconfig msk0"
gives always
  media: Ethernet autoselect (1000baseT
        <full-duplex,flowcontrol,rxpause,txpause>)

Maybe there is a bug in vr(4) that generates the hang, but why is
negotiation of flowcontrol on vr(4) not done at boot time as shown for
msk(4) ?

If you need more information about the hang let me know.

-- 
Andreas Longwitz




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51E1B8F0.5030100>