[ovs-dev] [RFC v3 10/19] classifer: Convert struct flow flow_metadata to use tun_key

Simon Horman horms at verge.net.au
Fri May 18 00:29:09 UTC 2012


On Thu, May 17, 2012 at 09:48:23AM -0700, Ben Pfaff wrote:
> On Thu, May 17, 2012 at 05:59:09PM +0900, Simon Horman wrote:
> > This allows the tun_key tp be bassed throughout user-space,
> > attached to a flow. This is the essence of flow-based tunneling.
> > 
> > This does not add tun_key or wildcards, other than the existing match for
> > the tun_id. It is envisaged that most if not all fields of the tun_key
> > could be wildcarded.
> > 
> > Cc: Kyle Mestery <kmestery at cisco.com>
> > Signed-off-by: Simon Horman <horms at verge.net.au>
> 
> This patch looks troublesome for layering reasons.
> lib/classifier.[ch] and lib/flow.[ch] are in a layer that is supposed
> to be ofproto-provider agnostic.  That is, among other constraints, it
> should not depend on Linux kernel headers.  We may have to come up
> with a more neutral way to represent the tun_key for general userspace
> purposes than to use ovs_key_ipv4_tunnel.

Understood.

I think that the crux of the problem you point out lies in the use
of struct ovs_key_ipv4_tunnel, which is defined in linux/openvswitch.h.

An approach that I had considered, and one that may be woth revisiting,
is to either define a different structure (perhaps the same interlally
but with a different name) or simply break out the fields so that
the user-space flow structure would have tun_id, tun_ipv4_dst,... fields.

Although the elemtns of tun_key do relate to the linux implementation
(elsewhere in this series), I think that conceptually they are not
ofproto-provider specific.  GRE, for instance, has such parameters
regardless of the implementation.




More information about the dev mailing list