We get this question a lot. Why did Pica8 choose XORP as the project base? Among so many protocol stacks on the market, why Xorp? Why not Zebra? or GateD? or IP Infusion?
Before we started Pica8, we actually spent quite some time making decision whether to start a new project or build on top of an existing program.
The Pica8 team started with a vision to completely disrupt the cost structure of the switch and router market, and we wanted to enable innovation in the network industry. In order to achieve these goals, we knew we needed to commoditize the network platforms and enable innovation. That lead us to define the following criteria when we look for code base.
- Must run on Linux
- So we can leverage Linux tools
- Easy to migrate
- Easy for developers to start
- Must maintain clean IP
- Must have all the copyright
- Allow partners to license for innovation
- Protect end customers
- Use MySQL license models
- Must have elegant architecture
- Leverage multi-process design for security and reliability
- Use IPC communication
- Easy to add protocols
With all these criteria, we narrowed down to a handful of open source projects, including XORP, Quagga, Zebra, Vyetta, and GateD. All of them leverage Linux, and have elegant architecture design. However, XORP appears to be the only one designed with moduality and extensibility in mind. More importantly, XORP came with clean copyright and IP, which allowed us to migrate to MySQL license model.
We decided to acquire XORP’s IP in 2010 and started Pica8 with XORP.
What is XORP? Here is a quick introduction of XORP at Wikipedia.
XORP is an open source Internet Protocol routing software suite originally designed at the International Computer Science Institute in Berkeley, California. The name is derived from extensible open router platform.
The product is designed from principles of software modularity and extensibility and aims at exhibiting stability and providing feature requirements for production use while also supporting networking research. The development project was founded by Mark Handley in 2000. Receiving funding from Intel, Microsoft, and the National Science Foundation, it released its first production software in July 2004. The project was then run by Atanu Ghosh of the International Computer Science Institute, in Berkeley, California.
In July 2008, the International Computer Science Institute transferred the XORP technology to a new entity, XORP Inc., a commercial startup founded by the leaders of the opensource project team and backed by Onset Ventures and Highland Capital Partners …
The XORP codebase consists of around 670,000 lines of C++ and is developed primarily on Linux, but supported on FreeBSD, OpenBSD, DragonFlyBSD, NetBSD. …
XORP, as the name eXtensible Open Router Platform suggested, had been an elegant code base for Pica8 to add L2 and more L3 on the code base.
Did we encounter any drawback of XORP?
For example, we found the OSPF convergence took much longer than other open source projects. It took us almost 6 months to completely rewrite the OSPF protocols to get it to the commercial level and with the complete OSPF features.
The BGP code was also slow in convergence and missing some important features. We are still tuning it, so it is not even made available to Pica8 customers yet.
Nonetheless, these problems did not invalidate our early assessment. We knew we had to invest a lot of work to optimize and qualify whatever codebase we select. On the other hand, the extensibility and modularity of XORP was outstanding and had been the critical part to make Pica8 easy to optimize and easy to program, and easy to add protocols.
After rewriting almost the majority of the XORP code, we believe we have made the right choice. XORP is the right platform to start this paradigm shift.