[ovs-discuss] [ovs-dev] Passive openflow proxy

Ben Pfaff blp at ovn.org
Thu Mar 8 17:30:00 UTC 2018

On Thu, Mar 08, 2018 at 07:51:23PM +0800, Xiao Liang wrote:
> In my experience, one thing I feel inconvenient is that some switches
> don't support controller-initiated connections. It would be helpful
> for testing and debugging if ovs-ofctl could be used.
> I'd propose an openflow proxy which is responsible for accepting and
> maintaining connections from switches, opening sockets for controllers
> to connect, and proxy messages between them. So that openflow tools
> like ovs-ofctl can operate on these switches.
> Another approach might be adding a "passive mode" to ovs-ofctl, which
> listens for connections, and opens an interactive shell to run
> commands.

I guess that this is a problem with non-OVS switches?  OVS does support
controller-initiated connections.

The proxy that you describe is going to be difficult to write because to
be most useful it would have to multiplex multiple connections into a
single connection.  OpenFlow connections are not stateless, so it would
have to figure out how to effectively partition the desires of multiple
clients into a single session.  I haven't thought through all the
necessary logic, but it would not be trivial.

I think that the ovs-ofctl passive mode that you describe is similar in
practice to writing a proxy: probably, it would internally start a proxy
and then allow the user to access it.  It might be easiest to actually
implement it as a mode for the proxy that starts a subshell.

I think that this is a worthy project, for someone for whom support for
non-OVS switches is important, and I'd encourage a motivated developer
to work on it.

More information about the discuss mailing list