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 692DC48AEF for ; Wed, 12 Nov 2025 17:54:19 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 62575402A0; Wed, 12 Nov 2025 17:54:19 +0100 (CET) Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mails.dpdk.org (Postfix) with ESMTP id A04FE402A0 for ; Wed, 12 Nov 2025 17:54:18 +0100 (CET) Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-429c48e05aeso578516f8f.1 for ; Wed, 12 Nov 2025 08:54:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762966458; x=1763571258; darn=dpdk.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bd8r3tO5KgLm7vQEG06aXYVgX5npQbVGuHvfsjGIYFs=; b=iNUGx08kRB3g2qkBjYRy7deD1nflvpseQDpDuKfHf2++jIIOt17bxvir4ANOi/H8hL FTIxp7HrznhIHLNm++iujaNASnyhqsEvsfJOzGeBlxDMVaVSCgjrDzKt32oNFmwaH4mE mdtQLcrnRFLRchf4l5Cj5m60a4JOTVyFJPefR+unYMLO+fQMWY6oILTjQCz/oZt+nKQg ioWFJ6AuBzU7VJ2wOxtRCtyvgGdzGsYnTaEK6yiQURH3hZwR8qsDBsCOrjLhjahR5gjc HhivTPt68UFQvmsUR6HtRsxSOFMO2pv+KjVgzPgQryKY8eR0oxmOZO3U3BMTekepy7Lx AbNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762966458; x=1763571258; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=bd8r3tO5KgLm7vQEG06aXYVgX5npQbVGuHvfsjGIYFs=; b=KM4sI812Ag/ZhlllSZ+NRjAbGu6pOowuMVndDHgaAd9VOG52LQFffQ15hP7aq3dzZH 44YMZVFWaFWBGWaIK1r61QCG+MyrPFJo5vSFIiYDXjCFdDI1zNJDl1OvU+aVDUduOkoz INCkcVlWGhVMVJ7JpktvKTcBSCOUuFPbgpJcI7iZzCPD4bcOacv6ZaWAOlI0EKwPtC6b 8WgPDE2FJng2xP2FzKr8vODxeCLMw7rfMBug0YwxMRQJsIoXljFJRmUpwZhxtiEIQqAn eldOwu3LNzaJ0Ooou4vXn667k+r1MJLSiXPZVbGTDGKE2T8pbgH9+XwjRmXfJ+bwd9kh gI0A== X-Gm-Message-State: AOJu0Yzq798TBSanwWP6W3ZMt6VbWdnSWNNnoYnGja4MVJuszZDRDPdH rdn6FdKaEO/CaCowAFTjZsmy7bAqt185lMx4EP5rsjx6xqUAKq9B+lFY X-Gm-Gg: ASbGncvPwxbv0i6m9NpbkCevBTZPWBBFNNay/rXTcPHGTHzxru+KiO/r8McVzPD7VJ+ RdLP0VJDhEEjlQg7wn6JboYOPLaTIlwZ52PIMoqMLlPp41z7AtVHN2EpG6Mj6zKVGi+GIH7rj/j 18bqFc1e5YbNzS1mmjCIfdN6VcTJOKGy9qrWGohEw9Uo4l571zb2rrOzCN5XaIWHPtnF2G2O8H1 tC127TXU6YDCBdD62ZdNSTnUmC/GqKh4Aq60uVxuOOVrfAPkgJX2I+Nfo/szO0Bh/jcxNXZYerl PnRW3rxaptXGcr+wfMduuRq/ebjsHP+lzrsBuKESbMFHi/QoUvVA5im2MoILhOxTQEs9FK1Imau QB+9Xq6FwQXxgKmP4+mwq3r9+Af3lXATYMw4+hvqQRhgIYv3nJYIxjtcl13246kk/gSAyiI3wrx 4VuU5M8w== X-Google-Smtp-Source: AGHT+IH20PZQ7sGGOdoTd2LrWI7w2sGLMLfOIElyH98DRtZSkooj5o2utkWIqJ/z3JWRmXqMgvETOA== X-Received: by 2002:a05:6000:2911:b0:42b:32d1:28ae with SMTP id ffacd0b85a97d-42b5282262bmr73577f8f.22.1762966458038; Wed, 12 Nov 2025 08:54:18 -0800 (PST) Received: from localhost ([2a01:4b00:d036:ae00:a397:14bc:5982:5745]) by smtp.gmail.com with UTF8SMTPSA id ffacd0b85a97d-42ac679d544sm36401572f8f.46.2025.11.12.08.54.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Nov 2025 08:54:17 -0800 (PST) From: luca.boccassi@gmail.com To: Jiawen Wu Cc: dpdk stable Subject: patch 'net/txgbe: fix maximum number of FDIR filters' has been queued to stable release 22.11.11 Date: Wed, 12 Nov 2025 16:52:35 +0000 Message-ID: <20251112165308.1618107-21-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251112165308.1618107-1-luca.boccassi@gmail.com> References: <20251027162001.3710450-79-luca.boccassi@gmail.com> <20251112165308.1618107-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 22.11.11 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/14/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://github.com/bluca/dpdk-stable This queued commit can be viewed at: https://github.com/bluca/dpdk-stable/commit/1e189319a19d2c048873177a0e4d5a7cdc0a8a9d Thanks. Luca Boccassi --- >From 1e189319a19d2c048873177a0e4d5a7cdc0a8a9d Mon Sep 17 00:00:00 2001 From: Jiawen Wu Date: Mon, 27 Oct 2025 11:15:32 +0800 Subject: [PATCH] net/txgbe: fix maximum number of FDIR filters [ upstream commit 5b1429fe2674e331d21a8c343d4129e6b7fbcce5 ] FDIR is determined the maximum value on the hardware based on the memory space allocated (i.e. fdir_conf.pballoc). But the hash map of FDIR is created based on TXGBE_MAX_FDIR_FILTER_NUM. These two do not match. It resulted in the absence of error when creating more FDIR rules than the maximum allowed by the hardware. Fixes: 635c21354f9a ("net/txgbe: add flow director filter init and uninit") Signed-off-by: Jiawen Wu --- drivers/net/txgbe/txgbe_ethdev.c | 6 ++++-- drivers/net/txgbe/txgbe_fdir.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c index 0213159954..8b4a134b08 100644 --- a/drivers/net/txgbe/txgbe_ethdev.c +++ b/drivers/net/txgbe/txgbe_ethdev.c @@ -893,11 +893,13 @@ static int txgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev) static int txgbe_fdir_filter_init(struct rte_eth_dev *eth_dev) { + struct rte_eth_fdir_conf *fdir_conf = TXGBE_DEV_FDIR_CONF(eth_dev); struct txgbe_hw_fdir_info *fdir_info = TXGBE_DEV_FDIR(eth_dev); char fdir_hash_name[RTE_HASH_NAMESIZE]; + u16 max_fdir_num = (1024 << (fdir_conf->pballoc + 1)) - 2; struct rte_hash_parameters fdir_hash_params = { .name = fdir_hash_name, - .entries = TXGBE_MAX_FDIR_FILTER_NUM, + .entries = max_fdir_num, .key_len = sizeof(struct txgbe_atr_input), .hash_func = rte_hash_crc, .hash_func_init_val = 0, @@ -914,7 +916,7 @@ static int txgbe_fdir_filter_init(struct rte_eth_dev *eth_dev) } fdir_info->hash_map = rte_zmalloc("txgbe", sizeof(struct txgbe_fdir_filter *) * - TXGBE_MAX_FDIR_FILTER_NUM, + max_fdir_num, 0); if (!fdir_info->hash_map) { PMD_INIT_LOG(ERR, diff --git a/drivers/net/txgbe/txgbe_fdir.c b/drivers/net/txgbe/txgbe_fdir.c index 0efd43b59a..631dec69e8 100644 --- a/drivers/net/txgbe/txgbe_fdir.c +++ b/drivers/net/txgbe/txgbe_fdir.c @@ -959,6 +959,7 @@ txgbe_fdir_filter_restore(struct rte_eth_dev *dev) int txgbe_clear_all_fdir_filter(struct rte_eth_dev *dev) { + struct rte_eth_fdir_conf *fdir_conf = TXGBE_DEV_FDIR_CONF(dev); struct txgbe_hw_fdir_info *fdir_info = TXGBE_DEV_FDIR(dev); struct txgbe_fdir_filter *fdir_filter; struct txgbe_fdir_filter *filter_flag; @@ -967,7 +968,8 @@ txgbe_clear_all_fdir_filter(struct rte_eth_dev *dev) /* flush flow director */ rte_hash_reset(fdir_info->hash_handle); memset(fdir_info->hash_map, 0, - sizeof(struct txgbe_fdir_filter *) * TXGBE_MAX_FDIR_FILTER_NUM); + sizeof(struct txgbe_fdir_filter *) * + ((1024 << (fdir_conf->pballoc + 1)) - 2)); filter_flag = TAILQ_FIRST(&fdir_info->fdir_list); while ((fdir_filter = TAILQ_FIRST(&fdir_info->fdir_list))) { TAILQ_REMOVE(&fdir_info->fdir_list, -- 2.47.3 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2025-11-12 16:20:41.755377381 +0000 +++ 0021-net-txgbe-fix-maximum-number-of-FDIR-filters.patch 2025-11-12 16:20:40.911716551 +0000 @@ -1 +1 @@ -From 5b1429fe2674e331d21a8c343d4129e6b7fbcce5 Mon Sep 17 00:00:00 2001 +From 1e189319a19d2c048873177a0e4d5a7cdc0a8a9d Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 5b1429fe2674e331d21a8c343d4129e6b7fbcce5 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index e9bbf8ea72..f650c5b7a4 100644 +index 0213159954..8b4a134b08 100644 @@ -25 +26 @@ -@@ -935,11 +935,13 @@ static int txgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev) +@@ -893,11 +893,13 @@ static int txgbe_l2_tn_filter_uninit(struct rte_eth_dev *eth_dev) @@ -40 +41 @@ -@@ -956,7 +958,7 @@ static int txgbe_fdir_filter_init(struct rte_eth_dev *eth_dev) +@@ -914,7 +916,7 @@ static int txgbe_fdir_filter_init(struct rte_eth_dev *eth_dev)