datapath: Fix VLAN tag insertion actions on Xen.
authorBen Pfaff <blp@nicira.com>
Thu, 16 Apr 2009 22:10:26 +0000 (15:10 -0700)
committerBen Pfaff <blp@nicira.com>
Thu, 16 Apr 2009 22:10:26 +0000 (15:10 -0700)
commitd0b1c78480ad95436631332a469e65650d2ac71f
tree2f72818a57e91c21cb7f54c39624ff0341eaffef
parent22f261af910d18862111dd31b97117bcc830ba95
datapath: Fix VLAN tag insertion actions on Xen.

On Xen, a VM can pass a packet that needs to be checksummed up to Dom0 for
transmission on the wire.  In this case, Dom0 is supposed to pick apart
the packet, figure out the protocol, and checksum it before sending it out.
However, this fails if we insert an 802.1Q header, because the Xen routine
that picks apart packets (skb_checksum_setup() in net/core/dev.c) does not
understand 802.1Q.  Hence, we must call this function ourselves, before we
add the 802.1Q header.

Fixes bug #1215.
datapath/actions.c
datapath/datapath.c
datapath/datapath.h