initial call for review.. initial multi-fib (routing table) support

Julian Elischer julian at
Fri Dec 14 00:15:26 PST 2007

This is a call for review for a change that is part of a
longer term project.

This implements multiple routing tables. 
Eventually the implementation will be much cleaner but
the first implementation is designed to be backported to 6.x
and thus must be ABI compatible. It need not be particularly 'clean'
as the version in 8.x will be..  First itis needs to be committed 
to -current in its 6.x form so an MFC can occur, then 
the cleaner version can be committed over the top of it to clean it up.

if you have p4 access you can get the diffs by:

p4 diff2 -du //depot/vendor/freebsd/src/sys/... at 130844 //depot/user/julian/routing/src/sys/...

otherwise you can look at

in addition initial changes to netstat are in:

p4 diff2 -du //depot/vendor/freebsd/src/usr.bin/netstat/... at 130844 //depot/user/julian/routing/src/usr.bin/netstat/...

and the command line tool can be found at:


on the web that is:

using the utility you can do:

setfib 1 csh
route add ...... (to add routes to fib 1)
netstat -rn   to see routes in fib1
ping  to ping according to fib1

eventually there will be a socket option to allow 
a single socket to be attached to a fib
and rules in ipfw to allow it to annotate a packet 
to be forwarded according to a particular fib..
pf already has such code, but i do not yet have 
all the code needed for it to be turned on yet.

Note; this is the 'compatible' version destined for 
6.x and teh final one for -current will have
a lot of stuff cleaned up. That doesn't mean there 
is nothing more to clean up here of course..

I've had this running (a couple of edits ago)
so it isn;t too wrong.

currently due to ABI issues (for 6.x) the number 
of tables is set at compile time.
(currently 2) but that will change.

More information about the freebsd-net mailing list