From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0048.outbound.protection.outlook.com [104.47.0.48]) by dpdk.org (Postfix) with ESMTP id 056717CD1 for ; Mon, 4 Sep 2017 09:12:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=jzE6h5G8FnPe9rvOCEAtMBU2TfFF0U4BFMcoIfbfMr8=; b=HYN9dKeFiXNSPRH/aDw4Owqb4hoHmvLQBh6PX88L6lS1ROUNgqF5/eCu+gwjtekh1vBzDEFat5SbuVnkUYvkisU3tCeBuGeiOKuXlwQtZ511EUYW1CsVOxeWKHiqY2Lt+KRzresvI8so9F1/3D7yCZCNRXqFiyBSc8HSccKK81g= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (82.166.227.17) by HE1PR05MB3148.eurprd05.prod.outlook.com (2603:10a6:7:36::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.13.10; Mon, 4 Sep 2017 07:12:27 +0000 From: Shahaf Shuler To: thomas@monjalon.net Cc: dev@dpdk.org Date: Mon, 4 Sep 2017 10:12:17 +0300 Message-Id: X-Mailer: git-send-email 2.12.0 In-Reply-To: References: MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [82.166.227.17] X-ClientProxiedBy: HE1PR07CA0005.eurprd07.prod.outlook.com (2603:10a6:7:67::15) To HE1PR05MB3148.eurprd05.prod.outlook.com (2603:10a6:7:36::18) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fddd4485-2f07-4ace-5ab4-08d4f3644cfe X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:HE1PR05MB3148; X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 3:bRlOPeX3qKW2pFgIg3BTupWf0+AgnqhN10A6+6sV0kALBMwip1BIl1VzT5jPdozwK0lqAZg6mR0zd9rrP1aPz5TRRZG0FcKLqCIjP2hmRgCt0rGHQb2F/ljGG3UdyTE0iwtowFhygQXixiFKDQVT00rpeM8ZgIMMjt5hck/sJ8dzlKEZNMZPNSaqqyuo+f53z4/rG69A79FlGuQyEYA3WRXcjMgTn5Ha5EyPptj8WQ5eBNCvs/1xsEVFmchMi9UW; 25:HpOtBdqjVPhc7ah4ZFzBSukFWKSKL/kOXEjOphlRpZa/n7vK9FTLLRyHXlTnuDv8g87PZIcxHuU0DuNm6R+5FdUEGWY8RAmNW9aIWxMpmGztWsSsTSR07R8oHrQ9/qWRG0Y/JS6SGJrIDs7A8z28egpa34vxyc0swrESLZQMsi5PRfijlt6yOqingTk8e0lP7cNU+P094PbFmoJ4ahbCD25/AbibjU7q5R3aHzaDe/7fzpKvCoqo/K+U0Lu/2ptRqDRXHI/6/UjvPeNIUIl9SNuCMGIVFTTLzYWj2rtklKBrBOH2Mq403P1ye5Nb7YXCsyPgVB2o6j8FeGtVmXIkcA==; 31:EnGTBQKfoyDf1XL8pU3PoUb4Ljo3Xql1zEOW61cS1gmyyTOgbm4sxNMfZc/WQfC1s4k/o/UslvNW8G0oZ3MBtSlBVPFP/1By5FLn/zNiA5zw0OUGir75yEDEzZOuvuDwiLMx7uUJT8wBxGue/AgOCmDH70CITz6+UucFv9CHhZtP92Qxb6C4RoY3w0fWib1GvpDNNhi7DdWkmiu9hNsJylVbkyUj0KMa+rd51LWIJWs= X-MS-TrafficTypeDiagnostic: HE1PR05MB3148: X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 20:2jTzSIw4ymfzUfsw6CXlFvlh1VzjcOoQtpC1u1c78JWaExy9URL4buH349JNcgEMLLU5g7KEJbRFVFkcRHPhkqZ4W0li47aUzudklUwauabicTo4Q2fdps/wmhkn9jjUqpUj8P6JyifWr+WfX7q22EiVCEiFGRggOPx+U6h1oS3FX/aF2wWc5GLzg17A/kSuHKK46SlI9oeda8WEfwR29rgFb8V30R/74sdKnCmbJjHVFtd6shovEP10GDYh+54icUmy8xbOSkBxyOmm+ykpGhrI511k52ZYQG6neb25Z9DvCh+hcB393dnzzodaUq5pVQ0bSGXUEMpiU4q9hP0K86RDT0e7nXb44JDlF0khIA8/xYxnUazEwyBHI/Sjfd6+mChB6sPqG8+BJfDXNprhDKY9EEvOLIUnIOhENr9XSUamG2eZPMDzn8UrO0pOYjoEl1vOP2BMxwTJaRiJ/cKyO1AKxdzAD6YleT7+wAh7dNal7efeBA5vvykc1uVefZ5t; 4:RqU0npH/U2srxi4efrWR1+KVvoe0T84P+AFQLYyl+ZsvmmOHO+yzVOSU1eyWmw7ADsTp+ioI93p7JeCJ43KX3bFnLAXZYYzZlRPrEGxwTaazRdUcE7KK8lPtqsf2iuuHnwOSdrqLv88rSuAqkDXjHPaf/EVuOdwvXShzod6cCNEsJblRx5RwDOlIlrDU5G4z4XxBfKDyJBrMVKUtz/MMyxKvyZ/EwS6g37idV0XqBsX3Gv/DmjHyBFwjIW78QXEEP2P3dgsHbC+VzRYYGxtEDs2LrqL+NO9BcrNoWM6/3uY= X-Exchange-Antispam-Report-Test: UriScan:(278428928389397); X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(3002001)(10201501046)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:HE1PR05MB3148; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:HE1PR05MB3148; X-Forefront-PRVS: 0420213CCD X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(39860400002)(189002)(199003)(105586002)(36756003)(69596002)(97736004)(4326008)(305945005)(5003940100001)(2950100002)(7736002)(6916009)(106356001)(50226002)(53936002)(86362001)(118296001)(5660300001)(68736007)(2361001)(6666003)(110136004)(2351001)(42186005)(55016002)(21086003)(478600001)(33646002)(189998001)(33026002)(3846002)(101416001)(6116002)(2906002)(76176999)(50986999)(48376002)(50466002)(81156014)(81166006)(25786009)(66066001)(47776003)(8676002)(7350300001); DIR:OUT; SFP:1101; SCL:1; SRVR:HE1PR05MB3148; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; HE1PR05MB3148; 23:cO3WIWn93vUvknkYTNdnwbNy9LzxclRrGLUn3NrCt?= =?us-ascii?Q?YC1HXB+lTS/MXEN+E60xknP2/U/U818tDAp5L0tM5iSn6zyDzVBP60ihi2A5?= =?us-ascii?Q?6Z3rGfdBbZFp4gxBzsvfyGKgAjEoD2V/jtSMnyyHjy+/n38TjhNBbdVZwkG4?= =?us-ascii?Q?CN2r5V9f3gYNjvhek1HuayJMxLTTLpSwP4hWbEJClrZYQjWsyuO1bsDa8RXl?= =?us-ascii?Q?/beQG73CIvescQmutEM802xi8jNTPEtwCkZZvZuNJEgk2wRp7+bvE5DFD3oe?= =?us-ascii?Q?jaUeEsUAZNtbxMV0JgZDrrUVhggrnHmAGtk2pYFZkX/9odfvyCGs9arZwE4w?= =?us-ascii?Q?3YKTZ5WTwnBjT2idCA8gNjRZ0Bc/rE4c0oEyA44PxD/gA1iDkFM+u852SUUW?= =?us-ascii?Q?SZEKNfP3hSFgU6iEiok4PNM3GyHmcn5A6lUP6SPvj9rtV25gXuYamC/Db+rK?= =?us-ascii?Q?6hMJ6veEMwaKdKlZdknk72HbDdxMcXwoyjxCoMUeDfy0WNxGJVc4c7wV7hsb?= =?us-ascii?Q?WbAHEJs8dBzgierysITbKbJNvaCIPLUVzNOdcFFrOCD4IrlfQbwpdcRNPOx0?= =?us-ascii?Q?CLqPf3dwvx7KjqgBtjEMrrnEWmo3FiJaFnfkFwwKYHOztofbc7v2uK63VAD+?= =?us-ascii?Q?AD5vblvjY2R5wGV5rMP3wSb/E7MJRG4G7mCx1j5OEG7a+QJzfM62fufnI4KP?= =?us-ascii?Q?BgJr7rpg436Ptme1agnzNL3drXQjEvUTSB3KT0KaXTr15VxoDFVnzgOUTSUQ?= =?us-ascii?Q?j3Dt1NJWcwK83ZyhAmNT/fqzMWonWHTZBKO4rWywujEyF2l0ufvsQkhMpNyn?= =?us-ascii?Q?05y7EUWjBj2+Kl8VkF03XHXnbbDMIuHYkADc0REmKsIoa2F3Yy1QVbTnig2b?= =?us-ascii?Q?PcY/1QMxYHeCaEhXWDJchC9cAtbWwg+9959xb4r6/Sm6xiHjScxaY+thj+X6?= =?us-ascii?Q?W+2l8I/PsXtVXN8tj6scaNSTpSj4ML99ZKQ1dpVKvqYUu8pBAbgvpsdwB3C8?= =?us-ascii?Q?43Ksar04vc6V1RnUAkCn42r03hqQEVDGxo62vkoxmI3z9DznuLcvVEcU8xZX?= =?us-ascii?Q?aXv1CaSj+iHa5q2srYKmsQHIMm+lmJDK4bzyP6VwuDMvPN7jVFJUaRg7o9DI?= =?us-ascii?Q?MQHYKO2di2B818tg+tFmdvb/tqCU+BcKKMvR22GypUBIUIyOcZNN07u2Ls+f?= =?us-ascii?Q?WTvC8CNcA8mmc5RopFQd3TO2Kt48PJl8Uqx?= X-Microsoft-Exchange-Diagnostics: 1; HE1PR05MB3148; 6:LRyY7ObDxA280NOHKt0JzvvdRRxVeXtCayqumXawjkHLZlTGW7PimB3VytrtY+9xyKSRtIZv7xhnK1BQq0q71LPIzlfWDnxPwF9CV6GMQlp+pJNj08G0oO+f5bv7GEi+5YpSZxX5uSGm4I5wx3lQ/QsTXNl0/z4h7dJviTAKkxO+A3dM2xoMhTTCvmQAUE7VJ3MK2SQOnpbSZyJ21qDn6lj7xmCBzfJhlHGFuMHc0yAC7bDyqV+Fn+nWKGy+56s5LHT9FwyCcDVfS6trqGWAfI5b62nG5et734Apkbu6dwywbjYkZAkcyR9u2B9bN1QQHKh3KlEZUoy+itq54uBxHg==; 5:J8K6tJ8ya4T4yo6FTIIhj/JcoBihzBlxJv2b7w/xBo40tvhSpr4mecbrTPLVgDsFUzVvNHjoX7E6G1NITQtcPZzgppj1oRFFzqyDG5pFUQrWxyHkYrWNgFg+dI2UaJR18qbVIZVWI2yhQQL68asY/w==; 24:/QjnGIjNLZLtVVJa4YTfENT13YMC9LxdymfJQ0Bqh4ZZSg1akTd+cQRBzG0zuNMcfcirF5DB19mDQNobj6ad4vp19J0MKOpB40apO4ft5jY=; 7:bpwiQP1WyQmuVOC7uRQp3sA+QDmwMI/iXv5kXCkg22H53yB5lbeJeQt8wsIcHmoLmnbZdB83PDXl24u0cigSr9Vy+wxjgpNRCw6lYYEhxIH3W7OlGjIJ7WBwKKGpWTvpt6p0nB9rH83YcsDRko5d7AMrDRk8fHTgfWPJdyw6iYdIskD58XZ4g9Zbg1BZCsYM1R/yFmtMrGSp9ScIKIG6I/Z20U/hmbGu/KBwL+QAq3M= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Sep 2017 07:12:27.5880 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR05MB3148 Subject: [dpdk-dev] [PATCH 3/4] ethdev: introduce Tx queue offloads API 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: Mon, 04 Sep 2017 07:12:29 -0000 Introduce a new API to configure Tx offloads. The new API will re-use existing DEV_TX_OFFLOAD_* flags to enable the different offloads. This will ease the process of adding a new Tx offloads, as no ABI breakage is involved. In addition, the Tx offloads will be disabled by default and be enabled per application needs. This will much simplify PMD management of the different offloads. The new API does not have an equivalent for the below, benchmark specific, flags: - ETH_TXQ_FLAGS_NOREFCOUNT - ETH_TXQ_FLAGS_NOMULTMEMP The Tx queue offload API can be used only with devices which advertize the RTE_ETH_DEV_TXQ_OFFLOAD capability. PMDs which move to the new API however support Tx offloads only per port should return from the queue setup, in case of a mixed configuration, with error (-ENOTSUP). The old Tx offloads API is kept for the meanwhile, in order to enable a smooth transition for PMDs and application to the new API. Signed-off-by: Shahaf Shuler --- doc/guides/nics/features.rst | 8 ++++++++ lib/librte_ether/rte_ethdev.h | 24 ++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst index f2c8497c2..bb25a1cee 100644 --- a/doc/guides/nics/features.rst +++ b/doc/guides/nics/features.rst @@ -131,6 +131,7 @@ Lock-free Tx queue If a PMD advertises DEV_TX_OFFLOAD_MT_LOCKFREE capable, multiple threads can invoke rte_eth_tx_burst() concurrently on the same Tx queue without SW lock. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_MT_LOCKFREE``. * **[provides] rte_eth_dev_info**: ``tx_offload_capa:DEV_TX_OFFLOAD_MT_LOCKFREE``. * **[related] API**: ``rte_eth_tx_burst()``. @@ -220,6 +221,7 @@ TSO Supports TCP Segmentation Offloading. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_TCP_TSO``. * **[uses] rte_eth_desc_lim**: ``nb_seg_max``, ``nb_mtu_seg_max``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_TCP_SEG``. * **[uses] mbuf**: ``mbuf.tso_segsz``, ``mbuf.l2_len``, ``mbuf.l3_len``, ``mbuf.l4_len``. @@ -510,6 +512,7 @@ VLAN offload Supports VLAN offload to hardware. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_VLAN_STRIP,DEV_RX_OFFLOAD_VLAN_FILTER,DEV_RX_OFFLOAD_VLAN_EXTEND``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_VLAN_INSERT``. * **[implements] eth_dev_ops**: ``vlan_offload_set``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.vlan_tci``. * **[provides] rte_eth_dev_info**: ``rx_offload_capa:DEV_RX_OFFLOAD_VLAN_STRIP``, @@ -526,6 +529,7 @@ QinQ offload Supports QinQ (queue in queue) offload. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_QINQ_STRIP``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_QINQ_INSERT``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ_PKT``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_QINQ_STRIPPED``, ``mbuf.vlan_tci``, ``mbuf.vlan_tci_outer``. @@ -541,6 +545,7 @@ L3 checksum offload Supports L3 checksum offload. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_IPV4_CKSUM``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``, ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``. * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` | @@ -558,6 +563,7 @@ L4 checksum offload Supports L4 checksum offload. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_UDP_CKSUM,DEV_RX_OFFLOAD_TCP_CKSUM``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_UDP_CKSUM,DEV_TX_OFFLOAD_TCP_CKSUM,DEV_TX_OFFLOAD_SCTP_CKSUM``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``, ``mbuf.ol_flags:PKT_TX_L4_NO_CKSUM`` | ``PKT_TX_TCP_CKSUM`` | ``PKT_TX_SCTP_CKSUM`` | ``PKT_TX_UDP_CKSUM``. @@ -576,6 +582,7 @@ MACsec offload Supports MACsec. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_MACSEC_STRIP``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_MACSEC_INSERT``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_MACSEC``. * **[provides] rte_eth_dev_info**: ``rx_offload_capa:DEV_RX_OFFLOAD_MACSEC_STRIP``, ``tx_offload_capa:DEV_TX_OFFLOAD_MACSEC_INSERT``. @@ -589,6 +596,7 @@ Inner L3 checksum Supports inner packet L3 checksum. * **[uses] rte_eth_rxq_conf**: ``offloads:DEV_RX_OFFLOAD_OUTER_IPV4_CKSUM``. +* **[uses] rte_eth_txq_conf**: ``offloads:DEV_TX_OFFLOAD_OUTER_IPV4_CKSUM``. * **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``, ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``, ``mbuf.ol_flags:PKT_TX_OUTER_IP_CKSUM``, diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h index 90934418d..1293b9922 100644 --- a/lib/librte_ether/rte_ethdev.h +++ b/lib/librte_ether/rte_ethdev.h @@ -719,6 +719,14 @@ struct rte_eth_rxq_conf { #define ETH_TXQ_FLAGS_NOXSUMS \ (ETH_TXQ_FLAGS_NOXSUMSCTP | ETH_TXQ_FLAGS_NOXSUMUDP | \ ETH_TXQ_FLAGS_NOXSUMTCP) +#define ETH_TXQ_FLAGS_IGNORE 0x8000 + /** + * When set the txq_flags should be ignored, + * instead the Tx offloads will be set on offloads field + * located on rte_eth_txq_conf struct. + * This flag is temporary till the rte_eth_txq_conf.txq_flags + * API will be deprecated. + */ /** * A structure used to configure a TX ring of an Ethernet port. */ @@ -730,6 +738,12 @@ struct rte_eth_txq_conf { uint32_t txq_flags; /**< Set flags for the Tx queue */ uint8_t tx_deferred_start; /**< Do not start queue with rte_eth_dev_start(). */ + uint64_t offloads; + /** + * Enable Tx offloads using DEV_TX_OFFLOAD_* flags. + * Supported only for devices which advertize the + * RTE_ETH_DEV_TXQ_OFFLOAD capability. + */ }; /** @@ -954,6 +968,8 @@ struct rte_eth_conf { /**< Multiple threads can invoke rte_eth_tx_burst() concurrently on the same * tx queue without SW lock. */ +#define DEV_TX_OFFLOAD_MULTI_SEGS 0x00008000 +/**< multi segment send is supported. */ struct rte_pci_device; @@ -1750,6 +1766,8 @@ struct rte_eth_dev_data { #define RTE_ETH_DEV_INTR_RMV 0x0008 /** Device supports the rte_eth_rxq_conf offloads API */ #define RTE_ETH_DEV_RXQ_OFFLOAD 0x0010 +/** Device supports the rte_eth_txq_conf offloads API */ +#define RTE_ETH_DEV_TXQ_OFFLOAD 0x0020 /** * @internal @@ -2011,12 +2029,18 @@ int rte_eth_rx_queue_setup(uint8_t port_id, uint16_t rx_queue_id, * - The *txq_flags* member contains flags to pass to the TX queue setup * function to configure the behavior of the TX queue. This should be set * to 0 if no special configuration is required. + * This API is obsoleted and will be deprecated. Applications + * should set it to ETH_TXQ_FLAGS_IGNORE and use + * the offloads field below. + * - The *offloads* member contains Tx offloads to be enabled. + * Offloads which are not set cannot be used on the datapath. * * Note that setting *tx_free_thresh* or *tx_rs_thresh* value to 0 forces * the transmit function to use default values. * @return * - 0: Success, the transmit queue is correctly set up. * - -ENOMEM: Unable to allocate the transmit ring descriptors. + * - -ENOTSUP: Device not support the queue configuration. */ int rte_eth_tx_queue_setup(uint8_t port_id, uint16_t tx_queue_id, uint16_t nb_tx_desc, unsigned int socket_id, -- 2.12.0