Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 29 Apr 2008 11:51:00 -0700
From:      "Kevin Oberman" <oberman@es.net>
To:        Julian Elischer <julian@elischer.org>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>
Subject:   Re: multiple routing tables review patch ready for simple testing. 
Message-ID:  <20080429185100.57C2445010@ptavv.es.net>
In-Reply-To: Your message of "Tue, 29 Apr 2008 00:44:18 PDT." <4816D1D2.7010603@elischer.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
--==_Exmh_1209495060_21728P
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

> Date: Tue, 29 Apr 2008 00:44:18 -0700
> From: Julian Elischer <julian@elischer.org>
> 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.
-- 
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_1209495060_21728P
Content-Type: application/pgp-signature

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (FreeBSD)
Comment: Exmh version 2.5 06/03/2002

iD8DBQFIF24Ukn3rs5h7N1ERAhXmAJwPmPNlxZ/EHRu7rPuf/xalhFI6HQCeMePV
fNU7NH6CZqIG4fSGfWI5Nb0=
=6VQ+
-----END PGP SIGNATURE-----

--==_Exmh_1209495060_21728P--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080429185100.57C2445010>