Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

Install from Binaries

As of right now, we only have binary support for 32-bit Debian and Ubuntu based distributions. If you have a distribution you want supported, or better yet, want to support a new distribution, please send us mail. Note: User flowvisor must exist.

Code Block
# Add deb unstable/binary-$(ARCH)/ to your /etc/apt/sources.list
# sudo apt-get update
# sudo apt-get install flowvisor

Install from Source

Install ant and java in order to build flowvisor:

Code Block
apt-get -y install ant sun-java6-jdk

Fetch the source:

Code Block
hg clone
hg update -C 0.8-MAINT

Now, build it:

Code Block

(FlowVisor also works with openjdk, but you will have to adjust the commands accordingly)

If the build ends with BUILD SUCCESSFUL then install flowvisor (run as root if installing to /usr/local):

Code Block
make install

When prompted, set the prefix to /usr/local and the user/group to the user/group you want the flowvisor to run as. Next, generate a default configuration file with:

Code Block
fvconfig generate /usr/local/etc/flowvisor/flowvisor-config.json
# (optionally) store the root password in /root/.fvp

Updating from Source

Now and then, fixes will be applied to the mercurial repository, and we will want to install them. In order to get the latest and greatest, do the following:

Code Block
cd $flowvisor_src_dir
make clean
hg pull 
hg update

If the build ends with BUILD SUCCESSFUL then install flowvisor again. If you would like to keep your config then simply run:

Code Block
make install

This will leave the previous existing config file and database (if any) intact.

If you would like a completely fresh install, run:

Code Block
rm <path_to_fv_install>/etc/flowvisor/config.json
make install

This will completely wipe out any existing configuration and restore a default setup. So you may want to backup your config.

(If you have not yet updated to 0.8.3) Updating configuration file

This section only applies if you have not yet updated to version 0.8.3 and/or you have not done a fresh install where you generated a json config file.

To run flowvisor 0.8.3 and above you will need to convert your config file from xml to json. Luckily, we have made this easy for you. Once FlowVisor is installed, simply run:

Code Block
fvconfig convert config.xml

This will convert you config.xml to json by creating a new file, config.json.

FlowVisor Configuration

This version of flowvisor uses an JSON configuration file. In our installation, this file lives in /usr/local/etc/flowvisor/flowvisor-config.json and can be hand-edited, but it is recommended to edit it using fvctl as described below.

The initial config file generated with the flowvisor package contains some sample slices and flow definitions. These must be removed before flowvisor can be used in your environment. In order to make the required changes, flowvisor must be running. Example invocation is:

Code Block
/usr/local/sbin/flowvisor /usr/local/etc/flowvisor/flowvisor-config.json

Then, give the following commands (deleting slices implicitly deletes the rules associated with them):

Code Block
fvctl --passwd-file=/root/.fvp  deleteSlice alice
fvctl --passwd-file=/root/.fvp  deleteSlice bob

You can now define a fall-back "production" slice that will catch all flows from all switches that are not handled by higher-priority flowspace definitions. Again, in the second window on the flowvisor machine, give the following commands:

Code Block
fvctl --passwd-file=/root/.fvp createSlice production
fvctl --passwd-file=/root/.fvp addFlowSpace any 10 any "Slice:production=4"

Creating an Expedient-friendly mySSLKeyStore

The Expedient aggregate manager needs a correctly built mySSLKeyStore file in the flowvisor configuration directory. To build this file, do the following:

Code Block
cd /usr/local/etc/flowvisor
fvconfig generateCert

fvconfig generateCert will use the store password set in /usr/local/etc/flowvisor/envs and the output of hostname as the cert's common name. See man fvconfig for more details.


These instructions were heavily based on instructions from Chris Tengi from Princeton. Thanks Chris!