Hi, Yan


Sorry, I do not follow the letter?
Are you proposing the patch for bonding  PMD?

If so, could you, please send your patch in plain text, according to ML rules?

It is application responsibility to start bonding virtual device (and it will start its slaves)

before flow creation.


With best regards,
Slava

 

From: compile_success <980965867@qq.com>
Sent: Tuesday, June 20, 2023 6:26 PM
To: users <users@dpdk.org>; dev <dev@dpdk.org>; Matan Azrad <matan@mellanox.com>; Shahaf Shuler <shahafs@mellanox.com>; Slava Ovsiienko <viacheslavo@mellanox.com>
Subject: net/mlx:mlx5 mlx_flow_create failed when set bond_mode_8023

 

 

Hi,

 

When I create bond4 with ConnectX-4 , mlx_flow_create return error;

 

When bond_port is opened, slave_port  will be closed to sync bond_port config 

bond_ethdev_start -> slave_configure->rte_eth_dev_stop

 

​slave_configure(struct rte_eth_dev *bonded_eth_dev,

 

struct rte_eth_dev *slave_eth_dev)

 

{

 

uint16_t nb_rx_queues;

 

uint16_t nb_tx_queues;

 

 

int errval;

 

 

struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;

 

 

/* Stop slave */

 

errval = rte_eth_dev_stop(slave_eth_dev->data->port_id);

 

if (errval != 0)

 

RTE_BOND_LOG(ERR, "rte_eth_dev_stop: port %u, err (%d)",

 

slave_eth_dev->data->port_id, errval);

 



However,  If the device is not started yetm it is not allowed to created a flow from application.
slave_configure -> bond_ethdev_8023ad_flow_set -> rte_flow_create -> mlx5_flow_create

I  want to add rte_eth_dev_start before bond_ethdev_8023ad_flow_set. This can solve my problem.