system
May 20, 2014, 10:25pm
6
I google’d a bit about the multithreading router and found some interesting comments below, just post it here for your reference. According to the information, XORP is a multi-threading routing suite, but has BGP performance issue, hence Vyatta turned to Quagga since VC4. Interesting enough, XORP uses “Click modular router” in the forwarding plane, which is an elements-based, multi-thread router.
Could anybody please give more comments on this topic?
Vyatta used XORP as the routing stack up through VC3 and sponsored the XORP team for a couple of years with direct funding. With VC4, we made the decision to go another direction. VC4 does not use XORP.
In VC1 through VC3, the differences between Vyatta and XORP are huge. XORP is simply a routing stack that runs on Unix-like systems. Vyatta is a complete system with numerous other features (firewall, VPN, DHCP, VLANs, etc., etc.) that are not part of XORP. Vyatta also integrates the features into a system.
Further, changes were made to XORP in VC2.2 and VC3 to increase its performance and scalability. These changes have been analyzed by the XORP team and may or may not make their way into the standard XORP code base over time. You’d have to ask the XORP team about specific changes.
In the early part of 2007, Vyatta had a number of customers start to deploy the system in service provider networks where they had multiple BGP peers carrying full Internet tables. As those deployments went forward, we found a number of limitations in the XORP codebase related to its scalability and performance under load. Through the first part of 2007, Vyatta engineers worked to help fix these problems with the XORP codebase and made many substantial improvements. We also started to look for alternatives as we determined that the remaining engineering work to bring XORP to the point where it needed to be was substantial. In the end, we determined that the changes required for XORP were larger than the cost of integrating a new component, and so we started the work to integrate a new stack. The result of that decision is the VC4/Glendale release.
The new stack came from the Quagga project. In beta testing with our customers, we have found the scalability, performance, and stability under load, particularly with complex routing policies, of the new stack to be superior to XORP. Now, there is some functionality that XORP had that the new stack does not have. For instance, we had some experimental multicast features in the XORP code base that Quagga does not currently support. Over time, we’ll be working to add those features back into Vyatta (and upstream into Quagga).
The short story is all of the above, minus the portability which we
can’t comment on since our focus is Linux. Our primary concern with our
previous release was BGP and as such that is where we did most of our
scalability and performance testing. Convergence time was one critical
factor we had issues with. Another area of concern for us was the
stability of complex routing policies. We were able to make some
significant improvements to both areas, but our engineers felt that to
get the code to where we wanted it would require a deep re-write. While
we were doing this we also tested Quagga which performed admirably. (In
the range of a 10x performance improvement in the case of convergence
times.) So rather than write yet another protocol stack from scratch it
made sense for us to integrate Quagga and attempt to contribute
resources to it going forward.
I have to say kudos to the Quagga devs. The code base is stable and
scalable. The number of issues we have had in networks running beta
versions of the VC4 release is minimal. The code has been great to work
with so far and I’m looking forward to where we can go with it in the
future.