Following the launch of the OpenSwitch project (www.openswitch.net), I would 
like to address the Open vSwitch community, explain how OpenSwitch leverages 
and aligns with OVS and start a discussion about a collaboration strategy.

OpenSwitch, OPS for short, is built to operate physical switches in the data 
centers and beyond. 
While some essential blocks of L2/L3/manageability are already available at 
git.openswitch.net, we would like to turn it into a fully featured NOS, 
addressing wide variety of use cases.
Eventually it will be serving both cloud-scale and more traditional L2/L3 
environments, and should be useful for those who are looking for complete 
programmability, as well as those who would like to manage switches using CLI, 
GUI and other familiar mechanisms.
Above anything else, we are looking to make it community driven, combining the 
forces and collective minds of all interested parties in order to make the best 
open source NOS possible.

As we recognized the fundamental importance of virtual switching as a new edge 
of the network, we made a conscious decision to align the architecture and the 
operational model of OpenSwitch to OVS. 
Those who invest in the operation or development of OVS should feel at home 
when they deal with OpenSwitch. 

If you look at http://www.openswitch.net/documents/user/architecture, you will 
see that OPS heavily builds on the strong foundation of OVS. 

OPS uses OVSDB-Server for all  system configuration/status/statistics, 
facilitating all pub/sub communication inside the system, from the temperature 
of the box to BGP routes.

The OPS schema is not designed around any particular ASIC, but rather extends 
the one from OVS - we tried keeping the same syntax and semantics for the 
shared tables/columns/values. 
We believe we were successful in vast majority of the cases.

OVS libraries are used for all OPS daemons.

ovs-vsctl and other utilities were extended to support additional functionality 
required by the physical switch.

ovs-vswitchd is used as a basis for ops-switchd, preserving and extending the 
ofproto and netdev provider interfaces to interface ASIC specific drivers.

The test framework is based on Mininet and when combined with Docker allows 
testing of the control plane using complex topologies in the convenience of 
one's laptop. 
The same frameworks and tests are leveraged by the CIT infrastructure as well.

The OVSDB protocol is already used to connect all OPS daemons to the database, 
and it's envisioned to provide great extensibility outside of a single OPS 
entity. 

We added a Python based REST daemon that exposes OVSDB server to HTTP clients, 
allowing interfacing to OpenSwitch using anyone's favorite languages/frameworks.

Given that OVSDB-Server is such a central piece of the OPS architecture, 
several of our developers started looking into optimizing IDL libraries as well 
as improving the protocol and the server. Some of the patches resulting from 
this effort are in flight on this mailing list and multiple more are being 
prepared/discussed.

Now, from the present state to the future.

As a part of the initial OPS buildout, we took a snapshot of OVS from about 
February of this year and made the required modifications. However, there is 
clearly no intention to keep it this way. 
We would really like to develop all shared components upstream in OVS, 
contributing to the richness of both systems.

Obvious parts that we would prefer to discuss and develop upstream are 
OVSDB-Server, C and Python IDL libraries (GoLang is on the radar), OVS 
libraries, ofproto layer providing OpenFlow implementation, utilities etc. OVN 
components would eventually make their way into the list as well.

In order to make it happen, we need a collaboration with OVS community. 
Specifically we would like to discuss how to make OVS extendable - allowing 
physical switching aspects to effectively extend shared components in a 
decoupled way. 

We would really like to hear what Open vSwitch community with its thought 
leaders thinks about it. 

Please share what's on your mind and let's make the networking industry better 
together!

Thanks,

Michael Zayats



_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to