<div dir="ltr">Thanks for the answer. <div><br></div><div>I am new at this, so sorry if I am asking about basic stuff.<br><div><br><div>By I &quot;have to reverse engineering&quot; I mean that I am trying to find a ready made c++ library which has already implemented the  OVSDB protocol and communication layer with OVS and exposes basic API similar to syntax used by ovs-vsctl . I didn&#39;t find the documentation for c API used by OVS utilities, so I thought I have to look up at what ovs-vsctl  does and use the API in a similar way.</div></div><div><br></div><div>Thanks</div><div><br></div><div><br></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Fri, Nov 9, 2018 at 5:34 PM Ben Pfaff &lt;<a href="mailto:blp@ovn.org">blp@ovn.org</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Fri, Nov 09, 2018 at 12:27:40PM +0200, Boris Ouretskey wrote:<br>
&gt; Hi<br>
&gt; <br>
&gt; What would be the preferred API for controlling open switch bridges from<br>
&gt; c++ user space application. (both Windows and Linux version of ovs should<br>
&gt; be supported). the controller should run on both windows and linux also.<br>
&gt; <br>
&gt; 1. reverse engineering ovs-vsctl (or test controller) and use the same API<br>
&gt; it does.<br>
&gt; <br>
&gt; 2. use some open-source c++ openflow stack (if exists)<br>
&gt; <br>
&gt; 3. just run System(&quot;ovs-vsctl ...&quot;) from the application<br>
&gt; <br>
&gt; The application mostly opens and configures the ports. Controlling the<br>
&gt; openflow tables is of less priority.<br>
<br>
I don&#39;t know why you&#39;d have to reverse-engineer things.  The OVSDB<br>
protocol and the database schema are fully documented.<br>
<br>
If you want to control the database, then ovs-vsctl is the easy way if<br>
your needs are simple, otherwise you&#39;d probably be better off with a<br>
database interface.  An OpenFlow stack isn&#39;t going to help for database<br>
access.<br>
</blockquote></div>