GSoC/GCI Archive
Google Summer of Code 2014


License: Apache License, 2.0

Web Page:

Mailing List:!forum/routeflow-discuss

RouteFlow :: Virtual IP Routing Services over OpenFlow networks RouteFlow is an open source project to provide virtualized IP routing services over OpenFlow enabled hardware. A typical RouteFlow use scenario is composed by an OpenFlow controller application (RFProxy), an independent RouteFlow server (RFServer), 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 routing tables according to the configured routing protocols (e.g., OSPF, BGP). In turn, the Linux IP and ARP tables are collected by RouteFlow client (RFClient) processes and then translated into OpenFlow tuples that are finally installed in the associated OpenFlow-enabled devices in the forwarding plane.


  • An Independent Routing Engine for RouteFlow Currently RouteFlow depends on other open-source routing stacks, like Quagga, to calculate routes for the controlled network. This project aims to create an independent routing engine based on the path information already stored in the persistence layer, and enables RouteFlow to provide a fully functional routing service.
  • Automatic Topology Discovery The motivation for developing an automated topology discovery protocol facilitates smarter and more informed routing decisions in RouteFlow. Having an automated centralized picture of the network as opposed to just having a static network configuration makes the network more robust in the face of changes.
  • Leveraging OpenFlow protocol version 1.3 in modern controllers This project would involve updating the current RouteFlow application on top of an OpenFlow 1.3 capable controller (e.g., Ryu and OpenDaylight) and develop the required code changes to use the 1.3 APIs. Furthermore, the project should explore how to get use of newly introduced features in OpenFlow 1.x, such as IPv6, multiple-table support, group tables, TTL-decrement actions, and QoS flow metering options.