sis(4) flow control

Andreas Longwitz longwitz at incore.de
Sat Jul 13 20:30:49 UTC 2013


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



More information about the freebsd-net mailing list