[ovs-dev] [PATCH 0/9] RFC: rework code base for third-party linking

Ben Pfaff blp at ovn.org
Fri Feb 26 22:32:10 UTC 2016


On Mon, Feb 22, 2016 at 03:46:50PM -0800, ben at skyportsystems.com wrote:
> From: Ben Warren <ben at skyportsystems.com>
> 
> This patch set is a first stab at making a 'dev' distribution for OpenVswitch
> The goal is to provide shared libraries and header files so that third party
> applications can link in OVS rather than always using the command line
> utilities.
> 
> Design:
> 
> Nothing too exotic here - some header files have been moved from 'lib' to
> 'include/openvswitch'.  All header files in 'include' are considered
> appropriate for third-party inclusion.

Looking at the patches, I'm a little confused.  I assumed that part of
the goal here would be to make sure that include/openvswitch was
self-contained, that is, headers in it only refer to other headers in it
(or to system headers)[*].  A secondary goal is to expose useful
functionality.  But the first patch that moves ofp-parse.h into
include/openvswitch doesn't seem to do this.  It doesn't expose useful
functionality, as far as I can tell, because there's basically nothing
that any client can call without including lots of other headers not in
include/openvswitch.  For example, I can't use parse_ofp_str(), because
that needs struct ofputil_flow_mod from lib/ofp-util.h.  I guess it's
self-contained in a technical way (since it does delete the unneeded
#include of lib/packets.h, which at first I expected to make it
not-self-contained).

Can you help me understand better?

Thanks,

Ben.

[*] There was one minor violation of this rule.  I sent out a fix:
        http://openvswitch.org/pipermail/dev/2016-February/066869.html



More information about the dev mailing list