Thread (23 messages) flat view 23 messages, 3 authors, 2021-05-12

Re: [PATCH 2/4] virtio-net: add support of UDP segmentation (USO) on the host

From: Yuri Benditovich <hidden>
Date: 2021-05-11 08:26:48
Also in: lkml, netdev

On Tue, May 11, 2021 at 9:47 AM Jason Wang [off-list ref] wrote:

在 2021/5/11 下午12:42, Yuri Benditovich 写道:
quoted
Large UDP packet provided by the guest with GSO type set to
VIRTIO_NET_HDR_GSO_UDP_L4 will be divided to several UDP
packets according to the gso_size field.

Signed-off-by: Yuri Benditovich <redacted>
---
  include/linux/virtio_net.h | 5 +++++
  1 file changed, 5 insertions(+)
diff --git a/include/linux/virtio_net.h b/include/linux/virtio_net.h
index b465f8f3e554..4ecf9a1ca912 100644
--- a/include/linux/virtio_net.h
+++ b/include/linux/virtio_net.h
@@ -51,6 +51,11 @@ static inline int virtio_net_hdr_to_skb(struct sk_buff *skb,
                      ip_proto = IPPROTO_UDP;
                      thlen = sizeof(struct udphdr);
                      break;
+             case VIRTIO_NET_HDR_GSO_UDP_L4:
+                     gso_type = SKB_GSO_UDP_L4;
+                     ip_proto = IPPROTO_UDP;
+                     thlen = sizeof(struct udphdr);
+                     break;

This is only for rx, how about tx?
In terms of the guest this is only for TX.
Guest RX is a different thing, this is actually coalescing of
segmented UDP packets into a large one.
This feature is not defined in the virtio spec yet and the support of
it first of all depends on the OS.
For example: TCP LSO (guest TX) is supported almost by all the
versions of Windows.
TCP RSC (coalescing of TCP segments) is supported by Win 8 / Server 2012 and up.
UDP segmentation is supported by Windows kernels 1903+
UDP coalescing is defined by Windows kernels 2004+ and not supported
by the driver yet.
Thanks


quoted
              default:
                      return -EINVAL;
              }
_______________________________________________
Virtualization mailing list
Virtualization@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/virtualization
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help