> -----Original Message-----
> From: Ananyev, Konstantin <konstantin.anan...@intel.com>
> Sent: Friday, November 12, 2021 3:11 PM
> To: Rohit Raj <rohit....@nxp.com>; dev@dpdk.org; Yigit, Ferruh
> <ferruh.yi...@intel.com>
> Cc: Nipun Gupta <nipun.gu...@nxp.com>; Sachin Saxena
> <sachin.sax...@nxp.com>; Vanshika Shukla <vanshika.shu...@nxp.com>
> Subject: [EXT] RE: [PATCH v2] examples/l3fwd: fix jumbo packet drop issue
> 
> Caution: EXT Email
> 
> > 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 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>
> > ---
> >
> > 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.
> > +              */
> 
> 
> From the code below, it looks like you always enable scatter if HW supports 
> it.
> Without paying attention to max_pkt_len provided by user.

You are right. I will fix this check in next updated version of patch.
> 
> > +             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;
> > --
> > 2.17.1

Reply via email to