From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0057.outbound.protection.outlook.com [104.47.37.57]) by dpdk.org (Postfix) with ESMTP id 86DA11B01F for ; Mon, 16 Apr 2018 12:45:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=pCOgUwmJsBETjilZJL9XmAB3Zm3TM9pGyM75sT31ZDQ=; b=AXncDajSCHpbM4B4WAnd9uq+EO+T91tfNYese1ADpJT+csJEiIbXfOWkWojJT9ZF7XVeWbNxJ+HPAq5FsX4HQcRIv2iZapeTffQ9HiFmxTZE4iOrM/Jl9DeBHoCQCd3cW0LJxSgoiqgn61zCbit03bJkyRkInJcrPBKWxMRLJX8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Nitin.Saxena@cavium.com; Received: from kdocteontx.localdomain.caveonetworks.com (115.113.156.2) by BY2PR07MB694.namprd07.prod.outlook.com (2a01:111:e400:2c52::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.14; Mon, 16 Apr 2018 10:45:39 +0000 From: Nitin Saxena To: Jerin Jacob Cc: Nitin Saxena , Narayana Prasad , dev@dpdk.org Date: Mon, 16 Apr 2018 10:44:47 +0000 Message-Id: <1523875487-5220-1-git-send-email-nitin.saxena@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [115.113.156.2] X-ClientProxiedBy: BM1PR01CA0099.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00::15) To BY2PR07MB694.namprd07.prod.outlook.com (2a01:111:e400:2c52::24) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(2017052603328)(7153060)(7193020); SRVR:BY2PR07MB694; X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB694; 3:xmQk8FLnZosjs8nc7+yy5w7i70IBDULSOrOSvETFbCFb5XKRw2qbmKnpqFkR9mTOhEkcABZ58RTgQCx72N5cc7AiQc+uwclZ2r3qrO0aKKQ5QCZ1Np9fHiT3ayVB17InUV46n5QpC4d0t/nRU046ArL6H9BpKPzawdWtbBCvZWh6qKnJCHydvxvsskS3ChL06l6J+WQpi2dwzywt2SJ43YtynsdxTtGqaujPZJuGacW2Ub4xvtfSu4opZvSUW9ho; 25:zjsWfV6hyLCerK2R8mu73xACOAxoTUlywfzFCPryN9JfyjU4LfyBKkOikDh0CNuKTcTUAQq9QK68zUV+rGldo36SviNUV+c0lQMkcrIPL5Ies7cxPipsu36y1iAdBJpr+UKJ8dNJFE9zPba7mFOdf0BhiwRfItGD6mXYxTu8oA3K9KwlR+yDPNbSbYgeDfMq4s7Y0OI4B86Ye6sJyTgI70brWn+yj85vtr1xRZWlgyuZD+pI/QR7ck3FClbNCOG0WoWEaK94y5EcFLCTMnHJmIQ/aGEibcNt42s3jxjuHWsuBB22MIHAXF7mVh4o4f/PS+K0yIPaXuYVS+RNvhRiej+HQwzCRLMNraQaSyymrjs=; 31:bmA5LLCTgYHetN+CFSLR/pSkFXuOoJh5V5OI06YhzvKm1Rb+rGaE+WGHzdoYbBBQLqOCTib9zo2vdjk5jMEwRaRTrHXMVzr7mlZQM9lg0A8xT7j8ImcDrmO98C6YCGn/27t7n4LR3yRoZP3/Tx7JyIUIJc5tSCb5cU7d1TK7IsiVE9fztu4BjNJvejTQN+1Wn5sM70SmdyH0546Io3Ij8RxSc3T8XMFhvN1VC0wUec4= X-MS-TrafficTypeDiagnostic: BY2PR07MB694: X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB694; 20:/1+nmvyNpJy8A0dtbyXTLR0J18rSt0Ch/YXBku0bvJGGDeuhEgASzWQGUq2mQfU+ChN3q7J3oNydKQeGqtqqm4p6EMX9hn3JZMC14VOxZ9X2/gcwFrhArOBEL7jHU+XJKCvZ6mPci7IHMg1RHU/+96okZUTgwMOc7ZSwQkAsM0O/Q3SxgrGqSzeUv1fwbuQDwdLdZvdn+UI0u1CYhqyKYGPp56b7cOSt96PprkQdVlO8qhoJDxiYPmz7dQ7gi9KnKEv09nwJ/UxrrjRbTV+LPfP9na0SUHhjs8QeycJKGud7dMntvw6+n/7YBw7ahsLiz9VKaO2znHs7ls46SCdTopb9WfKpg9HbQcfn47wZptUf0g/IhSTmD5+x0c0VE8RBuOkQxo2Dik1MyQ6vNJ5XqwgHIg4XCK8NJMYedPL6MpfBPOdfibarRqnGu+OZCAYVDa1cG5yMfjZU61pzv+u2mkIaSr0sSotXKyqzYCMp3EzwhosGRY4dbZBxAjG9S40Zo4fQSOhgishNgb7QmQo2q5k1T1Y2m5tY6rF3/G/WiS5vy+cjA0+Zodt6IDU3dxMl+qkdIcXicKD2oivOdMui05jr5VtkF4nsP2T2WOVVMrU=; 4:nAFVnjnFt9Z8RgpTDuKaYwfUw8kCiO/whUbOtA3WANmAjrLJdlf9r0KNswtorJ0tbI5VrUDXDsNneY5IpSIA9TysYe84yk9VQBQOOGtCJV6jbXvSwjt2CuVppm0zqhb75FvzlIbbXJpladL2ZjWQ/WZVK4RBmc2pl07yba7s+8Be9iK0ad9ha2PdghMSav6hhw/ZLW+0kXFcMkqlkmIHCazzxYCVwwMA0b32sW5bf6jM80aKSyEpZh02BPd4koEhzoqr4CTSRX8UwC4QTn3TLA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231232)(944501327)(52105095)(3002001)(93006095)(6041310)(20161123562045)(20161123558120)(20161123560045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011); SRVR:BY2PR07MB694; BCL:0; PCL:0; RULEID:; SRVR:BY2PR07MB694; X-Forefront-PRVS: 0644578634 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(396003)(366004)(39850400004)(346002)(376002)(39380400002)(189003)(199004)(6506007)(386003)(6116002)(59450400001)(6666003)(3846002)(478600001)(68736007)(106356001)(72206003)(316002)(956004)(66066001)(54906003)(47776003)(16586007)(50466002)(37006003)(2616005)(476003)(5660300001)(486006)(2906002)(51416003)(52116002)(36756003)(44832011)(50226002)(1857600001)(16526019)(42882007)(25786009)(48376002)(7736002)(105586002)(305945005)(81166006)(81156014)(6512007)(53936002)(8676002)(6486002)(8936002)(6636002)(4326008)(6862004)(97736004)(26005); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR07MB694; H:kdocteontx.localdomain.caveonetworks.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR07MB694; 23:qPThVYJsde1QPTkR5xt5EHl597/dBIGLlN4P7IbJWi?= =?us-ascii?Q?fokW6K+fyUBGMxHbIKT48Izc1u48a105Kc4EVGsZ8ZzlpAUxdZWzZHLJr6tD?= =?us-ascii?Q?XlInIn+GgnyT9N7X30f6dvvAzEt6y7TZ9b40bpsJGsUM74Py1ScBbGIrDlXn?= =?us-ascii?Q?D2Pi+VUsNiC8S9Ta9Crv6rqCvldVTp2cRDaITflOfrq9M0J8nOHg5jVfNp9u?= =?us-ascii?Q?hpELu0eWbc7fczsikYUH8+9tZLCdlSOM7EbZmtFrjVoPmveafBYk9CVopot2?= =?us-ascii?Q?qb/rYhEtByNeJSYOX+w56YIWPIskLSuPnVqeuBXpSGPWW73uAskBHiTk2i9k?= =?us-ascii?Q?lLM3OEZ+GZRs8ns1F+pTZhRLtBgC8dSShXjSsx5X/HUKa1SVr5Gh/+brGugR?= =?us-ascii?Q?fZyKZk3rVfzoPScYIJtD+OiHAunXQOOwqrCdo1sH692ju0RS/GoCJWdLzBX8?= =?us-ascii?Q?AYrXET+8Uo8WP8rXBUDz9kYUJR3m0HvjR1h/bnXwAUc3aB1yGchb9hZPpRyw?= =?us-ascii?Q?pSrgaalOzv9uDu6V99w+ScinegYIaCaGA1oX1QSa32v1uD/2NBXdnyfrCVtY?= =?us-ascii?Q?WgZqrwqfspCD59o9bLj6p4xt7jULI+1qJvIdf4RazEVeL/yM8o0DM1f5MF9h?= =?us-ascii?Q?y8+DvVi4awklRR91whsC8N1eEFxpJoxpGAGYsCLdsMKO7TFfpdwwm3/NG4hX?= =?us-ascii?Q?WzA1dbLpD1AJgOk3p67xfMs5w+4PACGOeyr92nxAFGgbLaD8hZV7BDshwqD4?= =?us-ascii?Q?mUelNpDZiJSR1HinfTephj/SVx2XZfdRYTQxCDtJrMzGP4eOuoD1N3eBJaN7?= =?us-ascii?Q?vLeA0hUkZmVIWeXrB2gsHHwkenGO0UOtZWnm+ShkTN8hfmV29ij/OCyUhfu1?= =?us-ascii?Q?SMI+DR4zu3pFvVJ7FCL6e25X1OtzMsq2/hBpBJoFf9fObhxca8UkycDIeP+8?= =?us-ascii?Q?IArweBK+i+q27gyd37ipUFp2m7onb7oYa0ZOQwAkk6EIFXBr7Xo/SuKwPvr1?= =?us-ascii?Q?D7xegctWb0ztBB/53+NWDjW6lGj3PGO1wXB6vFO3jJedUhMfzybomI5ui/lS?= =?us-ascii?Q?IXD3B/+V/Qk/vbKqB9x/DAN8MKzECBilgnegmwwprgtxQDDq8KQ/o16No+Yg?= =?us-ascii?Q?a2kwQz+0bp41K5jyp2HTg1btCrMlZDTyNly9lyk21ZepMazBQrAOjnEPvmHV?= =?us-ascii?Q?Cit1sN9TPE6FwvCc5kFe688jAn0vPvBuzRNuraQ+pqi3H8hetfgX3tkF8UZh?= =?us-ascii?Q?O9vBso/jJbrNQjx2dU5zcDHUBeF8tKI9Rezkn3?= X-Microsoft-Antispam-Message-Info: 7jfyAGGT29q+ZeASuIea6lAjUuj7X0lbSqIeKu5t0B2wmvFLBWI3p2jGn0uwouVk8AhB/38S+nTI5QqY2EGprEeI6J52/wkuCUmeeMsnLoTfAmGyLlz05GuSY/eBYGzrRdbyhPRJ2mjPOje3eF5xn1Xmfv/R2yWw/Z09Ngm4/1n/kR6isAZlLFt4gQEydVZQ X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB694; 6:Rrd/ObBEwtjoBWtke32dL5Ys/Htd6JCzEpcCVeu9QqUdrK2iYgpV0ZqU08x18TYIhQuvYUCKtr5YTtnbFJ41kxM4M99OkHTsYK/y9bvOGKTGxWuiYq3osQUfl2n4dfYBDBjNDQWPKYs3xTlQWlS8UuU6dKckgoJu9X9w9VEIHfhD7sqkEFSq9QSiddG+z28eY7V9txop68vtRUaXvKz9p7aHnRCxnRKvoFBNYKhBxvu0Rbtae4bGIj4skSuuOfzcR/g+l64y5LaLzYgPBWx9xibgl9PZ2oX8LCzrONRmmDFNJeOL1NK/Rard8a/giGxdqHWuj48bBwBjLPx0+EmskokotdIfzghqDIqBL8nnREgt4ifgKZFV5xNoTHh2FI0Vu3LHF4t3Aa7k3O/yX/oJ6OVzGw0YE2lyFLy1Tvh5hUyxt7GTYfTXd23eQTp0BqzIxCDVvkkLA+miFSuICoKT1Q==; 5:U5wcJZvR0f1Q9o/+tm9pjxuqnE5ZrggeosUsyfekZUF8V4QzOV13zRuaW8QWtcX62RYIWkl7LQQyQO1AMkeJNFa7BJv5Nf1XlZHauq8mDCBWYTJvtYThp9bKAaBtFCiDMIaY4xNmFzd3C2EFov6mptwkOjK9Q/Y1TP4xOOtrxBo=; 24:U6xZMGEEup1b4+S5ba6gt6Dim9NDDoUPHNV5eQhP25wWySUmKf2M/NQEbBIhSyQNJwKCJw2Tmp7NFWrLvXoa8upVQ5aIGNbPUQJbgF/95Vg= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR07MB694; 7:9PxE2qnfVZZYtRyVCdIVRbfmsaqkFsXaavK5jZ39PiVDcdJIAoROOPbKttszHR9OMc8vklg5+47B7w58inIOLMiWpR1nl3tpbfO0rN16GhK57BYQC60u8u0/CUPd9qwy4SBGdcGfq9sICDDpZHEm7zIoNqwRB4slK9bMddhDEuS3HkY9eewX2bi/MSgpc8pKCex3gAHAGRc7aZpZ6jGrh+4+tAI22nurgXlEzi0qbgxfhKwchf+uca7YdAbo4CdM X-MS-Office365-Filtering-Correlation-Id: e7f6c92c-8458-4c87-5eca-08d5a38732df X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Apr 2018 10:45:39.7520 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: e7f6c92c-8458-4c87-5eca-08d5a38732df X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY2PR07MB694 Subject: [dpdk-dev] [PATCH] net/thunderx: fix MTU configuration for jumbo pkts 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, 16 Apr 2018 10:45:45 -0000 thunderx pmd driver passes dev_info.max_rx_pktlen as 9200 (via rte_eth_dev_info_get()) to application. But, when application tries to set MTU as (9200 - sizeof(ethernet_header_t)) the operation fails because of missing CRC and VLAN additions. This patch fixes the following for thunderx pmd driver: - Sets NIC_HW_MAX_FRS to 9216 (instead of 9200) - Sets NIC_HW_MAX_MTU to 9190 (NIC_HW_MAX_FRS - ETH_HLEN - ETHER_CRC_LEN - 2*VLAN_HLEN) - Sets dev_info->max_rx_pkt_len to NIC_HW_MAX_MTU + ETH_HLEN (instead of 9200) - Allows rte_eth_dev_set_mtu() to pass if application (like VPP) calls rte_eth_dev_set_mtu() before rte_eth_dev_start() by putting appropriate check for dev->data->dev_started Fixes: 65d9804edc05 ("net/thunderx: support MTU configuration") Signed-off-by: Nitin Saxena --- drivers/net/thunderx/base/nicvf_hw_defs.h | 5 ++++- drivers/net/thunderx/nicvf_ethdev.c | 15 +++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/drivers/net/thunderx/base/nicvf_hw_defs.h b/drivers/net/thunderx/base/nicvf_hw_defs.h index b13c21f..b12c8ec 100644 --- a/drivers/net/thunderx/base/nicvf_hw_defs.h +++ b/drivers/net/thunderx/base/nicvf_hw_defs.h @@ -171,7 +171,10 @@ /* Min/Max packet size */ #define NIC_HW_MIN_FRS (64) -#define NIC_HW_MAX_FRS (9200) /* 9216 max pkt including FCS */ +/* ETH_HLEN+ETH_FCS_LEN+2*VLAN_HLEN */ +#define NIC_HW_L2_OVERHEAD (26) +#define NIC_HW_MAX_MTU (9190) +#define NIC_HW_MAX_FRS (NIC_HW_MAX_MTU + NIC_HW_L2_OVERHEAD) #define NIC_HW_MAX_SEGS (12) /* Descriptor alignments */ diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index 75e9d16..a7931af 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -162,7 +162,7 @@ static int nicvf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) { struct nicvf *nic = nicvf_pmd_priv(dev); - uint32_t buffsz, frame_size = mtu + ETHER_HDR_LEN + ETHER_CRC_LEN; + uint32_t buffsz, frame_size = mtu + NIC_HW_L2_OVERHEAD; size_t i; struct rte_eth_rxmode *rxmode = &dev->data->dev_conf.rxmode; @@ -180,7 +180,7 @@ nicvf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) * Refuse mtu that requires the support of scattered packets * when this feature has not been enabled before. */ - if (!dev->data->scattered_rx && + if (dev->data->dev_started && !dev->data->scattered_rx && (frame_size + 2 * VLAN_TAG_SIZE > buffsz)) return -EINVAL; @@ -194,11 +194,11 @@ nicvf_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) else rxmode->offloads &= ~DEV_RX_OFFLOAD_JUMBO_FRAME; - if (nicvf_mbox_update_hw_max_frs(nic, frame_size)) + if (nicvf_mbox_update_hw_max_frs(nic, mtu)) return -EINVAL; - /* Update max frame size */ - rxmode->max_rx_pkt_len = (uint32_t)frame_size; + /* Update max_rx_pkt_len */ + rxmode->max_rx_pkt_len = mtu + ETHER_HDR_LEN; nic->mtu = mtu; for (i = 0; i < nic->sqs_count; i++) @@ -1408,7 +1408,7 @@ nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) dev_info->speed_capa |= ETH_LINK_SPEED_40G; dev_info->min_rx_bufsize = ETHER_MIN_MTU; - dev_info->max_rx_pktlen = NIC_HW_MAX_FRS; + dev_info->max_rx_pktlen = NIC_HW_MAX_MTU + ETHER_HDR_LEN; dev_info->max_rx_queues = (uint16_t)MAX_RCV_QUEUES_PER_QS * (MAX_SQS_PER_VF + 1); dev_info->max_tx_queues = @@ -1741,8 +1741,7 @@ nicvf_dev_start(struct rte_eth_dev *dev) /* Setup MTU based on max_rx_pkt_len or default */ mtu = dev->data->dev_conf.rxmode.offloads & DEV_RX_OFFLOAD_JUMBO_FRAME ? dev->data->dev_conf.rxmode.max_rx_pkt_len - - ETHER_HDR_LEN - ETHER_CRC_LEN - : ETHER_MTU; + - ETHER_HDR_LEN : ETHER_MTU; if (nicvf_dev_set_mtu(dev, mtu)) { PMD_INIT_LOG(ERR, "Failed to set default mtu size"); -- 2.7.4