From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0057.outbound.protection.outlook.com [104.47.34.57]) by dpdk.org (Postfix) with ESMTP id E5EF47ED7 for ; Wed, 18 Apr 2018 06:57:18 +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=mjbFDT90n97VtV6gDSNamt64RLVMRERbh0N51tEOWss=; b=j/M0eDljRvoDm2jbpC5stShfwC0h7GDMVi4Lr1ADhfA+EbeXLxcrxPLGep1CUHItr1op8UQFHbkeqetgZA7AlOghIXFruHPTjKeagppb8FzUgmL7GevtEMR30Wf58VLoyJ6mXJ9WueYS9PLrKHBXM/enMESolUNKcaY527PSCwc= Authentication-Results: caviumnetworks.com; dkim=none (message not signed) header.d=none;caviumnetworks.com; dmarc=none action=none header.from=caviumnetworks.com; Received: from jerin (106.208.154.59) by BN3PR07MB2516.namprd07.prod.outlook.com (2a01:111:e400:7bbf::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.696.12; Wed, 18 Apr 2018 04:57:13 +0000 Date: Wed, 18 Apr 2018 10:26:54 +0530 From: Jerin Jacob To: Nitin Saxena Cc: Narayana Prasad , dev@dpdk.org Message-ID: <20180418045653.GA6696@jerin> References: <1523875487-5220-1-git-send-email-nitin.saxena@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1523875487-5220-1-git-send-email-nitin.saxena@caviumnetworks.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-Originating-IP: [106.208.154.59] X-ClientProxiedBy: BM1PR0101CA0061.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:19::23) To BN3PR07MB2516.namprd07.prod.outlook.com (2a01:111:e400:7bbf::13) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(2017052603328)(7153060)(7193020); SRVR:BN3PR07MB2516; X-Microsoft-Exchange-Diagnostics: 1; BN3PR07MB2516; 3:O3VjRQAy1mRupXAs6N421vZ0kQmz0GslKEp19vNP1Rgn2zhjUgpKoavvDxoEQxVGIXx0KryyRbrZcTjSr2lyOPE0kP9tYvflTRPjCvzjjClzx2iw7zEYS9dHvEjzUJE9jbsxo2Zdx5YOSaZe0DudU0kbNWhON+A1BYx3zxCK9/Q/B66ZPp0eYZvKfLEO3jwdNvJOulMebwPlsQAg+07XX8xhUQc1/EKWdDTri/59VL9tKcnAJ5ZacmyBF0jT7NuU; 25:W8umCSGFAohNJyttVZLzxZd/cKJQF+nFnKASiDg0BhVnHpzFuPWgueqKb6Xgfc9YZvw7Q98kB/36EWECOxGyFivt7oavjVynNmEGg22NtdCypu5QfbHiIDDldZcHQsXgFLYj7IdvwYw2W3f8an9MpnzlNUX245sYku6/6fwnXrfAGbD7r7cfKkdUhqe2Fe6h6UfNGHcchoSO0iuhFX9vrpbd8G21OznnEPGPBiDcOK05wf6tDqlxlJcU5Xm5/IGS4D8/gB8SBeKIKS2eVnAVb77XXncwtM7RWBJivwY/DxPgKwfXRILtnHb88Qqd9l7uO4/OWQ1KrOHGL8qJg0dxlA==; 31:eEIpguQJhIYbERoirbhcjY28+LckczVWDj8+rMtLYeOqLEOQ1nPlnHkWanB6tIVTmOUYNX3Un19Hh7MwCkI92eQcVkoEcauuj8sRSYKH9VwiNKroWEO9WfWehAl0r5A/xOFmI5gg+/TceCwa96znGvRKVBu4wcUKq3gds9H2t/mloyJcaznpNgj5QF9rynjwx0dJthMQn8rV7YVzzpEp3j60a8SeBhKsINdN8YGzVfQ= X-MS-TrafficTypeDiagnostic: BN3PR07MB2516: X-Microsoft-Exchange-Diagnostics: 1; BN3PR07MB2516; 20:fQ+52ZsxL9cL4h2ZgxUn3paU6tAH4W2OnDP/gWhpBUrHU9zq8lFO/My0QURxqFOOrlSK0tRogmyzN6Z8dX8SH3txl4RX8FfDIjYN/jkch9Klaas0NIDAjmjecHxQcsTB8s56V3zUQwvXdOo/LB6nVhCPZGSIP0dMMtqY6m0hlckqiLkH79E/iP/l9fKH622MEOeSN8DaToKRcSBpCNzs8WNkZq/zYtkMi2NKKrA0G6i29J0ccVN8rS4WuGlXdP6hSN7jfGJy39uO1ppS7bm8GRWnjeijaEsFoJzHvoaou7yZo207yTa565I/oeezTzQCmG3bvUDgsHWXNlNKlyAb2kXgBYTdJiu2Qon2hpE/F8NBFIG+TcfVTDbx8Djb61Nwxerd3CvuSbz0KyFyj1xHalp74s6A0djOIoJSsrUUaNJ2JARTMcZGOaQOfl0CLC6AK/rRGjCSqVWyH2ElJbgORmpM/KY8dNLmIIf2BKZNGEQ/i9ceb/i3L0Zv0g/0F0QLJmIpuLnsKeDf1C3UljKCt+ZPLg9C1OfJWwSv54w2J9q20lmhgnnIKDZ8mD56A5oKbkC/MSJ1OpK8Om+KHynC1uCLXTgGvKJ49+Hcvyx7i9Y=; 4:fvIAXUGLX8Zc3+iazy6Fs0aJwGnazBayAnG3vdAGRL1TEVZoIGNKBmRKLla1yJnfGnjpNd2KXkzfBkW6hZ4dgddP542J6LNRiQEITbqUmhGzx8JgPudmytYVGLef31J6uIooQk520dDkfknqsjRGuGYvIUSPP1A7EkHWlqVujZIk3ctWKOdR/neXgQhGyOZWJpVWiHqjz+0WdDkbhr3lHSFOZDV/tryx/KB3v9gLwviaQFwnKIzo6eNh/rmlkppDAVO8GYVQMBlgFfeyi9Byow== 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)(93006095)(3231232)(944501327)(52105095)(10201501046)(3002001)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123558120)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:BN3PR07MB2516; BCL:0; PCL:0; RULEID:; SRVR:BN3PR07MB2516; X-Forefront-PRVS: 06469BCC91 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(376002)(39850400004)(396003)(39380400002)(366004)(13464003)(6862004)(16586007)(76176011)(52116002)(8676002)(81166006)(6116002)(23726003)(2906002)(6636002)(6666003)(59450400001)(55016002)(5660300001)(3846002)(305945005)(229853002)(9686003)(26005)(316002)(58126008)(5009440100003)(33896004)(44832011)(25786009)(33716001)(50466002)(4326008)(33656002)(16526019)(11346002)(8936002)(7736002)(956004)(446003)(1076002)(72206003)(66066001)(478600001)(42882007)(6496006)(476003)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR07MB2516; H:jerin; FPR:; SPF:None; LANG:en; MLV:sfv; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR07MB2516; 23:xuzwnaXkHUyvqX2dzfGqCDb87iR69fpVcIn4fxbNU?= =?us-ascii?Q?4pyOzGEwyeJ8+HwxHXmNrsLUvxcGKCqiJDi8/xQY/oaWJthhJnq09fX6tVyN?= =?us-ascii?Q?H+c4WXq5xVMlEXgqPSFVfNQ1mPIJmDhT87U9RxCWnQbZxcGu9SFfTIB2a7s5?= =?us-ascii?Q?9Gr0jHDGah63RVLY4p2/LpI/zkkQ1f19s+88J2gaOrgachFbeXe5DUZtD65r?= =?us-ascii?Q?p0Xp0dw65ip3m7cOrJj22R+n/ZrQ4Le3V1YEPMXyAyleRji6Y/UFbQri4HLS?= =?us-ascii?Q?75dkmFDsRMjRDB9r7FioLbRxsrZOFsv0qT8gSr+Qa8rHVeKGE9EXNfAq0/qs?= =?us-ascii?Q?S0K3udB9bvhXScu90+26gIVxvgGVrF3bJ5a4pQZFygfmaNfAIyYXaoUkUQc1?= =?us-ascii?Q?c6xVBAoulil1gnlAqxjoq8UOue9vOuw2ohiQjB3Z7fcFgAeX8uyYkmS9k/or?= =?us-ascii?Q?4X47aTxUdb9WHdEP42wd1C3oM5ZoxjWCHwSFzcfqWWl9DOc4r/c5owo62aXg?= =?us-ascii?Q?ijaViaRNYRlInzHqUCLuFh/NGHdZscsvPNHKjUJiN1sNSyBR96paokCTJd6A?= =?us-ascii?Q?df32BvZq2MI7/mU1s0y/U7ZsNXGbw7ud6q6iJcfghkvBZ/M5ipp+fxi8uU4s?= =?us-ascii?Q?J7Dv8IvZZga3GDjh1vIjmzDfoNkurgPNXyo7x09FSVcfpqmH/Qg0BU2WjPZB?= =?us-ascii?Q?HuVgzO2KIyxC5hBErQ51x/7NSFOIb4MxNZIzkJaiPkgdEPzP6PLQULrS5x8U?= =?us-ascii?Q?UOSsFTXONkp0rRxmg4orCLfEyhpejVhWAdiAIl1FND5n3rgXaav1Fnw1EFno?= =?us-ascii?Q?rScHnVOR96fgFJchR7VGddZDmK03ABNJ2APDJX6R3p6zlZPJsZ18/lPrrm7E?= =?us-ascii?Q?RXsyvkN22IpAdwLrd7pNPVHBHxlW30gPawG8T+GisiXMghi/N6ej63NOWIeQ?= =?us-ascii?Q?EUMkMsGQy/yffyxfF69cH096bDMGlV1WOgx0sb4Mu0IAfNXD8//v2yA/FS2L?= =?us-ascii?Q?+KNUxvALMRJr32+q6bSOAq3kjpJ6vflOQ8PziKnwhv3qGXzN5TXplfw11Ze1?= =?us-ascii?Q?sYDR0fBzjwrFwQmHsFcQUwzYd1N1dRRWzGlsQJe/eYo+pnmsjSuwETMKEj/q?= =?us-ascii?Q?KsZLJrlBq/dtdRrld2532QzunzqVYXj4IKOHSx9SYricVQ9cVKd7w=3D=3D?= X-Microsoft-Antispam-Message-Info: bVTtVN+GzeKWysIkoPbspH0p7z88Q2qLCDX8ATcRG9wIBs7rCM5rGk5hCjx7CG4aOvRVN5pshwYfNFOsR+ZdD0ab9gpcLBJBOQ5po8iTn2R9HaSnLp7SKhK2ONRW85cx1w8vu3oPXJ5b2nPATSAmnElVBmpvAgcRsie6ezAqKd55ARVtAr/BLOIrn7ZGnxvM X-Microsoft-Exchange-Diagnostics: 1; BN3PR07MB2516; 6:H75EJNfChiHQUGQ3oP5bVIDJ+vR4IDwD4BZEkM2ImnAd2yQE8M9gpz5sAn31g+RnTXoI7Ev2BvO2rYlhYfM9FMG5Ei06kihre9/cpTYZnjaDQibW/+tHSQH4vSsnADPzF7uJsex6F0h1bF5oGCfUw46sqoeIaw3dvHFgnc9pL/tpg5p35oinc89r35uXSb8bD/+cjJ497beLLM9FuNY8A4BVgtn1vV8gx+SqCjNYh/FGeLUBYykxN+V7m0pwk/IvwiBhtvaNBic3u6TkYKtXxYp3P3Xl9Yo7gYBg/eobDfJgUhmqakUWkOiGgOHo8rx4wQOvr5O4bk+66X0sr47JFJatUXwt/CoR1sIOVee1Uq76M041YuyHgGAnEt/OhH1dHJa2x6YbPSLpp557ZtCc4uMopUTbg1QIN8MPoU6IzfA84Ohkiq8HoiwY8p4sd9AjnM7r9x6Re2codpsrQhhz5Q==; 5:B+NbxTVGLpe2Dsocogzk7bHD2ietbWpTREtbLCAFrMZ3eln7+IOxVHCqjcT/Bin0m5nShzzKTmFmQd1IBrRTrqMM64w3yFaoqTG8P8PWXszI1QMECK8ejz3EMGli5Q4p7oa2wbQR2JjdwgTzh2/dnuMONW48zpi6Fa4dtSCpoLY=; 24:XcBUqHX53MlgyCpaq0XNIiK4WhHtJ27nM9T5zsTE/xBNiJ6M/JrbZ4Wi4PmQP9zrGBUyXinmgvjx5wjORKhQHvdf9uyTSo+J5BpKtVn5IYs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN3PR07MB2516; 7:ew05U87PXgD70UT5qXrc+Wk02N6106Ego9gO6CrSc5qy0w0ccKVXuBR1FHsCK7BEdjj/bccM6TMAU49/PoKDMSTWGofr/RE2kMA9ntSQkZoYp8q+pbleqVlgJr0niq/4xD2Iiv0LTLY8PWk7Xb9ZWYvLLnacIPh1DjsBbmn0BrcAB9PlJuDpdy7aOHtGbn1bsGkyqWYBUlCTiL84J3z1oEeY0Nj6e9pUPXQhoXuvYTVWWEzP72JlnoeVL6u/nVHI X-MS-Office365-Filtering-Correlation-Id: ec46538a-11a8-4037-ba3a-08d5a4e8db18 X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2018 04:57:13.9306 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ec46538a-11a8-4037-ba3a-08d5a4e8db18 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR07MB2516 Subject: Re: [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: Wed, 18 Apr 2018 04:57:19 -0000 -----Original Message----- > Date: Mon, 16 Apr 2018 10:44:47 +0000 > From: Nitin Saxena > To: Jerin Jacob > Cc: Nitin Saxena , Narayana Prasad > , dev@dpdk.org > Subject: [PATCH] net/thunderx: fix MTU configuration for jumbo pkts > X-Mailer: git-send-email 2.7.4 > > 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") > Cc: stable@dpdk.org > Signed-off-by: Nitin Saxena Acked-by: Jerin Jacob > --- > 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 >