On Fri, Mar 09, 2018 at 10:54:01AM +0800, Xiao Liang wrote:
> Add ovs-ofproxy to enable tools like ovs-ofctl to work with non-OVS
> switches which don't support controller-initiated connection.
> The proxy listens for switches connection, opens a unix socket on behalf of
> each switch.
>
> Example:
> Start proxy
> $ ovs-ofproxy -O OpenFlow13 ptcp:6653
> After switch is connected, use ovs-ofctl:
> $ ovs-ofctl -O Openflow13 show unix:/var/run/openvswitch/tcp:...
> (see log of proxy for the socket path)
>
> Signed-off-by: Xiao Liang <[email protected]>
I suggest adding some tests. If you do some work, you might be able to
get the existing testsuite to use ovs-ofproxy for all of its existing
ovs-ofctl calls, and thereby get some decent coverage. For example:
* Make ovs-ofproxy able to take an active connection method as
its argument (yes, that's a bit silly but bear with me). I
didn't check, maybe it already supports this.
* Make ovs-ofproxy able to run a subprocess.
* Use an appropriate shell function to substitute for ovs-ofctl.
It would need to parse options, etc., to pass the right -O to
ovs-ofproxy and get the right connection method, but short of
that this is the idea:
ovs-ofctl() {
remote=$1; shift
ovs-ofproxy "$remote" --listen punix:$$.sock --run ovs-ofctl $$.sock "$@"
}
Another way would be to make ovs-ofctl able to fork a ovs-ofproxy
subprocess internally (either literally fork/exec or just fork or
pthread_create() and then use ovs-ofproxy as a library) if you give it a
passive connection method. That actually seems simpler.
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev