[PATCH v14-S2 06/10] net/dpaa2: set default flow miss action per device
Prashant Gupta
prashant.gupta_3 at nxp.com
Tue Oct 20 16:48:37 CEST 2026
From: Gagandeep Singh <g.singh at nxp.com>
Remove the DPAA2_FLOW_CONTROL_MISS_FLOW environment variable and use
the last Rx queue configured in the traffic class as the default
flow steering miss queue.
Users who relied on the environment variable must use the rte_flow API
instead.
Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
---
doc/guides/rel_notes/release_26_11.rst | 5 +++++
drivers/net/dpaa2/dpaa2_flow.c | 18 +++++-------------
2 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/doc/guides/rel_notes/release_26_11.rst b/doc/guides/rel_notes/release_26_11.rst
index 934efaaf93..9835d74b17 100644
--- a/doc/guides/rel_notes/release_26_11.rst
+++ b/doc/guides/rel_notes/release_26_11.rst
@@ -105,6 +105,11 @@ New Features
* Added the inner IP header to the RSS hash so tunneled traffic is
distributed across the Rx queues.
+ * Removed ``DPAA2_FLOW_CONTROL_MISS_FLOW`` environment variable. The
+ flow steering miss queue now defaults to the last Rx queue configured
+ in the traffic class. Users who previously redirected unmatched
+ frames to a specific queue via this variable must use the rte_flow
+ API instead.
* **Updated NXP ENETC4 PMD.**
diff --git a/drivers/net/dpaa2/dpaa2_flow.c b/drivers/net/dpaa2/dpaa2_flow.c
index f0748081b3..04b6618bbf 100644
--- a/drivers/net/dpaa2/dpaa2_flow.c
+++ b/drivers/net/dpaa2/dpaa2_flow.c
@@ -24,7 +24,6 @@
#include <dpaa2_pmd_logs.h>
static char *dpaa2_flow_control_log;
-static uint16_t dpaa2_flow_miss_flow_id; /* Default miss flow id is 0. */
static int dpaa2_sp_loaded = -1;
enum dpaa2_flow_entry_size {
@@ -4589,8 +4588,12 @@ dpaa2_configure_fs_rss_table(struct dpaa2_dev_priv *priv,
if (rss_dist)
return 0;
+ uint16_t nb_rxq = priv->eth_dev->data->nb_rx_queues;
+ uint16_t first = tc_id * dist_size;
+
tc_cfg.enable = true;
- tc_cfg.fs_miss_flow_id = dpaa2_flow_miss_flow_id;
+ tc_cfg.fs_miss_flow_id = nb_rxq > first ?
+ RTE_MIN(dist_size, nb_rxq - first) - 1 : 0;
ret = dpni_set_rx_fs_dist(dpni, CMD_PRI_LOW,
priv->token, &tc_cfg);
if (ret < 0) {
@@ -5224,17 +5227,6 @@ dpaa2_flow_create(struct rte_eth_dev *dev, const struct rte_flow_attr *attr,
dpaa2_flow_control_log =
getenv("DPAA2_FLOW_CONTROL_LOG");
- if (getenv("DPAA2_FLOW_CONTROL_MISS_FLOW")) {
- dpaa2_flow_miss_flow_id =
- (uint16_t)atoi(getenv("DPAA2_FLOW_CONTROL_MISS_FLOW"));
- if (dpaa2_flow_miss_flow_id >= priv->dist_queues) {
- DPAA2_PMD_ERR("Missed flow ID %d >= dist size(%d)",
- dpaa2_flow_miss_flow_id,
- priv->dist_queues);
- return NULL;
- }
- }
-
flow = rte_zmalloc(NULL, sizeof(struct dpaa2_dev_flow),
RTE_CACHE_LINE_SIZE);
if (!flow) {
--
2.43.0
More information about the dev
mailing list