[EXT] RE: [PATCH v2] examples/l3fwd: fix jumbo packet drop issue

Rohit Raj rohit.raj at nxp.com
Tue Nov 16 07:08:16 CET 2021


> -----Original Message-----
> From: Ananyev, Konstantin <konstantin.ananyev at intel.com>
> Sent: Friday, November 12, 2021 3:11 PM
> To: Rohit Raj <rohit.raj at nxp.com>; dev at dpdk.org; Yigit, Ferruh
> <ferruh.yigit at intel.com>
> Cc: Nipun Gupta <nipun.gupta at nxp.com>; Sachin Saxena
> <sachin.saxena at nxp.com>; Vanshika Shukla <vanshika.shukla at nxp.com>
> Subject: [EXT] RE: [PATCH v2] examples/l3fwd: fix jumbo packet drop issue
> 
> Caution: EXT Email
> 
> > From: Rohit Raj <rohit.raj at 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.raj at nxp.com>
> > Signed-off-by: Sachin Saxena <sachin.saxena at nxp.com>
> > Signed-off-by: Vanshika Shukla <vanshika.shukla at 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



More information about the dev mailing list