examples/ethtool: close port before exit

Currently, ethtool directly ends the process after 'quit' cmd. In this
case, software resources are not released and hardware resources of the
device are not uninstalled.

This patch adds closing port operation to release resources.

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
This commit is contained in:
Huisong Li 2021-05-06 11:46:08 +08:00 committed by David Marchand
parent 4199ce1578
commit 497025dac0

View File

@ -256,6 +256,22 @@ static int worker_main(__rte_unused void *ptr_data)
return 0;
}
static void close_ports(void)
{
uint16_t portid;
int ret;
for (portid = 0; portid < app_cfg.cnt_ports; portid++) {
printf("Closing port %d...", portid);
ret = rte_eth_dev_stop(portid);
if (ret != 0)
rte_exit(EXIT_FAILURE, "rte_eth_dev_stop: err=%s, port=%u\n",
strerror(-ret), portid);
rte_eth_dev_close(portid);
printf(" Done\n");
}
}
int main(int argc, char **argv)
{
int cnt_args_parsed;
@ -299,6 +315,8 @@ int main(int argc, char **argv)
return -1;
}
close_ports();
/* clean up the EAL */
rte_eal_cleanup();