From 341a793eb193a104c571172e724a98b2552c55cf Mon Sep 17 00:00:00 2001 From: Ciara Power Date: Thu, 27 Feb 2020 17:04:56 +0000 Subject: [PATCH] telemetry: fix port stats retrieval The ep struct is used to track what type of stats are required by the client. For PORT_STATS type, it contains the lists of port and metric ids to query, and the number of ids in each list. The ep struct has values set (num of port and metric ids) when a request for port stats values by name is received. However, after this value assignment, the struct is reset to all 0 values, meaning the number of port and metric ids required now both show as 0, and the client will not receive the requested data in response. To fix this issue, the memset call is now moved above the ep struct value assignment. Fixes: 4080e46c8078 ("telemetry: support global metrics") Cc: stable@dpdk.org Signed-off-by: Ciara Power Reviewed-by: Kevin Laatz --- lib/librte_telemetry/rte_telemetry_parser.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_telemetry/rte_telemetry_parser.c b/lib/librte_telemetry/rte_telemetry_parser.c index 9601323970..e8c269e85e 100644 --- a/lib/librte_telemetry/rte_telemetry_parser.c +++ b/lib/librte_telemetry/rte_telemetry_parser.c @@ -456,9 +456,9 @@ rte_telemetry_command_ports_stats_values_by_name(struct telemetry_impl size_t index; json_t *value; + memset(&ep, 0, sizeof(ep)); ep.pp.num_port_ids = json_array_size(port_ids_json); ep.pp.num_metric_ids = num_stat_names; - memset(&ep, 0, sizeof(ep)); if (telemetry == NULL) { TELEMETRY_LOG_ERR("Invalid telemetry argument"); return -1; -- 2.20.1