wiki:Internal/OpenFlow/Controllers/BigSwitch

Version 3 (modified by akoshibe, 9 years ago) (diff)

--

The Big Switch Controller

This page describes the controller by Big Switch Networks. The controller uses a REST API that leverages HTTP control messages to let an admin manipulate flows.

Installation/Setup?

The controller may be reached from ofc, accessible as user native, password native101 from orbit-lab.org. The controller is a KVM guest currently named bigswitchcontroller-110405. You can confirm this through virsh:

native@ofc:~$ sudo virsh --connect qemu:///system
[sudo] password for native:
Welcome to virsh, the virtualization interactive terminal.

Type:  'help' for help with commands
       'quit' to quit


virsh # list
 Id Name                 State
----------------------------------
  1 pfc                  running
  7 bigswitchcontroller-110405 running
  8 PLCF8                running

BigOS CLI

This is the main interface to the Big Switch controller. From here, you can query for various information, such as controller state and the switches connected to it.

Logging in

From gw.orbit-lab.org, ssh to kvm-big as user admin, password native101. You should see something like below:

~$ ssh kvm-big -l admin
admin@kvm-big's password: 
Last login: Sat Feb 12 07:19:47 2011 from 10.50.0.12
BigShell (bigsh) v0.1 (c) by Big Switch Networks.
default controller is: 127.0.0.1:8000
172.16.0.14> 

The caret is the prompt for the CLI, which follows syntax similar to Cisco IOS. To see available commands, just type "?". For example, to see the list of OpenFlow switches connected to the controller, type show switch:

172.16.0.14> show switch
Switch DPID             Active Last Connect Time   IP Address   Socket Address      Max Packets Max Tables
-----------------------|------|-------------------|------------|-------------------|-----------|----------
00:00:00:00:00:00:00:01 True   2011-02-14 02:25:53 172.16.0.241 /172.16.0.241:52683 256         3         
00:00:00:10:10:20:32:30 False  2011-02-09 07:36:59 172.16.0.253 /172.16.0.253:63202 256         2         
00:00:00:10:10:22:32:32 True   2011-02-14 02:25:30 172.16.0.253 /172.16.0.253:62957 256         2         
00:00:00:10:10:24:32:34 True   2011-02-10 15:56:57 172.16.0.4   /172.16.0.4:59345   256         2  

More information on each switch can be found by context switch to the DPID's of the switches:

172.16.0.14> show switch 00:00:00:10:10:22:32:32 desc
Serial # Vendor          Make                       Model    SW Version
--------|---------------|--------------------------|--------|----------
None     NEC Corporation Reference Userspace Switch sw-sb-01           

Here, we have switched to the context of a switch whose DPID is 00:00:00:10:10:22:32:32, in order to look up general information about it.

The REST API

Flow manipulation is done by logging onto the controller, entering debug mode, and issuing HTTP control messages (e.g. PUT, GET, DELETE) using curl. Here we'll describe how to use the REST API through an example based on the REST documents (linked at the bottom of the page) and e-mail exchanges.

Some prep work

  1. Enter debug mode. In order to use the REST API, you must be at the Linux shell. Type "debug bash" to switch out of the CLI.
    172.16.0.14> debug bash
    
    ***** Warning: this is a debug command - use caution! *****
    ***** Type "exit" or Ctrl-D to return to the BigOS CLI *****
    
    bsn@bigswitchcontroller:~$ 
    
  2. open port 8000. Allow connections to port 8000 with the command sudo ufw allow 8000. You'll be using this port to talk to the controller using curl.

Attachments (1)

Download all attachments as: .zip