From: Matan Azrad Date: Wed, 28 Mar 2018 11:17:53 +0000 (+0000) Subject: app/testpmd: fix slave port detection X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=b8b8b344cb44bea46ac1d2037e8e5f1e742319f6;p=dpdk.git app/testpmd: fix slave port detection 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@dpdk.org Signed-off-by: Matan Azrad Acked-by: Bernard Iremonger --- diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 38b8b7a460..530ee0e7ac 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2368,7 +2368,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[] = {