On Thu, Mar 17, 2016 at 11:24:59AM +0100, Steffen Klassert wrote: > In IPv6 this check is missing, so this could be the > problem if this is IPv6.
indeed, this patch also fixes my problem: --- a/net/ipv6/ip6_output.c +++ b/net/ipv6/ip6_output.c @@ -1353,6 +1353,7 @@ emsgsize: (skb && skb_is_gso(skb))) && (sk->sk_protocol == IPPROTO_UDP) && (rt->dst.dev->features & NETIF_F_UFO) && + !rt->dst.header_len && (sk->sk_type == SOCK_DGRAM)) { err = ip6_ufo_append_data(sk, queue, getfrag, from, length, hh_len, fragheaderlen, I can't say which is better. Herbert originally seemed to like the fix inside xfrm_output(). The IPv4 part is fixed by commit c146066ab80267c3305de5dda6a4083f06df9265 (ipv4: Don't use ufo handling on later transformed packets) Thanks, -- Jiri Bohac <jbo...@suse.cz> SUSE Labs, SUSE CZ