[ovs-discuss] open vswitch / openflow includes for nicira extensions

Ben Pfaff blp at ovn.org
Thu Dec 27 19:28:27 UTC 2018


On Wed, Dec 19, 2018 at 06:59:05PM -0700, Raymond Burkholder wrote:
> I have been using header file definitions found in https://www.opennetworking.org/wp-content/uploads/2014/10/openflow-switch-v1.4.1.pdf
> to build an open flow controller.
> 
> The controller communicates successfully with openvswitch.
> 
> But in tutorials such as https://github.com/openvswitch/ovs/blob/master/Documentation/tutorials/ovs-conntrack.rst,
> the command line examples use flow modifications using non-standard values
> and parameters.
> 
> Are these enumerations and structures available to controllers? If so, what
> header files would be included to access the enumerations and structures?
> 
> I've looked at files in /usr/include/openvswitch and /usr/include/openflow,
> but nothing is obvious for working with nicira extenstions.  Even searching
> through a cloned github repository of ovs doesn't yield a definition for
> something like CS_ESTABLISHED that I could follow through.  I see
> references, but I don't seem to see the original definition or enumeration.
> 
> Or is there a better way to build a controller to use the nicira extensions?

I think that ovs-fields(7) documents all the fields.  I don't think
there are more elaborate structures in use for connection tracking.

OVS gets the CS_* constants from the Linux datapath.  You can find them
in linux/openvswitch.h with an OVS_ prefix.  There's also a userspace
definition in lib/packets.h that isn't meant to be exported to client
programs.  This isn't a great way to do it but it's what we have at the
moment.  At any rate, these constants are an ABI so they aren't going to
change.


More information about the discuss mailing list