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.
Thanksquoted
default: return -EINVAL; }
_______________________________________________ Virtualization mailing list Virtualization@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/virtualization