[Xorp-hackers] Multiple protocol instances within the same process.

Bruce M Simpson bms at incunabulum.net
Fri Sep 5 07:13:08 PDT 2008


Ben Greear wrote:
> Using one set of xorp processes per virtual router, we (Candela) can 
> support 50+ on a high end machine ( 2 x 4-core system).
>
> In my opinion, the thing to do for more scalability would be to have all 
> of the xorp processes for a single router
> in the same process (not 4+ processes like it is now).  This would 
> probably be a lot easier to support than
> having multiple virtual routing engines inside a single process, and 
> would cut down on a lot of extraneous message
> passing between processes.
>   

Sadly, it isn't a simple matter of doing what crunchgen on FreeBSD does; 
it is similar in intention to busybox; it coalesces multiple executables 
into a single image.

A single process approach is hard to achieve with the current 
architecture, when one considers that there are things going on in 
function main() individually for each process; it would require 
refactoring a number of things e.g. folding everything into the same 
EventLoop, changing calls which use getpid() to use a different form of 
unique identifier, no doubt there are other things which need changing.

It's not impossible, it's just a lot of work. In the short to medium 
term, to gain scalability, shared libraries are an easier change to make 
(reduce memory footprint), followed by, perhaps, shared memory based 
XRLs (streamline IPC latency).

Back to the original question:
    We do support multiple instances of OSPFv3, but not for OSPFv2. 
There hasn't been a requirement for it. I understand though that folk 
might be interested in that for things like traffic engineering, vpn etc 
when using OSPFv2 as their IGP.
    If folk are willing to transplant the OSPFv3 instance tags to 
OSPFv2, great stuff; it will involve some amount of refactoring.
    When writing xorp_olsr last year I ended up importing xorp_ospf into 
Bouml to understand how things were put together. I probably still have 
the UML models somewhere if folk are interested in that.

thanks
BMS



More information about the Xorp-hackers mailing list