[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