All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Hu, Jiayu" <jiayu.hu@intel.com>
To: kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
	"olivier.matz@6wind.com" <olivier.matz@6wind.com>,
	"kraghav@vmware.com" <kraghav@vmware.com>,
	"Thomas Monjalon" <thomas@monjalon.net>
Subject: RE: UDP-GRO not working
Date: Thu, 9 Jun 2022 15:24:24 +0000	[thread overview]
Message-ID: <90e9292b309949ddbc23b3281673ef6d@intel.com> (raw)
In-Reply-To: <13031173.dW097sEU6C@thomas>

Hi Param,

> -----Original Message-----
> From: Thomas Monjalon <thomas@monjalon.net>
> Sent: Thursday, June 9, 2022 4:11 PM
> To: Hu, Jiayu <jiayu.hu@intel.com>
> Cc: dev@dpdk.org; olivier.matz@6wind.com; kraghav@vmware.com;
> kumaraparameshwaran rathinavel <kumaraparamesh92@gmail.com>
> Subject: Re: UDP-GRO not working
> 
> Jiayu, please could you comment the explanation below?
> 
> 
> 10/03/2022 13:52, kumaraparameshwaran rathinavel:
> > Hi ,
> >
> > I tried using the UDP GRO feature in DPDK recently and it did not see
> > working. I understand the GRO for UDP is applicable only for
> > fragmented packets, there is the following check in gro_udp4.c
> > /*
> > * Don't process non-fragment packet.
> > */
> > if (!is_ipv4_fragment(ipv4_hdr))
> > return -1;
> >
> >
> > There looks to be some conflict in the definition of RTE_PTYPE in
> > rte_mbuf_ptype.h and the usage of this in GRO layer, rte_gro.c
> >
> > The below are the definitions,
> >
> > #define RTE_PTYPE_L4_TCP                    0x00000100
> > #define RTE_PTYPE_L4_UDP                    0x00000200
> > #define RTE_PTYPE_L4_FRAG                   0x00000300
> >
> > Below is the check in GRO layer,
> >
> > #define IS_IPV4_TCP_PKT(ptype) (RTE_ETH_IS_IPV4_HDR(ptype) && \
> >         ((ptype & RTE_PTYPE_L4_TCP) == RTE_PTYPE_L4_TCP) && \
> >         (RTE_ETH_IS_TUNNEL_PKT(ptype) == 0))
> >
> > #define IS_IPV4_UDP_PKT(ptype) (RTE_ETH_IS_IPV4_HDR(ptype) && \
> >         ((ptype & RTE_PTYPE_L4_UDP) == RTE_PTYPE_L4_UDP) && \
> >         (RTE_ETH_IS_TUNNEL_PKT(ptype) == 0))
> >
> > So, for a fragmented UDP packet both RTE_PTYPE_L4_TCP &
> > RTE_PTYPE_L4_UDP would be set and the GRO layer would be unable to
> > interpret the packet type correctly.

Yes, it's an issue. IS_IPV4_TCP_PKT will recognize a UDP/IPv4 fragment as a TCP/IPv4
packet, and the packet will not go into any UDP based gro function. Thanks for pointing
that out.

Thanks,
Jiayu

> >
> > I am using rte_net_get_ptype API before the packet is being sent to
> > the GRO subsystem as the DPDK PMD for the NIC I am using would not set
> > the packet types as required by the GRO subsystem.
> >
> > I would like to contribute a patch for this bug if this indeed is an
> > issue, I was thinking if the GRO subsystem is L4 fragmented then in
> > the GRO layer invoked the appropriate handler, either
> > gro_tcp4_reassemble or gro_ud4_reassemble.
> >
> > Please let me know if I am missing something here.
> >
> > Thanks,
> > Param.
> >
> 
> 
> 
> 


  reply	other threads:[~2022-06-09 15:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-10 12:52 UDP-GRO not working kumaraparameshwaran rathinavel
2022-06-09  8:11 ` Thomas Monjalon
2022-06-09 15:24   ` Hu, Jiayu [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-03-10 12:49 Kumara Parameshwaran
2022-03-11 17:15 ` Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=90e9292b309949ddbc23b3281673ef6d@intel.com \
    --to=jiayu.hu@intel.com \
    --cc=dev@dpdk.org \
    --cc=kraghav@vmware.com \
    --cc=kumaraparamesh92@gmail.com \
    --cc=olivier.matz@6wind.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.