From patchwork Fri Nov 12 03:16:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rohit Raj X-Patchwork-Id: 104223 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A60BBA0548; Fri, 12 Nov 2021 04:16:39 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6DAB440692; Fri, 12 Nov 2021 04:16:39 +0100 (CET) Received: from inva020.nxp.com (inva020.nxp.com [92.121.34.13]) by mails.dpdk.org (Postfix) with ESMTP id E308F40687 for ; Fri, 12 Nov 2021 04:16:37 +0100 (CET) Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id B119C1A1D45; Fri, 12 Nov 2021 04:16:37 +0100 (CET) Received: from aprdc01srsp001v.ap-rdc01.nxp.com (aprdc01srsp001v.ap-rdc01.nxp.com [165.114.16.16]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 7ACD41A1D3D; Fri, 12 Nov 2021 04:16:37 +0100 (CET) Received: from lsv03196.swis.in-blr01.nxp.com (lsv03196.swis.in-blr01.nxp.com [92.120.146.192]) by aprdc01srsp001v.ap-rdc01.nxp.com (Postfix) with ESMTP id 878D3183ACDD; Fri, 12 Nov 2021 11:16:36 +0800 (+08) From: rohit.raj@nxp.com To: dev@dpdk.org, ferruh.yigit@intel.com Cc: nipun.gupta@nxp.com, Rohit Raj , Sachin Saxena , Vanshika Shukla Subject: [PATCH v2] examples/l3fwd: fix jumbo packet drop issue Date: Fri, 12 Nov 2021 08:46:35 +0530 Message-Id: <20211112031635.11400-1-rohit.raj@nxp.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20210727092523.22718-1-rohit.raj@nxp.com> References: <20210727092523.22718-1-rohit.raj@nxp.com> X-Virus-Scanned: ClamAV using ClamSMTP X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org From: Rohit Raj l3fwd uses mbufs with 2KB data size. If we enable jumbo packets, it is not able to store packets with size greater than 2KB, hence these packets are dropped. This patch fixes this issue by enabling scatter for jumbo packet, if it is supported by NIC. If scatter is not supported by NIC and max packet length is greater than default mbuf data size, then application exits with proper error message. Fixes: f68aad7904f ("examples/l3fwd: update") Signed-off-by: Rohit Raj Signed-off-by: Sachin Saxena Signed-off-by: Vanshika Shukla --- v2: * Improved the check to not enable Rx scatter when packets fits into buffer. * Check if jumbo packet is enabled using max_rx_pktlen instead of jumbo packet flag. examples/l3fwd/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index d69373f881..61448c759c 100644 --- a/examples/l3fwd/main.c +++ b/examples/l3fwd/main.c @@ -1109,6 +1109,19 @@ l3fwd_poll_resource_setup(void) "Invalid max packet length: %u (port %u)\n", max_pkt_len, portid); + /* Enable Receive side SCATTER, if supported by NIC, + * when jumbo packet is enabled. + */ + if (dev_info.max_rx_pktlen > RTE_MBUF_DEFAULT_DATAROOM) { + if (dev_info.rx_offload_capa & + RTE_ETH_RX_OFFLOAD_SCATTER) + local_port_conf.rxmode.offloads |= + RTE_ETH_RX_OFFLOAD_SCATTER; + else + rte_exit(EXIT_FAILURE, + "Max packet length greater than default MBUF size\n"); + } + if (dev_info.tx_offload_capa & RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE) local_port_conf.txmode.offloads |= RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE;