Skip to content

rrdenicol/of12softswitch

 
 

Repository files navigation

OpenFlow 1.2 Software Switch
----------------------------

This is an OpenFlow 1.2 [1] compatible user-space software switch implementation.
The code is based on the Ericsson TrafficLab 1.1 softswitch implementation [2], with
changes in the forwarding plane to support OpenFlow 1.2.

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.2 wire format
  - dpctl:      a tool for configuring the switch from the console

[1] https://www.opennetworking.org/images/stories/downloads/openflow/openflow-spec-v1.2.pdf
[2] https://github.com/TrafficLab/of11softswitch


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

Dependencies
============

In order to compile the switch your 
system must have the following libraries

Libpcap 
# sudo apt-get install libpcap
# sudo apt-get install libpcap-dev
----------------------------------------
Xerces-C version 2.8.0
# sudo apt-get install libxerces-c28
# sudo apt-get install libxerces-c2-dev
----------------------------------------
libpcre
# sudo apt-get install libpcre3
# sudo apt-get install libpcre3-dev
----------------------------------------
A recent version of flex and bison
# sudo apt-get install flex
# sudo apt-get install bison

Pre-Building
============

You should follow this steps before building 

1 - Add the shared libraries present in netbee-dev to 
your /usr/local/lib directory. You should have root 
permission to do this.
# mv libn*.so /usr/local/lib

2 - Run ldconfig
# ldconfig  

3 - Put the folder netbee-dev/nbee in the /usr/include
# mv -r netbee-dev/nbee /usr/include



Building
========

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

    ./boot.sh
    ./configure
    make

Running
=======

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.

Contribute
----------

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


License
-------

OpenFlow 1.2 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: Eder Leao Fernandes (ederlf@cpqd.com.br)
        

About

OpenFlow 1.2 Softswitch

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 90.3%
  • C++ 8.7%
  • Other 1.0%