From owner-freebsd-stable@FreeBSD.ORG Mon Mar 3 10:14:07 2008 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id AAC47106566B for ; Mon, 3 Mar 2008 10:14:07 +0000 (UTC) (envelope-from tom@samplonius.org) Received: from ly.sdf.com (ly.sdf.com [216.113.193.83]) by mx1.freebsd.org (Postfix) with ESMTP id 878338FC21 for ; Mon, 3 Mar 2008 10:14:07 +0000 (UTC) (envelope-from tom@samplonius.org) Received: from localhost (localhost [127.0.0.1]) by ly.sdf.com (Postfix) with ESMTP id 4552637C002; Mon, 3 Mar 2008 02:09:37 -0800 (PST) X-Virus-Scanned: amavisd-new at X-Spam-Score: -4.043 X-Spam-Level: X-Spam-Status: No, score=-4.043 tagged_above=-10 required=6.6 tests=[ALL_TRUSTED=-1.8, AWL=0.356, BAYES_00=-2.599] Received: from ly.sdf.com ([127.0.0.1]) by localhost (ly.sdf.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Bqy8KzkmCuJ8; Mon, 3 Mar 2008 02:09:29 -0800 (PST) Received: from ly.sdf.com (ly.sdf.com [216.113.193.83]) by ly.sdf.com (Postfix) with ESMTP id DD51837C001; Mon, 3 Mar 2008 02:09:29 -0800 (PST) Date: Mon, 3 Mar 2008 02:09:29 -0800 (PST) From: Tom Samplonius To: Kurt Jaeger Message-ID: <31625464.6081204538969779.JavaMail.root@ly.sdf.com> In-Reply-To: <20080229104107.GA31985@home.opsec.eu> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [216.113.193.90] Cc: freebsd-stable@freebsd.org Subject: Re: PAUSE support for Ethernet interfaces ? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Mar 2008 10:14:07 -0000 ----- "Kurt Jaeger" wrote: > Hi! > > I'm researching the topic of PAUSE counters (receiving side) for > FreeBSD systems. > > That's a sort of flow control with ethernet, see e.g.: > > http://www.techfest.com/networking/lan/ethernet3.htm#3.2.1 > > Cisco switches seem to receive and count them, which helps > to find short-term (seconds) overloaded links. > Can FreeBSD 6.x or 7.x handle PAUSE frames, at least receiving them ? FreeBSD does not send PAUSE frames, but most of the NICs out there will process received PAUSE frames. However ethernet flow control is mainly useful on the switches anyways. Switches these day (*) have small buffers (sometimes just a shared 3MB buffer for 24 ports). If several ports send too much to a single port at the same time, the switch could run out of buffer space in milliseconds and start dropping frames, so the switch will use flow control to get the transmitting ports to slow down, and let the buffer drain. Slowing down the senders with ethernet flow control results in better performance than letting some frames drop, and force a timeout and retransmit. Of course, deeper buffers would be even better. Servers have large buffers, and mostly use TCP, which also implements flow control. So not much of a problem usually. I don't know if you could tell much by counting PAUSE frames though. You won't know the destination port that was congested, just the port(s) that were generating the traffic, that the switch told to slow down. Tom (*) I remember when some 10/100 switches had 1MB of buffer space per port. They don't make them anymore.