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 B3FC9A034F for ; Wed, 10 Nov 2021 07:51:19 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AC8BA40142; Wed, 10 Nov 2021 07:51:19 +0100 (CET) Received: from NAM04-DM6-obe.outbound.protection.outlook.com (mail-dm6nam08on2042.outbound.protection.outlook.com [40.107.102.42]) by mails.dpdk.org (Postfix) with ESMTP id 38F5D40142 for ; Wed, 10 Nov 2021 07:51:18 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PMfPaWv865m/24Tp4RosoosdL0dQIBnZ1egcWHKrTznBHNEFMAy1AHl7FQIektQWOwyG1etf6MCwY70VsKhUNvydcIox03f+kJQDEJLaqBuVjlzw022UJeipiqXks8TCZk/kSk5V3xdt+4p8hBXXxoR5OYuVzzHrv1KCQAuS4dTUqRol2qjSLq2+C2WUH1e2WI++AgN9RSKdRDJYWCb+7EMQEtu7tTWsJho6MM3MVjCbIlf2XMVpVoJ7TgVY10EhYFSXKcLc4qb8zp2PYSbLyTgOS7rwqU57xDIRHf5dlq4FiUeXuqjYpWfmIK+ux1WI6i1pvMCXZ+9MX9SAPQ9mwA== 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=uJNN9GJiVaRLZEOUoQJV5p08EjVNKqrscbIoZJhOLiM=; b=hvPcKkRcLhA/iITGHqc5Aq8GprMqgHsX2kcCUm/MO6UcqxGIPvQ5JYQREi4TAbV4qqEljsS+GInRPmP9Rj/e1egSlnC4IABCfIm+V7Gvr1e6oXk7SiS7D5Mk7M4ItmHuPqhdDYj/eB/+uOyzVpW2Q3332uYHIPYDDz2qU5k4E4Wmm5NlCe2xKxqNk57r14+3cZz6y/1Gca3lhtyLR6iV28QLhpLy1K3cikzsFQcV3eVHRIP5RIyR/0ZaG9mD6lXDpucYPmlDZNFktByxluPQIHbuHDmec5LlSYQ39zQ/5ATn5z3/k+v39V6ADmho5Cah4rPycC28yk7DDAngyyWUoA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=broadcom.com smtp.mailfrom=nvidia.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=uJNN9GJiVaRLZEOUoQJV5p08EjVNKqrscbIoZJhOLiM=; b=dPmi4zxEx9MsuDCK+edpIeGLI8XG4cSWX/yHPmmrDloYVXvQdK7bTWXH08DZ58svLM9b3m5sJreqTfgF9Ms6OsmNjWSTCW3f9eZD6fQSDDZDqNzgBLj6DDLNVDElKIsE6nbgDo4DB2rfSLY95xuHt68f+mFp86Q3ItEm0Mxr3UifjG7C0Qca4zaeD+smRgZZNNPFIkQM0M/zHT4Byk+m/EZfP3nSPTpbvEBBRE2hHdd1wn3VIjjdsJ4VNpicE1L5SIjZ4eouqYKT+oDzGTgLpT0XS5Yw8eblRZedCRhDy5KwdyjZprbJLM2s4yqpcFiNGQy5Ui5UNB05edZPyOhHbg== Received: from BN8PR04CA0053.namprd04.prod.outlook.com (2603:10b6:408:d4::27) by DM5PR12MB1803.namprd12.prod.outlook.com (2603:10b6:3:10d::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Wed, 10 Nov 2021 06:51:15 +0000 Received: from BN8NAM11FT037.eop-nam11.prod.protection.outlook.com (2603:10b6:408:d4:cafe::f6) by BN8PR04CA0053.outlook.office365.com (2603:10b6:408:d4::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.15 via Frontend Transport; Wed, 10 Nov 2021 06:51:14 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; broadcom.com; dkim=none (message not signed) header.d=none;broadcom.com; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by BN8NAM11FT037.mail.protection.outlook.com (10.13.177.182) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4690.15 via Frontend Transport; Wed, 10 Nov 2021 06:51:13 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Wed, 10 Nov 2021 06:51:08 +0000 From: Xueming Li To: Olivier Matz CC: Luca Boccassi , =?UTF-8?q?Morten=20Br=C3=B8rup?= , Ajit Khaparde , Konstantin Ananyev , Ali Alnubani , dpdk stable Date: Wed, 10 Nov 2021 14:30:53 +0800 Message-ID: <20211110063216.2744012-170-xuemingl@nvidia.com> X-Mailer: git-send-email 2.33.0 In-Reply-To: <20211110063216.2744012-1-xuemingl@nvidia.com> References: <20211110063216.2744012-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL101.nvidia.com (172.20.187.10) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 49eeb5cf-4e62-42c9-17c8-08d9a4167cb6 X-MS-TrafficTypeDiagnostic: DM5PR12MB1803: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:10000; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: nf0AvC0oGIXjo4wl/Oz1mnMag/CuK9VqPSW56Lyl32Lf0WDGD3nHo9GUPFjsTi3U6BJx441B2IuZdlgDzVHsPnbjBktpAX6ya7ftO7fiCu7T89Y272kufMX2bcni9GKGpIrUUxezNqkpu+j80W+kyHrYtkVGELT3yZuD4QveQkDLrooYBxoLO9PqavT+fw7z1J7+9DRQ9Qry/gKs1f/6LnPYs8VwZ8MiFt4Q+3OUlxy05ECH6ykibDlpZjm+hgDZt+mTgDkbj3k0ZNUJ4HZVxudMRBxthTNPRef586yWvuNCB2ygi4CGzzsW0x6RiFVZIv995eL4GGBlwGZwnEg74xlq7HlGf/+3JVinbYa3tPxD3GkqpM6551Z8WqwlrJcmqrJR6pijLF4YejaisKqAzG0s2NGxBbDCRK4LoyQ+wcmULLMeQum5DagZGdF5uyBjFiquCpjngwesLEFzo4+W+YnIa8W13e4Vjaj5HqvYXx67qnxuKMjUus5uWP0WOtWq6OSDJ5Eb0k7ClSQ5457eR4v/poZjo4BDYktsT0iBL8H3M/0k75QYvQGi95u+7GwnHMmh4vhzv04PUpoxM2/4UGXFvdseQRafSMjs40pqbeWOweQZmvANHLJguSP3uAgkPhEtyCVdhxFsnKQ4XBZe4/w1P0/zrjorXrN0sklpiMf2EonU3aoz9zy0vGQ9n6zI8g2QRRnipkkmuh20N9D/Yg+0VfQYmR414zKv9stUyaq0wjtK0di206uzTR0RmZ8DMGpoAXwgfnzs7Pw5SH1yDsZSBQVZjP0dWIPe+VS4Sj/nYLJri9+14CUerDNBqS8+ X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(5660300002)(7636003)(36906005)(66574015)(47076005)(54906003)(6916009)(316002)(356005)(86362001)(70206006)(966005)(2906002)(26005)(8676002)(36860700001)(53546011)(55016002)(82310400003)(6666004)(7696005)(508600001)(40140700001)(83380400001)(6286002)(16526019)(186003)(2616005)(1076003)(4326008)(8936002)(70586007)(426003)(36756003)(336012)(4001150100001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Nov 2021 06:51:13.6510 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 49eeb5cf-4e62-42c9-17c8-08d9a4167cb6 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT037.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR12MB1803 Subject: [dpdk-stable] patch 'mbuf: fix reset on mbuf free' has been queued to stable release 20.11.4 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to stable release 20.11.4 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 11/12/21. 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. Queued patches are on a temporary branch at: https://github.com/steevenlee/dpdk This queued commit can be viewed at: https://github.com/steevenlee/dpdk/commit/65c45e2fa2bd067fc721f63888fa1b7219d3eff1 Thanks. Xueming Li --- >From 65c45e2fa2bd067fc721f63888fa1b7219d3eff1 Mon Sep 17 00:00:00 2001 From: Olivier Matz Date: Wed, 29 Sep 2021 23:37:07 +0200 Subject: [PATCH] mbuf: fix reset on mbuf free MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Xueming Li [ upstream commit efc6f9104c80d39ec168d9559accdc7609274eca ] m->nb_seg must be reset on mbuf free whatever the value of m->next, because it can happen that m->nb_seg is != 1. For instance in this case: m1 = rte_pktmbuf_alloc(mp); rte_pktmbuf_append(m1, 500); m2 = rte_pktmbuf_alloc(mp); rte_pktmbuf_append(m2, 500); rte_pktmbuf_chain(m1, m2); m0 = rte_pktmbuf_alloc(mp); rte_pktmbuf_append(m0, 500); rte_pktmbuf_chain(m0, m1); As rte_pktmbuf_chain() does not reset nb_seg in the initial m1 segment (this is not required), after this code the mbuf chain have 3 segments: - m0: next=m1, nb_seg=3 - m1: next=m2, nb_seg=2 - m2: next=NULL, nb_seg=1 Then split this chain between m1 and m2, it would result in 2 packets: - first packet - m0: next=m1, nb_seg=2 - m1: next=NULL, nb_seg=2 - second packet - m2: next=NULL, nb_seg=1 Freeing the first packet will not restore nb_seg=1 in the second segment. This is an issue because it is expected that mbufs stored in pool have their nb_seg field set to 1. Fixes: 8f094a9ac5d7 ("mbuf: set mbuf fields while in pool") Signed-off-by: Olivier Matz Acked-by: Morten Brørup Acked-by: Ajit Khaparde Acked-by: Konstantin Ananyev Tested-by: Ali Alnubani --- app/test/test_mbuf.c | 69 +++++++++++++++++++++++++++++++++ lib/librte_mbuf/rte_mbuf.c | 4 +- lib/librte_mbuf/rte_mbuf.h | 8 ++-- lib/librte_mbuf/rte_mbuf_core.h | 13 ++++++- 4 files changed, 86 insertions(+), 8 deletions(-) diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c index 2bccaa03b1..69a361c2f5 100644 --- a/app/test/test_mbuf.c +++ b/app/test/test_mbuf.c @@ -2702,6 +2702,70 @@ fail: return -1; } +/* check that m->nb_segs and m->next are reset on mbuf free */ +static int +test_nb_segs_and_next_reset(void) +{ + struct rte_mbuf *m0 = NULL, *m1 = NULL, *m2 = NULL; + struct rte_mempool *pool = NULL; + + pool = rte_pktmbuf_pool_create("test_mbuf_reset", + 3, 0, 0, MBUF_DATA_SIZE, SOCKET_ID_ANY); + if (pool == NULL) + GOTO_FAIL("Failed to create mbuf pool"); + + /* alloc mbufs */ + m0 = rte_pktmbuf_alloc(pool); + m1 = rte_pktmbuf_alloc(pool); + m2 = rte_pktmbuf_alloc(pool); + if (m0 == NULL || m1 == NULL || m2 == NULL) + GOTO_FAIL("Failed to allocate mbuf"); + + /* append data in all of them */ + if (rte_pktmbuf_append(m0, 500) == NULL || + rte_pktmbuf_append(m1, 500) == NULL || + rte_pktmbuf_append(m2, 500) == NULL) + GOTO_FAIL("Failed to append data in mbuf"); + + /* chain them in one mbuf m0 */ + rte_pktmbuf_chain(m1, m2); + rte_pktmbuf_chain(m0, m1); + if (m0->nb_segs != 3 || m0->next != m1 || m1->next != m2 || + m2->next != NULL) { + m1 = m2 = NULL; + GOTO_FAIL("Failed to chain mbufs"); + } + + /* split m0 chain in two, between m1 and m2 */ + m0->nb_segs = 2; + m1->next = NULL; + m2->nb_segs = 1; + + /* free the 2 mbuf chains m0 and m2 */ + rte_pktmbuf_free(m0); + rte_pktmbuf_free(m2); + + /* realloc the 3 mbufs */ + m0 = rte_mbuf_raw_alloc(pool); + m1 = rte_mbuf_raw_alloc(pool); + m2 = rte_mbuf_raw_alloc(pool); + if (m0 == NULL || m1 == NULL || m2 == NULL) + GOTO_FAIL("Failed to reallocate mbuf"); + + /* ensure that m->next and m->nb_segs are reset allocated mbufs */ + if (m0->nb_segs != 1 || m0->next != NULL || + m1->nb_segs != 1 || m1->next != NULL || + m2->nb_segs != 1 || m2->next != NULL) + GOTO_FAIL("nb_segs or next was not reset properly"); + + return 0; + +fail: + if (pool != NULL) + rte_mempool_free(pool); + return -1; +} + static int test_mbuf(void) { @@ -2892,6 +2956,11 @@ test_mbuf(void) goto err; } + /* test reset of m->nb_segs and m->next on mbuf free */ + if (test_nb_segs_and_next_reset() < 0) { + printf("test_nb_segs_and_next_reset() failed\n"); + goto err; + } ret = 0; err: diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c index 7d09ee2939..5f77840557 100644 --- a/lib/librte_mbuf/rte_mbuf.c +++ b/lib/librte_mbuf/rte_mbuf.c @@ -129,10 +129,10 @@ rte_pktmbuf_free_pinned_extmem(void *addr, void *opaque) rte_mbuf_ext_refcnt_set(m->shinfo, 1); m->ol_flags = EXT_ATTACHED_MBUF; - if (m->next != NULL) { + if (m->next != NULL) m->next = NULL; + if (m->nb_segs != 1) m->nb_segs = 1; - } rte_mbuf_raw_free(m); } diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h index 3aece65e9d..bcd8b743a7 100644 --- a/lib/librte_mbuf/rte_mbuf.h +++ b/lib/librte_mbuf/rte_mbuf.h @@ -1340,10 +1340,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) return NULL; } - if (m->next != NULL) { + if (m->next != NULL) m->next = NULL; + if (m->nb_segs != 1) m->nb_segs = 1; - } return m; @@ -1357,10 +1357,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) return NULL; } - if (m->next != NULL) { + if (m->next != NULL) m->next = NULL; + if (m->nb_segs != 1) m->nb_segs = 1; - } rte_mbuf_refcnt_set(m, 1); return m; diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h index 9d1609336a..c26492cf45 100644 --- a/lib/librte_mbuf/rte_mbuf_core.h +++ b/lib/librte_mbuf/rte_mbuf_core.h @@ -496,7 +496,12 @@ struct rte_mbuf { * or non-atomic) is controlled by the RTE_MBUF_REFCNT_ATOMIC flag. */ uint16_t refcnt; - uint16_t nb_segs; /**< Number of segments. */ + + /** + * Number of segments. Only valid for the first segment of an mbuf + * chain. + */ + uint16_t nb_segs; /** Input port (16 bits to support more than 256 virtual ports). * The event eth Tx adapter uses this field to specify the output port. @@ -592,7 +597,11 @@ struct rte_mbuf { /* second cache line - fields only used in slow path or on TX */ RTE_MARKER cacheline1 __rte_cache_min_aligned; - struct rte_mbuf *next; /**< Next segment of scattered packet. */ + /** + * Next segment of scattered packet. Must be NULL in the last segment or + * in case of non-segmented packet. + */ + struct rte_mbuf *next; /* fields to support TX offloads */ RTE_STD_C11 -- 2.33.0 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-11-10 14:17:09.446549277 +0800 +++ 0169-mbuf-fix-reset-on-mbuf-free.patch 2021-11-10 14:17:01.984078497 +0800 @@ -1 +1 @@ -From efc6f9104c80d39ec168d9559accdc7609274eca Mon Sep 17 00:00:00 2001 +From 65c45e2fa2bd067fc721f63888fa1b7219d3eff1 Mon Sep 17 00:00:00 2001 @@ -7,0 +8,3 @@ +Cc: Xueming Li + +[ upstream commit efc6f9104c80d39ec168d9559accdc7609274eca ] @@ -41 +43,0 @@ -Cc: stable@dpdk.org @@ -49,4 +51,4 @@ - app/test/test_mbuf.c | 69 ++++++++++++++++++++++++++++++++++++++++ - lib/mbuf/rte_mbuf.c | 4 +-- - lib/mbuf/rte_mbuf.h | 8 ++--- - lib/mbuf/rte_mbuf_core.h | 13 ++++++-- + app/test/test_mbuf.c | 69 +++++++++++++++++++++++++++++++++ + lib/librte_mbuf/rte_mbuf.c | 4 +- + lib/librte_mbuf/rte_mbuf.h | 8 ++-- + lib/librte_mbuf/rte_mbuf_core.h | 13 ++++++- @@ -56 +58 @@ -index 82777109dc..3a7e67bf90 100644 +index 2bccaa03b1..69a361c2f5 100644 @@ -142,5 +144,5 @@ -diff --git a/lib/mbuf/rte_mbuf.c b/lib/mbuf/rte_mbuf.c -index f7e3c1a187..f145cd800a 100644 ---- a/lib/mbuf/rte_mbuf.c -+++ b/lib/mbuf/rte_mbuf.c -@@ -134,10 +134,10 @@ rte_pktmbuf_free_pinned_extmem(void *addr, void *opaque) +diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c +index 7d09ee2939..5f77840557 100644 +--- a/lib/librte_mbuf/rte_mbuf.c ++++ b/lib/librte_mbuf/rte_mbuf.c +@@ -129,10 +129,10 @@ rte_pktmbuf_free_pinned_extmem(void *addr, void *opaque) @@ -159,5 +161,5 @@ -diff --git a/lib/mbuf/rte_mbuf.h b/lib/mbuf/rte_mbuf.h -index ec2f4bb188..175093073e 100644 ---- a/lib/mbuf/rte_mbuf.h -+++ b/lib/mbuf/rte_mbuf.h -@@ -1321,10 +1321,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) +diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h +index 3aece65e9d..bcd8b743a7 100644 +--- a/lib/librte_mbuf/rte_mbuf.h ++++ b/lib/librte_mbuf/rte_mbuf.h +@@ -1340,10 +1340,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) @@ -176 +178 @@ -@@ -1338,10 +1338,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) +@@ -1357,10 +1357,10 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m) @@ -189,5 +191,5 @@ -diff --git a/lib/mbuf/rte_mbuf_core.h b/lib/mbuf/rte_mbuf_core.h -index fdaaaf67f2..48607a0c12 100644 ---- a/lib/mbuf/rte_mbuf_core.h -+++ b/lib/mbuf/rte_mbuf_core.h -@@ -502,7 +502,12 @@ struct rte_mbuf { +diff --git a/lib/librte_mbuf/rte_mbuf_core.h b/lib/librte_mbuf/rte_mbuf_core.h +index 9d1609336a..c26492cf45 100644 +--- a/lib/librte_mbuf/rte_mbuf_core.h ++++ b/lib/librte_mbuf/rte_mbuf_core.h +@@ -496,7 +496,12 @@ struct rte_mbuf { @@ -207 +209 @@ -@@ -598,7 +603,11 @@ struct rte_mbuf { +@@ -592,7 +597,11 @@ struct rte_mbuf {