Re: [PATCH net-next v2 3/8] udp: properly complete L4 GRO over UDP tunnel packet

From
Willem de Bruijn <willemdebruijn.kernel@gmail.com>
Date
2021-03-26 17:53:16
Reply to
Paolo Abeni, 2021-03-25
On Thu, Mar 25, 2021 at 1:24 PM Paolo Abeni [off-list ref] wrote:
After the previous patch, the stack can do L4 UDP aggregation
on top of a UDP tunnel.

In such scenario, udp{4,6}_gro_complete will be called twice. This function
will enter its is_flist branch immediately, even though that is only
correct on the second call, as GSO_FRAGLIST is only relevant for the
inner packet.

Instead, we need to try first UDP tunnel-based aggregation, if the GRO
packet requires that.

This patch changes udp{4,6}_gro_complete to skip the frag list processing
when while encap_mark == 1, identifying processing of the outer tunnel
header.
Additionally, clears the field in udp_gro_complete() so that we can enter
the frag list path on the next round, for the inner header.

v1 -> v2:
 - hopefully clarified the commit message

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Thread (24 messages) 24 messages, 2 authors, last reply 2021-03-29
Keyboard shortcuts
hback out one level
jnext message in thread / next series-diff position
kprevious message in thread / previous series-diff position
ldrill in
Escclose help / fold thread tree
?toggle this help