Newer kernel will do gro on vxlan packet, after gro the tcp checksum
encapsulated in the packet is wrong but the origin checksum is already
verified.
The patch skips verifying checksum of all gro packets.
---
datapath/vport-vxlan.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/datapath/vport-vxlan.c b/datapath/vport-vxlan.c
index eff7ca2..ba74ab2 100644
--- a/datapath/vport-vxlan.c
+++ b/datapath/vport-vxlan.c
@@ -87,6 +87,10 @@ static void vxlan_rcv(struct vxlan_sock *vs, struct sk_buff
*skb,
udp_hdr(skb)->source, udp_hdr(skb)->dest,
key, flags, &opts, sizeof(opts));
+ /* skip verifying checksum of gro packets */
+ if (skb_shinfo(skb)->gso_segs)
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
+
ovs_vport_receive(vport, skb, &tun_info);
}
--
2.1.4
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev