Access Keys:
Skip to content (Access Key - 0)

RouteFlow Home

Skip to end of metadata
Go to start of metadata


routing routing Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

RouteFlow, is an open source project to provide virtualized IP routing services over OpenFlow-enabled devices.

RouteFlow is composed by an OpenFlow Controller application, an independent RouteFlow Server, and a virtual network environment that reproduces the connectivity of a physical infrastructure and runs IP routing engines (e.g. Quagga). The routing engines generate the forwarding information base (FIB) into the Linux IP tables according to the routing protocols configured (e.g., OSPF, BGP). In turn, the Linux IP and ARP tables are collected by RouteFlow Slave processes and then translated into OpenFlow tuples that are finally installed in the associated OpenFlow-enabled devices in the forwarding plane.

RouteFlow is the evolution of our early work on QuagFlow – Partnering Quagga with OpenFlow and works transparent to the specific routing engine (e.g., Quagga, XORP, BIRD) as long as it is based on the Linux networking stack.

The best way to get introduced to RouteFlow is the 4-page paper entitled "Virtual Routers as a Service: The RouteFlow Approach Leveraging Software-Defined Networks".


The main components of the RouteFlow solution are:
  • RouteFlow Slave (RF-Slave)
  • RouteFlow Server (RF-Server)
  • RouteFlow Controller application (RF-C)

    The interaction between the components is defined by a set of RouteFlow protocol messages. 

    Additional third party components required / supported include:
  • NOX OpenFlow controller
  • Quagga routing engine
  • Open vSwitch (OVS)
  • OpenFlow-enabled switches: Software-based (e.g., Mininet, OVS) or hardware-based (e.g., NetFPGA)

Project Objectives

The main goal of RouteFlow is to develop an open-source framework for virtual IP routing solutions over commodity hardware implementing the OpenFlow API.

RouteFlow aims at a commodity routing architecture that combines the line-rate performance of commercial hardware with the flexibility of open source routing stacks (remotely) running on general purpose computers. As an outcome of this point in the design space of routing solutions, we expect:

  • Migration path from legacy IP deployments to purely software-defined networks (i.e. OpenFlow)
  • Open-Source framework to support the different flavours of network virtualization (e.g., logical routers, router aggregation / multiplexation).
  • IP Routing-as-a-Service models of networking
  • Simplified intra- and inter-domain routing interoperable with legacy equipments.

Get the code!

You can download the code from the RouteFlow GitHub repository

Use git to fetch the code:

$ git clone

Alternatively, you can download the code in a .tar.gz or .zip file.

You can setup your own virtual environment (e.g., Virtual Machines, LXC containers, etc) where the RF-Slave and the IP routing engine (e.g., Quagga) will run. For your convenience, we have pre-configured Linux VM (with Quagga and RF-Slave) for QEMU and LXC available here.

See the project documentation and install instructions for further information.

There is also a tutorial: Your first RouteFlow network - HOWTO

We look forward for your comments and contributions!


We welcome you to use and watch the Features and Bug tracking system!

Use the RouteFlow Forum to post your comments, suggest new features, or discuss anything you want.

Alternatively, you can subscribe to the mailing-list and ask questions via:

Latest threads from the Forum

Adaptavist Theme Builder Powered by Atlassian Confluence