- Make NewRouteFlow become RouteFlow by replacing everything in master.
  This is bad practice, and it was done instead of a proper merge for the
  following reasons:
  - NewRouteFlow was already created with this bad practice because we started
    the development in a separate internal repository
  - We wanted to get rid of lots of unnecessary data commited to NewRouteFlow
    during testing
  - Anything we consider worth looking for is already in the master branch
  The NewRouteFlow branch will eventually be deleted.
jsonstats: Adds "JSONStats" component

JSONStats acts as a proxy for OpenFlow requests. It accepts JSON-formatted
messages and sends the equivalent request to connected datapaths, then relays
the replies back in JSON.

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
Finalized new RFServer and algorithm implementation.
Other changes:
- A standard implementation of RFProxy in NOX and POX
- RFProxy no longer accesses RFTable. The associations are communicated by
  RFServer
- Configuration is kept in the database (it will be editable in the future)
- Minor improvements in RFClient, many more to come.
- Lots and lots of code cleanups
Delete datapaths from association table in RFProxy to avoid sending packets to
datapaths that are disconnected. This is not the ideal approach, in the future
it will be better to have RFServer instruct RFProxy to delete the entries.
nox/rfproxy: Whitespace fixes
nox/rfproxy: Fix ID output formatting on 64-bit
Support for multiple controllers.
Make rftests work again. There's no test showing the multicontroller setup yet.
nox/rfproxy: Add new OpenFlow interface

This patch adds rfproxy/OFInterface.{cc,hh} to construct OpenFlow
FlowMod structures using the controller's API. Currently this means
interfacing with rfofmsg.

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox/rfproxy: Add support for RouteMod

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
rflib: Add DatapathConfig-specific Match Types

- Added support for ETHERTYPE, NW_PROTO, TP_SRC, TP_DST Match Types
- Added Action.CONTROLLER() action-constructor in python

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
rflib: Move rfofmsg.{h,cc} into NOX source

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox/rfproxy: Remove IPC FlowMod messages

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
rflib: Remove IPC RouteInfo,FlowMod messages

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox/rfproxy: Remove IPC DatapathConfig messages

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox/rfofmsg: Remove redundant code

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
rfofmsg: Reduce C++ implementation to C

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox/rfproxy: Improve packet_in code formatting

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
nox: Improve thread-safety for sending OF messages

NOX was not allowing us to send OpenFlow messages in a thread-safe
manner. This patch adds guards around the code that sends OpenFlow
messages to datapaths.

Signed-off-by: Joe Stringer <joestringernz@gmail.com>
rfproxy: Support RFMT_IN_PORT

Signed-off-by: Joe Stringer <joestringernz@gmail.com>