Inter-revision diff: patch 3

Comparing v2 (message) to v1 (message)

--- v2
+++ v1
@@ -1,22 +1,16 @@
-After the previous patch, the stack can do L4 UDP aggregation
-on top of a UDP tunnel.
+After the previous patch the stack can do L4 UDP aggregation
+on top of an 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.
+The current GRO complete code tries frag based aggregation first;
+in the above scenario will generate corrupted frames.
 
-Instead, we need to try first UDP tunnel-based aggregation, if the GRO
-packet requires that.
+We need to try first UDP tunnel based aggregation, if the GRO
+packet requires that. We can use time GRO 'encap_mark' field
+to track the need GRO complete action. If encap_mark is set,
+skip the frag_list aggregation.
 
-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
+On tunnel encap GRO complete clear such field, so that an inner
+frag_list GRO complete could take action.
 
 Signed-off-by: Paolo Abeni <pabeni@redhat.com>
 ---
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help