On 7/16/26 7:04 PM, Alice Mikityanska wrote:
Normally, gso_type for tunneled BIG TCP packets won't have
SKB_GSO_PARTIAL set, because udp_gro_complete replaces gso_type with
either SKB_GSO_UDP_TUNNEL_CSUM or SKB_GSO_UDP_TUNNEL. This way, we'll
get to the correct branch and subtract skb->len. SKB_GSO_PARTIAL is
only set by skb_segment, which is called after this check. In some
very convoluted hypothetical scenario, if we have to reenter
__skb_udp_tunnel_segment for the second time, this time with
SKB_GSO_PARTIAL, it will still be correct to take uh->len this time,
because partial GSO packets have a UDP length set to wire MSS.
FTR, my evil mid/long term plan is to use this (BIG TCP over UDP tunnel)
in tandem with double UDP encapsulation GSO/GRO (via geneve hints) for
containers over virt deployments, so the above convoluted scenario is
going to be a lot less hypothetical :-)
/P