Re: [PATCH net-next V2 1/3] net: Add GRO support for UDP encapsulating protocols
From: Or Gerlitz <hidden>
Date: 2014-01-08 12:15:28
On 08/01/2014 13:58, Eric Dumazet wrote:
On Wed, 2014-01-08 at 10:04 +0200, Or Gerlitz wrote:quoted
On 07/01/2014 23:38, Eric Dumazet wrote:quoted
On Tue, 2014-01-07 at 22:37 +0200, Or Gerlitz wrote:quoted
So here's the thing, per my understanding we want to GRO only received **encapsulated** packets whose checksum status is != CHECKSUM_NONE which means the NIC has some support for doing RX checksum of encapsulated packets. Per the current convension, in that case the NIC RX code has to set skb->encapsulation see 6a674e9c75b17 "net: Add support for hardware-offloaded encapsulation" this convension is implemented in the current drivers that have HW offloads for encapsulated packets (bnx2x, i40e and mlx4)I do not think its true. Some drivers set CHECKSUM_COMPLETE even for regular UDP frames... git grep -n CHECKSUM_COMPLETE -- drivers/netEric, the point I was trying to make is that as long as the driver set a value which is different from CHECKSUM_NONE for an skb who carry encapsulated packet, we want skb->encapsulation to be set, per the architecture dictated by the above commit.Then this point is obviously wrong. Your interpretation is wrong, I am very sorry. skb->encapsulation _might_ be set, only if the NIC is performing header analysis. CHECKSUM_COMPLETE support doesn't require header analysis.
fair enough && thanks for shedding more light on this - so in that respect, the gro handler for udp encapsulated packets will not flush skb who is either marked with CHECKSUM_COMPLETE or has skb->encapsulation set. Or.