patch 'net/txgbe: add device arguments for FDIR' has been queued to stable release 22.11.11

luca.boccassi at gmail.com luca.boccassi at gmail.com
Wed Nov 12 17:52:34 CET 2025


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/207a4daea36aacb0be5a2c770393d12e490253c5

Thanks.

Luca Boccassi

---
>From 207a4daea36aacb0be5a2c770393d12e490253c5 Mon Sep 17 00:00:00 2001
From: Jiawen Wu <jiawenwu at trustnetic.com>
Date: Mon, 27 Oct 2025 11:15:31 +0800
Subject: [PATCH] net/txgbe: add device arguments for FDIR

[ upstream commit 7e18be9beef25ee60f9c04f757cb4361706ff818 ]

Since FDIR configuration is deprecated in generic ethdev device
configuration and move it into the device private data, there is no way
to configure the FDIR parameters.

Two device arguments "pkt-filter-size" and "pkt-filter-drop-queue" are
added, they just continue to use the previous naming convention.

Fixes: 5007ac13189d ("ethdev: remove deprecated Flow Director configuration")

Signed-off-by: Jiawen Wu <jiawenwu at trustnetic.com>
---
 drivers/net/txgbe/base/txgbe_type.h |  4 ++++
 drivers/net/txgbe/txgbe_ethdev.c    | 22 +++++++++++++++++++---
 2 files changed, 23 insertions(+), 3 deletions(-)

diff --git a/drivers/net/txgbe/base/txgbe_type.h b/drivers/net/txgbe/base/txgbe_type.h
index 3479639ec4..d39894c953 100644
--- a/drivers/net/txgbe/base/txgbe_type.h
+++ b/drivers/net/txgbe/base/txgbe_type.h
@@ -699,6 +699,8 @@ struct txgbe_phy_info {
 #define TXGBE_DEVARG_FFE_MAIN		"ffe_main"
 #define TXGBE_DEVARG_FFE_PRE		"ffe_pre"
 #define TXGBE_DEVARG_FFE_POST		"ffe_post"
+#define TXGBE_DEVARG_FDIR_PBALLOC	"pkt-filter-size"
+#define TXGBE_DEVARG_FDIR_DROP_QUEUE	"pkt-filter-drop-queue"
 
 static const char * const txgbe_valid_arguments[] = {
 	TXGBE_DEVARG_BP_AUTO,
@@ -709,6 +711,8 @@ static const char * const txgbe_valid_arguments[] = {
 	TXGBE_DEVARG_FFE_MAIN,
 	TXGBE_DEVARG_FFE_PRE,
 	TXGBE_DEVARG_FFE_POST,
+	TXGBE_DEVARG_FDIR_PBALLOC,
+	TXGBE_DEVARG_FDIR_DROP_QUEUE,
 	NULL
 };
 
diff --git a/drivers/net/txgbe/txgbe_ethdev.c b/drivers/net/txgbe/txgbe_ethdev.c
index 3dfb510619..0213159954 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -496,8 +496,12 @@ txgbe_handle_devarg(__rte_unused const char *key, const char *value,
 }
 
 static void
-txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
+txgbe_parse_devargs(struct rte_eth_dev *dev)
 {
+	struct rte_eth_fdir_conf *fdir_conf = TXGBE_DEV_FDIR_CONF(dev);
+	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
+	struct rte_devargs *devargs = pci_dev->device.devargs;
+	struct txgbe_hw *hw = TXGBE_DEV_HW(dev);
 	struct rte_kvargs *kvlist;
 	u16 auto_neg = 1;
 	u16 poll = 0;
@@ -507,6 +511,9 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
 	u16 ffe_main = 27;
 	u16 ffe_pre = 8;
 	u16 ffe_post = 44;
+	/* FDIR args */
+	u8 pballoc = 0;
+	u8 drop_queue = 127;
 
 	if (devargs == NULL)
 		goto null;
@@ -531,6 +538,10 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
 			   &txgbe_handle_devarg, &ffe_pre);
 	rte_kvargs_process(kvlist, TXGBE_DEVARG_FFE_POST,
 			   &txgbe_handle_devarg, &ffe_post);
+	rte_kvargs_process(kvlist, TXGBE_DEVARG_FDIR_PBALLOC,
+			   &txgbe_handle_devarg, &pballoc);
+	rte_kvargs_process(kvlist, TXGBE_DEVARG_FDIR_DROP_QUEUE,
+			   &txgbe_handle_devarg, &drop_queue);
 	rte_kvargs_free(kvlist);
 
 null:
@@ -542,6 +553,9 @@ null:
 	hw->phy.ffe_main = ffe_main;
 	hw->phy.ffe_pre = ffe_pre;
 	hw->phy.ffe_post = ffe_post;
+
+	fdir_conf->pballoc = pballoc;
+	fdir_conf->drop_queue = drop_queue;
 }
 
 static int
@@ -629,7 +643,7 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
 	hw->isb_dma = TMZ_PADDR(mz);
 	hw->isb_mem = TMZ_VADDR(mz);
 
-	txgbe_parse_devargs(hw, pci_dev->device.devargs);
+	txgbe_parse_devargs(eth_dev);
 	/* Initialize the shared code (base driver) */
 	err = txgbe_init_shared_code(hw);
 	if (err != 0) {
@@ -5498,7 +5512,9 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
 			      TXGBE_DEVARG_FFE_SET "=<0-4>"
 			      TXGBE_DEVARG_FFE_MAIN "=<uint16>"
 			      TXGBE_DEVARG_FFE_PRE "=<uint16>"
-			      TXGBE_DEVARG_FFE_POST "=<uint16>");
+			      TXGBE_DEVARG_FFE_POST "=<uint16>"
+			      TXGBE_DEVARG_FDIR_PBALLOC "=<0|1|2>"
+			      TXGBE_DEVARG_FDIR_DROP_QUEUE "=<uint8>");
 
 RTE_LOG_REGISTER_SUFFIX(txgbe_logtype_init, init, NOTICE);
 RTE_LOG_REGISTER_SUFFIX(txgbe_logtype_driver, driver, NOTICE);
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-11-12 16:20:41.716817059 +0000
+++ 0020-net-txgbe-add-device-arguments-for-FDIR.patch	2025-11-12 16:20:40.907716452 +0000
@@ -1 +1 @@
-From 7e18be9beef25ee60f9c04f757cb4361706ff818 Mon Sep 17 00:00:00 2001
+From 207a4daea36aacb0be5a2c770393d12e490253c5 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7e18be9beef25ee60f9c04f757cb4361706ff818 ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org
@@ -19,2 +20,2 @@
- drivers/net/txgbe/txgbe_ethdev.c    | 20 ++++++++++++++++++--
- 2 files changed, 22 insertions(+), 2 deletions(-)
+ drivers/net/txgbe/txgbe_ethdev.c    | 22 +++++++++++++++++++---
+ 2 files changed, 23 insertions(+), 3 deletions(-)
@@ -23 +24 @@
-index 07b443c2e0..b5dbc9b755 100644
+index 3479639ec4..d39894c953 100644
@@ -26 +27 @@
-@@ -743,6 +743,8 @@ struct txgbe_phy_info {
+@@ -699,6 +699,8 @@ struct txgbe_phy_info {
@@ -32,4 +33,4 @@
- #define TXGBE_DEVARG_TX_HEAD_WB		"tx_headwb"
- #define TXGBE_DEVARG_TX_HEAD_WB_SIZE	"tx_headwb_size"
- #define TXGBE_DEVARG_RX_DESC_MERGE	"rx_desc_merge"
-@@ -756,6 +758,8 @@ static const char * const txgbe_valid_arguments[] = {
+ 
+ static const char * const txgbe_valid_arguments[] = {
+ 	TXGBE_DEVARG_BP_AUTO,
+@@ -709,6 +711,8 @@ static const char * const txgbe_valid_arguments[] = {
@@ -41,3 +42,3 @@
- 	TXGBE_DEVARG_TX_HEAD_WB,
- 	TXGBE_DEVARG_TX_HEAD_WB_SIZE,
- 	TXGBE_DEVARG_RX_DESC_MERGE,
+ 	NULL
+ };
+ 
@@ -45 +46 @@
-index cbb2ea815f..e9bbf8ea72 100644
+index 3dfb510619..0213159954 100644
@@ -48 +49 @@
-@@ -524,8 +524,12 @@ txgbe_handle_devarg(__rte_unused const char *key, const char *value,
+@@ -496,8 +496,12 @@ txgbe_handle_devarg(__rte_unused const char *key, const char *value,
@@ -62 +63 @@
-@@ -535,6 +539,9 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
+@@ -507,6 +511,9 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
@@ -69,4 +70,4 @@
- 	/* New devargs for amberlite config */
- 	u16 tx_headwb = 1;
- 	u16 tx_headwb_size = 16;
-@@ -563,6 +570,10 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
+ 
+ 	if (devargs == NULL)
+ 		goto null;
+@@ -531,6 +538,10 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
@@ -80,4 +81,4 @@
- 	rte_kvargs_process(kvlist, TXGBE_DEVARG_TX_HEAD_WB,
- 			   &txgbe_handle_devarg, &tx_headwb);
- 	rte_kvargs_process(kvlist, TXGBE_DEVARG_TX_HEAD_WB_SIZE,
-@@ -583,6 +594,9 @@ null:
+ 	rte_kvargs_free(kvlist);
+ 
+ null:
+@@ -542,6 +553,9 @@ null:
@@ -93 +94 @@
-@@ -671,7 +685,7 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -629,7 +643,7 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
@@ -102 +103,2 @@
-@@ -6034,6 +6048,8 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
+@@ -5498,7 +5512,9 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
+ 			      TXGBE_DEVARG_FFE_SET "=<0-4>"
@@ -105 +107,2 @@
- 			      TXGBE_DEVARG_FFE_POST "=<uint16>"
+-			      TXGBE_DEVARG_FFE_POST "=<uint16>");
++			      TXGBE_DEVARG_FFE_POST "=<uint16>"
@@ -107,4 +110,4 @@
-+			      TXGBE_DEVARG_FDIR_DROP_QUEUE "=<uint8>"
- 			      TXGBE_DEVARG_TX_HEAD_WB "=<0|1>"
- 			      TXGBE_DEVARG_TX_HEAD_WB_SIZE "=<1|16>"
- 			      TXGBE_DEVARG_RX_DESC_MERGE "=<0|1>");
++			      TXGBE_DEVARG_FDIR_DROP_QUEUE "=<uint8>");
+ 
+ RTE_LOG_REGISTER_SUFFIX(txgbe_logtype_init, init, NOTICE);
+ RTE_LOG_REGISTER_SUFFIX(txgbe_logtype_driver, driver, NOTICE);


More information about the stable mailing list