The ONF OpenFlow driver
Quick start

This page shows the absolute minimum to get libfluid running.

We are assuming Ubuntu 12.04 for the steps below. Detailed instructions for other distributions (Fedora only for now) are available in other pages: A quick intro to libfluid_base and A quick intro to libfluid_msg.

Install the dependencies:

$ sudo apt-get install autoconf libtool build-essential pkg-config
$ sudo apt-get install libevent-dev libssl-dev

Clone the libfluid repository:

$ git clone
$ cd libfluid
$ ./

The bootstrap script will clone both libraries that form libfluid: libfluid_base, which deals with OpenFlow control channel, and libfluid_msg, which provides classes for building and parsing OpenFlow messages. The bootstraping process will also checkout the repositories to stable versions of both libraries.

Build and install libfluid_base:

$ cd libfluid_base
$ ./configure --prefix=/usr
$ make
$ sudo make install

For more information, see A quick intro to libfluid_base.

Build and install libfluid_msg:

$ cd libfluid_msg
$ ./configure --prefix=/usr
$ make
$ sudo make install

For more information, see A quick intro to libfluid_msg.

Build and run the sample controller:

$ cd examples/controller
$ make msg_controller
$ ./msg_controller l2

For more information, see Example controller implementations.

Start Mininet and run:

Change [IP] to the IP address on which you are running msg_controller.

$ sudo mn --topo tree,depth=2,fanout=2 --controller=remote,ip=[IP],port=6653
mininet> pingall
mininet> dpctl dump-flows

That's it. Now check out the Documentation page to learn more about libfluid and the other examples.

If you are building an application that uses or extends libfluid, check the API reference.