From patchwork Thu Nov 23 12:19:28 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Shahaf Shuler X-Patchwork-Id: 31573 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 47A621B1F4; Thu, 23 Nov 2017 13:20:26 +0100 (CET) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30086.outbound.protection.outlook.com [40.107.3.86]) by dpdk.org (Postfix) with ESMTP id 9E1389B6B for ; Thu, 23 Nov 2017 13:20:10 +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=ZW0q1VCgfEKGPVCiWgCz8LemP5hprg5tHLCJdP6Iq3Y=; b=GjFKNVJGPuVFXTmq2XDiomBHL/tuEazqFBanjOqlyZnRsSFrkjpo4dkXvAdHdn/Zc4v9CFmJ4VN3pdVimUfLWjoQVOgVZh+d0cqJyr2cFslZvdSlaQzJnjwepVnp5TzrT7w0MdvytXLTaR8KhxnRCXrgs8LfHihXw3G4ANXRcbI= 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:09 +0000 From: Shahaf Shuler To: dev@dpdk.org Date: Thu, 23 Nov 2017 14:19:28 +0200 Message-Id: <20171123121941.144335-17-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: 0f6cf08b-8e94-4bc2-c5c0-08d5326c8a2f 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:HE93nUzqSXD0wAi8+2CR/Yc7SQ8vOX54wQkP/JOvDfnt5LKGutC//xnrBgOpdvEC0u7FESngiZRadqXEAhN0iN06nnsKqHt/2MvNlyGKPeN/TMv/w+YsulvDEELu72ZZLF2Qz2FR0w4b7lUtZkgvLy1u24eFSHKOE+HJHTtD51nXnH/fVjck/Tl8EtPS4owt7X2vTmXGve56pxD8qmqvDah3dxU2nLc+dqB0n2Sx7SgNTenctF8kYv+tqaW4Jym8; 25:Lzzv5oppqn8AQLnSY4JbGuc+QeWBU0td4CReFxRXIpA9iGNeiVD+LU2Qxifr0615ySwlzxshHdZ07FLp0D15rQGkdu/THG49rEiaM1esYrjKWQXqIEgyFNFYDycoDp4+vRFYjQ0YIwpn/HVzMlgGlNnTTI26BQC05FJ0Fh2D5sDqpMmdBQcfMNjsHg+OGB8g4/HgfsFr2eR9prPAfucv5B/lNzELGXXqRnkxPV17oYm7gO8RVxYaThkuRmX5rzjcq0GJBx3X0CyhnroN25ZdFks3RztoCzAsRDaUrXHa14EjnZoYIkizg3hf61CsJQgSmULttWh9BRpsWmWesLHMgSUy+BO59uhjt3f0GZHGXCo=; 31:btftxuaWPMetAKvfcnPzp5kcHDMiVuFfcE5x2itBFkEWARemsJt0persvmFFG0b6DpZGZyInwAxe5X3IGu66Fr+rpy+MU1vbuc5urWhJOGe8A10NkPA4Q10NkYD2YDaWSOYljDnx9BVKjODuDJCs3BU7p2/KKGInBt4KwPzbIHjyuOf9O/AELVsJ52edFSMFsIG4pmM5dqDCfr78Ac5xssM2pElMMMCLgNqgmD3ebSo= X-MS-TrafficTypeDiagnostic: DB6PR05MB3142: X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 20:mUVWm+M83cVMD2WV92jCQbgWePH/vgI97P01z2pK1vVtfkbhwuWhYPX94OFA6Dlvtv3OkTt+74GNjKQsLTFzVyxwzzPrlYL0Pa4yr+kLxAanMX8uBEtmvqOlY5gJfYzcovBXp93lDHuTcdDXVVoX+SNax3EoAZxHcNihujsbHbOLDWuQUzL25UlWh3AG0kzQW8miildayfEghNnx5VSzuglZr5p/rXjFOCiwhKlrjd7XrhBOXtVyc0/RVivrLQ3R/y1d2UyyKTpzBrqo8UJ7iZ8w5m0hQTrMrx+G53auP0QdbM1TEm75sJadT1CFbFQIf7J1kHMANXNwkCK5YnUT1lOsKQ3EgZAoi0rZ1HaGi/oFUtmQgsFtw04Ezr8A/hhZYuth9A40P+D6hSJwrXiOa5METrw55Q7jqxUrH7FY6Fc+hAJ48CQRZYaKQ0/7VbgS+HQ00UlUtntgLy3dDWuQ3gVnrn86FIKWo4bK8lK1D58NrC0QqCUztMRwhYzPp1SS; 4:zw4E7EpBQ3ldLh31iZMMiBqZ7OYVSbrhnU6EfyOyrqBi3+ySfP242j8qf5czorqr9MMiiLSEMKfLghIKy85a061qAhgSI2XaNcoIHLADVL4T0zsnPmvCjcU/H9OZQbHp4eviY0K0BOMnlC46g1/MgQRUvF3jBbMA9WztRWSlWTD8/t3nISow8R5xsk52au+/VwaC3I0CQCnvMeABVFK+005T/2DFrKDvQof6ZHjGrGemi8czz2KoosTuvGsgJRG2ArK94sBYXPeWGHsUCB7fiw== 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)(575784001)(305945005)(68736007)(86362001)(2906002)(189998001)(105586002)(2361001)(25786009)(66066001)(7736002)(106356001)(2950100002)(316002)(2351001)(309714004); 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:qmLH/qrIIGxVnshWX2KH/pHYGHRJfSNOjQikf+mjo?= 8eSeaUbxbGc0hbw+Nel6FtiUY/1Lso1fsj0UtgHFVH2ayftzO5pavxe1YU6v2z7FaFNVyvcL3PLJsb2DtKdOUag2NNSHgX29icUu0WB+NsaJnmCRJlGPIow7ff37SJPEgh6Nv81782mFPV1ddvGE0OZBr5j+1jabgV+SYHJ7YMtOoW3hz1jNMIF4BvkpUdRK0VHTflj/RCW6W/1jAxgHe6gnf7TQrBxMxCXEhlXnaABhenNWVI+Kt+2AbeSOv4XXQ8A4EBc4mbKqIcEsT8flQKbIV1G26nsmX9BdazJALLa0RywYEN2oLOxso6q7deubo/4A+EW2UPFmn0FsakVBrOeyx6+j8mX8ZE1bFNcQZdAm/uLDZ7dETyKGycsvn92gvPDi2S0kM/KqEZVyYFu94FS1T+Aiep9N8NcSpiPiM+y8GqPsMztHrRxJM7bNCKHBzUDD8CCzFyqW9fvFTXLPbWwYHM7ofe5/jSxTvtgjXOFdFNLSQgm37TQjnz8SCbRPW4utSOH+dpGZCMDqxk92YLp9xQyc2fA/0UXTgQcr9s4i1+N9oJZSpe+/cWWKFlV5e5CNdlsu/iaD58Ihz+00MD2L/iGYlXZS1ev80XFL8h2KTr5XG2L7JuPRSIPjLbJdBS+LBC/oekqgLc29ixoahZ86D2h8wE1ZoguzIC0EidVEkvrq0Rtg9v4AIy9aT9tWEIHCXInkhjZEhJwVSCHcMFsJ1JwU4jpYjmEYnM7fxa3tzEAWplWn8G9a5zRSGL22NlfEfi2StbEltmDMeDYEB2fwv6rszmuxib4aISlQ7HzaKnbksSZdYXbwf9pFXpZ3x107h9Y8kCM1QtXGctyuf5g3WO5cV9CYposI63TJE8JJ5Ct2yPSjfUWAILSwnCqw74Px5bXvW6cdvn0pausUvFmrbaBcphqXOMdR93L/vroOIPk3NRKi4QG87TwoeEYeze/xX980bpbsjXPpFFQxLrgreXNMAkqrar9W2wOwEBwdmS66o0/91YZmV0W1CaBwSKzgWttsvvU8pEpwB+0FarwDD4ywQ3eStFeknebax/MA49CvLigQ0iqkc/XjaKjNoDihs8oHOY77CtKBehXgCqxBNh58X0UA/Loat9FJ8460sQ6fh1bPMmjvnTdLsqJCtR2lBAnHmY5tXtHazgxhZtZuxLStMrcQXwaLifydtC7aApgiOHCNVJO3BMGEZHDCe8= X-Microsoft-Exchange-Diagnostics: 1; DB6PR05MB3142; 6:IkVrRAHl6S19G9lSBnsv3E9Oz78yTnTC7SxrrJpFahx1Axx/yBeGmdAspA6WppIDllIe9gcT0plj0ivc58cvXFhvt1CApda6A3CWoHpdUiJIGo7YC4zx6/lkKcXP0DjB1qHQjS7pafZ8Zdks4uptKOiX4lv+RG1VRQ/ZYo5yU3tOTaWi8D8Ro2Q2mTt/jm0Evx+rrN0OcWQh3dofeM/EPyA0HRoUj265NCmNVTPAqt26RUgslZIDMKLmEvssmHSOmYsG8OwBJnBAc7EayqLv1XMsuZ9NqymgAJWXc+Xa/Bputom/49KO2xWMvlqmlrx4mUTpl2bvRiJPBp44G2dINhdgXTig+bDJ9TWHmHxJ96Y=; 5:bd1EAhQbwG9sJGpWGEpSpRvI/MwwUq+AbJpQnF65YDVZRDcJUPB13KgWlojVmD44e/4Imyt9gRljqjVI0XZ4eOeR3lDkZVN6wuyzRx4m/xr3xwQ4AmiAFOHG873pgragOchp1c8dELEHa/9xd97auce0PtDn3goOior6EaRBlgQ=; 24:OtnHnciCsgt7LHGgAIKmzAO6JZYlMNSgjQ5I51Wm9ZUPfDsEQaQZSWYSH9Kq4JZ7cNmqNkL32tuHru0+Eh7Yups6E1IzX0utO5svEK71yL0=; 7:N1bKVcI30YNLRzcuN4AxuUA4QsF2iaL0PN/9SWle3+x30U8XAHr3fm2lV5yKp1wcsL1c2BH2A4tMw+liSRVjXOVtMk7MIkGLo6Uc4gFiFK8UvLMiuN9jlSQxIxEtAg9fiJDWMRhKWIpH06zu3t3SwiEIx3zVwc8VXIiHkAIRbu207alnmb4JcIt4+T8GuPj3QeEnKxuHn1N81eM8Yxox0X+KiqFfWTeNYfbgc4z1XVQcz475bKvfh8tOo1X7LK7b SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Nov 2017 12:20:09.4192 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0f6cf08b-8e94-4bc2-c5c0-08d5326c8a2f 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 26/39] examples/vhost: 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/vhost/main.c | 42 +++++++++++++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 11 deletions(-) diff --git a/examples/vhost/main.c b/examples/vhost/main.c index 89a61f0e5..aeb6f5e5d 100644 --- a/examples/vhost/main.c +++ b/examples/vhost/main.c @@ -145,21 +145,23 @@ static struct rte_eth_conf vmdq_conf_default = { .rxmode = { .mq_mode = ETH_MQ_RX_VMDQ_ONLY, .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 */ + .ignore_offload_bitfield = 1, /* - * It is necessary for 1G NIC such as I350, + * VLAN strip is necessary for 1G NIC such as I350, * this fixes bug of ipv4 forwarding in guest can't * forward pakets from one virtio dev to another virtio dev. */ - .hw_vlan_strip = 1, /**< VLAN strip enabled. */ - .jumbo_frame = 0, /**< Jumbo Frame Support disabled */ - .hw_strip_crc = 1, /**< CRC stripped by hardware */ + .offloads = (DEV_RX_OFFLOAD_CRC_STRIP | + DEV_RX_OFFLOAD_VLAN_STRIP), }, .txmode = { .mq_mode = ETH_MQ_TX_NONE, + .offloads = (DEV_TX_OFFLOAD_IPV4_CKSUM | + DEV_TX_OFFLOAD_TCP_CKSUM | + DEV_TX_OFFLOAD_VLAN_INSERT | + DEV_TX_OFFLOAD_MULTI_SEGS | + DEV_TX_OFFLOAD_TCP_TSO), }, .rx_adv_conf = { /* @@ -176,6 +178,7 @@ static struct rte_eth_conf vmdq_conf_default = { }, }; + static unsigned lcore_ids[RTE_MAX_LCORE]; static uint16_t ports[RTE_MAX_ETHPORTS]; static unsigned num_ports = 0; /**< The number of ports specified in command line */ @@ -288,9 +291,7 @@ port_init(uint16_t port) rxconf = &dev_info.default_rxconf; txconf = &dev_info.default_txconf; rxconf->rx_drop_en = 1; - - /* Enable vlan offload */ - txconf->txq_flags &= ~ETH_TXQ_FLAGS_NOVLANOFFL; + txconf->txq_flags = ETH_TXQ_FLAGS_IGNORE; /*configure the number of supported virtio devices based on VMDQ limits */ num_devices = dev_info.max_vmdq_pools; @@ -332,6 +333,22 @@ port_init(uint16_t port) rx_rings = (uint16_t)dev_info.max_rx_queues; /* Configure ethernet device. */ + 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; + } retval = rte_eth_dev_configure(port, rx_rings, tx_rings, &port_conf); if (retval != 0) { RTE_LOG(ERR, VHOST_PORT, "Failed to configure port %u: %s.\n", @@ -353,6 +370,7 @@ port_init(uint16_t port) } /* Setup the queues. */ + rxconf->offloads = port_conf.rxmode.offloads; for (q = 0; q < rx_rings; q ++) { retval = rte_eth_rx_queue_setup(port, q, rx_ring_size, rte_eth_dev_socket_id(port), @@ -365,6 +383,7 @@ port_init(uint16_t port) return retval; } } + txconf->offloads = port_conf.txmode.offloads; for (q = 0; q < tx_rings; q ++) { retval = rte_eth_tx_queue_setup(port, q, tx_ring_size, rte_eth_dev_socket_id(port), @@ -624,7 +643,8 @@ us_vhost_parse_args(int argc, char **argv) } else { mergeable = !!ret; if (ret) { - vmdq_conf_default.rxmode.jumbo_frame = 1; + vmdq_conf_default.rxmode.offloads |= + DEV_RX_OFFLOAD_JUMBO_FRAME; vmdq_conf_default.rxmode.max_rx_pkt_len = JUMBO_FRAME_MAX_SIZE; }