struct rte_eth_xstat_name *xstats_names;
struct rte_eth_xstat *xstats;
int len, ret, i;
- int idx_name;
static const char *nic_stats_border = "########################";
len = rte_eth_xstats_get_names(port_id, NULL, 0);
if (len != rte_eth_xstats_get_names(
port_id, xstats_names, len)) {
printf("Cannot get xstat names\n");
- return;
+ goto err;
}
printf("###### NIC extended statistics for port %-2d #########\n",
ret = rte_eth_xstats_get(port_id, xstats, len);
if (ret < 0 || ret > len) {
printf("Cannot get xstats\n");
- free(xstats);
- return;
+ goto err;
}
for (i = 0; i < len; i++)
- for (idx_name = 0; idx_name < len; idx_name++)
- if (xstats_names[idx_name].id == xstats[i].id) {
- printf("%s: %"PRIu64"\n",
- xstats_names[idx_name].name,
- xstats[i].value);
- break;
- }
+ printf("%s: %"PRIu64"\n",
+ xstats_names[i].name,
+ xstats[i].value);
printf("%s############################\n",
nic_stats_border);
+err:
free(xstats);
free(xstats_names);
}
argc -= ret;
argv += (ret - 3);
+ if (!rte_eal_primary_proc_alive(NULL))
+ rte_exit(EXIT_FAILURE, "No primary DPDK process is running.\n");
+
/* parse app arguments */
ret = proc_info_parse_args(argc, argv);
if (ret < 0)