Skip to content

TrafficLab/of11softswitch

Repository files navigation

OpenFlow 1.1 Software Switch
----------------------------

This is an OpenFlow 1.1 [1] compatible user-space software switch implementation.
The code is based on the original Stanford 1.0.0 reference switch [2], with
the forwarding plane being completely rewritten to support OpenFlow 1.1.
The implementation is feature-complete, and passes the available oftest 1.1
test cases [3].

The following components are available in the release:
  - ofdatapath: the switch implementation
  - ofprotocol: secure channel for connecting the switch to the controller
  - oflib:      a library for converting to/from 1.1 wire format
  - dpctl:      a tool for configuring the switch from the console

[1] http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf
[2] http://yuba.stanford.edu/git/gitweb.cgi?p=openflow.git;a=tree;h=7f09f6a88d86883b516c99eb4058402eb07e5fd0;hb=d90824f0e8c3b6606d04e5a8813f03e89a6d0894
[3] https://github.com/TrafficLab/oftest11


Getting Started
---------------

To build, run the following commands in the of11softswitch directory:

    ./boot.sh
    ./configure
    make


To start the datapath, run the following commands:

    cd udatapath
    sudo ./ofdatapath --datapath-id=<dpid> --interfaces=<if-list> ptcp:<port>

This will start the datapath, with the given datapath id, and interace list,
opening a passive tcp connection on the given port. For a complete list of
options, use the --help argument.


To start the secure channel, run the following commands:

    cd secchan
    ./ofprotocol tcp:<switch-host>:<switch-port> tcp:<ctrl-host>:<ctrl-port>

This will open tcp connections to both the switch and the controller, relaying
OpenFlow protocol messages between the two. For a complete list of options,
use the --help argument.


You can send requests to the switch using the dpctl utility:

    cd utilities
    ./dpctl tcp:<switch-host>:<switch-port> stats-flow table=0

For a complete list of commands and arguments, use the --help argument, and
consult the dpctl.h file [1].

[1] https://github.com/TrafficLab/of11softswitch/blob/master/utilities/dpctl.h


Contribute
----------

Please submit your bug reports, fixes and suggestions as pull requests on
github, or by contacting us directly.


License
-------

OpenFlow 1.1 Software Switch is released under the BSD license (BSD-like
for code from the original Stanford switch).


References
----------

[1] OpenFlow: http://www.openflow.org/
[2] ONF:      http://www.opennetworkingfoundation.org/


Contact
-------

E-mail: Zoltan Lajos Kis ([email protected])

Wiki:   https://openflow.stanford.edu/display/of11softswitch
Repo:   https://github.com/TrafficLab/of11softswitch