User Documentation

Initialization and Configuration

All configuration is given as command line options in /etc/default/ivs. See the ivs CLI section. Any configuration change requires a restart of the switch.

The IVS packaging includes an upstart job. The init script will load the openvswitch kernel module if it isn't already loaded. If the IVS process dies for any reason it will be restarted.

Logging

Log level can be configured as default, verbose, or trace (see ivs CLI). Log levels cannot be adjusted on individual subsystems.

Syslog

When the --syslog command line option is given, as it is in the init scripts, Xenon will send all log messages to syslog instead of stderr. The facility is LOG_DAEMON and program name is "ivs".

Local Logging

Not directly supported. Users may configure their syslog daemon to copy Xenon log messages to a local file. Example configuration for rsyslogd::programname,isequal,"ivs" /var/log/ivs.log

Forwarding Features

Tables

Single table which supports all OpenFlow 1.0 match fields and actions, plus extensions.

Jumbo Frame support

Xenon supports MTU 9000 jumbo frames. This is not configurable. The correct MTU must be configured by the user on the interfaces connected to Xenon.

QoS support

Not supported.

Controller-less forwarding behaviour

The controller-less forwarding behavior is "failed-sticky" mode. When the switch is not connected to the controller, expirations are disabled.  No new flow mods are inserted.  See PAN-97and Fail behavior for an analysis and POR.

Bonding

Xenon does not include any NIC bonding features. The user may configure a bond interface, e.g. by following https://help.ubuntu.com/community/UbuntuBonding, and add that interface to Xenon.

OpenFlow Support

OpenFlow Protocol Version

OpenFlow 1.0 version will be supported using Indigo2 code. Following OpenFlow extensions are included in this implementation.

  1. Nicira role request
  2. Set-tunnel-dst action
  3. Get-interfaces request
  4. Packet-in suppression.

OpenFlow Transport

TCP connection between Switch and Controller is supported in Xenon A release. The TLS connection is not supported.

OpenFlow Controller connection and redundancy

Xenon supports parallel HA using the Nicira role request extension. Multiple controllers may be configured and the switch will connect to all of them.

Statistics

Switch to support OF 1.0 specified port and flow stats.

OVSDB and OF Config

Not supported.

OpenFlow Switch Data

This section details various fields that the switch needs to provide to a controller.

Field

Default Value

User configurable

sw_desc

Indigo 2

no

serial_number

empty

no

mfr_desc

Big Switch Networks

no

hw_desc

ivs 0.3 

no

dpid

autogenerated

yes

dp_desc

host.domain pid pid

no

CLI Reference

Name

ivs - OpenFlow virtual switch daemon

Usage

ivs [OPTION] ...

Options

-v, --verbose                Verbose logging

-t, --trace                  Very verbose logging

-c, --controller=IP:PORT     Connect to a controller at startup

-min                         Set minimal veth configuration at startup (suitable for OFTest).

-L host:port                 Add a listening connection.

-i, --interface=INTERFACE    Attach a network interface at startup
    --dpid=DPID              Set datapath ID (default autogenerated)
    --syslog                 Log to syslog instead of stderr

-h, --help                   Display this help message and exit
    --version                Display version information and exit

Name

ivs-ctl - utility for configuring Indigo Virtual Switch

Usage

ivs-ctl COMMAND [ARG..]

DESCRIPTION

-h, --help                   Display this help message and exit

add-port INTERFACE           Add a port to the datapath

del-port INTERFACE           Remove a port from the datapath

                             Note: INTERFACE argument must be a Linux interface name

add-internal-port            creates a Linux interface connected to the given datapath

                             Note: This interface can have an IP address assigned to it and can generally
                             be used like a  normal net?dev, but traffic to and from it will flow
                             through the datapath.

show                         print information about each datapath

Examples

ivs-ctl help
ivs-ctl show
ivs-ctl add-port DATAPATH INTERFACE
ivs-ctl add-internal-port DATAPATH INTERFACE
ivs-ctl del-port DATAPATH INTERFACE