Mock Up

Indigo is an open source OpenFlow implementation that runs on physical switches and uses the hardware features of Ethernet switch ASICs to run OpenFlow at line rates. It is based on the OpenFlow Reference Implementation from Stanford and currently implements all required features of the OpenFlow 1.0 standard.

What is Indigo


Indigo is an open source project to support OpenFlow on a range of physical switches. By leveraging hardware features of Ethernet switch ASICs, Indigo supports high rates for high port counts, up to 48 10-gigabit ports. Multiple gigabit platforms with 10-gigabit uplinks are also supported. These exceed the limits of NetFPGA or pure-software OpenFlow implementations. Indigo firmware is actively used in many campus deployments (at Stanford and several other schools), in at least one OpenFlow startup, a 20-switch conference network deployment and a 32-switch data center deployment. The current release is based on the OpenFlow Reference Implementation from Stanford and currently implements all OpenFlow 1.0 features.

The Indigo software distribution is available in two ways:

  • As pre-built firmware images (recommended for starting users)
  • As a source distribution in a VM (recommended for advanced users)

Indigo supports multiple user interfaces including both a web-based configuration UI and a CLI accessible via telnet or ssh. These interfaces allow the configuration of the control interface (including behavior when the controller connection is lost) and monitoring of the ports and flow table.

More advanced users can download the Indigo Open Development System (IODS), a source release of the Indigo software. Users can modify the web server, command-line interface, some OpenFlow processing logic, and even add additional programs. IODS enables extensions in both C and Lua (a Python-like scripting language). The CLI and backend of the on-board web server are written in Lua and can be modified by the user.

Download Indigo

Latest Documentation

Supported Platforms

Indigo runs on a number of physical switches using Broadcom including:

  • Pronto 3290 - A 48x1Gb+4x10Gb system based on the BRCM 56534 Chip
  • Pronto 3780 - A 48x10Gb system based on the BRCM 56820 Chip
  • Pronto 3240/Quanta LB4G - A 48x1Gb+4x10Gb system based on the BRCM 56514 Chip (EOL'd)
  • Netgear GSM7328 - A 24x1Gb + 4x10Gb/s switch
  • Netgear GSM7352 - A 48x1Gb + 4x10Gb/s switch
  • Select Broadcom reference designs using XGS chipsets.

It has been successfully ported to other Broadcom based platforms.

Using Indigo

To use Indigo, you will need one of the above switches and the Indigo firmware. Reflashing the switches to use Indigo may require special hardware, please check out the detailed information for each switch before attempting to use them for OpenFlow. Here are some documents available on using Indigo.

Support

Compiling Indigo from the Source

See the IODS documentation above for more information about the Indigo Open Development System.

The source code for Indigo is available under a BSD style license, however we can only make the hardware specific parts of the source code available to parties that are under NDA with Broadcom and have access to the Broadcom SDK.

Latest threads from the Forum