| 13 |   |  | 
          
          
            | 14 |   | == Goals == #goals | 
          
          
            | 15 |   |  | 
          
          
            | 16 |   | The main goals of this project's designs are the following: | 
          
          
            | 17 |   |  | 
          
          
            | 18 |   |  * Implement a slicing scheme that prevents unwanted interaction between modules  | 
          
          
            | 19 |   |  * Allow control of slice behavior through a configuration file | 
          
          
            | 20 |   |  * Avoid modification of existing Floodlight source code | 
          
          
            | 21 |   |  * Provide an easy way to switch between normal Floodlight and "!FlowVisor" modes of operation | 
          
          
            | 22 |   |   | 
          
          
            | 23 |   | In addition, the following assumptions were made as a consideration of the amount of time provided by GSoC :   | 
          
          
            | 24 |   |  | 
          
          
            | 25 |   |  * All modules to be run are loaded at startup, and remain subscribed to events as long as Floodlight is running | 
          
          
            | 26 |   |  * Several modules such as link discovery and device manager need a global view of the network and so should not be restricted | 
          
          
            | 27 |   |  * modules that depend on one another must be in the same slice | 
          
          
            | 28 |   |  * The configurations are not persistent  |