Version 1 (modified by 12 years ago) ( diff ) | ,
---|
Installation and Usage
As of now this project is extremely rough around the edges.
Installation
The source code can be fetched using git and built with ant
:
git clone git://github.com/akoshibe/floodlight.git cd floodlight/ git checkout -b flowvisor origin/flowvisor ant;
As with the regular Floodlight, ant eclipse
allows it to work with eclipse and ant javadoc
will produce javadocs for the code.
running in FlowVisor mode
To run:
java -jar target/floodlight.jar -cf src/main/resources/flowvisor.properties
This brings the controller up in "FlowVisor mode," with two default slices containing the LearningSwitch and Forwarding modules. The slice configurations are in config.json, found with the .properties file in [floodlight working directory]/src/main/resources/.
running as a regular controller
Alternatively, since none of the original code base was modified, this version of Floodlight can be run as a normal v0.85 controller by replacing
net.floodlightcontroller.core.FVProxyProvider
with
net.floodlightcontroller.core.FloodlightProvider
in src/main/resources/META-INF/services/net.floodlight.core.module.IFloodlightModule
and launching it without the -cf option.
creating a custom configuration file
As of now, FlowVisor is required to create custom configuration files. This takes four steps:
- configure the desired policies using
dpctl
against a running FlowVisor - dump the configurations to file using
dpctl dumpConfig <filename>
- edit the configuration file: add each module to be isolated to a slice, with "modules" as the key and the fully qualified name of the module as the value. The value "none" may be used for a slice not associated with any modules. For example, the following isolates the Forwarding module in a slice named "fl-1":
... "Slice": [ ... { "config_name": "default", "flowmap_type": "federated", "name": "fl-1", "creator": "fvadmin", "passwd_crypt": "a3b88aa4453124c025c39938fb89d3cb", "passwd_salt": "-1847302276", "controller_hostname": "localhost", "controller_port": 6634, "modules": "net.floodlightcontroller.forwarding.Forwarding", "contact_email": "foo@sampledomain.org", "drop_policy": "exact", "lldp_spam": true }, ...
- edit flowvisor.properties to point FVProxyProvider to the new configuration file. The path should be relative to the Floodlight working directory:
net.floodlightcontroller.core.FVProxyProvider.configfile = /src/main/resources/config.json
Unless already there, the modules added to the config file should also be added to flowvisor.properties.