From: "Hu, Jiayu" <jiayu.hu@intel.com>
To: "yang_y_yi@163.com" <yang_y_yi@163.com>, "dev@dpdk.org" <dev@dpdk.org>
Cc: "thomas@monjalon.net" <thomas@monjalon.net>,
"yangyi01@inspur.com" <yangyi01@inspur.com>,
"Yigit, Ferruh" <ferruh.yigit@intel.com>
Subject: Re: [dpdk-dev] [PATCH v2] gso: fix pyld_unit_size issue for udp gso
Date: Thu, 17 Sep 2020 02:16:05 +0000 [thread overview]
Message-ID: <b04cd31f50bc4e23a8fc4880130515ca@intel.com> (raw)
In-Reply-To: <20200917021249.191088-1-yang_y_yi@163.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
> -----Original Message-----
> From: yang_y_yi@163.com <yang_y_yi@163.com>
> Sent: Thursday, September 17, 2020 10:13 AM
> To: dev@dpdk.org
> Cc: Hu, Jiayu <jiayu.hu@intel.com>; thomas@monjalon.net;
> yangyi01@inspur.com; yang_y_yi@163.com
> Subject: [PATCH v2] gso: fix pyld_unit_size issue for udp gso
>
> From: Yi Yang <yangyi01@inspur.com>
>
> Fragment offset of IPv4 header is measured in units of
> 8 bytes. Fragment offset of UDP fragments will be wrong
> after GSO if pyld_unit_size isn't multiple of 8. Say
> pyld_unit_size is 1500, fragment offset of the second
> UDP fragment will be 187 (i.e. 1500 / 8), which means 1496,
> and it will result in 4-byte data loss (1500 - 1496 = 4).
> So UDP GRO will reassemble out a wrong packet.
>
> Fixes: b166d4f30b66 ("gso: support UDP/IPv4 fragmentation")
>
> Signed-off-by: Yi Yang <yangyi01@inspur.com>
> ---
> lib/librte_gso/gso_udp4.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_gso/gso_udp4.c b/lib/librte_gso/gso_udp4.c
> index 21fea09..6fa68f2 100644
> --- a/lib/librte_gso/gso_udp4.c
> +++ b/lib/librte_gso/gso_udp4.c
> @@ -69,7 +69,10 @@
> return 1;
> }
>
> - pyld_unit_size = gso_size - hdr_offset;
> + /* pyld_unit_size must be a multiple of 8 because frag_off
> + * uses 8 bytes as unit.
> + */
> + pyld_unit_size = (gso_size - hdr_offset) & ~7U;
>
> /* Segment the payload */
> ret = gso_do_segment(pkt, hdr_offset, pyld_unit_size, direct_pool,
> --
> 1.8.3.1
next prev parent reply other threads:[~2020-09-17 2:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-17 2:12 [dpdk-dev] [PATCH v2] gso: fix pyld_unit_size issue for udp gso yang_y_yi
2020-09-17 2:16 ` Hu, Jiayu [this message]
2020-09-17 15:01 ` Ferruh Yigit
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=b04cd31f50bc4e23a8fc4880130515ca@intel.com \
--to=jiayu.hu@intel.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=thomas@monjalon.net \
--cc=yang_y_yi@163.com \
--cc=yangyi01@inspur.com \
/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.