On Thu, Oct 8, 2020 at 5:48 AM Xin Long <[email protected]> wrote:
>
> For some protocol's gso, like SCTP, it's using GSO_BY_FRAGS for
> gso_size. When using UDP to encapsulate its packet, it will
> return error in udp6_ufo_fragment() as skb->len < gso_size,
> and it will never go to the gso tunnel processing.
>
> So we should move this check after udp gso tunnel processing,
> the same as udp4_ufo_fragment() does. While at it, also tidy
> the variables up.
Please don't mix a new feature and code cleanup.
This patch changes almost every line of the function due to
indentation changes. But the only relevant part is
"
mss = skb_shinfo(skb)->gso_size;
if (unlikely(skb->len <= mss))
goto out;
if (skb->encapsulation && skb_shinfo(skb)->gso_type &
(SKB_GSO_UDP_TUNNEL|SKB_GSO_UDP_TUNNEL_CSUM))
segs = skb_udp_tunnel_segment(skb, features, true);
else {
/* irrelevant here */
}
out:
return segs;
}
"
Is it a sufficient change to just skip the mss check if mss == GSO_BY_FRAGS?