wiki:Internal/OpenFlow/Controllers/FloodLight

Version 4 (modified by akoshibe, 12 years ago) ( diff )

The FloodLight Controller.

FloodLight is an open-source, Java-based controller maintained by OpenFlowHub.

I. Installation.

The following describes the installation of FloodLight on an Ubuntu 11.04 (natty) system. Installation is described on their website, but will be repeated here. If you are using SSH, You may want X11 forwarding to be able to launch Eclipse later on.

  1. install the dependencies:
    apt-get install build-essential default-jdk ant python-dev git-core eclipse
    
  1. pull sources from github, and build:
    git clone git://github.com/floodlight/floodlight.git
    cd floodlight/
    git checkout stable
    ant;
    
  1. launching the controller - there are two ways to do this - through eclipse, or directly through java (both in the floodlight/ directory):
    java -jar target/floodlight.jar
    

or as an Eclipse project - first set up Eclipse:

ant eclipse;

then import Floodlight as a project (verbatim from the website):

  • Open eclipse and create a new workspace
  • File → Import → General → Existing Projects into Workspace. Then click “Next”.
  • From “Select root directory” click “Browse”. Select the parent directory where you placed floodlight earlier.
  • Check the box for “Floodlight”. No other Projects should be present and none should be selected.
  • Click Finish.

Once imported, the controller may be run by right-clicking on Controller.java (net.floodlightcontroller.core.internal.Controller.java, found under src/main/java) and choosing Run As → Java Application.

The learning switch is loaded by default. The controller listens on 0.0.0.0:6633 (host, all interfaces with an IP address).

II. Adding functionality.

A base tutorial can be found here. The rough steps are the following:

  1. Create a new class under src/main/java, basing it off of a template, if it exists
  2. Register the module so that it is loaded at startup. This involves adding the fully qualified module name to two files:
    • net.floodlight.core.module.IFloodlightModule - list of modules recognized by the loader
    • floodlightdefault.properties - list of modules to be loaded at startup.

The Floodlight VM

This is a VM image geared towards VirtualBox containing a running floodlight instance, mininet, and wireshark.
It can easily be run on qemu/kvm after conversion to qcow2 with qemu-img convert -O and with the parameters used to run mininet.

temporary mininet info

Using with vnc: requires:

kvm-pxe ssvnc tightvncserver
Note: See TracWiki for help on using the wiki.