Date: Tue, 14 Feb 2006 10:54:34 -0500 From: Marcos Bedinelli <bedinelli@madhaus.cns.utoronto.ca> To: Gleb Smirnoff <glebius@FreeBSD.org> Cc: freebsd-net@FreeBSD.org, andre@FreeBSD.org Subject: Re: Network performance in a dual CPU system Message-ID: <858977c4a80306329f68021200154126@madhaus.cns.utoronto.ca> In-Reply-To: <20060214074606.GH86448@FreeBSD.org> References: <7bb8f24157080b6aaacb897a99259df9@madhaus.cns.utoronto.ca> <20060214074606.GH86448@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Gleb, thanks again for looking into this and for your suggestions. Unfortunately Alpha/Beta/release candidate/pre-release/test versions of software is a "no go" on that machine. Our short term solution will be to upgrade the CPU to a faster model. After that, I will be able to assemble a dual processor system from spare parts and also play with fastforwarding. I will be glad to post the results of my tests to the mailing list, but it may take awhile. Cheers! On 14-Feb-06, at 9:52, Gleb Smirnoff wrote: > On Tue, Feb 14, 2006 at 09:27:46AM -0500, Marcos Bedinelli wrote: > M> >M> I tried the 'sysctl net.inet.ip.fastforwarding=1' yesterday > morning > M> >M> and, as soon as I entered the command, the machine stopped > M> >forwarding > M> >M> packets. Unfortunately I was unable to spend time > troubleshooting > M> >the > M> >M> problem because the machine is in production and can't be down > for > M> >not > M> >M> even a couple of minutes. > M> > > M> >This is strange. Can you please show output of 'ifconfig'? Are you > M> >using > M> >any packet filters or other additional processing of forwarded > packets? > M> >Did the router generated any ICMP errors or just silently dropped > M> >packets? > M> > M> > M> The machine is running Quagga (OSPF and BGP). OSPF runs on bge0. BGP > M> runs on bge1. It also runs IPFW and basic SNMP. > M> > M> I suspect the problem I experienced yesterday is related to the IPFW > M> ruleset. Although it's mainly used for blocking, there are two rules > M> that forward packets to another machine: > M> > M> [...] > M> 07700 fwd a.b.c.d ip from w.x.y.z/16 to any in recv bge0 > M> [...] > M> 15300 fwd a.b.c.d ip from any to any out xmit disc0 > M> > M> > M> Rule 7700 is doing policy-based routing: if the source IP belongs to > M> network w.x.y.z/16, the packet is forwarded to host a.b.c.d > M> > M> I am suspicious about rule 15300. Virtual interface disc0 is our > M> default route. In other words, the routing table is updated by both > M> OSPF and BGP. Packets that don't match a specific entry on the > routing > M> table are sent to disc0. Rule 15300 will catch those packets and > send > M> them to host a.b.c.d as well. > > I understood the problem. The fastforwarding code refuses to forward > packet if it is routed to interface w/o IFF_DRV_RUNNING flag. The disc0 > interface in 6.0-RELEASE doesn't have IFF_DRV_RUNNING flag. > > That's why I added this flag to disc(4) in 6.0-STABLE, to satisfy fast > forwarding: > > > http://www.freebsd.org/cgi/cvsweb.cgi/src/sys/net/if_disc.c.diff? > r1=1.48&r2=1.48.2.1 > > Actually, it is incorrect that upper netowork layer looks into > if_drv_flags. > > You can either apply the above patch, or upgrade your system to > 6.1-BETA. As I > said before bge(4) driver has undergone some improvements, and I'll > appreciate > if you try to upgrade and provide any feedback. > > -- > Totus tuus, Glebius. > GLEBIUS-RIPN GLEB-RIPE -- Marcos
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?858977c4a80306329f68021200154126>