Indigo 1.0 Overview


Table of Contents

Overview

This document provides an overview of Indigo-1.0 across various releases. This document is generic across all platforms that run Indigo. Configuration on these different platforms varies significantly, so consult the platform specific document for additional information.

Prerequisites

This document assumes you have some familiarity with the OpenFlow protocol.  See http://openflow.org for more information.

Prehistory

For release notes from alpha and beta releases, please go to http://www.openflowswitch.org/wk/index.php/IndigoReleaseNotes.

Indigo Features

Indigo is a pure OpenFlow 1.0 implementation.  As a result it does not provide many of the usual L2 and L3 functions and features available in commercial switches. For example, Indigo does not implement Spanning Tree and VLAN configuration is trivial (see below).
Over time, some of these features may be added depending on demand, but the expectation is that the OpenFlow controller is where these features will be implemented.

As a result of this, Indigo switches really require a connection to a controller and cannot be expected to provide significant functionality in the event of the failure of this connection.

VLANs

Indigo is "VLAN agnostic" in the sense that it does not provide VLAN configuration. VLAN policy is expected to be implemented in the controller.

  • One VLAN is reserved as the system's untagged VLAN
  • Incoming untagged packets are mapped to this VLAN; if no other VLAN operations are carried out on the packet, it will exit the switch untagged.
  • All other VLANs are created and all ports are added as "tagged" ports. This is because there is no other VLAN configuration mechanism so the switch cannot know what a wildcarded VLAN may mean.

Despite these limitations, normal VLAN switch behavior can be implemented on the controller.

Contacting the OpenFlow Controller

There are two mechanisms for configuring communications to the OpenFlow controller.

  • For Quanta/Pronto systems and Broadcom reference designs, the preferred method is to use the management Ethernet interface which provides a direct interface to the CPU subsystem without going through the hardware switching plane.
  • Netgear platforms require using a front panel port for communicating to the controller. Thus, they require the hardware switching plane to be properly configured. Currently this port must be dedicated for controller communications and cannot be shared with other dataplane switching. See the Netgear Indigo documentation for additional information.

User Interface

Up through the Indigo-1.0-beta-4 release, the user interface to Indigo switches was very limited and difficult to use. With the release of (TBD) Indigo-1.0, the switch CLI user interface has been redesigned and simplified. The web interface continues to be supported.

In addition to a better user interface, the initialization and configuration mechanisms have been simplified and include better support for saving persistent configuration.

Initialization and Configuration

The following diagram gives an overview of the initialization sequence for the Indigo platform.

Initialization and configuration are now described in more detail in the document Indigo Initialization and Configuration.

Platforms

Indigo runs on a variety of Broadcom based switches including:

  • Quanta LB9A/Pronto 3290 (48 GE ports + 4 x 10GE ports, more flows and features than the 3240)
  • Quanta LB8/Pronto 3780 (48 x 10GE ports)
  • Quanta LB4G/Pronto 3240 (48 GE ports + 4 x 10GE ports) (Deprecated)
  • Netgear GSM7328S and GSM7352S (24 and 48 GE port systems with 4 x 10GE ports)
  • Some Broadcom reference designs

License Information

The Linux kernel code for the Pronto 3290 is based on version 2.6.27 and is released under GPLv2.

The Linux kernel code for the LB4G is based on version 2.6.15 and is released under GPLv2.

The Linux kernel code for the Broadcom reference designs is based on version 2.6.25 and is released under GPLv2.

U-Boot is based on version 1.1.6 (1.3.0 for the Pronto 3290) and is released under the GPLv2. It is available at http://www.denx.de/wiki/U-Boot. Patches from Quanta have been applied and are available from Stanford.

Busybox is version 1.4.2 and is released under the GPLv2. It is available at http://busybox.net/downloads/.

Dropbear is version 0.52; see the accompanying file in licenses/dropbear for additional information.

The OpenFlow code is covered by the OpenFlow license detailed at http://www.openflow.org/wp/legal/. It is available at http://www.openflow.org/.

The ofswd executable (the OpenFlow switch daemon) is released as a binary-only file under the following EULA (TBD).