[ovs-discuss] external ovs c++ controller

Raymond Burkholder ray at oneunified.net
Fri Nov 9 16:58:58 UTC 2018

On 2018-11-09 3:27 a.m., Boris Ouretskey wrote:
> What would be the preferred API for controlling open switch bridges 
> from c++ user space application. (both Windows and Linux version of 
> ovs should be supported). the controller should run on both windows 
> and linux also.
> 1. reverse engineering ovs-vsctl (or test controller) and use the same 
> API it does.
RFC 7047, also see https://github.com/John-Lin/OVS-Cheat-Sheet for how 
the various ovs apps work together
> 2. use some open-source c++ openflow stack (if exists)
This controls the flows, and is probably the most efficient mechanism 
for controlling the flows
> 3. just run System("ovs-vsctl ...") from the application
two different commands sets would be required, and are probably less 
efficient due to the requirement for parsing text commands (ovs-vsctl 
for ports, ovs-ofctl for flows)
> The application mostly opens and configures the ports. Controlling the 
> openflow tables is of less priority.
In summary, two mechansims are involved.

The ovs database/schema deals with port configuration and management. 
RFC 7047 defines how one communicates with the database.

Flow control happens via the flow controller.  github has at least two 
c++ controllers, one of which is mine which I am slowly building up in 

Hope this helps.


More information about the discuss mailing list