XORP
# XORP

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. It supports OSPF, BGP, RIP, PIM, IGMP, OLSR.

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. In February 2010, XORP Inc. was wound up, a victim of the recession. However the open source project continued, with the servers based at University College London. In March 2011, Ben Greear became the project maintainer and the www.xorp.org server is now hosted by Candela Technologies.

The XORP codebase consists of around 670,000 lines of C++ and is developed primarily on Linux, but supported on FreeBSD, OpenBSD, DragonFlyBSD, NetBSD. Support for XORP on Microsoft Windows was recently re-added to the development tree. XORP is available for download as a Live CD or as source code via the project's homepage.

The software suite was selected commercially as the routing platform for the Vyatta line of products in its early releases, but later has been replaced with quagga.

## Routing features

As of 2009, the project supports the following routing protocols:

* Static routing
* Routing Information Protocol (RIP and RIPng):
   * RFC 2453 (RIP version 2)
   * RFC 2082 (RIP-2 MD5 Authentication)
   * RFC 2080 (RIPng for IPv6)
* Border Gateway Protocol:
   * RFC 4271 (A Border Gateway Protocol 4 (BGP-4))
   * RFC 3392 (Capabilities Advertisement with BGP-4)
   * RFC 4760 (Multiprotocol Extensions for BGP-4)
   * RFC 2545 (Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing)
   * RFC 1997 (BGP Communities Attribute)
   * RFC 2796 (BGP Route Reflection - An Alternative to Full Mesh IBGP)
   * RFC 3065 (Autonomous System Confederations for BGP)
   * RFC 2439 (BGP Route Flap Damping)
   * RFC 4893 (BGP Support for Four-octet AS Number Space)
   * RFC 1657 (Definitions of Managed Objects for the Fourth Version of the Border Gateway Protocol (BGP-4) using SMIv2)
* Open Shortest Path First version 2 (OSPFv2) and version 3 (OSPFv3):
   * RFC 2328 (OSPF Version 2)
   * RFC 3101 (The OSPF Not-So-Stubby Area (NSSA) Option)
   * RFC 5340 (OSPF for IPv6)
* PIM Sparse Mode (PIM-SM):
   * RFC 4601
   * RFC 5059
* IGMP v1, v2, and v3:
   * RFC 2236 (Internet Group Management Protocol, Version 2)
   * RFC 3376 (Internet Group Management Protocol, Version 3)
* Multicast Listener Discovery (MLD v1 and v2):
   * RFC 2710 (Multicast Listener Discovery (MLD) for IPv6)
   * RFC 3810 (Multicast Listener Discovery Version 2 (MLDv2) for IPv6)
* Virtual Router Redundancy Protocol (VRRP v2):
   * RFC 3768

## User interface

XORP provides a command line interface for interactive configuration and operation monitoring. The interface is implemented as a distinct application called xorpsh, that may be invoked by multiple users simultaneously. It interacts via interprocess communication with the router core modules. The command line language is modelled after that of Juniper Networks's JunOS platform.

