From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 61EBC424D6; Wed, 12 Jun 2024 02:48:24 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4CC9A40B8D; Wed, 12 Jun 2024 02:48:24 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2078.outbound.protection.outlook.com [40.107.236.78]) by mails.dpdk.org (Postfix) with ESMTP id D8AA840B8D for ; Wed, 12 Jun 2024 02:48:22 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gbB0G+ebudTcWfu03ea7dhOFhjpir5zjhwoUXYnEm1MORYKvYiC8hth8auREp34lSuWZsDiVIYq75FlSs8rqprBpJKdCnxdJ0yy0wDbkruMYw4qW6kGCkaF8Y+frRuigRaNrxhBV0p4kMVj/2/m9CbgMRzf0bup+PMuNiyhutxeuTFUkcBlIp/tjvLH/MG7nsL4B04EYRma4vzc1M6iMYj32dvG2quwRU65f/g7kyUf43yIz3TQlVYcfYIVRvnjbbap0qUWKeq6l3kwF6/+lXvEUbKR7eahIhdY+rCTwdQhUtd8wqia4T5XHwrTQ5GtlLADu5bGyNghVw/frQRNQeg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Z3ChylhJo3lITKX7aUkNqLqXSXeidN0Yn97KvF01okc=; b=Rzz0R3BHso1Hayq/6bIHQAetcASRnCP6khYIYpBefp83YcxniH6xUdWusbTCzlds7aQSAYfJI54b8D42nI5NlE+9WsZlUhcb4LNVV36B5RpWUPlzswjlwAI6bKEABlQGjgchTFcsBc6MC4ZW3ho14ooqDqkF9dnHS5voZifsBn/0L1Ydp145KAc/D8hQ6B2kwgWdLMFgxhxn+X5hJkn1tiu7O0BSDGcQjO/adqn6xH6GTkowji8w2Ip6fH6JXjKjSf/IHV54aVySSFaZ69wd06mwdueNe+/clBLGS7opAczF0eYMpXmmdE6H61uxt9X18C4y3NtOPaYd3tKKjBm+EA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amd.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Z3ChylhJo3lITKX7aUkNqLqXSXeidN0Yn97KvF01okc=; b=eCU/Tf/1cqmJ0XZF0KdLpoMHaH8Hdi5xRZlqiojwwctESOe2JaP8enAMP3Foqpje7tTK75wcfrpl/9+5c6uuLZzcTuf4aKhDkNrA3btYApZCwCHZm72ubfKnnlSakJaYraU+LgNHgCfSi1VisJVDVPJr9ZYVZ5Zp0zqRJAzm15I= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=amd.com; Received: from CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) by SN7PR12MB7954.namprd12.prod.outlook.com (2603:10b6:806:344::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.36; Wed, 12 Jun 2024 00:48:20 +0000 Received: from CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd]) by CH2PR12MB4294.namprd12.prod.outlook.com ([fe80::ebfb:2f9f:f9ca:82cd%4]) with mapi id 15.20.7633.036; Wed, 12 Jun 2024 00:48:20 +0000 Message-ID: Date: Wed, 12 Jun 2024 01:48:14 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [RFC 2/4] gro: remove use of VLAs To: Konstantin Ananyev , dev@dpdk.org Cc: hujiayu.hu@foxmail.com, roretzla@linux.microsoft.com, bruce.richardson@intel.com, anatoly.burakov@intel.com, vladimir.medvedkin@intel.com, Konstantin Ananyev , kumaraparamesh92@gmail.com References: <20240523162604.2600-1-konstantin.v.ananyev@yandex.ru> <20240523162604.2600-3-konstantin.v.ananyev@yandex.ru> Content-Language: en-US From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@amd.com; keydata= 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 8Zk= In-Reply-To: <20240523162604.2600-3-konstantin.v.ananyev@yandex.ru> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: LO4P123CA0568.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:276::18) To CH2PR12MB4294.namprd12.prod.outlook.com (2603:10b6:610:a9::11) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH2PR12MB4294:EE_|SN7PR12MB7954:EE_ X-MS-Office365-Filtering-Correlation-Id: 0cbb0d62-c3b8-403e-8c0b-08dc8a795adb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230032|376006|366008|1800799016; X-Microsoft-Antispam-Message-Info: =?utf-8?B?RzVCaFlNRG8wODlZNXVwUGpqMWlWQmo2ZWt0UE1pV0R5UFFoL2tieW9uTXFY?= =?utf-8?B?NE5tbjhISXRwbmhwMFRDcXRCeEc2cy9CaFpKNTFydzl6Y0M2QXZkeEkvTUNN?= =?utf-8?B?QjJiYXBZWGl2Ni91UE1wbHU2V09LMzlIRThRamE4bEZDUnJqQTlnenRiUmMv?= =?utf-8?B?Ti9abzRSd1ppTDdTZUR2eUZ5emJFVDRsUUFMT3EyQlVaMzJtdEhtMUc0T3d6?= =?utf-8?B?ZStySTc3czdsRHZ0b0FEYXkxVE1KOGc0U2dSenRaaDBrazJZQXNXb25WWTdz?= =?utf-8?B?ZElId1cwZkJLVnhJTmZVSmYxSzZrTWV0UWFmSXFiUWYxdWlZQjFvRDI1VDVZ?= =?utf-8?B?Q3l4UjM0clcyT0xPbFhtdUpIRE9oSFhqUmxnZ2gxbkhLRDIvbnJVY2xndkdu?= =?utf-8?B?N1h5TncvRmpIbmdrMERZcytXWUt6SmVqVTlqc0p6L0JiM0hNeFZhVW5zdm55?= =?utf-8?B?QzdZL1pKM01UUGFoOFVnZEgweCtRVEVpb1BLMEFJUFBhU0tTNWlndWtYOTFu?= =?utf-8?B?S2liRzU1bndZV01KWm9zQWJSWG5kSUJnSHM3c1F5N0NQdURRcTJKbzUrenov?= =?utf-8?B?WTRsRFJ4SzVnZVdPTll3elhyTWdxVVBkRDdjbFJseUMvL2tuTHJxV0hEc2F5?= =?utf-8?B?SFJpekR6RUNHS1dNRUxQYVJJakp4dERFb3oyWG85eU1KL0dmeUdMbHhxRUts?= =?utf-8?B?cGlSVVpXNXFvT0RyRWF6RUhHU3NSeURZSzF0QW9MbGhtVVJqRWRoMkQ3QXl0?= =?utf-8?B?dzZ4NjNBa3JEclJTQzc3NHNISWRMQjJ0QjFBWndSWjdvdVcybWtxZzZOY1Mx?= =?utf-8?B?N2RDbXJid3VmcHhtajArcmdUUXBnK2ViQlI5b0VWYlhuTnEveWZTcTdabEd1?= =?utf-8?B?U29pQkFrVGpQSHRPdGlNbS9rZXZHR3Z0VjZKL1BsalppbFYydFBZR25MZnFV?= =?utf-8?B?NmNBK0Mybkw1MlN4RHJZZjZJL2c3M3Y5Yk9OcW1SUFRpaGFFaTlpNHFBazZX?= =?utf-8?B?N1RjYm9jOGo0VWdnSDB3U3pqMURuSzBKYUxBcW5kTG95Unk0RnZZbEJhemhK?= =?utf-8?B?K3YyaU9iZzhtUVUraXNqSERPTDNuZVJPRVRzNVd5aXcrc0lLMTAyRmU4MGg4?= =?utf-8?B?YUZpUnZSZjNrQUlObUViRHVKV0tCRXRGNElQQndXU3dvcnNiVTZQbmlWRVUx?= =?utf-8?B?RitXRzJWbHgrOHB0RnQzd1VOMHNyclFVVEZkRUhNaUhXb3kwOE5naExZM25p?= =?utf-8?B?czVPSDlON3NSRWRZdHZnQlJhUHRKQlhNZmVQWnc1cGxzUXJnbUFlQ1BzdmNC?= =?utf-8?B?Njlrd3p1bWNLWmYxM2xacTU3Wkx2Nk1FTDlTNDFSUnd6QkI0ZzZHZkM4Rk5h?= =?utf-8?B?eGozc3JoeVAvQWlvL2pZRW0veG1WNHZPdXNWSHRWN0RHZWExZndZUTBweTg0?= =?utf-8?B?ZVhXaGkzNkY5bk1PQkg2YVZjNkJISHJLKyt1Ykd0SjFsa3MrTlkrNlp5N2t5?= =?utf-8?B?YlBMR0Yvci90S1MvU2hVWVhHTXc0VmE0QUNCSUo3d3pEaFVJSUhtcjBITkFW?= =?utf-8?B?QTkrUXkxQ0lEMlZWU0FYRVZUQUtpRGVCL2wxbXB0YWw3cjJmYTZSd3Z0OUVu?= =?utf-8?B?ajlja21TTHRRWC9zcUEyOFRJQzlMSE5nNzNiTGNDbzYwRGhRSFEwbGNzK2Vn?= =?utf-8?B?V1hpOEIwaVplRnowNmZCM2JnbDhZVURxNVh2ZDk4Mk9HRmtVODB1eloyczNP?= =?utf-8?Q?IjYqkogcxpLICVRKfE=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CH2PR12MB4294.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230032)(376006)(366008)(1800799016); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VFNKV3N0VU5wR3Zvc0o0NmpSeWJOSWg2djluMU5PclpnUU1JV2tNVXMyemlB?= =?utf-8?B?YW9BbDZUcEdOTlJuN3laQ1NiVEg3TWE2REdFRzA4ZUpiOHl5MW1NSGtCYlMx?= =?utf-8?B?UTdYbEhEMEsrNXp1c0taN0VsTzJySE5FNG15TFAvMm8zajh6VnJyVWx6Rjcx?= =?utf-8?B?RDBVd2EyRDJiZ3M3OEgzUjZpVThMM2kwVUttL0QxSzdGa2xjQ0l2QUZIa2FB?= =?utf-8?B?dncrTmthOEk4b3k2ZFBJdzFiS0NQZFZBNnZPWmIyNzZsRUl0WjBPOE1INjA2?= =?utf-8?B?dmlFYWk1dVllcXNuQ3pnYllPeUhiUzE1MDB4S2M3bUREc3BMMTkxdklhWVkw?= =?utf-8?B?d0xtd1JsLzNxN3pXa0VGVkhvclVYVWVseFQxSHBhZklxRFY0ekY3cHBYeDJ4?= =?utf-8?B?d2YvdVNyeUlySkpoODM0dXJXR2VKMDF4bER2SGxnRVRCN0g4dDlaeFN4VlJO?= =?utf-8?B?TlVtWC9GZ3MrSkgzQlJ2THNGaEZ0Sm5ROXpPS1pRQzZOYlM5MXoxTEFVRVhT?= =?utf-8?B?Ty9RdXcrbVRhc3dhK1JGVkNLNWRUQkVyWHpwVXQ0cWZuRlFGQzlXam1EUVds?= =?utf-8?B?dGdIcXJmZW5oY0drTXN4bUpSUnZPaGdLNDlMYVZZT2pDckJydUwyUm5ET1k5?= =?utf-8?B?d29nOXVtcGgzWUZ3WUtGVmFsL3VYOXVpeEpreXlSRHR3MVhCc2h5eVVmRy9V?= =?utf-8?B?ZnhvWWhraDkrWlVUbEh0KzJYb1FITngzTTBQdTJONzJkTDFMQklhMU0xSWN4?= =?utf-8?B?bWZMWnZaaHFrTHE3WlhmbUhTYlpjdmx6MGwvUW9qVDhISThodmt6TkpFSnRC?= =?utf-8?B?aHYxQnovY1JOWEJ6QjVGZzJIK09CV2FUdGdDOHRoMkZJZmxoRWdJMUhNSlQx?= =?utf-8?B?RktkbzJ4VzFPUjNuekZqTnFubWpnaDVLT3BCRk8yekR4VUpscXhMZkYvMmVs?= =?utf-8?B?TGF0WXdXMEtYY1VXR3N6cnhGNXJEcXRBTEdjLzEyT2tLTFRKb1FMcVF5cktP?= =?utf-8?B?VlVHallNVFFvS0ZPOVJaT0llZ1lKVEVSL2NBdmoyMVplR0RpdVkzd2k5dGNI?= =?utf-8?B?OUtxOWtKbC9wYWtYNmRGcUQ0cVBmVldCVVVsUEZFVFptYzFla3FWb3ViZ3FN?= =?utf-8?B?cVNZUm81NHZibFNHTzhuOU1FdlNWVE5FTjNTUkFobmpUQi80ZVhYUXZmaDBB?= =?utf-8?B?ai8wQS84eVZZOHplS1czdHlkM0dVcWhXQXZBRXRPMmsyaWpqb2hSZ003TnRa?= =?utf-8?B?WDdaQ3VXYTM4N08wQ3ExdmwvYkhadWt6MFIxNXpzMEgxOW1jcUgzYkJ5V3JJ?= =?utf-8?B?WisvYTJpR1JMMzFaMWpZNDZyRmwxZWlPbHo1TTE4RjlBVk9FdWF4QnVtQWVu?= =?utf-8?B?VXdxUHR0VTRhUnl4TG9nelJYOHR6eW5iWWlyT1Y4TnlNOXdyNGVUT1JmYml2?= =?utf-8?B?ZDhIYXU4RldHUlE4TEg3K1k2Wm9sdzN2TFo0Zk9qbmUvSUp2WTJvL25IMFF5?= =?utf-8?B?dGRVSWtIWWVwdGVTWjJSenVzSElwc0FHM1dZK2JONGlBVmNpaVlOazBDOGFY?= =?utf-8?B?RmZycEhZeGgxRDFXYXRQblIyUGUrRWpTbFN2MllpNXNxTVpFQTYxOXY1RVUx?= =?utf-8?B?WWRmb2MwVXYyaXRZYktXWjZvODg0Y1RGYkFXelJnaGd3K0tJckorNUZZWkt2?= =?utf-8?B?NEEyQnVUZ1hwdGppMllabmlJVDJSbGswV3hzeEpZQUhBUGZKQ2t3N1JSbFVP?= =?utf-8?B?RG03cVRmN2FuSHUxc0RURDFSeHMvMVptcy9heG0rTHpVNTVIWkhwUGlxOU5z?= =?utf-8?B?NlNDbTIvSzNNOXNWVGQ2QUFjTHFFZlpHYkl0MEhRa29YWUZGWllaRVlyc3Vs?= =?utf-8?B?dHRpYTZBWjRPaFVnTHVMdzY1UDYvWE9EUThpR0tUN3VPQ1NJRnJzSVgrVjBP?= =?utf-8?B?MHkrY3BFL2lia3pyTktOeDZjdGZpR29xdElHTmNKaXgwayttT1duT3dnWDNK?= =?utf-8?B?N05vN21jbXF2UVNoT2tGR2tPK3p5c3JORG8rbUNZY1JxM3Blb2E5dFdmVk96?= =?utf-8?B?T3RVOFZQUkxRR09keXpWN3dLQ1A0Qk5oL0YxN1kwTzNuUjVuSEZPa2ZJRzlR?= =?utf-8?Q?+cymBuCk3qojaWcIbF7LYvLlz?= X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0cbb0d62-c3b8-403e-8c0b-08dc8a795adb X-MS-Exchange-CrossTenant-AuthSource: CH2PR12MB4294.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2024 00:48:20.0952 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: CxFBp2sbmpiIC9Q/iDJxOpp55sZtI3d8j5ej/FFekkHjWZhTQVsHOLsyKuqSj6s3 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN7PR12MB7954 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 5/23/2024 5:26 PM, Konstantin Ananyev wrote: > From: Konstantin Ananyev > > ../lib/gro/rte_gro.c:182:34: warning: variable length array used [-Wvla] > ../lib/gro/rte_gro.c:363:34: warning: variable length array used [-Wvla] > > In both cases the pattern is the same: we use unprocess_pkts[nb_pkts] to > collect un-used by GRO packets, and then copy them to the start of > input/output pkts[] array. > In both cases, we can safely copy pkts[i] into already > processed entry at the same array, i.e. into pkts[unprocess_num]. > Such change eliminates need of temporary VLA: unprocess_pkts[nb_pkts]. > > Signed-off-by: Konstantin Ananyev > --- > lib/gro/rte_gro.c | 40 ++++++++++++++-------------------------- > 1 file changed, 14 insertions(+), 26 deletions(-) > > diff --git a/lib/gro/rte_gro.c b/lib/gro/rte_gro.c > index db86117609..6d5aadf32a 100644 > --- a/lib/gro/rte_gro.c > +++ b/lib/gro/rte_gro.c > @@ -179,7 +179,6 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > struct gro_vxlan_udp4_item vxlan_udp_items[RTE_GRO_MAX_BURST_ITEM_NUM] > = {{{0}} }; > > - struct rte_mbuf *unprocess_pkts[nb_pkts]; > uint32_t item_num; > int32_t ret; > uint16_t i, unprocess_num = 0, nb_after_gro = nb_pkts; > @@ -275,7 +274,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > /* Merge successfully */ > nb_after_gro--; > else if (ret < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_VXLAN_UDP4_PKT(pkts[i]->packet_type) && > do_vxlan_udp_gro) { > ret = gro_vxlan_udp4_reassemble(pkts[i], > @@ -284,7 +283,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > /* Merge successfully */ > nb_after_gro--; > else if (ret < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_TCP_PKT(pkts[i]->packet_type) && > do_tcp4_gro) { > ret = gro_tcp4_reassemble(pkts[i], &tcp_tbl, 0); > @@ -292,7 +291,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > /* merge successfully */ > nb_after_gro--; > else if (ret < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_UDP_PKT(pkts[i]->packet_type) && > do_udp4_gro) { > ret = gro_udp4_reassemble(pkts[i], &udp_tbl, 0); > @@ -300,7 +299,7 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > /* merge successfully */ > nb_after_gro--; > else if (ret < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV6_TCP_PKT(pkts[i]->packet_type) && > do_tcp6_gro) { > ret = gro_tcp6_reassemble(pkts[i], &tcp6_tbl, 0); > @@ -308,21 +307,15 @@ rte_gro_reassemble_burst(struct rte_mbuf **pkts, > /* merge successfully */ > nb_after_gro--; > else if (ret < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } > > if ((nb_after_gro < nb_pkts) > || (unprocess_num < nb_pkts)) { > - i = 0; > - /* Copy unprocessed packets */ > - if (unprocess_num > 0) { > - memcpy(&pkts[i], unprocess_pkts, > - sizeof(struct rte_mbuf *) * > - unprocess_num); > - i = unprocess_num; > - } > + > + i = unprocess_num; > > /* Flush all packets from the tables */ > if (do_vxlan_tcp_gro) { > ack to re-use 'pkts[]' buffer for unprocessed packets, that should work. But as a more general GRO question, above 'rte_gro_reassemble_burst()' functions seems returns 'nb_after_gro' and as far as I can see that amount of mbufs sits in the 'pkts[]'. When packets flushed from tables, flushed packets are replaced to 'pkts[]' but still 'nb_after_gro' returned, there is no way for application to know that more than 'nb_after_gro' mbufs available in the 'pkts[]'. Shouldn't return value increased per flushed packet? Ahh, I can see it was the case before, but it is updated (perhaps broken) in commit: 74080d7dcf31 ("gro: support IPv6 for TCP") I wonder when GRO last tested! @Jiayu, did you have a chance to test GRO recently? > @@ -360,7 +353,6 @@ rte_gro_reassemble(struct rte_mbuf **pkts, > uint16_t nb_pkts, > void *ctx) > { > - struct rte_mbuf *unprocess_pkts[nb_pkts]; > struct gro_ctx *gro_ctx = ctx; > void *tcp_tbl, *udp_tbl, *vxlan_tcp_tbl, *vxlan_udp_tbl, *tcp6_tbl; > uint64_t current_time; > @@ -396,33 +388,29 @@ rte_gro_reassemble(struct rte_mbuf **pkts, > do_vxlan_tcp_gro) { > if (gro_vxlan_tcp4_reassemble(pkts[i], vxlan_tcp_tbl, > current_time) < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_VXLAN_UDP4_PKT(pkts[i]->packet_type) && > do_vxlan_udp_gro) { > if (gro_vxlan_udp4_reassemble(pkts[i], vxlan_udp_tbl, > current_time) < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_TCP_PKT(pkts[i]->packet_type) && > do_tcp4_gro) { > if (gro_tcp4_reassemble(pkts[i], tcp_tbl, > current_time) < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV4_UDP_PKT(pkts[i]->packet_type) && > do_udp4_gro) { > if (gro_udp4_reassemble(pkts[i], udp_tbl, > current_time) < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else if (IS_IPV6_TCP_PKT(pkts[i]->packet_type) && > do_tcp6_gro) { > if (gro_tcp6_reassemble(pkts[i], tcp6_tbl, > current_time) < 0) > - unprocess_pkts[unprocess_num++] = pkts[i]; > + pkts[unprocess_num++] = pkts[i]; > } else > - unprocess_pkts[unprocess_num++] = pkts[i]; > - } > - if (unprocess_num > 0) { > - memcpy(pkts, unprocess_pkts, sizeof(struct rte_mbuf *) * > - unprocess_num); > + pkts[unprocess_num++] = pkts[i]; > ack