From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: [PATCH v5 2/6] app/testpmd: allow detaching a port not closed Date: Thu, 18 Oct 2018 03:23:58 +0200 Message-ID: <20181018012402.1240-3-thomas@monjalon.net> References: <20180907233929.21950-1-thomas@monjalon.net> <20181018012402.1240-1-thomas@monjalon.net> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Cc: dev@dpdk.org, ophirmu@mellanox.com, bernard.iremonger@intel.com, rahul.lakkireddy@chelsio.com To: ferruh.yigit@intel.com, arybchenko@solarflare.com Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id 7BEDA5F62 for ; Thu, 18 Oct 2018 03:24:08 +0200 (CEST) In-Reply-To: <20181018012402.1240-1-thomas@monjalon.net> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The testpmd application aim is for testing; so order of operations should not be enforced. There was a test to forbid detaching before closing a port. However, it may interesting to test what happens in such case. It is possible for a PMD to automatically close the port when detaching. in order to avoid a crash, it is checked that the port must be stopped before detaching (as for closing). Signed-off-by: Thomas Monjalon --- app/test-pmd/testpmd.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index c4109417a..31aadec63 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -2343,13 +2343,15 @@ detach_port(portid_t port_id) printf("Detaching a port...\n"); if (!port_is_closed(port_id)) { - printf("Please close port first\n"); - return; + if (ports[port_id].port_status != RTE_PORT_STOPPED) { + printf("Port not stopped\n"); + return; + } + printf("Port was not closed\n"); + if (ports[port_id].flow_list) + port_flow_flush(port_id); } - if (ports[port_id].flow_list) - port_flow_flush(port_id); - if (rte_eth_dev_detach(port_id, name)) { TESTPMD_LOG(ERR, "Failed to detach port %u\n", port_id); return; -- 2.19.0