The xstats reset is useful for debugging, so add it to the ethdev telemetry command lists.
Signed-off-by: Chengwen Feng <fengcheng...@huawei.com> --- lib/ethdev/rte_ethdev.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index 5d5e18db1e..0774de81b0 100644 --- a/lib/ethdev/rte_ethdev.c +++ b/lib/ethdev/rte_ethdev.c @@ -5915,6 +5915,27 @@ eth_dev_handle_port_xstats(const char *cmd __rte_unused, return 0; } +static int +eth_dev_handle_port_xstats_reset(const char *cmd __rte_unused, + const char *params, + struct rte_tel_data *d __rte_unused) +{ + char *end_param; + int port_id; + + if (params == NULL || strlen(params) == 0 || !isdigit(*params)) + return -1; + + port_id = strtoul(params, &end_param, 0); + if (*end_param != '\0') + RTE_ETHDEV_LOG(NOTICE, + "Extra parameters passed to ethdev telemetry command, ignoring\n"); + if (!rte_eth_dev_is_valid_port(port_id)) + return -1; + + return rte_eth_xstats_reset(port_id); +} + #ifndef RTE_EXEC_ENV_WINDOWS static int eth_dev_handle_port_dump_priv(const char *cmd __rte_unused, @@ -6328,6 +6349,8 @@ RTE_INIT(ethdev_init_telemetry) "Returns the common stats for a port. Parameters: int port_id"); rte_telemetry_register_cmd("/ethdev/xstats", eth_dev_handle_port_xstats, "Returns the extended stats for a port. Parameters: int port_id"); + rte_telemetry_register_cmd("/ethdev/xstats_reset", eth_dev_handle_port_xstats_reset, + "Reset the extended stats for a port. Parameters: int port_id"); #ifndef RTE_EXEC_ENV_WINDOWS rte_telemetry_register_cmd("/ethdev/dump_priv", eth_dev_handle_port_dump_priv, "Returns dump private information for a port. Parameters: int port_id"); -- 2.17.1