patch 'net/txgbe: add device arguments for FDIR' has been queued to stable release 24.11.4
Kevin Traynor
ktraynor at redhat.com
Fri Nov 21 12:20:12 CET 2025
Hi,
FYI, your patch has been queued to stable release 24.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/26/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/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/005e840cdfd8ef34e4430243ee3c5c93acb61038
Thanks.
Kevin
---
>From 005e840cdfd8ef34e4430243ee3c5c93acb61038 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 65527a22e7..0a5d98a4d1 100644
--- a/drivers/net/txgbe/base/txgbe_type.h
+++ b/drivers/net/txgbe/base/txgbe_type.h
@@ -700,4 +700,6 @@ struct txgbe_phy_info {
#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[] = {
@@ -710,4 +712,6 @@ static const char * const txgbe_valid_arguments[] = {
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 554d41aeee..1a92cd26c9 100644
--- a/drivers/net/txgbe/txgbe_ethdev.c
+++ b/drivers/net/txgbe/txgbe_ethdev.c
@@ -498,6 +498,10 @@ 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;
@@ -509,4 +513,7 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
u16 ffe_pre = 8;
u16 ffe_post = 44;
+ /* FDIR args */
+ u8 pballoc = 0;
+ u8 drop_queue = 127;
if (devargs == NULL)
@@ -533,4 +540,8 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
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);
@@ -544,4 +555,7 @@ null:
hw->phy.ffe_pre = ffe_pre;
hw->phy.ffe_post = ffe_post;
+
+ fdir_conf->pballoc = pballoc;
+ fdir_conf->drop_queue = drop_queue;
}
@@ -632,5 +646,5 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
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);
@@ -5696,5 +5710,7 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
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);
--
2.51.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-11-21 11:05:10.487522902 +0000
+++ 0028-net-txgbe-add-device-arguments-for-FDIR.patch 2025-11-21 11:05:09.415200964 +0000
@@ -1 +1 @@
-From 7e18be9beef25ee60f9c04f757cb4361706ff818 Mon Sep 17 00:00:00 2001
+From 005e840cdfd8ef34e4430243ee3c5c93acb61038 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 65527a22e7..0a5d98a4d1 100644
@@ -26 +27 @@
-@@ -744,4 +744,6 @@ struct txgbe_phy_info {
+@@ -700,4 +700,6 @@ struct txgbe_phy_info {
@@ -31,3 +32,3 @@
- #define TXGBE_DEVARG_TX_HEAD_WB "tx_headwb"
- #define TXGBE_DEVARG_TX_HEAD_WB_SIZE "tx_headwb_size"
-@@ -757,4 +759,6 @@ static const char * const txgbe_valid_arguments[] = {
+
+ static const char * const txgbe_valid_arguments[] = {
+@@ -710,4 +712,6 @@ static const char * const txgbe_valid_arguments[] = {
@@ -38,2 +39,2 @@
- TXGBE_DEVARG_TX_HEAD_WB,
- TXGBE_DEVARG_TX_HEAD_WB_SIZE,
+ NULL
+ };
@@ -41 +42 @@
-index cbb2ea815f..e9bbf8ea72 100644
+index 554d41aeee..1a92cd26c9 100644
@@ -44 +45 @@
-@@ -525,6 +525,10 @@ txgbe_handle_devarg(__rte_unused const char *key, const char *value,
+@@ -498,6 +498,10 @@ txgbe_handle_devarg(__rte_unused const char *key, const char *value,
@@ -56 +57 @@
-@@ -536,4 +540,7 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
+@@ -509,4 +513,7 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
@@ -62,3 +63,3 @@
- /* New devargs for amberlite config */
- u16 tx_headwb = 1;
-@@ -564,4 +571,8 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
+
+ if (devargs == NULL)
+@@ -533,4 +540,8 @@ txgbe_parse_devargs(struct txgbe_hw *hw, struct rte_devargs *devargs)
@@ -71,3 +72,3 @@
- rte_kvargs_process(kvlist, TXGBE_DEVARG_TX_HEAD_WB,
- &txgbe_handle_devarg, &tx_headwb);
-@@ -584,4 +595,7 @@ null:
+ rte_kvargs_free(kvlist);
+
+@@ -544,4 +555,7 @@ null:
@@ -81 +82 @@
-@@ -672,5 +686,5 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
+@@ -632,5 +646,5 @@ eth_txgbe_dev_init(struct rte_eth_dev *eth_dev, void *init_params __rte_unused)
@@ -88 +89,2 @@
-@@ -6035,4 +6049,6 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
+@@ -5696,5 +5710,7 @@ RTE_PMD_REGISTER_PARAM_STRING(net_txgbe,
+ TXGBE_DEVARG_FFE_MAIN "=<uint16>"
@@ -90 +92,2 @@
- TXGBE_DEVARG_FFE_POST "=<uint16>"
+- TXGBE_DEVARG_FFE_POST "=<uint16>");
++ TXGBE_DEVARG_FFE_POST "=<uint16>"
@@ -92,3 +95,3 @@
-+ TXGBE_DEVARG_FDIR_DROP_QUEUE "=<uint8>"
- TXGBE_DEVARG_TX_HEAD_WB "=<0|1>"
- TXGBE_DEVARG_TX_HEAD_WB_SIZE "=<1|16>"
++ TXGBE_DEVARG_FDIR_DROP_QUEUE "=<uint8>");
+
+ RTE_LOG_REGISTER_SUFFIX(txgbe_logtype_init, init, NOTICE);
More information about the stable
mailing list