> -----Original Message----- > From: Ferruh Yigit <ferruh.yi...@intel.com> > Sent: Wednesday, August 11, 2021 5:01 PM > To: Rohit Raj <rohit....@nxp.com> > Cc: dev@dpdk.org; Nipun Gupta <nipun.gu...@nxp.com>; Hemant Agrawal > <hemant.agra...@nxp.com>; Sachin Saxena <sachin.sax...@nxp.com>; > Vanshika Shukla <vanshika.shu...@nxp.com> > Subject: Re: [dpdk-dev] [PATCH v1] examples/l3fwd: fix jumbo packet drop > issue > > On 7/27/2021 10:25 AM, rohit....@nxp.com wrote: > > From: Rohit Raj <rohit....@nxp.com> > > > > 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 jumbo 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 <rohit....@nxp.com> > > Signed-off-by: Sachin Saxena <sachin.sax...@nxp.com> > > Signed-off-by: Vanshika Shukla <vanshika.shu...@nxp.com> > > --- > > examples/l3fwd/main.c | 14 ++++++++++++++ > > 1 file changed, 14 insertions(+) > > > > diff --git a/examples/l3fwd/main.c b/examples/l3fwd/main.c index > > 4cb800aa15..6aaaa8ecb5 100644 > > --- a/examples/l3fwd/main.c > > +++ b/examples/l3fwd/main.c > > @@ -1035,6 +1035,20 @@ l3fwd_poll_resource_setup(void) > > "Error during getting device (port %u) info: > > %s\n", > > portid, strerror(-ret)); > > > > + /* Enable Receive side SCATTER, if supported by NIC, > > + * when jumbo packet is enabled. > > + */ > > + if (local_port_conf.rxmode.offloads & > > + DEV_RX_OFFLOAD_JUMBO_FRAME){ > > + if (dev_info.rx_offload_capa & DEV_RX_OFFLOAD_SCATTER) > > + local_port_conf.rxmode.offloads |= > > + DEV_RX_OFFLOAD_SCATTER; > > + else if (local_port_conf.rxmode.max_rx_pkt_len > > > + RTE_MBUF_DEFAULT_DATAROOM) > > + rte_exit(EXIT_FAILURE, > > + "Max packet length greater than > > + default MBUF size\n"); > > This is a configuration set by application. So application is failing itself > because > of configuration it sets, seems odd. > > I guess the jumbo frame can be enabled when user provides '--enable-jumbo' > argument. What do you think adding above check where that argument is > parsed.
We need to check if hardware supports Rx scatter. To do this, we need to get Rx capability. Hence, this is a better place to perform this check. > > Btw, no need to enable scattered Rx if the packets fits into buffer, so above > check can be done slightly different: > > if (max_rx_pkt_len > buffer_size) > if (OFFLOAD_SCATTER supported) > enable OFFLOAD_SCATTER > else > fail Agreed. I will do this in next version of the patch. > > > > + } > > + > > if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) > > local_port_conf.txmode.offloads |= > > DEV_TX_OFFLOAD_MBUF_FAST_FREE; > >