openvswitch: upcall: Fix vlan handling.
authorpravin shelar <pshelar@ovn.org>
Mon, 26 Dec 2016 16:31:27 +0000 (08:31 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Dec 2016 17:28:07 +0000 (12:28 -0500)
commitdf30f7408b187929dbde72661c7f7c615268f1d0
tree568e6d73d59770d9afbb69fb0ce5844aae65d993
parent56ab6b93007e5000a8812985aec1833c4a6a9ce0
openvswitch: upcall: Fix vlan handling.

Networking stack accelerate vlan tag handling by
keeping topmost vlan header in skb. This works as
long as packet remains in OVS datapath. But during
OVS upcall vlan header is pushed on to the packet.
When such packet is sent back to OVS datapath, core
networking stack might not handle it correctly. Following
patch avoids this issue by accelerating the vlan tag
during flow key extract. This simplifies datapath by
bringing uniform packet processing for packets from
all code paths.

Fixes: 5108bbaddc ("openvswitch: add processing of L3 packets").
CC: Jarno Rajahalme <jarno@ovn.org>
CC: Jiri Benc <jbenc@redhat.com>
Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/openvswitch/datapath.c
net/openvswitch/flow.c