Thread (7 messages) 7 messages, 3 authors, 2018-06-05

Re: suspicius csum initialization in vmxnet3_rx_csum

From: Neil Horman <nhorman@tuxdriver.com>
Date: 2018-06-01 22:13:00

Possibly related (same subject, not in this thread)

On Fri, Jun 01, 2018 at 11:10:01AM -0700, Ronak Doshi wrote:

On Thu, 31 May 2018, Neil Horman wrote:
quoted
On Thu, May 31, 2018 at 11:02:34AM -0700, Ronak Doshi wrote:
quoted
On Wed, 30 May 2018, Paolo Abeni wrote:
quoted
Hi,

On Thu, 2018-05-24 at 21:48 +0000, Guolin Yang wrote:
quoted
Yes, that code  is not correct, we should fix that code
Did you have any chance to address the issue and/or to give a more in-
deepth look to the change proposed in my initial email?
 
Hi Paolo,

Can you provide the esx build you are using? It can be found using 
"vmware -vl" on ESX host.

Did you try your proposed fix and did it work? Are you sure the packet
hits the below if block and not the else block? I still don't think the
ICMP packet will go through the below if block.

   if (gdesc->rcd.csum) {
	skb->csum = htons(gdesc->rcd.csum);
	skb->ip_summed = CHECKSUM_PARTIAL;
   } else {
	skb_checksum_none_assert(skb);
   }

The vmxnet3 emulation does not calculate rcd.csum for ICMP packet and
hence should go through the else block i.e. checksum none.
What packet types will rcd.csum be set for?
Neil 
I looked thorugh the emulation code and found that rcd.csum is not set. 
For valid v4/v6, TCP/UDP packets the code block above the mentioend "if" 
block will be executed or else it will go through checksum none.

That's why I wanted to know (in previous emails) which ESX build is being 
used while this was tested. The code block under "if (gdesc->rcd.csum)" 
block might seem incorrect but it shouldn't be hit as rcd.csum is not set. 
Hence, I asked did the fix provided by Paolo worked for the icmp test?
Paolo will have to tell you that specifically I'm afraid.  I'm not sure if the patch was tested or not.
Thanks,
Ronak
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help