From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [dpdk-stable] [PATCH] app/testpmd: fix slave port detection Date: Mon, 23 Apr 2018 00:58:05 +0200 Message-ID: <2044227.RGsR745gvM@xps> References: <1522235873-22042-1-git-send-email-matan@mellanox.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: stable@dpdk.org, Matan Azrad , dev@dpdk.org, ferruh.yigit@intel.com To: Wenzhuo Lu , declan.doherty@intel.com Return-path: In-Reply-To: <1522235873-22042-1-git-send-email-matan@mellanox.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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@dpdk.org > > Signed-off-by: Matan Azrad > --- > 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[] = { >