Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
FlowER - a Erlang OpenFlow development platform
branch: master

Update licensing to use a explicit MIT license file

- Don't track .app file
- Add MIT license file
- Remove license header from source files, replaced by explicit license file

Test Plan: Read

Reviewers: aschultz, hsychla, wfailla

Reviewed By: wfailla

CC: druss

Differential Revision:
latest commit d783d8f722
Tino Breddin authored
Failed to load latest commit information.
ebin Update licensing to use a explicit MIT license file
include use OFP_NO_BUFFER in all places, also stop misuse of -1 for buffer_id
src Update licensing to use a explicit MIT license file
test add rofl experimenter extension and rename vendor to experimenter
.arcconfig add arcanist config
MIT-LICENSE.txt Update licensing to use a explicit MIT license file some documentation fixes.

FlowER - a Erlang OpenFlow development platform

FlowER is a framework and a set of helper libraries to develop OpenFlow controllers in Erlang.


FlowER is build for deployment model that packages each Erlang application either as RPM or DEB package. Dependency resolution is done at install time and at build time to the package management tools. For manual building, the required dependencies therefore have to be installed manually.


Build Tool:

Support Appplications:


Run tetrapak build:

$ tetrapak build
== tetrapak:boot =================
Compiling tetrapak/flower_run.erl
== build:erlang ==================
Compiling src/flower_component_sup.erl
Compiling src/flower_app.erl
Compiling src/flower_datapath.erl
Compiling src/flower_icmp.erl
Compiling src/flower_datapath_sup.erl
Compiling src/flower_event.erl
Compiling src/lrulist.erl
Compiling src/flower_match.erl
Compiling src/flower_arp.erl
Compiling src/flower_packet.erl
Compiling src/flower_nib4.erl
Compiling src/flower_tcp_socket.erl
Compiling src/flower_tools.erl
Compiling src/flower_simple_switch.erl
Compiling src/flower_mac_learning.erl
Compiling src/flower_dispatcher.erl
Compiling src/flower_flow.erl
Compiling src/flower_sup.erl

Sample Switch

flower_simple_switch is a very basic Layer 2 learning switch. flower_tcp_transport listens for connection from OpenFlow datapath elements on the specified port. (in the following example, *:6633).

Run it like this:

$ erl -pa ebin
Erlang R15B (erts-5.9) [source] [64-bit] [smp:2:2] [async-threads:0] [hipe] [kernel-poll:false]

Eshell V5.9  (abort with ^G)
1> application:start(sasl),
1> application:start(gen_listener_tcp),
1> application:start(regine),
1> application:start(flower).          
2> flower_simple_switch:start_link().
3> flower_tcp_transport:listen(6633,[]).
Something went wrong with that request. Please try again.