In vpp 22.02

I get inaccurate results with monitor interface command,tx data is incorrect

DBGvpp# monitor interface local0 interval 10 count 1
rx: 0pps 0bps tx: 2314885530.28Gpps 18446744069.41Gbps

in  src/vnet/interface/monitor.c
there use u32,but in  format_base10 it expects uword.
This looks out of bounds.

format_base10 (u8 *s, va_list *va)
{
uword size = va_arg (*va, uword);

92       vlib_cli_output (
93     vm, "rx: %Upps %Ubps tx: %Upps %Ubps%c", format_base10,
94     (u32) ((vrx[spin].packets - vrx[spin ^ 1].packets) / tsd),
95     format_base10, (u32) ((vrx[spin].bytes - vrx[spin ^ 1].bytes) / tsd),
96     format_base10,
97     (u32) ((vtx[spin].packets - vtx[spin ^ 1].packets) / tsd),
98     format_base10, (u32) ((vtx[spin].bytes - vtx[spin ^ 1].bytes) / tsd));
99     }
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#21681): https://lists.fd.io/g/vpp-dev/message/21681
Mute This Topic: https://lists.fd.io/mt/92478151/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to