Trema is an OpenFlow controller programming framework that provides everything needed to create OpenFlow controllers in Ruby. It provides a high-level OpenFlow library and also a network emulator that can create OpenFlow-based networks for testing on your PC. This self-contained environment helps streamlines the entire process of development and testing.
- Ruby 2.0.0 or higher (RVM).
- Open vSwitch (
apt-get install openvswitch-switch
).
See https://relishapp.com/trema/trema/docs for links to documentation for all APIs.
Study sample code for implementation examples of Trema features. Each sample code project is executable source example of how to write a OpenFlow controller using Trema Ruby API.
- trema/hello_trema
- trema/repeater_hub
- trema/patch_panel
- trema/cbench
- trema/learning_switch
- trema/switch_monitor
- trema/simple_router
- trema/topology
- trema/routing_switch
Special thanks to all contributors for submitting patches. A full list of contributors including their patches can be found at:
https://github.com/trema/trema/contributors
Trema is released under the GNU General Public License version 2.0: