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 |
---|---|---|---|---|
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 | |
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 |