Kevin Oberman wrote:
Date: Tue, 29 Apr 2008 00:44:18 -0700
From: Julian Elischer <[EMAIL PROTECTED]>
Sender: [EMAIL PROTECTED]

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.






_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to