Floodlight v1.0

Floodlight v1.0 Release Notes

Release Date: December 30, 2014

Overview

The 1.0 Floodlight release introduces both OpenFlow 1.0 and OpenFlow 1.3 support, along with experimental support for OpenFlow 1.1, 1.2, and 1.4. The OpenFlow library backing Floodlight has been replaced by OpenFlowJ-Loxigen (see http://github.com/floodlight/loxigen for more details). It also includes redesigned REST APIs, bug fixes, and improvements to applications. Comprehensive documentation is also included to demonstrate the use of the new OpenFlowJ-Loxigen library to do things like create OFFlowMods, handle OFPacketIns, and work with OpenFlow 1.3 features such as groups and meters.

Things Added

OpenFlowJ-Loxigen

  • A generated OpenFlow library supporting OpenFlow versions 1.0 through 1.4. (OpenFlow 1.1, 1.2, and 1.4 are considered to have experimental support in Floodlight.)
  • All OpenFlow protocols are exposed through a common API, which allows for a protocol-agnotic development approach for many if not all applications. Of course, developers still need to be conscious of the capabilities of each OpenFlow protocol version, and for example not try to add a group or meter to an OpenFlow 1.0 switch.
  • All low-level types are defined by classes. These include, but are not limited to switch ports, datapath IDs, MAC addresses, and IP addresses. Furthermore, all types are immutable.
  • OpenFlow protocol types and messages (e.g. packet-in, flow-mod) are immutable and are equipped with builders for ease of construction and replication.
  • All lengths and wildcards are accounted for behind the scenes. No longer is there a need to set packet lengths or manually wildcard after matches have been specified.
  • An overall much more pleasant and future-proof API. 

Major Updates and Additions

  • New to this version of Floodlight, the IFloodlightProviderService is no longer responsible for providing access to and managing switches. Instead, in a more modular approach, all modules requiring access to switch instances can now obtain a reference to the IOFSwitchService.
  • A variety of updates and changes have been made to the controller's core.
  • The DebugCounterService and DebugEventService have been updated to allow easier use and tracking of counters as well as logging of events.
  • The DeviceManager has been updated, and some bugs have been fixed.
  • The Firewall has received an overhaul, and has received numerous bug fixes.
  • The Forwarding module has been updated to work with OpenFlowJ-Loxigen, and it is in the process of being converted to support variable matches.
  • The Hub module has been extended to support either control-plane or data-plane modes through the use of packet-in and packet-outs or flow-mods, respectively.
  • The LearningSwitch module has been updated.
  • The LinkDiscoveryManager has been updates, and some bugs have been fixed.
  • The LoadBalancer module has been improved with regard to how flow-mods are composed and pushed to the switches.
  • The packet package has been updated to be compatible with the underlying OpenFlowJ-Loxigen library.
  • The Routing module has been updated.
  • The StaticFlowEntryPusher module has been overhauled with an updated structure, syntax, and support for OpenFlow 1.0 - 1.3. (IPv6 support is still in the works.)
  • A TestModule has been added to demonstrate the use of some OpenFlowJ-Loxigen features.
  • The Topology manager has been updated.
  • The Web UI has been updated to support underlying updates.
  • The util package has been updated and extended to provide utilities for enhanced use of OpenFlowJ-Loxigen actions, matches, instructions, and messages.
  • The VirtualNetwork module has been updated.
  • All unit tests have been updated.

Minor Package Updates

  • flowcache
  • jython
  • notification
  • packetstreamer
  • perfmon
  • servicechaining
  • storage
  • threadpool
  • sync

Documentation

Distributions and Releases

    apt-get install floodlight ### need to have the repository updated, unless it automatically points to the github repo

Things Removed

The FlowReconcileManager has been deprecated but is still included.

The old OpenFlowJ library has been removed and replaced by OpenFlowJ-Loxigen.

Bug Fixes

The release also includes bug fixes to Floodlight modules since the previous releases (v0.90 and v0.91) through December 30, 2014. Details of the fixes can be seen via 'git log --all'. 

Known Issues

See the issue tracking system for current issues:

https://github.com/floodlight/floodlight/issues