From owner-freebsd-net@FreeBSD.ORG Wed Apr 30 16:18:59 2008 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42005106566B for ; Wed, 30 Apr 2008 16:18:59 +0000 (UTC) (envelope-from SRS0=bb6f48e47a5a38716e51d34683d23a5c3f48e34e=686=es.net=oberman@es.net) Received: from postal1.es.net (postal1.es.net [IPv6:2001:400:14:3::6]) by mx1.freebsd.org (Postfix) with ESMTP id 79ABE8FC26 for ; Wed, 30 Apr 2008 16:18:58 +0000 (UTC) (envelope-from SRS0=bb6f48e47a5a38716e51d34683d23a5c3f48e34e=686=es.net=oberman@es.net) Received: from ptavv.es.net (ptavv.es.net [198.128.4.29]) by postal1.es.net (Postal Node 1) with ESMTP (SSL) id JYR65131; Tue, 29 Apr 2008 13:40:31 -0700 Received: from ptavv.es.net (ptavv.es.net [127.0.0.1]) by ptavv.es.net (Tachyon Server) with ESMTP id E429245010; Tue, 29 Apr 2008 13:40:31 -0700 (PDT) To: Julian Elischer In-Reply-To: Your message of "Tue, 29 Apr 2008 12:17:15 PDT." <4817743B.6090107@elischer.org> Mime-Version: 1.0 Content-Type: multipart/signed; boundary="==_Exmh_1209501631_96830P"; micalg=pgp-sha1; protocol="application/pgp-signature" Content-Transfer-Encoding: 7bit Date: Tue, 29 Apr 2008 13:40:31 -0700 From: "Kevin Oberman" Message-Id: <20080429204031.E429245010@ptavv.es.net> X-Sender-IP: 198.128.4.29 X-Sender-Domain: es.net X-Recipent: ;; X-Sender: X-To_Name: Julian Elischer X-To_Domain: elischer.org X-To: Julian Elischer X-To_Email: julian@elischer.org X-To_Alias: julian Cc: FreeBSD Net Subject: Re: multiple routing tables review patch ready for simple testing. X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Apr 2008 16:18:59 -0000 --==_Exmh_1209501631_96830P Content-Type: text/plain; charset=us-ascii Content-Disposition: inline > Date: Tue, 29 Apr 2008 12:17:15 -0700 > From: Julian Elischer > Sender: owner-freebsd-net@freebsd.org > > Kevin Oberman wrote: > >> Date: Tue, 29 Apr 2008 00:44:18 -0700 > >> From: Julian Elischer > >> Sender: owner-freebsd-net@freebsd.org > >> > >> The patch can be found at > >> http://www.freebsd.org/~julian/mrt.diff > >> (or http://www.freebsd.org/~julian/mrt6.diff for RELENG_6) > >> > >> or source can be taken from perforce at: > >> //depot/user/julian/routing/src > >> > >> a kernel needs to be created with the option ROUTETABLES=N > >> > >> e.g. > >> +options ROUTETABLES=2 # max 16. 1 is back > >> compatible. > >> > >> leaving this out will result in just a single routing table as per normal. > >> > >> the max is 16 but I have an artificial (even lower) at 8 but that may > >> be gone by the time people try it :-) > >> > >> I ws informed early in this project that kernel routing tables should > >> now be refered to as FIBs (forwarding Information base?). > >> > >> the new command "setfib" sets teh default fib for a process and all its > >> decendents > > > > I have been working with big routers in my day job for years and it's > > really frustrating to not have this sort of capability when I work with > > FreeBSD, but I don't expect a general purpose OS to ever have the > > routing capabilities of a dedicated router. > > > > I think this will really, really be nice for my needs, though. > > > > As terminology goes, I think you have it slightly off. > > > > Modern routers have two "classes" of tables to move packets between > > interfaces: the RIB Routing information base) and the FIB (Forwarding > > Information Base). A router has multiple RIBs, usually one for each > > network layer protocol (IPv4 and IPv6, both unicast and multicast) and > > added RIBs for policy based routes. They may be further broken up by the > > protocol used to populate the table (BGP, OSPF, ISIS, MPLS, static, > > connected, ...) > > > > The RIBs exports data, as needed to a single FIB which is used by the > > ASICs (hardware forwarding engines) to do the actual forwarding of the > > packets. In a real router, the forwarding of almost all packets is done > > in hardware with no real involvement by the processor that determines the > > routes. (N.B. This is a gross simplification of what modern routers > > do or can do, but I don't want to send a book to the list.) > > > > A general purpose OS is a different beast as it has no physical > > equivalent of the FIB. It may have multiple routing tables, though, to > > I think setrib would be a term less likely to cause confusion then > > setfib even though, in the case of your FreeBSD patches, it's really > > both. > > The way I see it the routing daemons (e.g. quagga) have the RIBS > and the kernel has FIBS because it doesn't really know the big picture. > > If we need to change the terminology now is the time.. > I asked for comments on terminology before and this is what we > came up with.. but once it gets committed.... it gets set in stone. On further review, I agree with you. The table in the kernel really is a FIB (or a logical equivalent), and not really a RIB, so I withdraw any objection to setfib. -- R. Kevin Oberman, Network Engineer Energy Sciences Network (ESnet) Ernest O. Lawrence Berkeley National Laboratory (Berkeley Lab) E-mail: oberman@es.net Phone: +1 510 486-8634 Key fingerprint:059B 2DDF 031C 9BA3 14A4 EADA 927D EBB3 987B 3751 --==_Exmh_1209501631_96830P Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (FreeBSD) Comment: Exmh version 2.5 06/03/2002 iD8DBQFIF4e/kn3rs5h7N1ERAlxPAKCO5ZO0YINUOzolO7gzo44TJpRmCQCgo1Cl JZCHa/Ajm7DgE8sGaOgm8nE= =nyTT -----END PGP SIGNATURE----- --==_Exmh_1209501631_96830P--