[ovs-discuss] Using libopenvswitch in C++

Ben Warren ben at skyportsystems.com
Sun Jul 30 15:33:41 UTC 2017

Hello Xiao,

> On Jul 29, 2017, at 11:30 PM, Xiao Liang <shaw.leon at gmail.com> wrote:
> Hi,
> I've encountered some problems building a controller with
> libopenvswitch in C++. Although they can be solved by some hacks, I
> want to know if OVS is meant to be used in such case.
I don’t think there are very many consumers of libopenvswitch.  It was only added a year and a half ago, and is rarely mentioned in discussions.  The exportability of OVS is definitely geared towards C (and, in my case golang), so it’s more likely the case that people simply weren’t thinking about C++ at the time.
> 1. In include/openvswitch, some headers are wrapped with 'extern "C"'
> (e.g. ofpbuf.h), while some are not (e.g. ofp-util.h).
> 2. The identifier "public" in "struct ofputil_packet_in_private"
> conflicts with C++ keyword. Not sure if there're others.
> 3. Private and public declarations (like the
> ofputil_packet_in_private) could be separated to different files. Also
> some more APIs (like rconn) could be extracted from lib directory?
I expect that the maintainers would accept patches to make the code more C++ friendly, as long as you don’t break the C/golang support.  I can test the latter.
> Thanks,
> Xiao


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3866 bytes
Desc: not available
URL: <http://mail.openvswitch.org/pipermail/ovs-discuss/attachments/20170730/28690be0/attachment.p7s>

More information about the discuss mailing list