61 lines
2.0 KiB
Diff
61 lines
2.0 KiB
Diff
|
|
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
|
||
|
|
|