Home

Awesome

Ravel

Ravel is a software-defined networking (SDN) controller that uses a standard SQL database to represent the network. Why a database? SDN fundamentally revolves around data representation--representation of the network topology and forwarding, as well as the higher-level abstractions useful to applications.

In Ravel, the entire network control infrastructure is implemented within a SQL database. Abstractions of the network take the form of SQL views expressed by SQL queries that can be instantiated and extended on the fly. To allow multiple simultaneous abstractions to collectively drive control, Ravel automatically orchestrates the abstractions to merge multiple views into a coherent forwarding behavior.

For more information, see http://ravel-net.org or follow the walkthrough.

Installation

For installation instructions, see INSTALL.

Ravel Command-Line Arguments

Ravel command-line arguments:

For example, to run Ravel with Mininet in the background, on a topology with a single switch and three hosts:

sudo ./ravel.py --topo=single,3

To run only the database component of Ravel (i.e., no Mininet) on the same topology, using database mydb and username myuser:

sudo ./ravel.py --topo=single,3 --onlydb --db=mydb --user=myuser

Ravel CLI Commands

The Ravel CLI has a number of commands to monitor and control applications and the network: