From owner-freebsd-net@FreeBSD.ORG Tue Jul 9 13:52:34 2013 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 301E03E3 for ; Tue, 9 Jul 2013 13:52:34 +0000 (UTC) (envelope-from longwitz@incore.de) Received: from dss.incore.de (dss.incore.de [195.145.1.138]) by mx1.freebsd.org (Postfix) with ESMTP id E93201139 for ; Tue, 9 Jul 2013 13:52:33 +0000 (UTC) Received: from inetmail.dmz (inetmail.dmz [10.3.0.3]) by dss.incore.de (Postfix) with ESMTP id 9A6735CA77 for ; Tue, 9 Jul 2013 15:52:26 +0200 (CEST) X-Virus-Scanned: amavisd-new at incore.de Received: from dss.incore.de ([10.3.0.3]) by inetmail.dmz (inetmail.dmz [10.3.0.3]) (amavisd-new, port 10024) with LMTP id BK_H_6MySKd8 for ; Tue, 9 Jul 2013 15:52:25 +0200 (CEST) Received: from mail.incore (fwintern.dmz [10.0.0.253]) by dss.incore.de (Postfix) with ESMTP id E28F35CA56 for ; Tue, 9 Jul 2013 15:52:25 +0200 (CEST) Received: from bsdlo.incore (bsdlo.incore [192.168.0.84]) by mail.incore (Postfix) with ESMTP id DA1E750886 for ; Tue, 9 Jul 2013 15:52:25 +0200 (CEST) Message-ID: <51DC1599.8040805@incore.de> Date: Tue, 09 Jul 2013 15:52:25 +0200 From: Andreas Longwitz User-Agent: Thunderbird 2.0.0.19 (X11/20090113) MIME-Version: 1.0 To: freebsd-net@freebsd.org Subject: sis(4) flow control Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 09 Jul 2013 13:52:34 -0000 Some of my soekris boxes run with sis interfaces. Because I need ethernet flow control on these boxes I use the following patch (against 8-Stable) for some years: --- if_sis.c.orig 2013-05-15 20:01:16.000000000 +0200 +++ if_sis.c 2013-06-24 15:58:05.000000000 +0200 @@ -1965,6 +1965,18 @@ } #endif + if (sc->sis_type == SIS_TYPE_83815 && sc->sis_srr >= NS_SRR_16A) { + if (ifp->if_flags & IFF_LINK0) { + /* + * Configure Ethernet flow control for outgoing frames. + * Enable reception of 802.3x multicast pause frames. + */ + SIS_SETBIT(sc, NS_PCR, NS_PCR_PAUSE ); + } else { + SIS_CLRBIT(sc, NS_PCR, NS_PCR_PAUSE ); + } + } + mii = device_get_softc(sc->sis_miibus); /* Set MAC address */ Other network drivers (eg. vr) have this functionality inside, it would be fine if sis learns flow control too. --- Andreas Longwitz