Industrial Scale Software Defined IXPs (iSDX)
Python JavaScript CSS PLpgSQL HTML Shell Other
Latest commit d1e4c89 Nov 1, 2016 @rporter1 rporter1 Merge branch 'master' into develop-unstable

Industry Scale SDX Controller (iSDX)

Installation: Vagrant Setup


To get started install these softwares on your host machine:

  1. Install Vagrant, it is a wrapper around virtualization softwares like VirtualBox, VMWare etc.:

  2. Install VirtualBox, this would be your VM provider:

  3. Install Git, it is a distributed version control system:

  4. Install X Server and SSH capable terminal

    • For Windows install Xming and Putty.
    • For MAC OS install XQuartz and (builtin)
    • Linux comes pre-installed with X server and Gnome terminal + SSH (buitlin)


  • Clone the iSDX repository from Github:
$ git clone
  • Change the directory to iSDX:
$ cd iSDX
  • Now run the vagrant up command. This will read the Vagrantfile from the current directory and provision the VM accordingly:
$ vagrant up

The provisioning scripts will install all the required software (and their dependencies) to run the SDX demo. Specifically it will install:


Run the different setups provided in the examples directory. Check out the test-ms example for a simple case with three IXP participants. Or, look at the test directory to experiment with the testing framework.

Directory Structure

The top level directories are:

  • Source code:
    • pctrl - Participant Controller component
    • xctrl - Central Controller component (runs at startup to load initial switch rules)
    • arproxy - ARP Relay component
    • xrs - BGP Relay component
    • flanc - Fabric Manager component (a.k.a. 'refmon')
    • util - Common code
  • examples - Working examples
  • test - Test Framework and example tests
  • visualization - Tools for visualizing iSDX flows
  • setup - Scripts run from the Vagrantfile when the VM is created
  • bin - Utility scripts

Running iSDX with Hardware Switches

Most of the examples on this site use Mininet as the underlying network.

Here is an example of iSDX running on hardware switches.