From patchwork Mon Jan 23 11:59:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 19904 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 9736AFA66; Mon, 23 Jan 2017 13:01:56 +0100 (CET) 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 ; 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 To: CC: , , , , , , Hemant Agrawal 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 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: 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?= WrkpH3MEhwjlq7PtSRZG/W+7+tQbdrL+WIb1+MWM5cMiFS8V2iJ2P7sll0NUiqs2aw9DA1PMYhZ5hTaEy57a84X5I29cG8HXRz7r7qT6Ubd3KAfjpKQg5O90cdCE+Xs7uepmUX/5sL4W2QM+NN2NxfOErJHgkPucrskel6pwx884gUmJi6BTVubF67fi/KDNofF5/ZcbsZys3HxM829DwAkiy23mrAYtYTerX6C/dtZ3QRHf/EGw5e3aQTb7Stndux+Hd5vEd2X0aGAlUH/EW1HlGHY1m3r9jBvT/tGvAeMj6yjMYidKZ7hpkV6tJ8R6L/mrMYIMRNS49a3vC06e/pcRJ0H0nlo2IeKGgyriTb3oANnJTsyVkAx/VgCNyjScXYFct6u4AcwoFrSvq9bKkZrfuDjoSDDlH8B4EER4C3+bhCjixdQW1bxZVyNx78KUJfmvjVIA/HSIWLB2yRHPSjFOTH0akiv/NsQPphEi6lZEHMyXi0RSuhi0rp9Nl3/IzGIGuWGHN13qrgqS6a1LWUPXKcFshRtX0ioJgLBqzruBlqpO5pAa9Xuwf4OJL4EFz1Oizf3zbDuXM1IBuCZAYAwGLwDDfukQdbP2UpvD8xWEUZe6setQPA5nY1lo455t0ntCDI5GBh5u8jbEKTMR45/FDixDPbCGXriZP+ITpr8lZV+EtOrFRdT0nq3/1fJ3UPFFCtq6ZHaa+NuTmjAUlmmQUP3YFxHHo5cuzyvMH8KJ4WahYCwokZJUFfSaf+fucQ/kc2II0QhhaKfulYExsY2ypXLBSs9pDLBT7/mlWrc3UCgSzRiEvDeJFtRWvNso+TnUIMZxU1KtosvwuOkf76ZTUhXE4kIg35JYuT+WtLa3FP3aW9th5qO1+LoY0lJS1ThUL4JunwqT9z3ZjypPJzuSI6BZmoyqSqxNbGJbgK0yLsUJYLHgITOgBVay/9NfmCTIO1d90y9sO4kTFM71xWyVbsouUhO5zXAIae8vWLDK3WkxpEwu3KKWBQj/+NmcSi1UhGw+CgUucU391uYt8AuYE1IW5DJjBZRu4MRFRPa5jKiO1GUupy3f78qkBSpOvkJqKg4pUh1RnZUwsKlne7/deKK/5cN5SbsNcwlWh5cy2I/6y+jwRdf0iNqq6mRIy3zuSKg8rhELDgc1vtMNxsbJOxwtudgJ6fgf8VNa+Hp3xJndHJqj8IneS9csB4IdgBWfqX4W9+WEZDDZCA/NQhEu7yXTW/tkY3wIo8F1nTW3b96wjZukx43vWcW1GL/jbBpY= 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Hemant Agrawal --- 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 #include +#ifndef false +#define false 0 +#endif +#ifndef true +#define true 1 +#endif #define DPAA2_DQRR_RING_SIZE 16 /** 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;