From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <hemant.agrawal@nxp.com>
Received: from NAM01-BN3-obe.outbound.protection.outlook.com
 (mail-bn3nam01on0077.outbound.protection.outlook.com [104.47.33.77])
 by dpdk.org (Postfix) with ESMTP id 626E5F96C
 for <dev@dpdk.org>; Mon, 23 Jan 2017 13:01:26 +0100 (CET)
Received: from BN6PR03CA0014.namprd03.prod.outlook.com (10.168.230.152) by
 BN1PR0301MB0740.namprd03.prod.outlook.com (10.160.78.147) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id
 15.1.860.13; Mon, 23 Jan 2017 12:01:25 +0000
Received: from BN1BFFO11FD006.protection.gbl (2a01:111:f400:7c10::1:135) by
 BN6PR03CA0014.outlook.office365.com (2603:10b6:404:23::24) with Microsoft
 SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via
 Frontend Transport; Mon, 23 Jan 2017 12:01:24 +0000
Authentication-Results: spf=fail (sender IP is 192.88.168.50)
 smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed)
 header.d=none;nxp.com; dmarc=fail action=none header.from=nxp.com;nxp.com;
 dkim=none (message not signed) header.d=none;
Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not
 designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; 
 client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net;
Received: from tx30smr01.am.freescale.net (192.88.168.50) by
 BN1BFFO11FD006.mail.protection.outlook.com (10.58.144.69) with Microsoft SMTP
 Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8
 via Frontend Transport; Mon, 23 Jan 2017 12:01:24 +0000
Received: from bf-netperf1.idc ([10.232.134.28])
 by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0NC07ek019311;
 Mon, 23 Jan 2017 05:01:21 -0700
From: Hemant Agrawal <hemant.agrawal@nxp.com>
To: <dev@dpdk.org>
CC: <thomas.monjalon@6wind.com>, <bruce.richardson@intel.com>,
 <shreyansh.jain@nxp.com>, <john.mcnamara@intel.com>,
 <ferruh.yigit@intel.com>, <jerin.jacob@caviumnetworks.com>, Hemant Agrawal
 <hemant.agrawal@nxp.com>
Date: Mon, 23 Jan 2017 17:29:52 +0530
Message-ID: <1485172803-17288-23-git-send-email-hemant.agrawal@nxp.com>
X-Mailer: git-send-email 1.9.1
In-Reply-To: <1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com>
References: <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com>
 <1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com>
X-EOPAttributedMessage: 0
X-Matching-Connectors: 131296464846834745;
 (91ab9b29-cfa4-454e-5278-08d120cd25b8); ()
X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI;
 SFV:NSPM;
 SFS:(10009020)(6009001)(336005)(7916002)(39410400002)(39450400003)(39850400002)(39860400002)(39380400002)(39400400002)(39840400002)(2980300002)(1110001)(1109001)(339900001)(189002)(199003)(68736007)(105606002)(81156014)(81166006)(50226002)(8676002)(356003)(2351001)(8936002)(33646002)(50986999)(76176999)(48376002)(47776003)(50466002)(106466001)(305945005)(85426001)(5003940100001)(6916009)(2950100002)(2906002)(6666003)(86362001)(4326007)(110136003)(53936002)(5660300001)(189998001)(54906002)(104016004)(97736004)(77096006)(626004)(38730400001)(8656002)(36756003)(92566002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0740; H:tx30smr01.am.freescale.net;
 FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; 
X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD006;
 1:5WsLLSX+RYm9F2H4DM8NzXAJoZfC09l9IvaEg2jcOkCPU6rzU4rbd8v1s5J0KfNvfZAYDM2ST3z8ZrVXQCqDyAdi2mHuw5jJmCBXoT4RI9u7EFW0jcA8oDNWvykwFgNiZQDL9khjXHESzvm4ah1naudEVcUbMgfdLWIsecEcWXZqNnamSYL10AS7m9RJpIxvHaPW3sFUWFdI6zcUi97F952YGw5KrQgWJRBXYCbR1Xbh/69tD5EzeWYDDcBj4P8Xm92p45/oRGkqH0bXfavg+uhbVEyUEJTCABKVGNk4Dud2Nf8rywjiuH2Pgyr8Z+ebIzNxtNkU3KbJEDMEVqdkRg3eLejSAgIgL7nVvm12yYdj6a79YUcw9/pxpQTotfhwdWIfi7JDmqsTvW5SLLeTO59yBsXb9mHBAIYqmxxfSzxrl7i77qoIOMvvtM+0wbIAHVLDMkmRosk73S+UhGGh8vy58YuW3ZeeP4VGVMrp7FbvBg9uIc3OjGmWc91ToUClU946HACjj1Kkggqib7X9onEDvLf9OuRWTzwlH5lkie8G6sugqZ7Mmrs7Nol8EE6koocE14A9/m37b6lrVEZgTEgvBrdBFFgY6ghv/b/iwbzat/nWHrV+556OtunT0DCVzjkWMVeO4aw8kNeqDsTfKGP4MBnXNA9UyOHMa4JkFv++xtNwnYwiNWcKADYeoceRGt/YBsCftkHGFuC2DcJ+QzgSKoMvtckM72/BDbbAxIaw63mSiq8x1cGLYaSiO2WD
MIME-Version: 1.0
Content-Type: text/plain
X-MS-Office365-Filtering-Correlation-Id: 8f196243-4cb3-4185-cc39-08d443878dec
X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001);
 SRVR:BN1PR0301MB0740; 
X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0740;
 3:Dwj9sv3nj9fJpm0d4s1iyQX+Hu4NyKxzawVhpEM7dibltPGUaicqYsmRNv1alHrdoXUOIV8M0xa5mjk6H3Q++27I+EKe1duagdU2eluL1Fz8kva7y/BjmQ2GUgTvgNXyL+4BSZjK9ombQYhxqXPNErAYkhgutInFDqcjGuJfYv9IwUKRoHeiJNQHDdltJeMCbVR8p1k5otOQR/xgTikGvHj7XREgHmHzhCX0fE2IfPJQ0vePh454hEVjCZ69J/QdtzkVD1Iy31lN7FgQ+voL+uWsZbxumI0yZ2V1eyLO74RWVbUxFQHmF88f8HGv81TQAjTAo8YGCqtCu5pk6ZsQWrE63HMMSin6woSRyhD1aaoTMNNpJ4Id4hgHW+PV3V69;
 25:AdBgOtA49fCWLrfGEZQOh+Cfkmk6B+JQ4CJ6c6DogWYCgjxx8eWSYM9+FqkgGx78HzED4SamJLDN8le9HCrOlnumUuKPfps4CbQTAki00WSw0eLldjFB0Fh+fjaMFHCHRMiO66tp31hlAA5TISKSzQjTl0HC9v5DLdkZ8Slqmfsz29fFeuNIdeDcAMKLMO86DTszcRGxfLQuCHROrZNKxjRXYY1l/aMubht3gGZRq7shnlODmMlSfvr0WhL94i4uwec8x4LrlAH2PCeYbDvESDsLGDJ6Y9qPoDHqTLer/mYcrSc+lXL2JQveTJUCEOaQHini07hQrmGtLP0LsGcyuDZ0d0OcLpAbL3SLIfwgHwM91eoQ+EsVJVd4tYYenSpIbNEfdVV3r0f1IqFtmt6/GvMh8oIMdT+LXiGRhJ28k2W5AlhMWvT3jAOU/gzsks/EAYtmtP7MAUJrLNdAevl5Ag==
X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0740;
 31:GQRqVBvUqjGrkf0etI+/LKiXPkBs9A1xLEypz4B1uLhFZ3QSgfiyPPFnmTSmeWEYhpjHpQX8yGzvM+o/p7+cai1/g7t/3z4PsRzuYAm0lxZ1fzS8EXTggnKfHa4oXQyCdVGzDch625AskDiE0ALv4PYcb1Xe2lUVZlYCUc5tS1U6O/xfdXeOWdsTQWfdzgKvNXQUT9atfSflWYIMZf6hInTbSt+Ao7IUct8bJAqavCCArqlVicVxkrPsUnw382RM7Wsyw4phidCkXKSsJzQk2A==
X-Microsoft-Antispam-PRVS: <BN1PR0301MB074036736B30040B57159B5389720@BN1PR0301MB0740.namprd03.prod.outlook.com>
X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684);
X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0;
 RULEID:(6095060)(601004)(2401047)(13023025)(13017025)(13015025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025);
 SRVR:BN1PR0301MB0740; BCL:0; PCL:0; RULEID:(400006); SRVR:BN1PR0301MB0740; 
X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0740;
 4:zzBilhbCxussZRJn29zZ2NGd80Ow92fHfRX5RHkk6BIZdhBWbCjvuS19tPhgM2jehQorMkdhk5bCSu5KUk+Sp0dTFRSepyKgocILjWViVAIa6+0+ejv1/ckKcj7RltjkVDuatuoNkPWyXVbuJ1G15iUn53FnY1gCpgJZPmnUN7I+wGaMnYhAhQXLPS1jvKOzXS6rQyCaGOjn0rfpcrC4cFrlC6uoP9WpfcOlMk5do66hje+53dCSU0X021FBsxc+ME0A0QzoYlHKWBL1XQ1EmVc7MOH/zWap6XAKOszO71L3WZY5X2DNE/vo7K8onLgGssEnoQgLKWKS7LGus7O57j9qA3NxW518SUq56y7X3izAfjWW9BSQb8ciRenMkfnn17/V+JY508/c6sZSXxlK2/cRLQXi8pUbw0To/sZsxdHIsJalpu07F9H/AxigpH6sUiQRx6ETNkxn0o3SWamG/brldLI/W4q7Efk7z8fGvrf6MBZnN5bQ8J9yoA+u3IM6fc3Xf4ARsSjvC3LY7ogd06Y4FdVAEjMiBnl9NHXr56qDifOgndtoR1+0siYMCkXj9vIEnWcwX9StX7VSbZahHz6COQ2z9kb2Wp185hqF9Jq51agepdxLJRd2qyc1xnLDLsklkGcty5bEhckY3o1gNJdg+/iADTs3bWyy1/aBRG+4zDSxcRFGXrtpYSotOAu01ugaOn17CdxVqbWUsMTaFObgldHvjK6Xgc+1d8LNTcgPTZYdILTScqgQe1q+weAkDmN8XNd7x9on83MLbXlp5w==
X-Forefront-PRVS: 0196A226D1
X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR0301MB0740;
 23:nh6wBYEnx0+C0hrsrukydXSj4XNk34pHqq2Z3JI?=
 =?us-ascii?Q?WrkpH3MEhwjlq7PtSRZG/W+7+tQbdrL+WIb1+MWM5cMiFS8V2iJ2P7sll0NU?=
 =?us-ascii?Q?iqs2aw9DA1PMYhZ5hTaEy57a84X5I29cG8HXRz7r7qT6Ubd3KAfjpKQg5O90?=
 =?us-ascii?Q?cdCE+Xs7uepmUX/5sL4W2QM+NN2NxfOErJHgkPucrskel6pwx884gUmJi6BT?=
 =?us-ascii?Q?VubF67fi/KDNofF5/ZcbsZys3HxM829DwAkiy23mrAYtYTerX6C/dtZ3QRHf?=
 =?us-ascii?Q?/EGw5e3aQTb7Stndux+Hd5vEd2X0aGAlUH/EW1HlGHY1m3r9jBvT/tGvAeMj?=
 =?us-ascii?Q?6yjMYidKZ7hpkV6tJ8R6L/mrMYIMRNS49a3vC06e/pcRJ0H0nlo2IeKGgyri?=
 =?us-ascii?Q?Tb3oANnJTsyVkAx/VgCNyjScXYFct6u4AcwoFrSvq9bKkZrfuDjoSDDlH8B4?=
 =?us-ascii?Q?EER4C3+bhCjixdQW1bxZVyNx78KUJfmvjVIA/HSIWLB2yRHPSjFOTH0akiv/?=
 =?us-ascii?Q?NsQPphEi6lZEHMyXi0RSuhi0rp9Nl3/IzGIGuWGHN13qrgqS6a1LWUPXKcFs?=
 =?us-ascii?Q?hRtX0ioJgLBqzruBlqpO5pAa9Xuwf4OJL4EFz1Oizf3zbDuXM1IBuCZAYAwG?=
 =?us-ascii?Q?LwDDfukQdbP2UpvD8xWEUZe6setQPA5nY1lo455t0ntCDI5GBh5u8jbEKTMR?=
 =?us-ascii?Q?45/FDixDPbCGXriZP+ITpr8lZV+EtOrFRdT0nq3/1fJ3UPFFCtq6ZHaa+NuT?=
 =?us-ascii?Q?mjAUlmmQUP3YFxHHo5cuzyvMH8KJ4WahYCwokZJUFfSaf+fucQ/kc2II0Qhh?=
 =?us-ascii?Q?aKfulYExsY2ypXLBSs9pDLBT7/mlWrc3UCgSzRiEvDeJFtRWvNso+TnUIMZx?=
 =?us-ascii?Q?U1KtosvwuOkf76ZTUhXE4kIg35JYuT+WtLa3FP3aW9th5qO1+LoY0lJS1ThU?=
 =?us-ascii?Q?L4JunwqT9z3ZjypPJzuSI6BZmoyqSqxNbGJbgK0yLsUJYLHgITOgBVay/9Nf?=
 =?us-ascii?Q?mCTIO1d90y9sO4kTFM71xWyVbsouUhO5zXAIae8vWLDK3WkxpEwu3KKWBQj/?=
 =?us-ascii?Q?+NmcSi1UhGw+CgUucU391uYt8AuYE1IW5DJjBZRu4MRFRPa5jKiO1GUupy3f?=
 =?us-ascii?Q?78qkBSpOvkJqKg4pUh1RnZUwsKlne7/deKK/5cN5SbsNcwlWh5cy2I/6y+jw?=
 =?us-ascii?Q?Rdf0iNqq6mRIy3zuSKg8rhELDgc1vtMNxsbJOxwtudgJ6fgf8VNa+Hp3xJnd?=
 =?us-ascii?Q?HJqj8IneS9csB4IdgBWfqX4W9+WEZDDZCA/NQhEu7yXTW/tkY3wIo8F1nTW3?=
 =?us-ascii?Q?b96wjZukx43vWcW1GL/jbBpY=3D?=
X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0740;
 6:/wekmHTLduw4MKPZioD6Dm0rI4/g8pZUoJqP8oRt1XTvFBAhZUNPSa7qrrHRM7Dw9CEp+iRz+2hPzSbM/7y2bzumUcvELnwYHX+lILb22GlWlWyUHEZn6TvPXcfwKnkZvy+PgUskV+xUSS4VUy5FBfv+XQzFBnI/qlxoqMpChbiUBJERabVNIv2iGGr6mCfBrly0CgrTP0yXE6pr/3qBI5pAmNtyc7gpxQawmlAtu4tO7yL1mq7vjdYYcRclrZ09iNwdqM0SA/dnYb7FoKFyH2vJGesNdLr7K0T5Sqrx22Jqj5pt1Z9MMzNvvfpczVwHb0AziL4hjF06yT8vJeUcyy13fbvLbH0eYn1mn0hOimd/d41iKfpnl87DNknQCQiPKPBmm+7Dzz3NmlQOwdq644u+34aAjm3LM3epUn8GeK6ZSmx6Y94zvqng6U2qnH3g;
 5:s84sGqufv34A8WDXgpBFofkeaI/QzO5W+WQe9DWVhjCL77UG1VrSx8rPKF4SC0tWEbS9+zb8cVx6Tww27fiEW/SybWmYuKAO4EnbJFtew2VYP1teRoY5/W4mByKVzXJSnnUTsdk3dP/0mMvNmiWrJdjTcERBdaSKvma1GmIPeE55aWs2QJ99ZArpbdXh51z4;
 24:fqLr/gp95vdcUQj/llG+/E8ON0naPVNNNlUPw9vxNDqz40nc11w5nrQhkHnXZGoo30a8Pz9RAovI03EKDAh9K+8EkNpTNzOlWc7aIMiBIO4=
SpamDiagnosticOutput: 1:99
SpamDiagnosticMetadata: NSPM
X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0740;
 7:WScJ2tytP2tLJH1M6zUZH8UtK88vQDp4h0WNDYiHoHeowWH3udxwVJKImlxqiyJs3sWlz3q6V8Hz6pc66VedLw4cs6Fibz950IGptqAZNwoVdCOa1vJqC1uHa7I9NIIlz5pCkEgBcZqAMVX2bk89WdmS8VdrHS31X3gZTz87DPKnfDqMsU58wYUaj2JT2Iz1IpPLx4TZ7cPbMjjaFORMyzjfmpkk4DCXvZq8vE0h19YE3wnFsRsWboPeYcURYjbcH3Gys4TYQFVq1Xjw16lRDQds1PuW+RCtNVVEKO3blafHXonk2jRYLvOxt2nLMjDsR/f9jXtigfelc34MBpJdeMDrlS+HftNP9DDkKtstzzpnyeow+LUtCLUZ8/2YggfXkKhTHWUCWWYoHkgMoS4IRk8+/iycu5JlGIOs/Y0ZXsn7CZJfkYF7BNuHN8hw9KlgATllfGoiYhtNT5VDaon8bw==
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jan 2017 12:01:24.5118 (UTC)
X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50];
 Helo=[tx30smr01.am.freescale.net]
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR0301MB0740
Subject: [dpdk-dev] [PATCHv6 22/33] net/dpaa2: add support for l3 and l4
	checksum offload
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 23 Jan 2017 12:01:27 -0000

Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>
---
 doc/guides/nics/features/dpaa2.ini      |  2 +
 drivers/bus/fslmc/portal/dpaa2_hw_pvt.h |  6 +++
 drivers/net/dpaa2/Makefile              |  2 +-
 drivers/net/dpaa2/dpaa2_ethdev.c        | 72 +++++++++++++++++++++++++++++++--
 4 files changed, 77 insertions(+), 5 deletions(-)

diff --git a/doc/guides/nics/features/dpaa2.ini b/doc/guides/nics/features/dpaa2.ini
index 20152a0..d50c62e 100644
--- a/doc/guides/nics/features/dpaa2.ini
+++ b/doc/guides/nics/features/dpaa2.ini
@@ -6,6 +6,8 @@
 [Features]
 Queue start/stop     = Y
 RSS hash             = Y
+L3 checksum offload  = Y
+L4 checksum offload  = Y
 Linux VFIO           = Y
 ARMv8                = Y
 Usage doc            = Y
diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
index 8efac2d..1af93a5 100644
--- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
+++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h
@@ -37,6 +37,12 @@
 #include <mc/fsl_mc_sys.h>
 #include <fsl_qbman_portal.h>
 
+#ifndef false
+#define false      0
+#endif
+#ifndef true
+#define true       1
+#endif
 #define DPAA2_DQRR_RING_SIZE	16
 	/** <Maximum number of slots available in RX ring*/
 
diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile
index fadabb5..0e59203 100644
--- a/drivers/net/dpaa2/Makefile
+++ b/drivers/net/dpaa2/Makefile
@@ -66,6 +66,6 @@ DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_eal lib/librte_ether
 DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_mempool lib/librte_mbuf
 DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_common_dpaa2_qbman
 DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_bus_fslmc
-DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pmd_dpaa2_pool
+DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pool_dpaa2
 
 include $(RTE_SDK)/mk/rte.lib.mk
diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c
index 6de571a..2298246 100644
--- a/drivers/net/dpaa2/dpaa2_ethdev.c
+++ b/drivers/net/dpaa2/dpaa2_ethdev.c
@@ -68,7 +68,17 @@
 	dev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE;
 	dev_info->max_rx_queues = (uint16_t)priv->nb_rx_queues;
 	dev_info->max_tx_queues = (uint16_t)priv->nb_tx_queues;
-
+	dev_info->rx_offload_capa =
+		DEV_RX_OFFLOAD_IPV4_CKSUM |
+		DEV_RX_OFFLOAD_UDP_CKSUM |
+		DEV_RX_OFFLOAD_TCP_CKSUM |
+		DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM;
+	dev_info->tx_offload_capa =
+		DEV_TX_OFFLOAD_IPV4_CKSUM |
+		DEV_TX_OFFLOAD_UDP_CKSUM |
+		DEV_TX_OFFLOAD_TCP_CKSUM |
+		DEV_TX_OFFLOAD_SCTP_CKSUM |
+		DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM;
 	dev_info->speed_capa = ETH_LINK_SPEED_1G |
 			ETH_LINK_SPEED_2_5G |
 			ETH_LINK_SPEED_10G;
@@ -252,8 +262,13 @@
 	memset(&tx_conf_cfg, 0, sizeof(struct dpni_queue));
 	memset(&tx_flow_cfg, 0, sizeof(struct dpni_queue));
 
-	tc_id = 0;
-	flow_id = tx_queue_id;
+	if (priv->num_tc == 1) {
+		tc_id = 0;
+		flow_id = tx_queue_id % priv->num_dist_per_tc[tc_id];
+	} else {
+		tc_id = tx_queue_id;
+		flow_id = 0;
+	}
 
 	ret = dpni_set_queue(dpni, CMD_PRI_LOW, priv->token, DPNI_QUEUE_TX,
 			     tc_id, flow_id, options, &tx_flow_cfg);
@@ -302,6 +317,7 @@
 	struct dpaa2_dev_priv *priv = data->dev_private;
 	struct fsl_mc_io *dpni = (struct fsl_mc_io *)priv->hw;
 	struct dpni_queue cfg;
+	struct dpni_error_cfg	err_cfg;
 	uint16_t qdid;
 	struct dpni_queue_id qid;
 	struct dpaa2_queue *dpaa2_q;
@@ -337,6 +353,48 @@
 		dpaa2_q->fqid = qid.fqid;
 	}
 
+	ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+			       DPNI_OFF_RX_L3_CSUM, true);
+	if (ret) {
+		PMD_INIT_LOG(ERR, "Error to set RX l3 csum:Error = %d\n", ret);
+		return ret;
+	}
+
+	ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+			       DPNI_OFF_RX_L4_CSUM, true);
+	if (ret) {
+		PMD_INIT_LOG(ERR, "Error to get RX l4 csum:Error = %d\n", ret);
+		return ret;
+	}
+
+	ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+			       DPNI_OFF_TX_L3_CSUM, true);
+	if (ret) {
+		PMD_INIT_LOG(ERR, "Error to set TX l3 csum:Error = %d\n", ret);
+		return ret;
+	}
+
+	ret = dpni_set_offload(dpni, CMD_PRI_LOW, priv->token,
+			       DPNI_OFF_TX_L4_CSUM, true);
+	if (ret) {
+		PMD_INIT_LOG(ERR, "Error to get TX l4 csum:Error = %d\n", ret);
+		return ret;
+	}
+
+	/*checksum errors, send them to normal path and set it in annotation */
+	err_cfg.errors = DPNI_ERROR_L3CE | DPNI_ERROR_L4CE;
+
+	err_cfg.error_action = DPNI_ERROR_ACTION_CONTINUE;
+	err_cfg.set_frame_annotation = true;
+
+	ret = dpni_set_errors_behavior(dpni, CMD_PRI_LOW,
+				       priv->token, &err_cfg);
+	if (ret) {
+		PMD_INIT_LOG(ERR, "Error to dpni_set_errors_behavior:"
+			     "code = %d\n", ret);
+		return ret;
+	}
+
 	return 0;
 }
 
@@ -453,7 +511,13 @@
 	 */
 	priv->nb_rx_queues = priv->num_dist_per_tc[DPAA2_DEF_TC];
 
-	priv->nb_tx_queues = attr.num_queues;
+	if (attr.num_tcs == 1)
+		priv->nb_tx_queues = attr.num_queues;
+	else
+		priv->nb_tx_queues = attr.num_tcs;
+
+	PMD_INIT_LOG(DEBUG, "num_tc %d", priv->num_tc);
+	PMD_INIT_LOG(DEBUG, "nb_rx_queues %d", priv->nb_rx_queues);
 
 	eth_dev->data->nb_rx_queues = priv->nb_rx_queues;
 	eth_dev->data->nb_tx_queues = priv->nb_tx_queues;
-- 
1.9.1