Changes between Version 7 and Version 8 of Internal/OpenFlow/FloodlightFVPort/Architecture


Ignore:
Timestamp:
Aug 20, 2012, 5:28:12 AM (12 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/FloodlightFVPort/Architecture

    v7 v8  
    11= Architecture =
    22
    3 Much of the architecture draws heavily from !FlowVisor, but does so in a way to fit back into Floodlight's modular model. Many components are named after the components that they are analogous to in !FlowVisor.
     3The design of this project draws heavily from !FlowVisor, but does so in a way to fit back into Floodlight's modular model. Many components are named after the !FlowVisor components on which their functions are based.
    44
    55=== Internal links ===
     
    2222  * Configuration files - one for !FlowVisor policies and another for module configurations 
    2323
    24  * A module providing the core event handler (FVProxyProvider)
     24 * FVProxyProvider - A module providing the core event handler
    2525
    26  * The main event handler (the !FlowVisor service)
     26 * The !FlowVisor service - The main event handler
    2727 
    2828 * Message handler components:
     
    4343=== Containers === #i
    4444
    45 The JSON-formatted configuration file used by this implementation is nearly identical to that used by !FlowVisor, save the "modules" field specifying which modules should be kept in what slice. While !FlowVisor would store the contents of the config file in a database, this project assumes that there is no persistent storage. Instead of a database, a few classes are used to keep this information available:
     45The JSON-formatted configuration file used by this implementation is nearly identical to the one used by !FlowVisor. The Floodlight version of this file has a "modules" field specifying which modules should be kept in what slice. By default, Floodlight will search for a file named 'config.json' in src/main/resources/ .   
     46
     47Although !FlowVisor would store the contents of the config file in a database at startup, this project assumes that there is no persistent storage. Instead of a database, a few classes are used to keep this information available:
    4648
    4749 * Slice : configurations of individual slices
     
    6466
    6567----
    66 === !FlowVisor service === #iii
     68=== The !FlowVisor service === #iii
    6769 
    68 !FlowVisor is derived from Floodlight's Controller class, the main implementation of the service that handles connections and events. The !FlowVisor service initializes switch-side message handlers (FVClassifiers) for each switch connection, and dispatches messages as events to subscribing modules according to message type (as Controller does) and slice policy. 
     70The !FlowVisor service is derived from Floodlight's Controller class, the main implementation of the service that handles connections and events. The !FlowVisor service initializes switch-side message handlers (FVClassifiers) for each switch connection, and dispatches messages as events to subscribing modules according to message type and slice policy. 
    6971
    7072'''Implementation :''' net.floodlightcontroller.core.internal.!FlowVisor.java
     
    7779'''Initializes :''' FVClassifier (per switch connection)
    7880
    79 Because of their same logical purpose the !FlowVisor/FVProxyProvider pair are interchangeable with the Controller/!FloodlightProvider pair, allowing this version of Floodlight to be easily switched between "!FlowVisor" and "normal" modes of operation through the module loading system's configuration file.   
     81Because of their same logical roles, the !FlowVisor/FVProxyProvider pair are interchangeable with the Controller/!FloodlightProvider pair, allowing this version of Floodlight to be easily switched between "!FlowVisor" and "normal" modes of operation through the [http://www.openflowhub.org/display/floodlightcontroller/Module+loading+system module loading system]'s configuration file.   
    8082
    8183----