[dpdk-stable] 答复: patch 'gso: fix payload unit size for UDP' has been queued to stable release 19.11.6

Kevin Traynor ktraynor at redhat.com
Thu Oct 29 12:29:24 CET 2020


On 29/10/2020 11:10, Luca Boccassi wrote:
> 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.
>>

OVS normally uses the the latest DPDK LTS, so it should be moving to
20.11 in the next couple of months. There is an OVS branch called
'dpdk-latest' for developing against the DPDK main branch, so you should
be able to test and send patches for it in preparation of OVS using 20.11.

>> 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