Installation Guide
Overview
Indigo Virtual Switch (IVS) is a pure OpenFlow virtual switch designed for high performance and minimal administration. It is built on the Indigo platform, which provides a common core for many physical and virtual switches.
Topology
IVS is used only as an edge switch. Zero or more uplink ports may be connected. IVS requires an out-of-band management interface for the OpenFlow control channel. IVS supports flow-based GRE tunnels, and these tunnels must run over interfaces not connected to IVS.
Prerequisites
Ubuntu 11.10
sudo apt-get install libnl3-dev pkg-config python-tz libpcap-dev
Ubuntu 12.04
sudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev pkg-config python-tz libpcap-dev
Get the Code
Download most recent release 0.3
curl https://github.com/floodlight/ivs/archive/branch-0.3.zip > ivs-0.3.zip unzip ivs-0.3.zip
Download nightly (unstable)
curl https://github.com/floodlight/ivs/archive/master.zip > ivs-unstable.zip unzip ivs-unstable.zip
Build and Install
cd ivs make
The IVS daemon and ivs-ctl utility will be written to
targets/ivs/build/gcc-local/bin/ivs targets/ivs-ctl/build/gcc-local/bin/ivs-ctl
Copy it to the sbin directory
sudo cp targets/ivs/build/gcc-local/bin/ivs targets/ivs-ctl/build/gcc-local/bin/ivs-ctl /usr/sbin
Running IVS
Controller configuration
You'll need an OpenFlow controller to use IVS. We suggest Floodlight, which should work out of the box. Follow your controller's instructions to get it running and note down its IP address.
Run the IVS daemon
You'll need to tell it the IP address of the controller (-c) and the initial set of network interfaces to connect (-i). Here's an example command line:
sudo ivs -c 192.168.1.10 -i eth1 -i eth2
IVS will immediately begin communicating with the controller and, depending on your controller's configuration, forwarding traffic between eth1 and eth2.
ivs-ctl add-port
and
ivs-ctl del-port
can be used to add and remove ports at runtime (for example, this is used by hypervisors when a VM is started). See the ivs-ctl reference for more more details.