All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] virtio-net: Add support for virtio-net header extensions
@ 2017-03-19  4:06 Vladislav Yasevich
  2017-03-19  4:06 ` [RFC PATCH 1/6] virtio-net: Remove the use the padded vnet_header structure Vladislav Yasevich
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Vladislav Yasevich @ 2017-03-19  4:06 UTC (permalink / raw)
  To: netdev; +Cc: virtualization, mst, Vladislav Yasevich

Curreclty virtion net header is fixed size and adding things to it is rather
difficult to do.  This series attempt to add the infrastructure as well as some
extensions that try to resolve some deficiencies we currently have.

First, vnet header only has space for 16 flags.  This may not be enough
in the future.  The extensions will provide space for 32 possbile extension
flags and 32 possible extensions.   These flags will be carried in the
first pseudo extension header, the presense of which will be determined by
the flag in the virtio net header.

The extensions themselves will immidiately follow the extension header itself.
They will be added to the packet in the same order as they appear in the
extension flags.  No padding is placed between the extensions and any
extensions negotiated, but not used need by a given packet will convert to
trailing padding.

For example:
 | vnet mrg hdr | ext hdr | ext 1 | ext 2 | ext 5 | .. pad .. | packet data |

Extensions proposed in this series are:
 - IPv6 fragment id extension
   * Currently, the guest generated fragment id is discarded and the host
     generates an IPv6 fragment id if the packet has to be fragmented.  This
     results in slightly less random id genration that might be potentially
     easier to guess.  We can pass the fragment id from guest to host to
     remove the need for the host to generate ids.

 - VLAN header acceleration
   * Currently virtio doesn't not do vlan header acceleration and instead
     uses software tagging.  The extension allows us to pass vlan id and
     protocol to the host and take advantage of host HW vlan acceleration.

 - UDP tunnel offload
   * Similar to vlan acceleration, with this extension we can pass additional
     data to host for support GSO with udp tunnel and possible other
     encapsulations.

This series only takes care of virtio net.  I have addition patches for the
host side (vhost and tap/macvtap as well as qemu), but wanted to get feedback
on the general approach first.

Vladislav Yasevich (6):
  virtio-net: Remove the use the padded vnet_header structure
  virtio-net: make header length handling uniform
  virtio_net: Add basic skeleton for handling vnet header extensions.
  virtio-net: Add support for IPv6 fragment id vnet header extension.
  virtio-net: Add support for vlan acceleration vnet header extension.
  virtio-net: Add support for UDP tunnel offload and extension.

 drivers/net/virtio_net.c        | 132 +++++++++++++++++++++++++++++++++-------
 include/linux/skbuff.h          |   5 ++
 include/linux/virtio_net.h      |  91 ++++++++++++++++++++++++++-
 include/uapi/linux/virtio_net.h |  38 ++++++++++++
 4 files changed, 242 insertions(+), 24 deletions(-)

-- 
2.7.4

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

end of thread, other threads:[~2017-03-30 16:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-19  4:06 [RFC PATCH 0/6] virtio-net: Add support for virtio-net header extensions Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 1/6] virtio-net: Remove the use the padded vnet_header structure Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 2/6] virtio-net: make header length handling uniform Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 3/6] virtio_net: Add basic skeleton for handling vnet header extensions Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 4/6] virtio-net: Add support for IPv6 fragment id vnet header extension Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 5/6] virtio-net: Add support for vlan acceleration " Vladislav Yasevich
2017-03-19  4:06 ` [RFC PATCH 6/6] virtio: Add support for UDP tunnel offload and extension Vladislav Yasevich
2017-03-30 16:06 ` [RFC PATCH 0/6] virtio-net: Add support for virtio-net header extensions Michael S. Tsirkin
2017-03-30 16:06 ` Michael S. Tsirkin

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.