The XORP Project

XORP is a fairly young but ambitious and promising private research initiative using either traditional UNIX kernel forwarding or the MIT Click Modular Router Project (http://www.pdos.lcs.mit.edu/click/). The first implementation step appears to be focused on edge devices. It is both suitable for research and production environments and is approaching a milestone release 1.0 in summer 2004. The following list presents some useful details about the software:

  • Version? 0.5, alpha developed by The International Computer Science Institute (ICSI) in Berkeley, California

  • Architecture? eXtensible Open Router Platform software

  • Resources? http://www.xorp.org

Feature Description of XORP

XORP supports both IPv4 and IPv6. Currently, BGPv4 (IPv4), OSPFv2 (IPv4), PIM-SM/IGMPv1/v2 (IPv4), as well as SNMP support are implemented. The CLI is similar to GateD. The current OSPFv2 implementation is based on John Moy's reference work (http://www.ospf.org).

The MIT Click Modular Router Project

Click is a fast and modular software router developed by MIT consisting of an interconnected collection (a graph) of modules (elements) controlling every aspect of the router's operation. New elements can be added via a C++ interface. Do not confuse these elements with protocol daemons such as in Zebra; this is an entirely different architecture. A router configuration is written in the Click router configuration language providing the glue between logically connected elements. Such a Click router configuration can either be run at the user level, using a driver program, or via a Linux kernel module.

XORP Installation

The following installation steps are rather straightforward, but they might assist those of you who are unfamiliar with UNIX installation procedures:

  1. Get and extract source archive xorp-0.5.tar.gz, and cd to the XORP source directory.

  2. Check configuration options: ./configure --help

  3. Type: ./configure

  4. Type: make

  5. Type: make install

  6. Configuration tasks and component administration are done via the xorp_rtrrngr and xorpsh programs.

Maturity, Scalability, and Stability of XORP

The architectural design as well as the rapid evolution process of XORP looks promising. I did not test the package beyond simple compilation, starting and accessing the tools, and reading the architectural design documents?with the exception of the standalone multicast tools, which were tested in Chapter 14. XORP is a strong candidate for elaborate discussion in a second edition of this book.