From patchwork Thu Nov 23 12:19:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shahaf Shuler X-Patchwork-Id: 31566 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 0C8761B161; Thu, 23 Nov 2017 13:20:13 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30076.outbound.protection.outlook.com [40.107.3.76]) by dpdk.org (Postfix) with ESMTP id 0D7412C54 for ; Thu, 23 Nov 2017 13:20:04 +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=Z6EUR2fd+B/uaC7kTO4+U0Z9rpb6nD77cFuqB3Kg9fE=; b=pqNF67Gg1KFcm0HtMRGE1317c1mhlNzrmVbVnJ4GbvhaxI6Zneu1e+kVj5OSYu+yxLfdFcEKPPFhZ25Tx1Kc5PIO7r2FYfUepyn7ssTt4Urep3C2v7jUZFL0crrzXDlHSbd17Z74yW4l2zmAAAJao9O9YkgeWYZz5hvogDLlkQw= 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:02 +0000 From: Shahaf Shuler To: dev@dpdk.org Date: Thu, 23 Nov 2017 14:19:21 +0200 Message-Id: <20171123121941.144335-10-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: 2d4b122a-f958-43c5-05ed-08d5326c8644 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:D4H1mdsW+KlPeHrA8ONpJT2oxY740U02CO8NieIhyMea2PCFhPNYKXu/9pvLsyYw7UtKPfoIgg710/VJqPgfSbgxsZKl3qKTTt81i/xsHjtnc837TXZzcB2rxv8CxJBZs20tw+MjrlqTXCyqmnbjGGMvhHsT+w5EHlTH+AX/bKrjapmicM62z/6ct1a/ha0+k1AKEl9eV4fIB7yNh+KkEVX8yzduEi2QlvInIYPkQQL1gcA8oy/WJAtrbODXSCu6; 25:7J+42rk3qCinvZHA3oPTaNi3WX6aBC7alJYj0VftwFkeGdgxyOeE8r601H57wdwliZpn/92pKZ+rGXlDAoDA3335ZQQ1K2+agolJso8K0X78nfXwDa2QsLDOKATyavZXZ+LYdhV5H+DoLdOUJIOWhh/lK/vtLnnPr+jFpRS+yhzmOl8Jhhfntu7vAfr6RH80CJESDIZ2bhqOuif5FQjjDnbP74zie5Lr7NWIiRGX/QNbqxeEWpLLrjOlD2q+OsPPucGGjad5cI+ClNQwjAQQ5YJyKSEJwSigkqZkykE2A5C4PGICbUXah1TzwCJP7IDdFIsIn/osDS/eCZCqNv9AIA==; 31:EHFarcFg1LT3sQ8Tdh3aAv9/833lPTLxr0c8+d13Jow/YIHCSBvqCE9Ar6wiuQdsrfjipH2i2pkQgOBRnE3It6hGUHvW6oBdHkltG2gyXx/ObqzEAgEknj2SW9l2Ad2O8wGpZR4kuXB05CnrJOwa4eOTvPhNUbAlf2P4NIDpDvTJDB2+I9Q/gBer7CyMHOduVVRCyu+Hf7M4l1S856fbquJYUHk1kekQ7gWijtW+Avk= X-MS-TrafficTypeDiagnostic: DB6PR05MB3142: X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 20:HXHwzzKqibWOqZ7JHqK4LEJp/zd769wFCgfsI82eYv2WnuKwEYxEZh0PxffE6hZCqLyMbhXsHNu1fvfAiX9Ooya+/mafLSXtAiyP9JNZiBfb3aUuUy072ilT8ZT49x8d5tpuS/tBjw4zutxNPwqVgr3IwrDPxxDHfIdr+xq8suMvadjSQbWfVasL/BxHLEySSzICaII/qMemekPRcZiQ/R3ckHuZmFHhPMV830fjl7yLJo0HJryflm55Du84P2hAsqvsjQ+vhC1JeFICkWfKLACzxg9vJUFZ8WFzZMD8uFPCCZ/88xMeZqoB5Y56ANUvKdpCbvcV0Bx5WtqjRaDN0o4PxLyoxcFT1avf+rTLvR1Nm0uy2jGXT05fRkHT4bsWrSVIUDaQZRiebZAkym9I4pFjAq6ofVkrUdezPCOhCvckyHq4MN57GW5ulkoUQFIOq6IZOeYFQ9vGSEfoahwmBuXQh9Ud4LC/9YecQLr+0X+SXz4k1DjZyQpd7nkz2vne; 4:lhzTM3VEBRDG35UCWScxkmbF5l+7r2vlAeiaVMyE05wRCPStRP+v4rrAAEcpnluXP3UR4QZsOKQrSfPT0jMQTXZMISPwyjeLkxIiRj2J+iV5PRRfQxGGal+3V+TNLjxC29uKAI2zvqqW+qMwXc5/psH/chg27Vcgr+wynGEcRjCNp0SY0aTigvqTA05172uNls/61WEtliNf7rDhMTMpNpwHZX0IP1Ck2g/RJjocPJifmWHtbN68i99fSsASRn+m4LHRWynWpD7JaslYq5/YAA== 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:q8KBhy2J9ejcKepXMUswaNDs4MUC2LY9zZbKR4czo?= rcYAzbHW5pe2vjYrKlyJV+5vFNsB77SnGiLnKWXPp/8LGbm4f+XIJyKpSDOaaXzkmMf5bzlP/qmtYB9HOSQdhbgiZkJTxy6CkFjV/jLcAzuiIYIFQp64eoT5i0Oar/HwIQXutaf8ZZ44is8RGFPEeQ8zAdoMZz2+jOCvYVSRWd9Z6tW7j0hI3OCKwnlHRJrF2AEUjX+DdaPP3CV/M3cw/IZKboCgr9amnGa/ifFJAE85k8l+rlKyI7boTMhHkNqJHk0XCj8Y/JbjTfQXgp+bPEf/YsXtTrV/7Hx8XOPKI7U0+FvAnlUiKpuipSmiRfOKozoIRZsevoC+0T7dIEkRsMJbHStB2v3P/pJWv7ppVAxZnmRnNMD4mX/yMc4poy84398tv+gDqvsh6A/O1ZUOx+y3S5UfmGoFUiz+Yjb5ojC/giZWoEJkZEJd2AjovVdObu65KzWgNuDbQrQ+CJR1Yv9sPji38FymozpyRjdJNjzCz20/YLG7UB8CJTi8cDEJU/LWfOXynvLs5j5kO/+swEadz67O5OKOq67vqG8YaouCIu8crW4aDcw8nmAUB2QX7Tc8nvPEhP53Ndg2qNdgrHImpHC6l2uCeeRqqsc9fUc9/GapkhY2rBvHuGkcvIIDNH7jzrq01DKR9iEOBHEram/dLTMwNtUa8I+7AFYpOxP1Kifjm7prr0btStHuo5Qa8p7GOtpyU3j13Bp5gz3iH7QLucYhzS8TqHX+/SW4eUyofnzaSfls5xPb9QfH9+LfvS73yEi7+94lqjM7W3zCicG4wcf3qV/pKUPe6E7wYx/CD3Y3Ats+F/Y2gnDBjg3U55RflBWMaeLZf5p10sS2YsLQe2Wilhftit2syO+26x6q54gkqGsTfY4S/lNzPYh4VVKJ/4NJiVrw7AL4z6/mQmO5QAYNfuTwZHlnwj2M4kyC4O9UsgVduBrZLYexzf8mEsW6lvovcPBjZDMYennEF+nmqWWa9JEkCMjC1W27GLTMtqJBewqQTseqNN6xiHe5sML+yqeQ6uvzu6A3bZ+yYhHz1sWY+5OqKoA/VS4+ER2eJa2XAHTgzaYlgWCQnW3P4sOt1uYL64NxsACBM4GP9B1uDguPKEflYmw051hpbGacs/BBHYy3EpjiMrSdzwyjg4= X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 6:OtF1W+HL9oJ94PlE9L/J2bonOnbH7PCuU9KfWSfDNzRHP3GxOdljSwZi67i4+YJo04GckWIkfs7gFqz6+wZ8QF+gxxpF+PQ+inTfvUVMOxQbsYbw/UB0qusceg8bNqSKEL2uiVNP6Wu/35tSWqtWjkfu7aYbhd9QQS3O6ec4SaG7sfsZ9LO3GV+o9JP0wPaq3IH390H6R9Q/xMykYAgsUqPAM4+cXzFxC/6iEfxldHSGD8BrXMXF1P3l62rMIdh1VEYJtWxZ1pKeY/UZvO76KlDnUlM/W9v2DhNDj4cKg+OaHeHWWr8IeVPKkGMWMhM710iZNX5aWyIwKZnYcgipnHlGG3+ARmNEY2ApeBH7qSU=; 5:2e/kRYLrKmwGNRWvQ8C/jFbjY2kKZLeQsP1wLAkmjxRrHXVi+RhOkgChgFSMAUIsVGm0E6ONqmO2umq5m1KMGf4qf3/fAvnixWwtNWQsjSL9iXizut2Y+kzoH9OLRWsVBstknGuUWxZSxGesYpmrTxD+erYg+GuTXqGOissWc+U=; 24:1usT7jwolc1LlG7juopu487fvLi4B7C4qFyyOsMDBA75H62/F3M47Ul5GLINaDy3pi2y4bsfTfUdpKr0jZ9ZFc9PDQGX+JL7NrjMnQ3zLnM=; 7:U4D4qfx6iRsYZ44ez/n1/BOG5ojQ+c0D14MTjYSSsYeXAQoOt7O/zdnsXjG7QCpv8rJ/gi8s1U5iFlb58eTCblTMh8Ii7hu4WMVE8uyyWzWtJ2qM+q9i1JpDxowGICQmdevJjoXJjiWkoWEyZD6TVHM3QPqvjoDCfMMlTLvEeYvQ51HJHAUOA4t/1bQ6r+lqFUWDKz2e1c5q/hB6GXcqT4NCV5icgiViCLMO21Rc1l4FgZ7IrUKFadkGBWkkyxCh SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2017 12:20:02.8567 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2d4b122a-f958-43c5-05ed-08d5326c8644 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 19/39] examples/multi_process: 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/multi_process/l2fwd_fork/main.c | 36 ++++++++++++++++++++----- examples/multi_process/symmetric_mp/main.c | 35 +++++++++++++++++++----- 2 files changed, 57 insertions(+), 14 deletions(-) diff --git a/examples/multi_process/l2fwd_fork/main.c b/examples/multi_process/l2fwd_fork/main.c index deace2739..06c566d65 100644 --- a/examples/multi_process/l2fwd_fork/main.c +++ b/examples/multi_process/l2fwd_fork/main.c @@ -156,11 +156,8 @@ struct cpu_aff_arg{ static const struct rte_eth_conf port_conf = { .rxmode = { .split_hdr_size = 0, - .header_split = 0, /**< Header Split disabled */ - .hw_ip_checksum = 0, /**< IP checksum offload disabled */ - .hw_vlan_filter = 0, /**< VLAN filtering disabled */ - .jumbo_frame = 0, /**< Jumbo Frame Support disabled */ - .hw_strip_crc = 1, /**< CRC stripped by hardware */ + .ignore_offload_bitfield = 1, + .offloads = DEV_RX_OFFLOAD_CRC_STRIP, }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, @@ -1064,6 +1061,9 @@ main(int argc, char **argv) /* Initialise each port */ for (portid = 0; portid < nb_ports; portid++) { + struct rte_eth_rxconf rxq_conf; + struct rte_eth_txconf txq_conf; + /* skip ports that are not enabled */ if ((l2fwd_enabled_port_mask & (1 << portid)) == 0) { printf("Skipping disabled port %u\n", (unsigned) portid); @@ -1073,6 +1073,23 @@ main(int argc, char **argv) /* init port */ printf("Initializing port %u... ", (unsigned) portid); fflush(stdout); + rte_eth_dev_info_get(portid, &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, 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, port_conf.txmode.offloads, + dev_info.tx_offload_capa); + port_conf.txmode.offloads &= dev_info.tx_offload_capa; + } ret = rte_eth_dev_configure(portid, 1, 1, &port_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "Cannot configure device: err=%d, port=%u\n", @@ -1089,9 +1106,11 @@ main(int argc, char **argv) /* init one RX queue */ fflush(stdout); + rxq_conf = dev_info.default_rxconf; + rxq_conf.offloads = port_conf.rxmode.offloads; ret = rte_eth_rx_queue_setup(portid, 0, nb_rxd, rte_eth_dev_socket_id(portid), - NULL, + &rxq_conf, l2fwd_pktmbuf_pool[portid]); if (ret < 0) rte_exit(EXIT_FAILURE, "rte_eth_rx_queue_setup:err=%d, port=%u\n", @@ -1099,9 +1118,12 @@ main(int argc, char **argv) /* init one TX queue on each port */ fflush(stdout); + txq_conf = dev_info.default_txconf; + txq_conf.txq_flags = ETH_TXQ_FLAGS_IGNORE; + txq_conf.tx_offloads = port_conf.txmode.offloads; ret = rte_eth_tx_queue_setup(portid, 0, nb_txd, rte_eth_dev_socket_id(portid), - NULL); + &txq_conf); if (ret < 0) rte_exit(EXIT_FAILURE, "rte_eth_tx_queue_setup:err=%d, port=%u\n", ret, (unsigned) portid); diff --git a/examples/multi_process/symmetric_mp/main.c b/examples/multi_process/symmetric_mp/main.c index 6fb285c74..e722173a5 100644 --- a/examples/multi_process/symmetric_mp/main.c +++ b/examples/multi_process/symmetric_mp/main.c @@ -207,11 +207,9 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, .rxmode = { .mq_mode = ETH_MQ_RX_RSS, .split_hdr_size = 0, - .header_split = 0, /**< Header Split disabled */ - .hw_ip_checksum = 1, /**< IP checksum offload enabled */ - .hw_vlan_filter = 0, /**< VLAN filtering disabled */ - .jumbo_frame = 0, /**< Jumbo Frame Support disabled */ - .hw_strip_crc = 1, /**< CRC stripped by hardware */ + .ignore_offload_bitfield = 1, + .offloads = (DEV_RX_OFFLOAD_CHECKSUM | + DEV_RX_OFFLOAD_CRC_STRIP), }, .rx_adv_conf = { .rss_conf = { @@ -225,6 +223,8 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, }; const uint16_t rx_rings = num_queues, tx_rings = num_queues; struct rte_eth_dev_info info; + struct rte_eth_rxconf rxq_conf; + struct rte_eth_txconf txq_conf; int retval; uint16_t q; uint16_t nb_rxd = RX_RING_SIZE; @@ -242,6 +242,22 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, rte_eth_dev_info_get(port, &info); info.default_rxconf.rx_drop_en = 1; + if ((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, port_conf.rxmode.offloads, + info.rx_offload_capa); + port_conf.rxmode.offloads &= info.rx_offload_capa; + } + if ((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, port_conf.txmode.offloads, + info.tx_offload_capa); + port_conf.txmode.offloads &= info.tx_offload_capa; + } retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf); if (retval < 0) return retval; @@ -250,19 +266,24 @@ smp_port_init(uint16_t port, struct rte_mempool *mbuf_pool, if (retval < 0) return retval; + rxq_conf = info.default_rxconf; + rxq_conf.offloads = port_conf.rxmode.offloads; for (q = 0; q < rx_rings; q ++) { retval = rte_eth_rx_queue_setup(port, q, nb_rxd, rte_eth_dev_socket_id(port), - &info.default_rxconf, + &rxq_conf, mbuf_pool); if (retval < 0) return retval; } + txq_conf = info.default_txconf; + txq_conf.txq_flags = ETH_TXQ_FLAGS_IGNORE; + txq_conf.offloads = port_conf.txmode.offloads; for (q = 0; q < tx_rings; q ++) { retval = rte_eth_tx_queue_setup(port, q, nb_txd, rte_eth_dev_socket_id(port), - NULL); + &txq_conf); if (retval < 0) return retval; }