[dpdk-dev] [PATCH v3 1/4] app/testpmd: allow detaching a port not closed
Thomas Monjalon
thomas at monjalon.net
Wed Oct 17 04:06:37 CEST 2018
+Cc Bernard
Note that the function port_is_closed is replaced because
a closed port is always seen as invalid after this series:
the state is set to RTE_ETH_DEV_UNUSED by rte_eth_dev_release_port().
I may split this patch and add a release note to make it clear.
17/10/2018 03:54, Thomas Monjalon:
> 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.
>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
> ---
> app/test-pmd/testpmd.c | 22 ++++------------------
> 1 file changed, 4 insertions(+), 18 deletions(-)
>
> diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
> index 5dbbf783f..f5dee1d71 100644
> --- a/app/test-pmd/testpmd.c
> +++ b/app/test-pmd/testpmd.c
> @@ -1938,18 +1938,6 @@ port_is_started(portid_t port_id)
> return 1;
> }
>
> -static int
> -port_is_closed(portid_t port_id)
> -{
> - if (port_id_is_invalid(port_id, ENABLED_WARN))
> - return 0;
> -
> - if (ports[port_id].port_status != RTE_PORT_CLOSED)
> - return 0;
> -
> - return 1;
> -}
> -
> int
> start_port(portid_t pid)
> {
> @@ -2319,14 +2307,12 @@ 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_CLOSED) {
> + printf("Port 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;
>
More information about the dev
mailing list