[dpdk-stable] 答复: [gmail.com代发]Re: 答复: patch 'gso: fix payload unit size for UDP' has been queued to stable release 19.11.6

Yi Yang (杨燚)-云服务集团 yangyi01 at inspur.com
Fri Oct 30 01:32:10 CET 2020


Strictly speaking, they aren't new features, just some feature enhancements, API and ABI aren't changed, so existing applications using them won't realize there is any change, but new applications can use these new enhancements.

Kevin said OVS will switch to 20.11 in the coming several months, that is also an option if we can pull them into 19.11 stable branch.

-----邮件原件-----
发件人: Luca Boccassi [mailto:bluca at debian.org] 
发送时间: 2020年10月29日 19:10
收件人: Yi Yang (杨燚)-云服务集团 <yangyi01 at inspur.com>
抄送: jiayu.hu at intel.com; stable at dpdk.org
主题: [gmail.com代发]Re: 答复: patch 'gso: fix payload unit size for UDP' has been queued to stable release 19.11.6

Hi,

Sorry, but it seems to me adding entire new features in the shared libraries is a bit over the grey line that separates what we deem an acceptable change for a stable release.

On Thu, 2020-10-29 at 04:45 +0000, Yi Yang (杨燚)-云服务集团 wrote:
> Thanks for picking up it, nice to have it in stable release. By the way, would you like to cherry-pick GRO patches for stable release? OVS is using 19.11 stable branch, we had better have GRO support there because I'm enabling VXLAN TSO support in OVS DPDK, GRO and GSO are necessary for it.
> 
> commit e2d81106367321cf49d6b4e5d087e1a7c2e808ba
> Author: Yi Yang <yangyi01 at inspur.com>
> Date:   Thu Sep 24 16:57:39 2020 +0800
> 
>     gro: support VXLAN UDP/IPv4
> 
>     VXLAN UDP/IPv4 GRO can help improve VM-to-VM UDP
>     performance when UFO or GSO is enabled in VM, GRO
>     must be supported if UFO or GSO is enabled,
>     otherwise, performance can't get big improvement
>     if only GSO is there.
> 
>     With this enabled in DPDK, OVS DPDK can leverage it
>     to improve VM-to-VM UDP performance, it will reassemble
>     VXLAN UDP/IPv4 fragments immediate after they are
>     received from a physical NIC. It is very helpful in
>     OVS DPDK VXLAN use case.
> 
>     Signed-off-by: Yi Yang <yangyi01 at inspur.com>
>     Acked-by: Jiayu Hu <jiayu.hu at intel.com>
> 
> 
> commit 1ca5e67408528b9870bb40f400c5f934aa91dcce
> Author: Yi Yang <yangyi01 at inspur.com>
> Date:   Thu Sep 24 16:57:38 2020 +0800
> 
>     gro: support UDP/IPv4
> 
>     UDP/IPv4 GRO can help improve VM-to-VM UDP performance
>     when UFO or GSO is enabled in VM, GRO must be supported
>     if UFO or GSO is enabled, otherwise, performance can't
>     get big improvement if only GSO is there.
> 
>     With this enabled in DPDK, OVS DPDK can leverage it
>     to improve VM-to-VM UDP performance, it will reassemble
>     UDP fragments immediate after they are received from
>     a physical NIC. It is very helpful in OVS DPDK VLAN use
>     case.
> 
>     Signed-off-by: Yi Yang <yangyi01 at inspur.com>
>     Acked-by: Jiayu Hu <jiayu.hu at intel.com>
> 
> -----邮件原件-----
> 发件人: luca.boccassi at gmail.com [mailto:luca.boccassi at gmail.com]
> 发送时间: 2020年10月28日 18:43
> 收件人: Yi Yang (杨燚)-云服务集团 <yangyi01 at inspur.com>
> 抄送: Jiayu Hu <jiayu.hu at intel.com>; dpdk stable <stable at dpdk.org>
> 主题: patch 'gso: fix payload unit size for UDP' has been queued to 
> stable release 19.11.6
> 
> Hi,
> 
> FYI, your patch has been queued to stable release 19.11.6
> 
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 10/30/20. So please shout if anyone has objections.
> 
> Also note that after the patch there's a diff of the upstream commit 
> vs the patch applied to the branch. This will indicate if there was 
> any rebasing needed to apply to the stable branch. If there were code 
> changes for rebasing
> (ie: not only metadata diffs), please double check that the rebase was correctly done.
> 
> Thanks.
> 
> Luca Boccassi
> 
> ---
> From 2b26f143b3014d23a31aa59deda659b172edcc32 Mon Sep 17 00:00:00 2001
> From: Yi Yang <yangyi01 at inspur.com>
> Date: Thu, 17 Sep 2020 10:12:49 +0800
> Subject: [PATCH] gso: fix payload unit size for UDP
> 
> [ upstream commit b9b75d9b5c9dbc71ee12f77e9abe089492708aae ]
> 
> 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 at inspur.com>
> Acked-by: Jiayu Hu <jiayu.hu at intel.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 21fea09273..6fa68f243a 100644
> --- a/lib/librte_gso/gso_udp4.c
> +++ b/lib/librte_gso/gso_udp4.c
> @@ -69,7 +69,10 @@ gso_udp4_segment(struct rte_mbuf *pkt,
>  		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,
> --
> 2.20.1
> 
> ---
>   Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- -	2020-10-28 10:35:13.228089104 +0000
> +++ 0046-gso-fix-payload-unit-size-for-UDP.patch	2020-10-28 10:35:11.508830082 +0000
> @@ -1,8 +1,10 @@
> -From b9b75d9b5c9dbc71ee12f77e9abe089492708aae Mon Sep 17 00:00:00 
> 2001
> +From 2b26f143b3014d23a31aa59deda659b172edcc32 Mon Sep 17 00:00:00 
> +2001
>  From: Yi Yang <yangyi01 at inspur.com>
>  Date: Thu, 17 Sep 2020 10:12:49 +0800
>  Subject: [PATCH] gso: fix payload unit size for UDP
>  
> +[ upstream commit b9b75d9b5c9dbc71ee12f77e9abe089492708aae ]
> +
>  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 @@ -12,7 +14,6 @@  So UDP GRO will reassemble out a wrong packet.
>  
>  Fixes: b166d4f30b66 ("gso: support UDP/IPv4 fragmentation")
> -Cc: stable at dpdk.org
>  
>  Signed-off-by: Yi Yang <yangyi01 at inspur.com>
>  Acked-by: Jiayu Hu <jiayu.hu at intel.com>



More information about the stable mailing list