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

ModuleService NameDescription/FeaturesJavadocSource
Access Control ListIACLServiceInsert proactive flows that either permit or deny packets from traversing the networkjavadocsource
Debug CounterIDebugCounterServiceRegister, increment, and clear countersjavadocsource
Debug EventIDebugEventServiceCreate and dispatch eventsjavadocsource
Device ManagerIDeviceServiceManage hosts/devices and where they are connected to the networkjavadocsource
FirewallIFirewallServiceInsert flows reactively that either permit or deny packets from traversing the networkjavadocsource
Floodlight ProviderIFloodlightProviderServiceProvides a way for modules to observe/modify OpenFlow messages received by and sent from the controllerjavadocsource
Learning SwitchILearningSwitchServiceMimic traditional learning switch behavior and associate MAC addresses with switch portsjavadocsource
Link DiscoveryILinkDiscoveryServiceLearns and manages links between switches using LLDP and BDDPjavadocsource
Server Load BalancerILoadBalancerServiceProvides a way to load balance between a pool of serversjavadocsource
Packet-In Processing TimeIPktInProcessingTimeServiceClocks the performance of individual modules' packet-in processing timesjavadocsource
REST APIIRestApiServiceProvides a REST server and allows modules to register REST interfacesjavadocsource
Routing ManagerIRoutingServiceExposes available paths between provided endpoints and allows for configuration of the metric used to determine link costjavadocsource
Static Entry PusherIStaticEntryServiceAllows modules to insert static/proactive flows and groups identified by a unique string name per entryjavadoc
source
Statistics / Link Bandwidth UtilizationIStatisticsServiceCollects and computes statistics, such as link bandwidth utilization. Easily expandable to collect your own desired statisticsjavadocsource
In-Memory StorageIStorageSourceServiceProvides a tabular, in-memory storage mechanism with the ability for modules to provide and listen for table updatesjavadocsource
Switch ServiceIOFSwitchServiceManages OpenFlow switches, their features, settings, and portsjavadocsource
Thread PoolIThreadPoolServiceA wrapper around Java's schedule executor that provides threads to modulesjavadocsource
Topology ManagerITopologyServiceManages the topology based on discovered links and connected switchesjavadocsource
High Availability SynchronizationISyncServiceAllows multiple controllers to share and exchange state informationjavadocsource
Network VirtualizationIVirtualNetworkServiceProvides a way to virtually partition the network by whitelisting MAC addressesjavadoc

source

High Availability SupportIHAControllerService, IHAWorkerServiceProvides a way for other modules to periodically push and retrieve state information into the SyncDB, in a multiple controller configuration.javadocsource