FITS

Future Internet Testbed with Security

  • Increase font size
  • Default font size
  • Decrease font size
Home Documentation Tutorials Creating an OpenFlow Virtual Network

Creating an OpenFlow Virtual Network

E-mail Print

This tutorial will describe how to create an OpenFlow Virtual Network (Slice Network) in the FITS Testbed.

In order to successfully use an OpenFlow Virtual Network, two things are required:

  • A configured slice (subset) of the current FITS network for you to use with your own controller.
  • A controller application to access the OpenFlow network.

Configuring a FITS OpenFlow Slice

An OpenFlow Slice can be defined by one or more of the following characteristics: OpenFlow Switch(es) used in the slice; Input Port(s) of each switch; Vlan ID(s); Ethernet Source(s); Ethernet Destination(s); Ethernet Protocol Type; IP Source(s); IP Destination(s); IP Protocol Type; Transport Port Source(s); Transport Port Destination(s).

Important: Controller information is also required, so please also send the IP:Port that your controller application will use.

In order to setup your slice and connection, please contact our staff at the contact page.

Configuring an OpenFlow Controller

In order to control your OpenFlow slice, you need a Controller Application. Although FITS currently uses the POX Controller, you are free to use whatever controller application you want. Here are some examples, most of them having lots of sample applications built-in so you can easily start your first steps:

  • POX / NOX: 

One of the very first controller applications, NOX was a C++/Python OpenFlow Controller developed by Nicira. It was then releasead as open-source and now it has divided into NOX (pure c++) and POX (pure python). A reference website (http://www.noxrepo.org/) and documentation (https://openflow.stanford.edu/display/ONL/POX+Wiki) are available.

  • Floodlight:

Floodlight is an open-source java-based OpenFlow Controller designed for hight performance and easy setup. All needed information can be seen in the reference website (http://www.projectfloodlight.org/floodlight/).

  • Trema:

Trema is an open-source Ruby/C++  OpenFlow Controller that supports programming in both languages (Ruby for easy development and C++ for performance, as they say). Its development was started by the Japanese company NEC. Information and lots of tutorials are available in the reference page (http://trema.github.io/trema/).