vppinfra: fix formatting of format_base10 03/36703/5
authorPim van Pelt <pim@ipng.nl>
Tue, 19 Jul 2022 08:32:22 +0000 (08:32 +0000)
committerDave Wallace <dwallacelf@gmail.com>
Tue, 26 Jul 2022 17:03:20 +0000 (17:03 +0000)
format_base10 reads 64b but is fed 32b values at the callsite; change
to u64 consistently. The function has only one call site in
interface/monitor.c which has a few additional bugs (spurious
character, and ambiguous 'bits' versus 'bytes' in the output).

Type: improvement
Signed-off-by: Pim van Pelt <pim@ipng.nl>
Change-Id: I360f0d439cc13c09bd3f53db8184bd12ad4bc2e9

src/vnet/interface/monitor.c
src/vppinfra/std-formats.c

index 6d79154..3ae1fd2 100644 (file)
@@ -90,12 +90,14 @@ monitor_interface_command_fn (vlib_main_t *vm, unformat_input_t *input,
 
       tsd = ts[spin] - ts[spin ^ 1];
       vlib_cli_output (
-       vm, "rx: %Upps %Ubps tx: %Upps %Ubps%c", format_base10,
-       (u32) ((vrx[spin].packets - vrx[spin ^ 1].packets) / tsd),
-       format_base10, (u32) ((vrx[spin].bytes - vrx[spin ^ 1].bytes) / tsd),
+       vm, "rx: %Upps %Ubps tx: %Upps %Ubps", format_base10,
+       (u64) ((vrx[spin].packets - vrx[spin ^ 1].packets) / tsd),
        format_base10,
-       (u32) ((vtx[spin].packets - vtx[spin ^ 1].packets) / tsd),
-       format_base10, (u32) ((vtx[spin].bytes - vtx[spin ^ 1].bytes) / tsd));
+       (u64) (8 * (vrx[spin].bytes - vrx[spin ^ 1].bytes) / tsd),
+       format_base10,
+       (u64) ((vtx[spin].packets - vtx[spin ^ 1].packets) / tsd),
+       format_base10,
+       (u64) (8 * (vtx[spin].bytes - vtx[spin ^ 1].bytes) / tsd));
     }
 
 done:
index f7632e1..bfe9844 100644 (file)
@@ -254,7 +254,7 @@ format_time_interval (u8 * s, va_list * args)
 __clib_export u8 *
 format_base10 (u8 *s, va_list *va)
 {
-  uword size = va_arg (*va, uword);
+  u64 size = va_arg (*va, u64);
 
   if (size < 1000)
     s = format (s, "%d", size);