*rename module from Openflow to OpenFlow
*add match_conn function to convert conn_id to openflow match
*add a few things back into the openflow records like... table_id
*and - a test
The API now does not follow the openflow specification quite as closely,
however I think it is much more usable. Furthermore, the Ryu plugin was
basically completely rewritten and is now more usable for general flow
manipulation.
This also adds a debug mode that just outputs the json fragments that
would be sent to ryu. At the moment, Ryu still assumes that every
request that it receives succeeds - it is not possible to get an error
message from the controller. Instead, one has to check if a flow was
added by doing a second REST request. Which seems unnecessary, and also
requires complete json parsing functionality. Hence we are not doing
that at the moment.
The alternative would be to use an external script for the actual
add-and-check-operation.
The openflow framework now supports multiple
controllers. The design now looks a bit object
oriented and a new() function creates a controller
record.
Moved the JSON script from the JSON namespace into a
openflow specific OpenflowJSON namespace
Added a function to receive status from the switch through the
openflow controller. (not yet implemented anywhere)
The flow_mod and flow_stats function now have default values which
report that the function is not implemented when they're called but
no plugin has registered its functions for them.
the openflow framework does now use events to signal
the success or failure of openflow commands, further
the reporter framework is used to log errors.
added bro unique cookie, so the framework can recognize
which flows it installed and which not.
documented all of the code.
the code style should now me more like the rest of the
bro code.