Welcome to Trema
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.
Prerequisites
- Ruby 2.0.0 or higher (RVM).
-
Open vSwitch (
apt-get install openvswitch-switch
).
Documentation
See https://relishapp.com/trema/trema/docs for links to documentation for all APIs.
Sample Code
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
Contributors
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
License
Trema is released under the GNU General Public License version 2.0 or MIT License: