From mboxrd@z Thu Jan 1 00:00:00 1970 From: Vladislav Yasevich Subject: [PATCH v2 0/3] Restore UFO support to virtio_net devices Date: Fri, 30 Jan 2015 14:27:24 -0500 Message-ID: <1422646047-13168-1-git-send-email-vyasevic@redhat.com> Cc: virtualization@lists.linux-foundation.org, mst@redhat.com, ben@decadent.org.uk, eric.dumazet@gmail.com, hannes@stressinduktion.org, Vladislav Yasevich To: netdev@vger.kernel.org Return-path: Received: from mail-qg0-f49.google.com ([209.85.192.49]:43565 "EHLO mail-qg0-f49.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751763AbbA3T1f (ORCPT ); Fri, 30 Jan 2015 14:27:35 -0500 Received: by mail-qg0-f49.google.com with SMTP id i50so39651717qgf.8 for ; Fri, 30 Jan 2015 11:27:34 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: commit 3d0ad09412ffe00c9afa201d01effdb6023d09b4 Author: Ben Hutchings Date: Thu Oct 30 18:27:12 2014 +0000 drivers/net: Disable UFO through virtio Turned off UFO support to virtio-net based devices due to issues with IPv6 fragment id generation for UFO packets. The issue was that IPv6 UFO/GSO implementation expects the fragment id to be supplied in skb_shinfo(). However, for packets generated by the VMs, the fragment id is not supplied which causes all IPv6 fragments to have the id of 0. The problem is that turning off UFO support on tap/macvtap as well as virtio devices caused issues with migrations. Migrations would fail when moving a vm from a kernel supporting expecting UFO to work to the newer kernels that disabled UFO. This series provides a partial solution to address the migration issue. The series allows us to track whether skb_shinfo()->ip6_frag_id has been set by treating value of 0 as unset. This lets GSO code to generate fragment ids if they are necessary (ex: packet was generated by VM or packet socket). Since v1: - Removed the skb bit and use value of 0 as tracker. - Used Eric's suggestion to set fragment id as 0x80000000 if id generation procedure yeilded a 0 result. - Consolidated ipv6 id genration code. Vladislav Yasevich (3): ipv6: Select fragment id during UFO segmentation if not set. Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets" Revert "drivers/net: Disable UFO through virtio" drivers/net/macvtap.c | 16 ++++++++-------- drivers/net/tun.c | 25 +++++++++---------------- drivers/net/virtio_net.c | 24 ++++++++++-------------- include/net/ipv6.h | 3 +++ net/ipv6/ip6_output.c | 10 ++++------ net/ipv6/output_core.c | 28 ++++++++++++++++++++++------ net/ipv6/udp_offload.c | 10 +++++++++- 7 files changed, 65 insertions(+), 51 deletions(-) -- 1.9.3