FlowVisor run

From OpenFlow Wiki

Jump to: navigation, search

Contents

This page has been moved to http://openflow.stanford.edu/display/flowvisor/fv_deploy and exists here for historical purposes only.

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.

Debian/Ubuntu

  1. Add deb http://openflow.org/downloads/GENI/DEB unstable/binary-$(ARCH)/ to your /etc/sources.list
  2. sudo apt-get update
  3. sudo apt-get install flowvisor

Install from Source

Install ant and java in order to build flowvisor:

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

Now build it:

make CFLAGS="-I/usr/lib/jvm/java-6-sun/include -I/usr/lib/jvm/java-6-sun/include/linux"

(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):

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:

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

Updating from Source

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

cd $flowvisor_src_dir
make clean
git pull --rebase
make CFLAGS="-I/usr/lib/jvm/java-6-sun/include -I/usr/lib/jvm/java-6-sun/include/linux"

If the build ends with BUILD SUCCESSFUL then install flowvisor again as above.

FlowVisor Configuration

This version of flowvisor uses an XML configuration file. In our installation, this file lives in /usr/local/etc/flowvisor/flowvisor-config.xml and should not be hand-edited.

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 our environment. In order to make the required changes, flowvisor must be running. Example invocation is:

/usr/local/sbin/flowvisor /usr/local/etc/flowvisor/flowvisor-config.xml

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

 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:

fvctl --passwd-file=/root/.fvp createSlice production tcp:yourhost.com:6633 slice-email@yourhost.com
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:

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.

Credits

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