Floodlight Services

Floodlight Services

Table of Contents

Introduction

Floodlight modules that wish to expose features to other Floodlight modules or to the REST API must first implement an IFloodlightService. This page serves as a reference for all existing Floodlight services that you can leverage from within a Floodlight module. In order to use any of these services, you must first specify the service as a dependency in your module's getModuleDependencies() function. Please refer to How to Write a Module for more information on how to define this function and on creating a Floodlight Java module.

Modules that Implement IFloodlightService

Module

Service Name

Description/Features

Javadoc

Source

Module

Service Name

Description/Features

Javadoc

Source

Access Control List

IACLService

Insert proactive flows that either permit or deny packets from traversing the network

javadoc

source

Debug Counter

IDebugCounterService

Register, increment, and clear counters

javadoc

source

Debug Event

IDebugEventService

Create and dispatch events

javadoc

source

Device Manager

IDeviceService

Manage hosts/devices and where they are connected to the network

javadoc

source

Firewall

IFirewallService

Insert flows reactively that either permit or deny packets from traversing the network

javadoc

source

Floodlight Provider

IFloodlightProviderService

Provides a way for modules to observe/modify OpenFlow messages received by and sent from the controller

javadoc

source

Learning Switch

ILearningSwitchService

Mimic traditional learning switch behavior and associate MAC addresses with switch ports

javadoc

source

Link Discovery

ILinkDiscoveryService

Learns and manages links between switches using LLDP and BDDP

javadoc

source

Server Load Balancer

ILoadBalancerService

Provides a way to load balance between a pool of servers

javadoc

source

Packet-In Processing Time

IPktInProcessingTimeService

Clocks the performance of individual modules' packet-in processing times

javadoc

source

REST API

IRestApiService

Provides a REST server and allows modules to register REST interfaces

javadoc

source

Routing Manager

IRoutingService

Exposes available paths between provided endpoints and allows for configuration of the metric used to determine link cost

javadoc

source

Static Entry Pusher

IStaticEntryService

Allows modules to insert static/proactive flows and groups identified by a unique string name per entry

javadoc

source

Statistics / Link Bandwidth Utilization

IStatisticsService

Collects and computes statistics, such as link bandwidth utilization. Easily expandable to collect your own desired statistics

javadoc

source

In-Memory Storage

IStorageSourceService

Provides a tabular, in-memory storage mechanism with the ability for modules to provide and listen for table updates

javadoc

source

Switch Service

IOFSwitchService

Manages OpenFlow switches, their features, settings, and ports

javadoc

source

Thread Pool

IThreadPoolService

A wrapper around Java's schedule executor that provides threads to modules

javadoc

source

Topology Manager

ITopologyService

Manages the topology based on discovered links and connected switches

javadoc

source

High Availability Synchronization

ISyncService

Allows multiple controllers to share and exchange state information

javadoc

source

Network Virtualization

IVirtualNetworkService

Provides a way to virtually partition the network by whitelisting MAC addresses

javadoc

source

High Availability Support

IHAControllerService, IHAWorkerService

Provides a way for other modules to periodically push and retrieve state information into the SyncDB, in a multiple controller configuration.

javadoc

source