Yuri Benditovich wrote: > The commit fc8b2a619469 > ("net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation") > adds check of potential number of UDP segments vs > UDP_MAX_SEGMENTS in linux/virtio_net.h. > After this change certification test of USO guest-to-guest > transmit on Windows driver for virtio-net device fails, > for example with packet size of ~64K and mss of 536 bytes. > In general the USO should not be more restrictive than TSO. > Indeed, in case of unreasonably small mss a lot of segments > can cause queue overflow and packet loss on the destination. > Limit of 128 segments is good for any practical purpose, > with minimal meaningful mss of 536 the maximal UDP packet will > be divided to ~120 segments. > The number of segments for UDP packets is validated vs > UDP_MAX_SEGMENTS also in udp.c (v4,v6), this does not affect > quest-to-guest path but does affect packets sent to host, for > example. > It is important to mention that UDP_MAX_SEGMENTS is kernel-only > define and not available to user mode socket applications. > In order to request MSS smaller than MTU the applications > just uses setsockopt with SOL_UDP and UDP_SEGMENT and there is > no limitations on socket API level. > > Fixes: fc8b2a619469 ("net: more strict VIRTIO_NET_HDR_GSO_UDP_L4 validation") > Signed-off-by: Yuri Benditovich <yuri.benditovich@xxxxxxxxxx> Reviewed-by: Willem de Bruijn <willemb@xxxxxxxxxx> No need for a cover letter for a single patch btw.