Indigo CLI Reference

Table of Contents

Overview

This is a place to accumulate information about the Indigo CLI. It needs to be worked in to a full reference manual

The help command in the CLI provides the most up to date information for the version of software running on the switch.

Running the CLI

The CLI is normally invoked interactively with the command cli. A single CLI command may be run with the cmd command. This is useful as you can use shell pipes. For example:

cmd flowtable | grep 192.168.1.150

A file of CLI commands can be executed with cmd -f <filename>.

Command Line Options

The command line options below require the CLI be invoked from the switch_cli directory.

The commands -e, -f and -b are non-interactive commands.

Option

Explanation

Arguments

Example

Notes

-d

Set debug level

String

cli.lua -d verbose

Options include verbose, vverb, info, warn, error and none; may be abbreviated

-m

Set max port number

Integer

cli.lua -m 24

Used mostly for debugging

-e

Run a command from the command line and exit

String command

cli.lua -e "config show"

Quotes are required around the command

-f

Run commands from a file

String filename

cli.lua -f script

Reads and executes commands in script in non-interactive mode

-b

Run in non-interactively (batch mode)

N/A

cat afile | cli.lua -b 

Turns off inline help, command completion, etc

Command Line Editing

In general, commands can be edited while being entered with arrow or special command keys. Command completion is done with the 'tab' key. Currently command completion The following keys provide editing functions.

Command history is supported up to 100 lines. Empty lines and repeated lines are not stored in history.

key

function

control-a

goto beginning of line

control-c

Terminate CLI with error code

control-d

Quit CLI normally. Only when cursor is at the start of the line

control-e

goto end of line

control-h

delete previous character

control-k

kill to end of line

control-u

kill line

delete

delete previous character

left-arrow

move cursor left one character

right-arrow

move cursor right one character

up-arrow

replace line with next older command from history

down-arrow

replace line with next newer command from history

Command Summary

command

brief description

cli_stat

Show debug information about CLI

config

Show/modify running or saved configuration

cxn_history

Show controller connection history

debug

Set debug level: error, warn, info, verbose, vverb

drvcmd

Run an switch hardware driver command

echo

Echo request to command server

enable

Enter the 'enable' mode (currently no effect on UI)

flowtable

Show the flowtable: brief, extended, full

help

Show help for commands

history

Show command history

lua

Evaluate a lua expression

mgmtstats

Show management statistics

port

Show/set/stats for ports; use -l to indicate only ports with link (show,stats)

ps

Show port info; use -l to indicate only ports with link

quit

Quit the CLI (if supported)

restart

Restart the OpenFlow daemons

shell

Run a shell command

status

Show switch status

version

Show firmware version

Command Parameters

There are two types of command line parameters:

  • Positional parameters
  • Keyword parameters

Positional parameters determine their meaning from their position (first parameter means...) Keyword parameters are usually of the form "keyword=value". Some keyword parameters may not take a value and thus are considered "flags". They typically start with a hyphen, -.

Positional parameters must precede keyword parameters. Positional parameters are ended by:

  • The parsing description specifies no more positional parameters
  • A = occurs after the next token
  • The next token starts with - (indicating a "flag" keyword parameter)
  • End of the line

Examples

SwitchCLI# port set 3 speed=1000 mtu-1600
  • 'set' is a positional parameter, the subcommand.
  • '3' is a positional parameter, the port specification
  • 'speed' and 'mtu' are keyword parameters
SwitchCLI# port show 1-10 -l
  • 'show' is a positional parameter, the subcommand.
  • '1-10' is a positional parameter, the port specification
  • '-l' is a keyword flag parameter
SwitchCLI# ps -l
  • '-l' is a keyword flag parameter; the first positional parameter (port spec) is undefined and, in this case, is given a default value of '*'.

Command Details

cli_stat

Show debug info on CLI

No parameters

config

Show or set configuration parameters

The config command is the primary mechanism for updating the values that determine the initialization sequence of the system. There are a set of known configuration keywords that are documented in the Indigo Initialization and Configuration document. Additional keywords may be added which can be referenced in user generated scripts which source either /etc/find-env or the appropriate sysenv file.

Syntax

config <sub-command> [<variable> [<value>] ]

Examples:

command

notes

config show

Show all variables in saved config

config show dp_mgmt

Show the value of avar in saved config

config running

Show all variables in running config

config set dp_mgmt yes

Set dp_mgmt to yes in saved config

config delete dp_mgmt

Delete dp_mgmt from saved config

Parameters

parameter

notes

1 (Positional)

Subcommand: show, set, running, delete

2 (Positional)

Variable to show, set or delete

Rest of line

For 'set', the rest of the line gives the value to use.

cxn_history

Display controller connection history

debug

Set the system debug level

Parameters

parameter

notes

1 (Positional)

Debug level

drvcmd

Run a switch ASIC driver command

echo

Call the command server with an echo request of line

enable

Enter the enable mode

Note that as of 8/2011, this has no effect (always in enable mode).

flowtable

flowtable [ full | extended ]: Show the flowtable

Parameters

parameter

notes

1 (Positional)

brief, extended or full: How much info to show

help

Show available commands

Examples

command

notes

help

List command names and brief description

help <command>

Show help for command with parameter help

help all

Show all help for all commands with parameter help

history

Show command history

lua

Evaluate a lua expression

mgmtstats

Display the management statistics

port

Show or set port attributes and statistics.

Syntax

port <subcmd> <p-spec> [<set keyword options>]

Examples

command

notes

port show *

Show port attributes

port show * -l

Show attributes of all ports with link

port set 2-4,8,12 speed=1000

Set port attributes

port stats 8,9,15

Show port statistics

Parameters

parameter

notes

1 (Positional)

Subcommand: show, set or stats

2 (Positional)

Port list like * or 1,2,4-8

-l (the letter L)

For show and stats, show only ports with link

autoneg

Enable autoneg, yes or no

duplex

full duplex enabled

enable

Port enable state

mtu

MTU of port in bytes

rx_pause

rx_pause enabled

speed

Port speed in Mb

tx_pause

tx_pause enabled

ps

Show port status

Parameters

parameter

notes

1 (Positional)

Port list like * or 1,2,4-8

-l (the letter L)

Show only ports with link

quit

Quit the CLI (if supported)

restart

Restart the OpenFlow daemons ofprotocol and ofswd, so that any daemon-dependent configuration change will take effect.

shell

Run the remainder of the line as a shell command

status

Display the status of the switch

version

Display the version of the firmware

Limitations

  • Command completion is only supported at the end of a line. Hitting 'tab' when the cursor is in the middle of a line will move the cursor to the end of the line and perform completion on that token.