Indigo - Open Source OpenFlow Switches - First Generation

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.

This site contains the First Generation implementation which is no longer supported. For the most recent supported version of Indigo, please go to the Indigo Page on Project Floodlight.

What is Indigo - First Generation?


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/Pica8 3290 - A 48x1Gb+4x10Gb system based on the BRCM 56534 Chip
  • Pronto/Pica8 3780 - A 48x10Gb system based on the BRCM 56840 Chip
  • Deprecated: Pronto 3240 - A 48x1Gb+4x10Gb system based on the BRCM 56514 Chip (EOL'd)
  • Netgear GSM7328SO - A 24x1Gb + 4x10Gb/s switch
  • Netgear GSM7352SO - 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.

Latest threads from the Forum