From: Gagandeep Singh <[email protected]> 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 <[email protected]> --- 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

