sis(4) flow control

Andreas Longwitz longwitz at incore.de
Sun Jul 14 19:52:42 UTC 2013


Yonghyeon PYUN wrote:

>> Maybe there is a bug in vr(4) that generates the hang, but why is
> 
> Probably yes and I shall have to narrow down the issue.

One more hint: No hang - but of course no TX support - anymore, when I use

--- if_vr.c.orig        2013-06-25 09:58:29.000000000 +0200
+++ if_vr.c     2013-07-14 18:09:12.000000000 +0200
@@ -351,7 +351,6 @@
                                fc |= VR_FLOWCR1_RXPAUSE;
                        if ((IFM_OPTIONS(mii->mii_media_active) &
                            IFM_ETH_TXPAUSE) != 0) {
-                               fc |= VR_FLOWCR1_TXPAUSE;
                                sc->vr_flags |= VR_F_TXPAUSE;
                        }
                        CSR_WRITE_1(sc, VR_FLOWCR1, fc);

Probably the RX pause frames will work with this patch.

>> negotiation of flowcontrol on vr(4) not done at boot time as shown for
>> msk(4) ?
>>
> 
> msk(4) supported flow-control from day 1 with a hack and it was
> re-implemented later with proper way such that it always announces
> flow-control. However for other drivers(i.e vr(4)) that didn't
> support the feature in the beginning, you have to explicitly enable
> the feature. The decision was made to provide compatibility and to
> not introduce POLA.

Thanks for clarification, I see the flag MIIF_FORCEPAUSE does the job.

>> If you need more information about the hang let me know.
> 
> I guess it would be good idea to use a link partner that shows
> hardware MAC statistics. If your switch provides such information
> that's fine. If you use direct connection between two hosts without
> switch, use other network drivers(most gigabit controllers support
> hardware MAC counters).

I can easy realize to use my laptop with msk(4) as a link partner for my
soekris box with vr(4).

-- 
Dr. Andreas Longwitz



More information about the freebsd-net mailing list