Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Indigo Virtual Switch
C Python Shell Other
branch: master

This branch is 954 commits behind floodlight:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
.hooks
Modules
build
debian
indigo @ 9e7b844
luajit-2.0 @ 21af151
openvswitch
targets
.abat-automerge
.gitignore
.gitmodules
INTERNALS.md
LICENSE
Makefile
README.md

README.md

Indigo Virtual Switch

Introduction

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,

This README contains documentation to help you get started using IVS. For full documentation, see the IVS pages at Project Floodlight.

Building IVS

  1. Install required dependencies:

    • Ubuntu 11.10: sudo apt-get install libnl3-dev pkg-config python-tz libpcap-dev openvswitch-datapath-dkms
    • Ubuntu 12.04: sudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev pkg-config python-tz libpcap-dev openvswitch-datapath-dkms
  2. Clone the IVS repository: git clone --recurse-submodules https://github.com/floodlight/ivs.git

  3. cd ivs

  4. Compile IVS: make

  5. The IVS daemon and ivs-ctl utility will be written to targets/ivs/build/gcc-local/bin/ivs and targets/ivs-ctl/build/gcc-local/bin/ivs-ctl respectively. They can be run directly from the build directory.

Building Debian Packages

Packaging, including init scripts, is available for Debian-based distributions in the debian directory. If using git we recommend git-buildpackage.

When building packages for multiple architectures and distributions we use the build/build-debian-packages.sh script. This script uses the cowbuilder package to create a chroot for the target distribution and build the package inside it. The SUITE and ARCH environment variables are used to determine the target distribution. For example:

SUITE=oneiric ARCH=i386 ./build/build-debian-packages.sh

Usage

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.

The openvswitch kernel module must be loaded: modprobe openvswitch.

Now you just need to 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 man page for more details.

Contributing

Please fork the repository on GitHub and open a pull request.

You might be interested in the INTERNALS.md document in this repository which describes the layout of the source code and includes other details relevant to developers.

Something went wrong with that request. Please try again.