From patchwork Thu Nov 23 12:19:24 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shahaf Shuler X-Patchwork-Id: 31569 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1E9B01B1B2; Thu, 23 Nov 2017 13:20:17 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30045.outbound.protection.outlook.com [40.107.3.45]) by dpdk.org (Postfix) with ESMTP id 032C758CE for ; Thu, 23 Nov 2017 13:20:06 +0100 (CET) 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=IHj9O8CrCkpTGqPkKcFahuF6DD/mxpJts45wEELEDLs=; b=A9zAJyNEkdBTOEgCfoiLivQ26m546KwYgP1m0AauUuF13ieKtLwkePACCMCHauseT3hGU0gEEhqF3ohfrSULge2rg9U8Jop6Dukv4K8gJ7UkBcEo4IzHhPq2fnavUF1b+S014yOpq3+r6/pn58Jyo19WMS0UD94kUZS42WIwOKc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shahafs@mellanox.com; Received: from mellanox.com (82.166.227.17) by DB6PR05MB3142.eurprd05.prod.outlook.com (2603:10a6:6:1a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.260.4; Thu, 23 Nov 2017 12:20:05 +0000 From: Shahaf Shuler To: dev@dpdk.org Date: Thu, 23 Nov 2017 14:19:24 +0200 Message-Id: <20171123121941.144335-13-shahafs@mellanox.com> X-Mailer: git-send-email 2.12.0 In-Reply-To: <20171123121941.144335-1-shahafs@mellanox.com> References: <20171123121941.144335-1-shahafs@mellanox.com> MIME-Version: 1.0 X-Originating-IP: [82.166.227.17] X-ClientProxiedBy: HE1PR0402CA0044.eurprd04.prod.outlook.com (2603:10a6:7:7c::33) To DB6PR05MB3142.eurprd05.prod.outlook.com (2603:10a6:6:1a::16) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: a2d9a2d7-9490-4823-0581-08d5326c8809 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(5600025)(4604075)(2017052603199); SRVR:DB6PR05MB3142; X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 3:tCaZCfeV7dJ6NMl/uktZrzGcWlni2O1hnX86NSl7uAzX8YhZEwYTqPVk1Qx6AJJSsSWw4HiIgqiQc7VTX4poYMzLd0/X8LJkKFzytYg5f1zlnrj8EaZrsEPYw6ln0lYSun3YVQAq6TrMwq6rkqQ2f8MRDQwFRO5YBbcxNvh36o0IbSVxV1oh7mhe52l/8lYSINBKoMBl0M+tSfHbqC3rRD7SWv8kKy2RzRwrBh1strJkKvmQ7kIWbPG9QvXWVk+V; 25:Qxqe2cMvMhKR30ocEbq363St8YApBMAAKEfnDovPZaglyGpRcGL6wMmc2Uj6JXBNrB9VQJjSjXW3a7x1CezLuXPNPWr/fDwftYYoWegFLCTB+joymltSVTwCEBhFO9ar6BeZQZDONub4q/2au+Mzq6mP/cv/dvHuPx91fulNoO0QvcXPggaZf8l6hzfeBQ7BTCtS/J4vplTgRFUgfL52xm72jpQAthPgO5LNDaBvvBZHFfYPV1Qq3xg5rH+4gCtlh4Q3A7fSg3u8fkeX9gHSgnndoCvPr9dLTPXhiYN9VMLNPnEy+N1oOwtuEqLF5+z8qxaJXyc0rIVsU0FbNAQFVzFYwE1zZZJXlCXjCXpLdQ8=; 31:5BMOdMUz8XKMiYWAEnpSwjgJreF31s9vVk3ZYzz8qU9EGmnePcdDXLb9ufbHhT1YBlNOBkSA701QfDvzh4kTQH/b4NUcPRP0iaprx2nwURpoZFi24jaLfBPRHvyIGKS7bJNTQJxtXWkHc40PZBh/8+IQGt1S3uI74tOYj5q9yZQDWQMzgTYy+IvEt/ICnVCTc2iCnlThOEyGkHe+GNtyJt1kHjgeHNCBGvBnl3Z7OZw= X-MS-TrafficTypeDiagnostic: DB6PR05MB3142: X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 20:vuKxjpCiHjZqWH8lyTLwIJ6CPIfcpdVRMxX3/TO/gzTQaaDX7n7qsIk34Z1qj5ey1naB7hpee8E+jjPqH7MTtookI9KRjy6v/xSWketN+wH7x5Od7vy5OscpurVBgVBMYcUw613pDFfEusRDzywAwWW0fnBHBIgCdaKX+oTmybASkE+AkVDdNXCfpZWpM8v7ftUJzJqe8gbBx69sCbjZUa49qabHiVItBVMjv+6fWpN1JfAAM+Efh7oZuxvUxhecqyLAhFEXGXuqLpzan2qFBMai/Z1ADFeyc0IrWOEidqtZ+ux7m2A90hXWyNPokHDpFgVC1NnN6TUoL3KuhkBYMz/XzY4BU2lxnPhru2fFNz6HZvs44fTEXe3x2v070Lyx59jOXXBZNTynm3CeevgomY1b235btfaX/aTrE4U6cQ4GEvKv2ugEscn3qgO8FqIWkaKKiHB36bedlBHMfotMwOJSCd4TF/vchKISlWKczwEm9cCgHXur9gTy7vO2p0km; 4:BOCGzGj1eJA3cbLQq5s9Ns8/26wvwKvG31j/mv8OWs76X8mxmVIGyY+Pkikvok8/6sAw/wlInpHZzBwzxlLQjk7HWhckgxMUakc2mLMi2dUmplw/TpFujCHmgvS+wLDAuVpOwekEX9b3WCA39DfDtqORlbjlYes8a+v/P/t8BzVHwLC2XXtEM8Inx2Y+9WggAxBondKG1Oa4vZL1hpoFYjytoNp4SHYHLYXku/XOnxU26lUFy5mYvvSngwBZm+XO+BdFblJ5gyhZg1YVlMR0vQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(93006095)(93001095)(10201501046)(100000703101)(100105400095)(3231022)(3002001)(6055026)(6041248)(20161123562025)(20161123560025)(20161123555025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:DB6PR05MB3142; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:DB6PR05MB3142; X-Forefront-PRVS: 05009853EF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(366004)(346002)(376002)(39860400002)(199003)(189002)(50466002)(16586007)(101416001)(5660300001)(478600001)(6116002)(47776003)(69596002)(6666003)(3846002)(33026002)(97736004)(52116002)(8936002)(36756003)(16526018)(76176999)(55016002)(5003940100001)(50226002)(48376002)(50986999)(33646002)(6916009)(81166006)(53936002)(81156014)(8676002)(21086003)(1076002)(305945005)(68736007)(86362001)(2906002)(189998001)(105586002)(2361001)(25786009)(66066001)(7736002)(106356001)(2950100002)(316002)(2351001); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR05MB3142; H:mellanox.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; DB6PR05MB3142; 23:tlILWiRS4bxrFX9FIi+XVQBsTxAULxxN+F3XVDXRy?= n8ZkNejSxV4IurIescB6zz5zrsrNkVQXB6Sdjq2PolQjwP/roIqk1lUAchr3eYaco/DSEopcLq7vHAPMPvepKOz3RB/0a8UrLX59fhsbajX3Rf1P2rtb1XHh1g+Q2mAQTlfiFTSll414UIUSmGHPjHELwj9r9ZCsZW8+7HWJA95f+SYOYe1ncIKzJ6mBgvb90H2MNqXF/GrWxsDzXpEpTjaix3xU6BIDNk9Tz6n4Efce2lxKT45zm5JKaMvoMiBXycSSSlKpWbZjykClUkiKmJkwQAwb1g2lDInZBzcPQhCmUESUCxKgDklWwk/2/XVcg03NjLyRLXJXFNv9Encvx4GnnIymXjlh/yA7qnosPQLLl5RAGx0XS2lW1+xr8lXio8Re9k0pTpzu/gBkxAiHQYW2SHRzSXSKC82zXLbWq/jQnymZD8J4gOYiR6Wi12Q7bLF8cyEX8EbmeCvnpxgxun/if5XdaAUNAFrSQt/E/J5H5P0gPXdjN6d1Fl9x/WFLjLzHuQsAXCSiFd9wfYEAf3pLx/Zwz7bGj+SxVhN58TbI4BiwvMyaPWmdkm5i6tims8pUNi9D8Emp5DuMsv2GXHyFX2kLFQ+CAZ3m/DGiNvzWOp6KBWlLJN6caDNia47Am7u/PtFnt1VMnpAHtXfIEqFCvZrL/33rUVsLKZjYXBGDxL+frqGOLUoL1niGrIHfQOlw1AGrDQ1oz3qN49D1h07HQ4TpmCxWygTL++j4Z/evRY8wTk+tX5tbHr6nvUTpXdkW0mzvjuRtRJ+2Z6OTQFg2fuAFw9wjQk5ERctxwscG0PpYVDmeNC1ulv2JwPLDjtpR5ML5O6Ef15u0M+obobzK8GfXazejDMQzXhOn+uNVCvzlEqtc0CxmSBa2OIKfc4jDAR5rcgz3ekiMWZ5Ew0ufngbXyVEvaEq0GTuVyP/sd42urvxGCRuX2TrnegGJcuxbF7mHlTT2KzP2Vl08b3Nq8NPqFHASPhB8/Z5G8GXiLrwgjhYlM3YpS6/v7ol5WE66BAOOAjatbqSXMzvE5Yz50i/XsLuZ9dlRP192tpMg+q0mh9cmppk6GZMCCny9T7DAkV+jrXCQo6B7i7MV/MxoDzPANzSYF8uLL3Q+BtFwJNZ0NFKtbpWHuU+MXeM0do= X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 6:aSfwqUlB+N8GkC3vGvB3DogFJ58b70ETF9ofkOIwCl1clzTu9Jp+O1SjErSsvarPjBinz5GIDQvYldVL40ZnwLSkrwoNQ6L8w/hU5QMnyhl1SXaqtGHSV1bBscDwZSNmiQCsFP7PEN6NOl72Palgm+EmU0wJ/kv+A8ZZA5uD1b3NQ8m+lFd8g5qUnhEG4r/ASYP8lj8JI1OHe+gYDjU4AQFnuwTJAgtqo0XWsUarVb1MBaqG03AyLWZnMexlBG9nD2qbAD4V7uYQMMv1K3Pk7PohQjFqKksxrjKHtDjKI/eBOUKgyIeMMJVNFdsHJ8ID/hYTA5k/0NGSa9uDm9ZWoXojIjPPa3Ej38PgCJiDOJw=; 5:9ObbSLiFW82GzgHXBTlEyuLUGwz9F1FQyjUCuAHh0f2q/ayjncAU0bFaIj6WuZxuQANb5xQnXHqVnVOSjySP/4u0wRbh4UqIBEJyC3mVSfPv6hMgp8s5kSkqVm9a6Y0jAWjwlObpChrtusTGNjyVBIPwPB6KjMUcmo9ZxL8wNnI=; 24:pw4CDmI8IjVlWo7khdCURPhbwtwB0IjgkwAHOyUEkdC92NfBc5hFBe22pHeLS60fmbSBhydo+xjj/GFiLp1jGz/bHpZ+DI7xBiGLH08syZ4=; 7:vWuXRRwkPIFq5bTMSggm/Z7czs8AXtWHbj7uW6UNaoMmOAOo0vLh+2u5KJyfCxPtC4T9Oqtg/EbPnUZQIKPuoqY2IaeExz55tLWDnIyoh/CMdVMHCDXksu99IZHQ1nWdEZCVRbrYhu/M3JA/NLNJCcMdi0g+j/aPoWwus2jdJpgCIgtWiFsFz8zsfWJDvttbHny+C8SPFlioHAacMChWj6EGGGg+NOvNgJ8hryHt0FcXj+ZP02Owb8SGjEcK0e9O SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2017 12:20:05.5286 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a2d9a2d7-9490-4823-0581-08d5326c8809 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR05MB3142 Subject: [dpdk-dev] [PATCH 22/39] examples/qos_meter: convert to new ethdev 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Ethdev offloads API has changed since: commit ce17eddefc20 ("ethdev: introduce Rx queue offloads API") commit cba7f53b717d ("ethdev: introduce Tx queue offloads API") This commit support the new API. Signed-off-by: Shahaf Shuler --- examples/qos_meter/main.c | 64 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 57 insertions(+), 7 deletions(-) diff --git a/examples/qos_meter/main.c b/examples/qos_meter/main.c index 67b4a75b9..1fac4cf1e 100644 --- a/examples/qos_meter/main.c +++ b/examples/qos_meter/main.c @@ -85,11 +85,9 @@ static struct rte_eth_conf port_conf = { .mq_mode = ETH_MQ_RX_RSS, .max_rx_pkt_len = ETHER_MAX_LEN, .split_hdr_size = 0, - .header_split = 0, - .hw_ip_checksum = 1, - .hw_vlan_filter = 0, - .jumbo_frame = 0, - .hw_strip_crc = 1, + .ignore_offload_bitfield = 1, + .offloads = (DEV_RX_OFFLOAD_CHECKSUM | + DEV_RX_OFFLOAD_CRC_STRIP), }, .rx_adv_conf = { .rss_conf = { @@ -310,6 +308,10 @@ main(int argc, char **argv) uint32_t lcore_id; uint16_t nb_rxd = NIC_RX_QUEUE_DESC; uint16_t nb_txd = NIC_TX_QUEUE_DESC; + struct rte_eth_conf conf; + struct rte_eth_rxconf rxq_conf; + struct rte_eth_txconf txq_conf; + struct rte_eth_dev_info dev_info; int ret; /* EAL init */ @@ -335,6 +337,26 @@ main(int argc, char **argv) rte_exit(EXIT_FAILURE, "Buffer pool creation error\n"); /* NIC init */ + rte_eth_dev_info_get(port_rx, &dev_info); + if ((dev_info.rx_offload_capa & port_conf.rxmode.offloads) != + port_conf.rxmode.offloads) { + printf("Some Rx offloads are not supported " + "by port %d: requested 0x%lx supported 0x%lx\n", + port_rx, port_conf.rxmode.offloads, + dev_info.rx_offload_capa); + port_conf.rxmode.offloads &= dev_info.rx_offload_capa; + } + if ((dev_info.tx_offload_capa & port_conf.txmode.offloads) != + port_conf.txmode.offloads) { + printf("Some Tx offloads are not supported " + "by port %d: requested 0x%lx supported 0x%lx\n", + port_rx, port_conf.txmode.offloads, + dev_info.tx_offload_capa); + port_conf.txmode.offloads &= dev_info.tx_offload_capa; + } + conf = port_conf; + conf.rxmode.offloads &= dev_info.rx_offload_capa; + conf.txmode.offloads &= dev_info.tx_offload_capa; ret = rte_eth_dev_configure(port_rx, 1, 1, &port_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "Port %d configuration error (%d)\n", port_rx, ret); @@ -344,18 +366,41 @@ main(int argc, char **argv) rte_exit(EXIT_FAILURE, "Port %d adjust number of descriptors error (%d)\n", port_rx, ret); + rxq_conf = dev_info.default_rxconf; + rxq_conf.offloads = conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(port_rx, NIC_RX_QUEUE, nb_rxd, rte_eth_dev_socket_id(port_rx), - NULL, pool); + &rxq_conf, pool); if (ret < 0) rte_exit(EXIT_FAILURE, "Port %d RX queue setup error (%d)\n", port_rx, ret); + txq_conf = dev_info.default_txconf; + txq_conf.txq_flags = ETH_TXQ_FLAGS_IGNORE; + txq_conf.offloads = conf.txmode.offloads; ret = rte_eth_tx_queue_setup(port_rx, NIC_TX_QUEUE, nb_txd, rte_eth_dev_socket_id(port_rx), - NULL); + &txq_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "Port %d TX queue setup error (%d)\n", port_rx, ret); + rte_eth_dev_info_get(port_tx, &dev_info); + if ((dev_info.rx_offload_capa & port_conf.rxmode.offloads) != + port_conf.rxmode.offloads) { + printf("Some Rx offloads are not supported " + "by port %d: requested 0x%lx supported 0x%lx\n", + port_tx, port_conf.rxmode.offloads, + dev_info.rx_offload_capa); + } + if ((dev_info.tx_offload_capa & port_conf.txmode.offloads) != + port_conf.txmode.offloads) { + printf("Some Tx offloads are not supported " + "by port %d: requested 0x%lx supported 0x%lx\n", + port_tx, port_conf.txmode.offloads, + dev_info.tx_offload_capa); + } + conf = port_conf; + conf.rxmode.offloads &= dev_info.rx_offload_capa; + conf.txmode.offloads &= dev_info.tx_offload_capa; ret = rte_eth_dev_configure(port_tx, 1, 1, &port_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "Port %d configuration error (%d)\n", port_tx, ret); @@ -367,12 +412,17 @@ main(int argc, char **argv) rte_exit(EXIT_FAILURE, "Port %d adjust number of descriptors error (%d)\n", port_tx, ret); + rxq_conf = dev_info.default_rxconf; + rxq_conf.offloads = conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(port_tx, NIC_RX_QUEUE, nb_rxd, rte_eth_dev_socket_id(port_tx), NULL, pool); if (ret < 0) rte_exit(EXIT_FAILURE, "Port %d RX queue setup error (%d)\n", port_tx, ret); + txq_conf = dev_info.default_txconf; + txq_conf.txq_flags = ETH_TXQ_FLAGS_IGNORE; + txq_conf.offloads = conf.txmode.offloads; ret = rte_eth_tx_queue_setup(port_tx, NIC_TX_QUEUE, nb_txd, rte_eth_dev_socket_id(port_tx), NULL);