[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