[dpdk-dev] [dpdk-stable] [PATCH] app/testpmd: fix slave port detection

Thomas Monjalon thomas at monjalon.net
Mon Apr 23 00:58:05 CEST 2018


Wenzhuo, Declan,
Any comment or ack, please?

28/03/2018 13:17, Matan Azrad:
> Testpmd allows to create and control bonding devices by run time
> command lines using the bonding PMD API.
> 
> Some bonding device slaves operations(close, stop, etc) should not be
> used by the application and must be managed by the bonding PMD.
> 
> Thus, Testpmd manages slave flags to prevent the special operations
> calls and when a slave is added to bonding device by a run time command
> line, the flag is set.
> 
> There is one more way to define the slaves for a bonding device using
> EAL command line and Testpmd doesn't set the slave flag in this case
> what causes to the special operations to be called by Testpmd.
> 
> Add one more check to detect bonding slave device.
> 
> Fixes: 41b05095c4d1 ("app/testpmd: fix bonding start")
> Fixes: 0e545d3047fe ("app/testpmd: check stopping port is not in bonding")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---
>  app/test-pmd/testpmd.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 4c0e258..73d9481 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -2251,7 +2251,10 @@ uint8_t port_is_bonding_slave(portid_t slave_pid)
>  	struct rte_port *port;
>  
>  	port = &ports[slave_pid];
> -	return port->slave_flag;
> +	if ((rte_eth_devices[slave_pid].data->dev_flags &
> +	    RTE_ETH_DEV_BONDED_SLAVE) || (port->slave_flag == 1))
> +		return 1;
> +	return 0;
>  }
>  
>  const uint16_t vlan_tags[] = {
> 







More information about the dev mailing list