From 49c1abe125853e4515bec6fefdd2b726dcb81344 Mon Sep 17 00:00:00 2001 From: Usman Tanveer 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