From owner-freebsd-net Wed May 29 11:33: 0 2002 Delivered-To: freebsd-net@freebsd.org Received: from mailtoaster1.pipeline.ch (mailtoaster1.pipeline.ch [62.48.0.70]) by hub.freebsd.org (Postfix) with SMTP id C3D8837B480 for ; Wed, 29 May 2002 11:32:33 -0700 (PDT) Received: (qmail 61120 invoked from network); 29 May 2002 18:32:14 -0000 Received: from unknown (HELO pipeline.ch) ([62.48.0.54]) (envelope-sender ) by mailtoaster1.pipeline.ch (qmail-ldap-1.03) with SMTP for ; 29 May 2002 18:32:14 -0000 Message-ID: <3CF51E7C.E9A47960@pipeline.ch> Date: Wed, 29 May 2002 20:31:24 +0200 From: Andre Oppermann X-Mailer: Mozilla 4.76 [en] (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: Richard A Steenbergen Cc: "Louis A. Mamakos" , Attila Nagy , Luigi Iannone , freebsd-net@FreeBSD.ORG Subject: Re: MPLS References: <3CF4A64A.EE220611@pipeline.ch> <200205291413.g4TEDLRG075458@whizzo.transsys.com> <3CF4E483.2510639@pipeline.ch> <200205291522.g4TFMdRG076033@whizzo.transsys.com> <3CF4FCFC.3D760508@pipeline.ch> <20020529180204.GK33611@overlord.e-gerbil.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Richard A Steenbergen wrote: > > On Wed, May 29, 2002 at 06:08:28PM +0200, Andre Oppermann wrote: > > > > It's clear to me that this is not based on the old 3.6 gated that is > > have in ports. The Nexthop stuff is more advanced. Zebra also is very > > reliable and I use it on many FreeBSD based routers here around. Agreed, > > each of these things don't push more than 50Mbit/s. > > Zebra is about as stable as a trailer park IRC whore who didn't take her > meds. It's fine for playing around, and maybe even for a small home PC > router where BGP is completely or nearly extraneous, but it is NOT a core > router's BGP implementation. :) I don't know how many moons ago you had your last look at Zebra/BGP but it's perfectly stable and supports a very large number of peers without any serious scalability problems. Zebra/BGP is running here on two machines with 225 days of uptime and five full feeds each. And I've got one with 53 peers and 92 days uptime (reboot for upgrade) among others. This stuff is simply limited by the forwarding engine under it (which is a FreeBSD based PC router). I agree that some IRGP in the Zebra suite are not as advanced. > > But that is basically a problem of the old BSD network stack / crappy > > kernel routing (forwarding) table. Expect some nice work in this area in > > the next few month. > > This has been on my todo list for a while, but I never have time. > > Basically just gut the current radix tree and fast-switch like route-cache > system, and replace it with something optimized for fast insertions and > deletions (and FIB building) but not longest prefix matching for the RIB, > and a 4 level 8-bit mtrie (seems to work best for PC hardware) for the > FIB. Hehe... We've come to the same conclusion for the FIB. First I tried to rip out the current flow-based fast-forward code with a highly compact LC-Trie build from the kernels PATRICIA trie. If only a nexthop changes, adjust it in the LC-Trie. If a prefix disappears, mark it as NULL. If Prefix changes, mark it as lookup- in-main-table (slow). Either after so many changes or so many slow lookups rebuild the LC-Trie. Unfortunatly this concept is impossible to implement because [if]_output expects a pointer to a routetable entry. This would mean I had to up the refcount on too many nodes in the main trie from outside of it (so the walker can't find it). This blew up the whole idea and we decided to do it the right way. Unfortunatly the whole routing stuff in BSD is so cross-pointered that untangling it is a medium task in front of it. It made have sense 15 years ago to have pointers from the INPCBs directly to the route node and the if-structures doing the same and vice versa, but today it's simply messy. -- Andre To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message