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 6D65D46C4D for ; Wed, 30 Jul 2025 09:13:07 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6825F40E2D; Wed, 30 Jul 2025 09:13:07 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2080.outbound.protection.outlook.com [40.107.92.80]) by mails.dpdk.org (Postfix) with ESMTP id 4A83140E2D for ; Wed, 30 Jul 2025 09:13:06 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fGD0VH23qf1Vjk/TlaLpyvjA1xUpS347mH21SyFdWA4pFLZNFZWxi4nK8iuALZvmAZ05C/cAs5SIXvGmjE1AtihJ/QzDOUD+voKfCDVBSlreQrbbuB9ZCR0aGjxk3VnFnZRdilTa3JJu4lFfv6WCXwYaRBI1AB6AgFvx3qAdPwz58wxOFGtCkDF1dnPU6tYVTq91tjYjOHyLwPQYvZyZfrxOVjsADquCBl+6FNQSSIGDhIksIX8hgg6ly9uBZrMaexnrlDpu/x3AKEi8eJVop4/uOkPUdP5MP604H4Z49SWW+blaastaddH+gAQYLNn0cUZLQcXyiiR0227eOzOl9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=8aVcjWbvz4ley8vqwUiA5ZKRp4C8/dQhDf+Dfke+WDE=; b=ldA483k5cc+NOummI7fa4NPxVr9Jng/YMlrF9PXlYUOSr2GrpEFDSSxpfWiYbiNURBZKTDKu+CkTOIakrUpgaPB5GR1QcKpAV5/5UPkKVdV1JOTTSejthl/aHTFHG41NSRyLwv3GY0nP7VWErXt+JDnErpwo721JItUilajZailYvUTi7+XocViJkpw7nEMIq2cBIUjIJGLhppMdRzffM9f9tA+6BvTFuDORwG3t7+oZcWBeM5dlUIyv4bSEYGSN49Ytvo06nvRTDaeNwr6ghqDVi4C0l5heTTfp+rLKpDWyvYt3+Q7gKkDDqbzzstN7ydRWpEeICSgkHv8ZABb3Og== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=trustnetic.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) 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=8aVcjWbvz4ley8vqwUiA5ZKRp4C8/dQhDf+Dfke+WDE=; b=Ibp4UzzYJ9ego6YksYmfCmsy+1t2ZPzBhFekmj/ar4VJW5j2Rqp8uiYlnIM0JX8ixHCbFMuvGuEmO8CC7TxXM0g40qu/QQBjfPV3L6I5UiSPvJepaNmU+LNaN5snVQ+o+hAf7fCdThGX07sTNMnRMhX7K+D/w5rTwpLsGd0LCaE4++I+//M/X8LMyZYLubOBuWI7rcDc4LGU4q47G9VD8K/U5TzjlPFhGmcXOGZMQN6oUW0tOqlbrnDpHsdjYyH0D87cB9bU214XTMQQ3bpQbJVXrGDwyviOTxqPxfCakwt6uKnSwMmdmD8U5nDL2FOtur/gVAcIhNMQclbI0LHG4Q== Received: from SJ0PR05CA0053.namprd05.prod.outlook.com (2603:10b6:a03:33f::28) by PH7PR12MB6933.namprd12.prod.outlook.com (2603:10b6:510:1b7::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.25; Wed, 30 Jul 2025 07:13:03 +0000 Received: from SJ1PEPF00001CE3.namprd05.prod.outlook.com (2603:10b6:a03:33f:cafe::c8) by SJ0PR05CA0053.outlook.office365.com (2603:10b6:a03:33f::28) with Microsoft SMTP Server (version=TLS1_3, cipher=TLS_AES_256_GCM_SHA384) id 15.20.8989.11 via Frontend Transport; Wed, 30 Jul 2025 07:13:03 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by SJ1PEPF00001CE3.mail.protection.outlook.com (10.167.242.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8989.10 via Frontend Transport; Wed, 30 Jul 2025 07:13:02 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 30 Jul 2025 00:12:39 -0700 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1544.14; Wed, 30 Jul 2025 00:12:38 -0700 From: Xueming Li To: Jiawen Wu CC: Xueming Li , dpdk stable Subject: patch 'net/txgbe: fix raw pattern match for FDIR rule' has been queued to stable release 23.11.5 Date: Wed, 30 Jul 2025 15:10:30 +0800 Message-ID: <20250730071045.136672-20-xuemingl@nvidia.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250730071045.136672-1-xuemingl@nvidia.com> References: <20250626120145.27369-1-xuemingl@nvidia.com> <20250730071045.136672-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ1PEPF00001CE3:EE_|PH7PR12MB6933:EE_ X-MS-Office365-Filtering-Correlation-Id: fddd91d8-eb32-4526-3d9d-08ddcf38860a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|82310400026|1800799024|36860700013|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?tWIoYeN1DWw4ceOgRsUe/ORrJQ/74AGicQN9LHqpZOrmApRgQKPBvvyb4MAX?= =?us-ascii?Q?Vm9XoaUFGuQZJdC+IdwlAyFIprPOfJBKZLv7XYzxfznYvWycVp4sQ8tpWNV5?= =?us-ascii?Q?0BXx1CSTqhJoaUFCB+rPX+m9rJW1yEyBA/1idZw7hQH9afdmwVOwB9JjHpIj?= =?us-ascii?Q?UsOXTG/4p7EUmxYhF2CG+/48BD84e1YjFX0ng6Mz32TvnchrR43CW8I6+3g9?= =?us-ascii?Q?FyncYRoV4GIZizf9OcaVBP24b1X4cm1Q6rR4b4iKfGYO68Y8a+jO46Ynrw63?= =?us-ascii?Q?lgYtubYJ8DYFtMJPDsmlkAeNOBow325lum+eIHP3ZRuxFxA+T4oT5ofpSNcq?= =?us-ascii?Q?x2LEzh67bo6IWaBLAx+pFqx0c8ARVm4JgPeh2YoNdy63NXrFlGcMzqQ2yAHj?= =?us-ascii?Q?2+hPu+mIXTHR+XLZvs7t2SjLs2yRZ+ETpgYjf7O9wpbyjTMyMZ9e/W4MZBXK?= =?us-ascii?Q?Co6WtW4RaNAZT61CcpRc+ugW9YHKEFUAHlI83aPeKhL46SbIcozQJ4gLzJAg?= =?us-ascii?Q?MTmVZFfXhd76dfL74+UIbFsS6aNK458TGCmm/Mt6U2JZsUVXSD9q9pjZEgkT?= =?us-ascii?Q?UR1u2MFrq3RKICfYUZhzlov9+0nhfeYCcxJXRAWvhLyTicYcZHlVrTnl+jq4?= =?us-ascii?Q?/nGYTi0VSrF7lk9LioREt0EqBFJH6fbrOJcnKHPoHGjFaAiJrMjUUMThGAMc?= =?us-ascii?Q?KAHtISdnexnhaMuVMq81qccNkK48Xk3KyhXbnhJ3Mfw5L1pz8qyHCxbpBGGc?= =?us-ascii?Q?KymbC1JqQseNfIu38pGQXRERBqSKahlvoooRzHORcHRJTomuriXD41DFTUc+?= =?us-ascii?Q?UxyM/SIA5pgImrATT3ZDUul3RqxKiHnRUPYcHaSjf/pViaoHzCxoDGCAWUpI?= =?us-ascii?Q?2PzNe805supMCgM6/8HABMbRF3fPw6oKXHmjohGszyddhtyt/Q+aA2xm4UTq?= =?us-ascii?Q?2ZDY2OjpbamvfXbTIuuUF8Z05kN0Sdqq2j8cC2R/3VjmgM44euPuujQiN+Zj?= =?us-ascii?Q?TuK4xsZQzbYl+qN3xeGVLuGY1djl9eNXsLEt1uNR4NVlfbsAZkWxub0fUwYN?= =?us-ascii?Q?97YJ+3Ab7NtrPHcBlbWUXHZNr762Ov9hBCDtAMcBJ2ejqSvTVenpCj2dPT3A?= =?us-ascii?Q?qBo41cwINGcEJsK2IuulKknRSuoi6ogpoq1FuwGjkTSujoe3LrfCmWfNOHdo?= =?us-ascii?Q?2NMkNjYbcpRDSU7iibBMEbfiYCCUARpEpQISEJLBR8gDxw4zNu6RE19Q3CiE?= =?us-ascii?Q?AWZ/L9H25w9vmXFf3AYAKpVJgD/FpQoyO3AaKMf34k4kYozSAxaJUVz22UAC?= =?us-ascii?Q?nXd1MrNOmtiOsTEY8AzCFdTjfrJQnG/yeBSqnUIkpwyklcNm68JGhiAu5VPd?= =?us-ascii?Q?eTWoKeqNHO8/GH8X4rJbhC93966yBOH/K2j8qZyK7wavRpE9Bd0QLlqhMc7N?= =?us-ascii?Q?TKibIaqNVvF1jyWAnKuA5IAxVaStJO9TPFrt7DDqeL6YAjYu03NVp1wWnTeG?= =?us-ascii?Q?unYBESF84FnXq5qG8z0cuJJA1SQnrR7amKQl?= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230040)(376014)(82310400026)(1800799024)(36860700013)(7053199007); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jul 2025 07:13:02.8959 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fddd91d8-eb32-4526-3d9d-08ddcf38860a X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: SJ1PEPF00001CE3.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB6933 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 Hi, FYI, your patch has been queued to stable release 23.11.5 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 08/10/25. 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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=8b56bc4b9a4ddfff7818ae24bb7956436c3c5925 Thanks. Xueming Li --- >From 8b56bc4b9a4ddfff7818ae24bb7956436c3c5925 Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Fri, 13 Jun 2025 16:41:45 +0800 Subject: [PATCH] net/txgbe: fix raw pattern match for FDIR rule Cc: Xueming Li [ upstream commit aa4974765499225e13225190a0dc6adaab785c80 ] The raw pattern is required to be two hex bytes on hardware, but it is string in the raw item. So the length of raw spec should be 4, and the string should be converted to the two hex bytes. And relative of raw spec is supported to be optical. Fixes: b973ee26747a ("net/txgbe: parse flow director filter") Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.h | 5 ++- drivers/net/txgbe/txgbe_fdir.c | 24 +++++++++++++-- drivers/net/txgbe/txgbe_flow.c | 53 ++++++++++++++++++++++++-------- 3 files changed, 67 insertions(+), 15 deletions(-) diff --git a/drivers/net/txgbe/txgbe_ethdev.h b/drivers/net/txgbe/txgbe_ethdev.h index d5b58018a4..3d94ac7b2d 100644 --- a/drivers/net/txgbe/txgbe_ethdev.h +++ b/drivers/net/txgbe/txgbe_ethdev.h @@ -115,11 +115,13 @@ struct txgbe_fdir_rule { uint32_t soft_id; /* an unique value for this rule */ uint8_t queue; /* assigned rx queue */ uint8_t flex_bytes_offset; + bool flex_relative; }; struct txgbe_hw_fdir_info { struct txgbe_hw_fdir_mask mask; uint8_t flex_bytes_offset; + bool flex_relative; uint16_t collision; uint16_t free; uint16_t maxhash; @@ -552,8 +554,9 @@ void txgbe_set_ivar_map(struct txgbe_hw *hw, int8_t direction, */ int txgbe_fdir_configure(struct rte_eth_dev *dev); int txgbe_fdir_set_input_mask(struct rte_eth_dev *dev); +uint16_t txgbe_fdir_get_flex_base(struct txgbe_fdir_rule *rule); int txgbe_fdir_set_flexbytes_offset(struct rte_eth_dev *dev, - uint16_t offset); + uint16_t offset, uint16_t flex_base); int txgbe_fdir_filter_program(struct rte_eth_dev *dev, struct txgbe_fdir_rule *rule, bool del, bool update); diff --git a/drivers/net/txgbe/txgbe_fdir.c b/drivers/net/txgbe/txgbe_fdir.c index f627ab681d..75bf30c00c 100644 --- a/drivers/net/txgbe/txgbe_fdir.c +++ b/drivers/net/txgbe/txgbe_fdir.c @@ -258,9 +258,24 @@ txgbe_fdir_store_input_mask(struct rte_eth_dev *dev) return 0; } +uint16_t +txgbe_fdir_get_flex_base(struct txgbe_fdir_rule *rule) +{ + if (!rule->flex_relative) + return TXGBE_FDIRFLEXCFG_BASE_MAC; + + if (rule->input.flow_type & TXGBE_ATR_L4TYPE_MASK) + return TXGBE_FDIRFLEXCFG_BASE_PAY; + + if (rule->input.flow_type & TXGBE_ATR_L3TYPE_MASK) + return TXGBE_FDIRFLEXCFG_BASE_L3; + + return TXGBE_FDIRFLEXCFG_BASE_L2; +} + int txgbe_fdir_set_flexbytes_offset(struct rte_eth_dev *dev, - uint16_t offset) + uint16_t offset, uint16_t flex_base) { struct txgbe_hw *hw = TXGBE_DEV_HW(dev); int i; @@ -268,7 +283,7 @@ txgbe_fdir_set_flexbytes_offset(struct rte_eth_dev *dev, for (i = 0; i < 64; i++) { uint32_t flexreg, flex; flexreg = rd32(hw, TXGBE_FDIRFLEXCFG(i / 4)); - flex = TXGBE_FDIRFLEXCFG_BASE_MAC; + flex = flex_base; flex |= TXGBE_FDIRFLEXCFG_OFST(offset / 2); flexreg &= ~(TXGBE_FDIRFLEXCFG_ALL(~0UL, i % 4)); flexreg |= TXGBE_FDIRFLEXCFG_ALL(flex, i % 4); @@ -910,6 +925,11 @@ txgbe_fdir_flush(struct rte_eth_dev *dev) info->add = 0; info->remove = 0; + memset(&info->mask, 0, sizeof(struct txgbe_hw_fdir_mask)); + info->mask_added = false; + info->flex_relative = false; + info->flex_bytes_offset = 0; + return ret; } diff --git a/drivers/net/txgbe/txgbe_flow.c b/drivers/net/txgbe/txgbe_flow.c index d7dc88a316..c9f732e038 100644 --- a/drivers/net/txgbe/txgbe_flow.c +++ b/drivers/net/txgbe/txgbe_flow.c @@ -2066,6 +2066,8 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, /* Get the flex byte info */ if (item->type == RTE_FLOW_ITEM_TYPE_RAW) { + uint16_t pattern = 0; + /* Not supported last point for range*/ if (item->last) { rte_flow_error_set(error, EINVAL, @@ -2082,6 +2084,7 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, return -rte_errno; } + rule->b_mask = TRUE; raw_mask = item->mask; /* check mask */ @@ -2098,19 +2101,21 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, return -rte_errno; } + rule->b_spec = TRUE; raw_spec = item->spec; /* check spec */ - if (raw_spec->relative != 0 || - raw_spec->search != 0 || + if (raw_spec->search != 0 || raw_spec->reserved != 0 || raw_spec->offset > TXGBE_MAX_FLX_SOURCE_OFF || raw_spec->offset % 2 || raw_spec->limit != 0 || - raw_spec->length != 2 || + raw_spec->length != 4 || /* pattern can't be 0xffff */ (raw_spec->pattern[0] == 0xff && - raw_spec->pattern[1] == 0xff)) { + raw_spec->pattern[1] == 0xff && + raw_spec->pattern[2] == 0xff && + raw_spec->pattern[3] == 0xff)) { memset(rule, 0, sizeof(struct txgbe_fdir_rule)); rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM, @@ -2120,7 +2125,9 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, /* check pattern mask */ if (raw_mask->pattern[0] != 0xff || - raw_mask->pattern[1] != 0xff) { + raw_mask->pattern[1] != 0xff || + raw_mask->pattern[2] != 0xff || + raw_mask->pattern[3] != 0xff) { memset(rule, 0, sizeof(struct txgbe_fdir_rule)); rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM, @@ -2129,10 +2136,19 @@ txgbe_parse_fdir_filter_normal(struct rte_eth_dev *dev __rte_unused, } rule->mask.flex_bytes_mask = 0xffff; - rule->input.flex_bytes = - (((uint16_t)raw_spec->pattern[1]) << 8) | - raw_spec->pattern[0]; + /* Convert pattern string to hex bytes */ + if (sscanf((const char *)raw_spec->pattern, "%hx", &pattern) != 1) { + memset(rule, 0, sizeof(struct txgbe_fdir_rule)); + rte_flow_error_set(error, EINVAL, + RTE_FLOW_ERROR_TYPE_ITEM, + item, "Failed to parse raw pattern"); + return -rte_errno; + } + rule->input.flex_bytes = (pattern & 0x00FF) << 8; + rule->input.flex_bytes |= (pattern & 0xFF00) >> 8; + rule->flex_bytes_offset = raw_spec->offset; + rule->flex_relative = raw_spec->relative; } if (item->type != RTE_FLOW_ITEM_TYPE_END) { @@ -2833,10 +2849,16 @@ txgbe_flow_create(struct rte_eth_dev *dev, sizeof(struct txgbe_hw_fdir_mask)); fdir_info->flex_bytes_offset = fdir_rule.flex_bytes_offset; + fdir_info->flex_relative = fdir_rule.flex_relative; + + if (fdir_rule.mask.flex_bytes_mask) { + uint16_t flex_base; - if (fdir_rule.mask.flex_bytes_mask) + flex_base = txgbe_fdir_get_flex_base(&fdir_rule); txgbe_fdir_set_flexbytes_offset(dev, - fdir_rule.flex_bytes_offset); + fdir_rule.flex_bytes_offset, + flex_base); + } ret = txgbe_fdir_set_input_mask(dev); if (ret) @@ -2858,7 +2880,9 @@ txgbe_flow_create(struct rte_eth_dev *dev, } if (fdir_info->flex_bytes_offset != - fdir_rule.flex_bytes_offset) + fdir_rule.flex_bytes_offset || + fdir_info->flex_relative != + fdir_rule.flex_relative) goto out; } } @@ -3086,8 +3110,13 @@ txgbe_flow_destroy(struct rte_eth_dev *dev, TAILQ_REMOVE(&filter_fdir_list, fdir_rule_ptr, entries); rte_free(fdir_rule_ptr); - if (TAILQ_EMPTY(&filter_fdir_list)) + if (TAILQ_EMPTY(&filter_fdir_list)) { + memset(&fdir_info->mask, 0, + sizeof(struct txgbe_hw_fdir_mask)); fdir_info->mask_added = false; + fdir_info->flex_relative = false; + fdir_info->flex_bytes_offset = 0; + } } break; case RTE_ETH_FILTER_L2_TUNNEL: -- 2.34.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-07-30 15:02:13.375654300 +0800 +++ 0019-net-txgbe-fix-raw-pattern-match-for-FDIR-rule.patch 2025-07-30 15:02:12.812206833 +0800 @@ -1 +1 @@ -From aa4974765499225e13225190a0dc6adaab785c80 Mon Sep 17 00:00:00 2001 +From 8b56bc4b9a4ddfff7818ae24bb7956436c3c5925 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit aa4974765499225e13225190a0dc6adaab785c80 ] @@ -12 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +24 @@ -index 36d51fcbb8..0a3c634937 100644 +index d5b58018a4..3d94ac7b2d 100644 @@ -25 +27 @@ -@@ -116,11 +116,13 @@ struct txgbe_fdir_rule { +@@ -115,11 +115,13 @@ struct txgbe_fdir_rule { @@ -39 +41 @@ -@@ -561,8 +563,9 @@ void txgbe_set_ivar_map(struct txgbe_hw *hw, int8_t direction, +@@ -552,8 +554,9 @@ void txgbe_set_ivar_map(struct txgbe_hw *hw, int8_t direction, @@ -102 +104 @@ -index 269f0b54e3..8670c3e1d7 100644 +index d7dc88a316..c9f732e038 100644 @@ -182,2 +184,2 @@ -@@ -2836,10 +2852,16 @@ txgbe_flow_create(struct rte_eth_dev *dev, - fdir_info->mask = fdir_rule.mask; +@@ -2833,10 +2849,16 @@ txgbe_flow_create(struct rte_eth_dev *dev, + sizeof(struct txgbe_hw_fdir_mask)); @@ -201 +203 @@ -@@ -2861,7 +2883,9 @@ txgbe_flow_create(struct rte_eth_dev *dev, +@@ -2858,7 +2880,9 @@ txgbe_flow_create(struct rte_eth_dev *dev, @@ -212 +214 @@ -@@ -3089,8 +3113,13 @@ txgbe_flow_destroy(struct rte_eth_dev *dev, +@@ -3086,8 +3110,13 @@ txgbe_flow_destroy(struct rte_eth_dev *dev,