Giter VIP home page Giter VIP logo

ivs's Introduction

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 14.04: sudo apt-get install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev pkg-config python-tz libpcap-dev libcap2-dev
  • CentOS 7: sudo yum groupinstall 'Development Tools' && sudo yum install libnl3-devel libcap-devel
  1. Clone the IVS repository: git clone --recurse-submodules https://github.com/floodlight/ivs.git

    • NOTE that if you did not use clone with the "--recursive-submodules" option, you can fix this by running cd ivs && git submodule update --recursive --init
  2. cd ivs

  3. Compile IVS: make

  4. 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.

The script build/build-debian-packages.sh uses Docker to build packages for Ubuntu 14.04.

Building CentOS/RHEL packages

Packaging, including init scripts, is available for Red Hat-based distributions in the rhel directory.

The script build/build-rhel-packages.sh uses Docker to build packages for CentOS 7.

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.

ivs's People

Contributors

ducwindow avatar harshsin avatar ihiroakikawai avatar nbastin avatar rlane avatar sovietaced avatar srini084 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.