Changes between Version 8 and Version 9 of Internal/OpenFlow/Controllers/FloodLight


Ignore:
Timestamp:
Jun 1, 2012, 10:47:19 PM (12 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/Controllers/FloodLight

    v8 v9  
    9797 1. add classes used by the service e.g. the REST API
    9898
    99 == Architecture == #arch
     99== Architecture and Implementation == #arch
     100This section describes the architecture and some of the implementations of the various parts of the controller. These are largely references to source code and their Javadocs.
    100101 * ref: http://www.openflowhub.org/display/floodlightcontroller/Advanced+Tutorial
    101102The controller has two main components:
     
    104105The secondary modules register with the core module when the controller is starting up. They do everything from recording certain aspects of flows to providing a RESTful API to modifying the flow tables within switches. They may also export services to leverage other modules, such as the REST API.
    105106
     107=== Startup ===
     108The following steps describe the startup process of the Floodlight controller. The reference is the source code in Main.java. 
     109 1. the !FloodlightModuleLoader reads in the list of modules, and loads them, returning an IFloodlightModuleContext instance. [[BR]]
     110 The !FloodlightModuleLoader basically coordinates calls to the functions provided by the IFloodlightModule interface for each module in the config file (floodlightdefault.properties) and the modules that they depend on. Some key points are: [[BR]]
     111  * IFloodlightModule is the interface that lets you define Floodlight module behavior in a uniform way.
     112  * it finds all of the modules that it needs to load via a DFS beginning with the modules listed in the config file. The search is facilitated by IFloodlightModule functions.
     113  * moduleSet will ultimately contain the minimum number of modules that need to be loaded at startup.
     114 
     115 2. the IFloodlightModuleContext instance fetches copies of the IRestApiService and IFloodlightProviderService modules. [[BR]]
     116 IFloodlightModuleContext provides a clean mechanism for retrieving references to the loaded modules/services, and their configuration parameters. FloodlightModuleContext implements this interface. [[BR]]
     117  * IRestApiService provides REST API functions.
     118  * IFloodlightProviderService provides the core controller functions and then some.
     119
     120 3. Run the REST API and core controller [[BR]]
     121 At this point, Floodlight is up and running.
    106122
    107123= The Floodlight VM = #vm