From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Hemminger Subject: Re: vmxnet3 TX TCP/UDP checksum not getting computed with L2_len > 14 Date: Sun, 17 Jun 2018 09:46:26 -0700 Message-ID: <20180617094626.2d72413f@xeon-e3> References: <45FFB08E-61C4-456F-A332-0881B6BF2BE3@inventum.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Cc: dev@dpdk.org, yongwang@vmware.com To: Padam Jeet Singh Return-path: Received: from mail-pf0-f180.google.com (mail-pf0-f180.google.com [209.85.192.180]) by dpdk.org (Postfix) with ESMTP id AA4081B3B6 for ; Sun, 17 Jun 2018 18:46:34 +0200 (CEST) Received: by mail-pf0-f180.google.com with SMTP id q1-v6so7012830pff.13 for ; Sun, 17 Jun 2018 09:46:34 -0700 (PDT) In-Reply-To: <45FFB08E-61C4-456F-A332-0881B6BF2BE3@inventum.net> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Sun, 17 Jun 2018 14:55:06 +0530 Padam Jeet Singh wrote: > Hello, >=20 > Issue observed when using vmxnet3 based interface on packet with followin= g structure is sent: >=20 > Ethernet + PPPoE + PPP (22 bytes) as the Layer 2 header,=20 > IPv4 (20)=20 > UDP > DNS Payload >=20 > The tx offload value in this case is 0x0f0000000000000 (PKT_TX_IPV4 | PK= T_TX_IP_CKSUM | PKT_TX_UDP_CKSUM) >=20 > The checksum of the packet seen by the receiver shows incorrect checksum = and it=E2=80=99s value is the pseudo checksum value that was set at the tim= e of the TX. However the IP header checksum is correct. >=20 > The same issue is not seen when the L2 header is a just the Ethernet (14 = bytes). >=20 > Also, with the same setup on the same hardware if we switch the driver fr= om vmxnet3 to e1000e, all checksums are computed correctly. >=20 > Is this a DPDK vmxnet3 driver bug or that of underlying esxi? The ESXi ve= rsion is 6.0.0 (Build 3620759). >=20 > Thanks, > Padam I don't think VMWare supports IP checksum offload. Since IP checksum is tri= vial and in cache, the IP header checksum offload is usually not a speed up anyway. Linux for = example, never does IP header checksum offload.