From owner-freebsd-stable Thu Dec 5 18:27:14 2002 Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BA95137B401 for ; Thu, 5 Dec 2002 18:27:12 -0800 (PST) Received: from mail.sandvine.com (sandvine.com [199.243.201.138]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1604C43EBE for ; Thu, 5 Dec 2002 18:27:12 -0800 (PST) (envelope-from don@sandvine.com) Received: by mail.sandvine.com with Internet Mail Service (5.5.2653.19) id ; Thu, 5 Dec 2002 21:27:11 -0500 Message-ID: From: Don Bowman To: "'freebsd-stable@freebsd.org'" Subject: bridging problem? Date: Thu, 5 Dec 2002 21:27:05 -0500 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG I have a setup with 3 PCs, all running 4.7. Two of them are connected through the 3rd with gigabit ethernet. The first two have bge interfaces, the 3rd has 1 bge and 1 em. [CLIENT]------[BRIDGE]-----[SERVER] bge bge em bge All seems good, ping both ways, no prob. Now I take 'iperf' and run 956Mbps (max) of UDP traffic through. Sometimes when I do this I find that the data stops flowing, and can only be restarted by setting net.link.ether.bridge=0 and then =1 again. $ netstat -m 1089/1888/131072 mbufs in use (current/peak/max): 1089 mbufs allocated to data 1088/1876/32768 mbuf clusters in use (current/peak/max) 4224 Kbytes allocated to network (4% of mb_map in use) 0 requests for memory denied 0 requests for memory delayed 0 calls to protocol drain routines $ netstat -s ... -- Bridging statistics (bdg) -- Name In Out Forward Drop Bcast Mcast Local Unknown em0:1 30090745 191 884626 0 2 50 0 29206067 bge0:1 177 30090759 92 0 6 68 0 11 it would appear that what goes in goes out (in em0 out bge0 in the above case). I'm not sure exactly what's going on. The bridge machine has about 90% of CPU free according to top, and doesn't seem to be running out of buffers. When the error case occurs, if I run 'tcpdump' on one side of the bridge I see the traffic that comes in, but on the other side i don't see it forwarding it. down an ifdown/ifup on both interfaces has no affect, but setting 'bridge=0' and then 'bridge=1' fixes it up all the time. ipfw is not enabled for the bridge: net.link.ether.bridge_cfg: em0 bge0 net.link.ether.bridge: 1 net.link.ether.bridge_ipfw: 0 net.link.ether.bridge_ipf: 0 net.link.ether.bridge_ipfw_drop: 0 net.link.ether.bridge_ipfw_collisions: 0 If I run the traffic through both ways (e.g. 956Mbps from left to right, and 956Mbps from right to left), then it doesn't seem to make any difference to how often the error occurs (but I use up more cpu, leaving about 78% free). How does one debug the bridge? --don (don@sandvine.com www.sandvine.com) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message