From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp89.ord1c.emailsrvr.com (smtp89.ord1c.emailsrvr.com [108.166.43.89]) by dpdk.org (Postfix) with ESMTP id B5F368D9D for ; Wed, 28 Oct 2015 09:12:13 +0100 (CET) Received: from smtp20.relay.ord1c.emailsrvr.com (localhost.localdomain [127.0.0.1]) by smtp20.relay.ord1c.emailsrvr.com (SMTP Server) with ESMTP id 32FDE802A1; Wed, 28 Oct 2015 04:12:13 -0400 (EDT) Received: by smtp20.relay.ord1c.emailsrvr.com (Authenticated sender: padam.singh-AT-inventum.net) with ESMTPSA id F362B80321; Wed, 28 Oct 2015 04:12:11 -0400 (EDT) X-Sender-Id: padam.singh@inventum.net Received: from [172.16.1.231] ([UNAVAILABLE]. [103.25.205.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA) by 0.0.0.0:25 (trex/5.4.2); Wed, 28 Oct 2015 08:12:13 GMT Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2070.6\)) From: Padam Jeet Singh In-Reply-To: <1ED644BD7E0A5F4091CF203DAFB8E4CC22BC432E@SHSMSX101.ccr.corp.intel.com> Date: Wed, 28 Oct 2015 13:42:08 +0530 Content-Transfer-Encoding: quoted-printable Message-Id: <38A0599F-BB59-49B6-B4E0-D16E0B95A745@inventum.net> References: <9E9D668A-17B5-4047-85B3-13519F898467@inventum.net> <20151028065757.GA4251@mhcomputing.net> <546F571B-8603-4D0E-95B3-6CE5BAD3EE02@inventum.net> <1ED644BD7E0A5F4091CF203DAFB8E4CC22BC432E@SHSMSX101.ccr.corp.intel.com> To: "Liu, Jijiang" X-Mailer: Apple Mail (2.2070.6) Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] Wrong TCP Checkum computed by hardware X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Oct 2015 08:12:14 -0000 > On 28-Oct-2015, at 1:31 pm, Liu, Jijiang = wrote: >=20 >=20 >> -----Original Message----- >> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Padam Jeet Singh >> Sent: Wednesday, October 28, 2015 3:20 PM >> To: Matthew Hall >> Cc: dev@dpdk.org >> Subject: Re: [dpdk-dev] Wrong TCP Checkum computed by hardware >>=20 >=20 > Did you set the txq_flags? > If the flag is not set, the default value is IXGBE_SIMPLE_FLAGS, and = the any TX offloads do not work. >=20 > See the following codes in ixgbe_rxtx.c file >=20 > /* Use a simple Tx queue (no offloads, no multi segs) if possible */ > if (((txq->txq_flags & IXGBE_SIMPLE_FLAGS) =3D=3D = IXGBE_SIMPLE_FLAGS) > && (txq->tx_rs_thresh >=3D = RTE_PMD_IXGBE_TX_MAX_BURST)) { > PMD_INIT_LOG(INFO, "Using simple tx code path"); > ... > dev->tx_pkt_burst =3D ixgbe_xmit_pkts_simple; > } else { > ... > dev->tx_pkt_burst =3D ixgbe_xmit_pkts; > } >=20 >=20 > --Jijiang Liu I initialise the queue with the following structure: static const struct rte_eth_txconf tx_conf =3D { .tx_thresh =3D { .pthresh =3D 32, /* Ring prefetch threshold */ .hthresh =3D 0, /* Ring host threshold */ .wthresh =3D 0, /* Ring writeback threshold */ }, .tx_free_thresh =3D 0, /* Use PMD default values */ .tx_rs_thresh =3D 0, /* Use PMD default values */ }; This would set the txq_flags to zero - so the tx_pkt_burst function = would always point to ixgbe_xmit_pkts. Also, as observed only TCP = checksum is computed wrong when there is VLAN TX Offload + IP Offload + = TCP offload bits set. VLAN TX Offload + IP Offload + TCP CKSUM in = software generates correct packet on the wire. Thanks, Padam=