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:45:30 +0000 (15:45 -0800)
commitad1aaa8b0318280a32f74e4bdf4ec2ff23d278bf
treea959ef782de34490c159325597c7f876f2a2fb52
parent73e141f977163d93e60c30a177a99c44ecf72fe2
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