On Thu, 31 May 2018, Neil Horman wrote:
> On Thu, May 31, 2018 at 11:02:34AM -0700, Ronak Doshi wrote:
> >
> > On Wed, 30 May 2018, Paolo Abeni wrote:
> >
> > > Hi,
> > >
> > > On Thu, 2018-05-24 at 21:48 +0000, Guolin Yang wrote:
> > > > 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?
Thanks,
Ronak