dpdk/0433-fix-mode4-with-dedicated-queues.patch

61 lines
2.0 KiB
Diff
Raw Normal View History

From 49c1abe125853e4515bec6fefdd2b726dcb81344 Mon Sep 17 00:00:00 2001
From: Usman Tanveer <usman.tanveer@emumba.com>
Date: Thu, 11 Jul 2024 13:09:24 +0800
Subject: [PATCH] fix mode4 with dedicated queues
---
drivers/net/bonding/rte_eth_bond_pmd.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 0f2b21a..446a80b 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1843,19 +1843,15 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
return errval;
}
- if (internals->mode4.dedicated_queues.flow[slave_eth_dev->data->port_id] != NULL)
- rte_flow_destroy(slave_eth_dev->data->port_id,
+ if (internals->mode4.dedicated_queues.flow[slave_eth_dev->data->port_id] != NULL) {
+ errval = rte_flow_destroy(slave_eth_dev->data->port_id,
internals->mode4.dedicated_queues.flow[slave_eth_dev->data->port_id],
&flow_error);
-
- errval = bond_ethdev_8023ad_flow_set(bonded_eth_dev,
- slave_eth_dev->data->port_id);
- if (errval != 0) {
- RTE_BOND_LOG(ERR,
- "bond_ethdev_8023ad_flow_set: port=%d, err (%d)",
+ RTE_BOND_LOG(ERR, "bond_ethdev_8023ad_flow_destroy: port=%d, err (%d)",
slave_eth_dev->data->port_id, errval);
- return errval;
}
+
+
}
/* Start device */
@@ -1866,6 +1862,18 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
return -1;
}
+ if (internals->mode == BONDING_MODE_8023AD &&
+ internals->mode4.dedicated_queues.enabled == 1) {
+ errval = bond_ethdev_8023ad_flow_set(bonded_eth_dev,
+ slave_eth_dev->data->port_id);
+ if (errval != 0) {
+ RTE_BOND_LOG(ERR,
+ "bond_ethdev_8023ad_flow_set: port=%d, err (%d)",
+ slave_eth_dev->data->port_id, errval);
+ return errval;
+ }
+ }
+
/* If RSS is enabled for bonding, synchronize RETA */
if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & RTE_ETH_MQ_RX_RSS) {
int i;
--
2.33.0