datapath: compat: unset skb encapsulation bit
authorPravin B Shelar <pshelar@ovn.org>
Tue, 26 Jul 2016 00:49:54 +0000 (17:49 -0700)
committerPravin B Shelar <pshelar@ovn.org>
Tue, 26 Jul 2016 23:55:27 +0000 (16:55 -0700)
OVS compat layer can handle tunnel GSO packets. but it does
keep skb encapsulation on for packet handled in GSO. This can
confuse some NIC drivers. I have seen this issue on intel devices:

>>>  i40e 0000:42:00.0: TX driver issue detected, PF reset issued

Following patch resets this bit in case compat layer handles the packet.

VMware-BZ: 1698877
Signed-off-by: Pravin B Shelar <pshelar@ovn.org>
Acked-by: Jesse Gross <jesse@kernel.org>
datapath/linux/compat/gso.c

index 32790c3..3a73bcd 100644 (file)
@@ -186,6 +186,8 @@ static struct sk_buff *tnl_skb_gso_segment(struct sk_buff *skb,
         * make copy of it to restore it back. */
        memcpy(cb, skb->cb, sizeof(cb));
 
+       skb->encapsulation = 0;
+
        /* We are handling offloads by segmenting l3 packet, so
         * no need to call OVS compat segmentation function. */