bitrate: fix calculation to match API description
authorKevin Traynor <ktraynor@redhat.com>
Fri, 9 Jul 2021 15:19:37 +0000 (16:19 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 1 Oct 2021 13:31:06 +0000 (15:31 +0200)
rte_stats_bitrate_calc() API states it returns 'Negative value on error'.

However, the implementation will return the error code from
rte_eth_stats_get() which may be non-zero on error.

Change the implementation of rte_stats_bitrate_calc() to match
the API description by always returning a negative value on error.

Fixes: 2ad7ba9a6567 ("bitrate: add bitrate statistics library")

Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
lib/bitratestats/rte_bitrate.c

index e23e38b..1664e48 100644 (file)
@@ -80,7 +80,7 @@ rte_stats_bitrate_calc(struct rte_stats_bitrates *bitrate_data,
 
        ret_code = rte_eth_stats_get(port_id, &eth_stats);
        if (ret_code != 0)
-               return ret_code;
+               return ret_code < 0 ? ret_code : -ret_code;
 
        port_data = &bitrate_data->port_stats[port_id];