tunnel: Un-wildcard only flags that really exist in tnl_xlate_init().
authorBen Pfaff <blp@nicira.com>
Fri, 10 Jan 2014 23:14:27 +0000 (15:14 -0800)
committerBen Pfaff <blp@nicira.com>
Mon, 13 Jan 2014 23:53:44 +0000 (15:53 -0800)
commit9d8763930c57a3ba3e4618691c937c72188360a9
tree5fca6345e875f91280c775f3c9133ff7f9bf601b
parenteec140bc8e7a49e7faafd10184fa5f4310566cb2
tunnel: Un-wildcard only flags that really exist in tnl_xlate_init().

The revalidator code in ofproto-dpif-upcall.c, in revalidate_ukey(),
deletes any datapath flow for which the kernel reports wildcarded bits
that userspace requires to be matched.  Until now, tnl_xlate_init() marked
every bit in the tunnel flags as required to be matched.  Since most of
those bits don't actually have defined flags, adding such a flow to the
datapath and then receiving it back caused those bits to become wildcarded,
which meant that revalidate_ukey() always deleted them.

This fixes the problem by only un-wildcarding defined flags.

Reported-by: Guolin Yang <gyang@vmware.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
ofproto/tunnel.c