bikeshed for all!

Julian Elischer julian at
Thu Dec 13 11:32:28 PST 2007

Li, Qing wrote:
>> -----Original Message-----
>> From: owner-freebsd-net at 
>> [mailto:owner-freebsd-net at] On Behalf Of Julian Elischer
>> Sent: Wednesday, December 12, 2007 2:35 PM
>> To: FreeBSD Net
>> Subject: bikeshed for all!
>> So, I'm playing with some multiple routing table support..
>> the first version is a minimal impact version with very 
>> limited functionality.
>> It's done that way so I can put it in RELENG_6/7 without 
>> breaking ABIs (I hope).
>> Later there will be a more flexible version for-current.
>> Here's the question..
>> I need a word to use to describe the network view one is 
>> currently on..
>> e.g. if you are usinghe second routing table, you could say 
>> I've set xxx to 1 (0 based)..
>> current;y in my code I'm using 'universe' but I don't like that..
>> one could think of it as a routing plane..
>> each routing plane has he same interfaces on it but they are 
>> logically treated differently becasue each plane has a 
>> different routing table.
>    Are you saying an interface can belong to multiple routing
>    domains ? So how is that going to work with overlapping
>    prefixes, which routing domain does the interface feed
>    the packets to ?

Routing domain/instance is orthogonal to interfaces...
if you want to isolate interfaces to 'virtual hosts' you want vimage
which I also plan on seeing in the system. :-)
There is no reason why you couldn't have several virtual hosts,
each with different interface sets and each running several routing instances.
with this you could implement several routers, each with several VRFs,
but all in the same box.

One selects a vrf/instance for incoming packets via ipfw or pf.
One selects a vrf/instance for locally generated packets via the vrf the socket is attached to.
(ipfw/pf can probably over-ride that but I haven't done it yet so I don't know)
the socket gets its vrf/instance from the opening process, or a sock-opt.

>> so here's an example of  it in use now...
>> the names should change...
>> setuniverse 1 netstat -rn
>> [shows table 1]
>> setuniverse 2 route add
>> setuinverse 1 route add
>> setuniverse 2 route -n get
>> [shows]
>> setuniverse 1 route -n get
>> [shows]
>> setuniverse 2 start_apache
>> [appache starts, always using to reach the 10.0.0 net.
>> also the syscall is setuniverse()
>> so, you see I really need a better name....
>> setrtab?
>> rtab? rtbl?
>> and the command should be called "????"
>> _______________________________________________
>> freebsd-net at mailing list
>> To unsubscribe, send any mail to "freebsd-net-unsubscribe at"

More information about the freebsd-net mailing list