Architecture

Floodlight is not just an OpenFlow controller.  Floodlight is an OpenFlow controller (the "Floodlight Controller") AND a collection of applications built on top the Floodlight Controller.

The Floodlight Controller realizes a set of common functionalities to control and inquire an OpenFlow network, while applications on top of it realize different features to solve different user needs over the network.  The figures below show the relationship among the Floodlight Controller, the applications built as Java modules compiled with Floodlight, and the applications built over the Floodlight REST API.