netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Restore UFO support to virtio_net devices
@ 2015-01-30 19:27 Vladislav Yasevich
  2015-01-30 19:27 ` [PATCH v2 1/3] ipv6: Select fragment id during UFO segmentation if not set Vladislav Yasevich
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Vladislav Yasevich @ 2015-01-30 19:27 UTC (permalink / raw)
  To: netdev; +Cc: virtualization, mst, ben, eric.dumazet, hannes,
	Vladislav Yasevich

commit 3d0ad09412ffe00c9afa201d01effdb6023d09b4
Author: Ben Hutchings <ben@decadent.org.uk>
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

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2015-02-02 15:04 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-01-30 19:27 [PATCH v2 0/3] Restore UFO support to virtio_net devices Vladislav Yasevich
2015-01-30 19:27 ` [PATCH v2 1/3] ipv6: Select fragment id during UFO segmentation if not set Vladislav Yasevich
2015-01-31 17:11   ` Michael S. Tsirkin
2015-01-30 19:27 ` [PATCH v2 2/3] Revert "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets" Vladislav Yasevich
2015-01-31 17:11   ` Michael S. Tsirkin
2015-01-30 19:27 ` [PATCH v2 3/3] Revert "drivers/net: Disable UFO through virtio" Vladislav Yasevich
2015-01-31 17:11   ` Michael S. Tsirkin
2015-01-31 17:17 ` [PATCH v2 0/3] Restore UFO support to virtio_net devices Michael S. Tsirkin
2015-02-02  6:19 ` David Miller
2015-02-02  6:28   ` David Miller
2015-02-02 15:04     ` Vlad Yasevich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).