Versions Compared

Key

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

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.

Prerequisites

Ubuntu 11.10

Code Block

sudo apt-get install libnl3-dev pkg-config python-tz libpcap-dev openvswitch-datapath-dkms

Ubuntu 12.04

Code Block

sudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev pkg-config python-tz libpcap-dev openvswitch-datapath-dkms

Get the Code

Download most recent release 0.3

Code Block

curl https://github.com/floodlight/ivs/archive/branch-0.3.zip > ivs-0.3.zip
unzip ivs-0.3.zip

Download nightly (unstable)

Code Block

curl https://github.com/floodlight/ivs/archive/master.zip > ivs-unstable.zip
unzip ivs-unstable.zip

Build and Install

Code Block

cd ivs
make

The IVS daemon and ivs-ctl utility will be written to

Code Block

targets/ivs/build/gcc-local/bin/ivs
targets/ivs-ctl/build/gcc-local/bin/ivs-ctl

Copy it to the sbin directory

Code Block

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.

Kernel Module

The openvswitch kernel module must be loaded:

Code Block

modprobe openvswitch

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:

Code Block

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.

Code Block
ivs-ctl add-port

and

Code Block
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.