From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id 4FD931C81B for ; Fri, 11 May 2018 18:26:12 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id 2CAD4280075; Fri, 11 May 2018 16:26:11 +0000 (UTC) Received: from ocex03.SolarFlarecom.com (10.20.40.36) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1044.25; Fri, 11 May 2018 09:26:00 -0700 Received: from opal.uk.solarflarecom.com (10.17.10.1) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1044.25 via Frontend Transport; Fri, 11 May 2018 09:26:00 -0700 Received: from uklogin.uk.solarflarecom.com (uklogin.uk.solarflarecom.com [10.17.10.10]) by opal.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id w4BGPxcA027513; Fri, 11 May 2018 17:25:59 +0100 Received: from uklogin.uk.solarflarecom.com (localhost.localdomain [127.0.0.1]) by uklogin.uk.solarflarecom.com (8.13.8/8.13.8) with ESMTP id w4BGPxWN014063; Fri, 11 May 2018 17:25:59 +0100 From: Andrew Rybchenko To: CC: Ferruh Yigit , Thomas Monjalon , Shahaf Shuler , Wei Dai Date: Fri, 11 May 2018 17:25:54 +0100 Message-ID: <1526055955-14027-3-git-send-email-arybchenko@solarflare.com> X-Mailer: git-send-email 1.8.2.3 In-Reply-To: <1526055955-14027-1-git-send-email-arybchenko@solarflare.com> References: <1526055955-14027-1-git-send-email-arybchenko@solarflare.com> MIME-Version: 1.0 Content-Type: text/plain X-MDID: 1526055971-jzi6Pe0RDGei Subject: [dpdk-dev] [PATCH 2/3] ethdev: fail if Tx queue offload is not supported at all 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: , X-List-Received-Date: Fri, 11 May 2018 16:26:12 -0000 Do not allow to request unsupported Tx offload since all checks are removed from PMDs because of consistency check in ethdev. Otherwise application may rely on offload which is not actually supported and send traffic with, for example, wrong checksums, truncated packets or packets with garbage. Fixes: d04dd6d4ed67 ("ethdev: new Rx/Tx offloads API") Signed-off-by: Andrew Rybchenko --- lib/librte_ethdev/rte_ethdev.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index dd36e6270..60577efcf 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -1744,6 +1744,16 @@ rte_eth_tx_queue_setup(uint16_t port_id, uint16_t tx_queue_id, local_conf.offloads, dev_info.tx_queue_offload_capa, __func__); + /* + * Applications which are not converted yet to the new + * Tx offload API may request device level offloads on + * queue level (and nothing is requested on device level). + * However, if the offload is not supported at all Tx + * queue setup must fail. + */ + if ((local_conf.offloads & dev_info.tx_offload_capa) != + local_conf.offloads) + return -EINVAL; } return eth_err(port_id, (*dev->dev_ops->tx_queue_setup)(dev, -- 2.17.0