ofproto-dpif: Fix a vlan-splinter megaflow bug
authorAndy Zhou <azhou@nicira.com>
Tue, 7 Jan 2014 08:17:25 +0000 (00:17 -0800)
committerAndy Zhou <azhou@nicira.com>
Wed, 8 Jan 2014 05:02:33 +0000 (21:02 -0800)
commit6268d087e343fb624d647084007fc430849e062f
tree73c1f465d831b9930ea99aa3162f6da86209e155
parent0b8ee23736f8d221c026947396455210b7891d2d
ofproto-dpif: Fix a vlan-splinter megaflow bug

When vlan-splinter is enabled, ovs receives non-vlan flows from the
kernel vlan ports, vlan tag is then added to the incoming flow before
xlating, so that they look like those received from a trunk port.

In case megaflow is enabled, xlating may set vlan masks during rule
processing as usual. If those vlan masks were serialized and downloaded
to the kernel (this bug), those mega flows will be rejected due to
unexpected vlan mask encapsulation, since the original kernel flows do
not have vlan tags. This bug does not break connectivity, but impacts
performance since all traffic received on vlan splinter ports will now
be handled by vswitchd, as no datapath flows can be successfully
installed.

This fix is to make sure no vlan mask encapsulation is generated for
the datapath flow if its in_port was re-written by vlan-splinter
receiving logic.

Bug #22567

Signed-off-by: Andy Zhou <azhou@nicira.com>
Acked-by: Ben Pfaff <blp@nicira.com>
ofproto/ofproto-dpif-upcall.c