Changes between Version 3 and Version 4 of Internal/OpenFlow/FloodlightFVPort


Ignore:
Timestamp:
Aug 20, 2012, 3:58:54 AM (12 years ago)
Author:
akoshibe
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Internal/OpenFlow/FloodlightFVPort

    v3 v4  
    11= Enabling !FlowVisor-like Slicing in Floodlight =
    22
    3 This GSoC 2012 project aims to incorporate !FlowVisor's network resource slicing features into Floodlight.
    4 
    5 == Motivation and Overview ==
    6 
    7 Floodlight is a modularized !OpenFlow controller, in that its functional components can be split into two major parts, a core event dispatcher and the various event handlers, or modules, that process these events. The key point here is that Floodlight's modular structure allows for:
    8 
    9  1. Extensibility, in that new functionalities can be added as new modules, and
    10  2. Multiple functionalities to coexist as modules on the same controller.
    11 
    12 Currently, 2) is only partially true, as modules that have conflicting functions may not coexist on a running Floodlight instance. As an example, the learning switch and forwarding modules will conflict, as they both send a PACKET_OUT to a switch - The switch will respond with a buffer error when it receives the second PACKET_OUT, as it had already sent the packet out.   
    13 
    14 In the case that the conflicting modules are running on separate instances of Floodlight on the same network, this situation can be averted by network slicing. A slice can be thought of as an !OpenFlow controller and the network resources allocated to it by a hypervisor-like entity such as !FlowVisor. With proper resource allocation, which guarantees isolation, multiple controllers can coexist on the network without interfering with each other.
    15 
    16 This project draws an analog between the individual modules and controllers, and attempts to implement an isolation scheme within Floodlight to isolate conflicting modules, allowing them to run properly on the same controller.
    17 
    18 === Design Goals ===
    19 
    20 The goals of this project can be summarized as follows:
    21 
    22  * Implement a slicing scheme that prevents unwanted interaction between modules
    23  * Allow control of slice behavior through a configuration file
    24  * Avoid modification of existing Floodlight source code
    25  * Provide an easy way to switch between normal Floodlight and "!FlowVisor" modes of operation
    26  
    27 In addition, the following assumptions were made as a consideration of the amount of time provided by GSoC : 
    28 
    29  * All modules to be run are loaded at startup, and remain subscribed to events as long as Floodlight is running
    30  * Several modules such as link discovery and device manager need a global view of the network and so should not be restricted
    31  * modules that depend on one another must be in the same slice
    32  * The configurations are not persistent
    33 
    34 === How it works ===
    35 The logical structure is heavily inspired by !FlowVisor.
    36 
    37  * ''Incoming connections'' - each new connection from a switch is allocated a FVClassifier, which, in turn, initializes one FVSlicer per slice that the DPID is associated with.
    38  * ''Module Isolation'' - each message that must be processed by a module is associated with a slice. This association is made according to the source DPID if controller-bound, and source module, if switch-bound. An FVClassifier will determine the destination slice with the aid of the !FlowMap, and send the message to the appropriate FVSlicer.     
    39 
     3Floodlight is an open source !OpenFlow controller aimed at ease of development. [[BR]] 
     4This GSoC 2012 project aimed to create a version of Floodlight with some of !FlowVisor's network resource slicing features.   
    405
    416== Internal Links ==
     7 * [wiki:Documentation/OpenFlow/FloodlightFVPort/Overview Overview]
     8 * [wiki:Documentation/OpenFlow/FloodlightFVPort/Architecture Architecture]
    429 * [wiki:Documentation/OpenFlow/FloodlightFVPort/InstallUsage Installation and Usage]
    43  * [wiki:Documentation/OpenFlow/FloodlightFVPort/Architecture Architecture]
    44 
    45 == External Links ==
    46  * http://floodlight.openflowhub.org/ Floodlight Home Page
    47  * https://openflow.stanford.edu/display/DOCS/Flowvisor !FlowVisor Wiki
     10 
     11== External Links / Resources ==
     12 * [https://github.com/akoshibe/floodlight/tree/flowvisor Project GitHub]
     13 * [http://floodlight.openflowhub.org/ Floodlight Home Page]
     14 * [https://openflow.stanford.edu/display/DOCS/Flowvisor FlowVisor Wiki]
     15