net: ipv4, ipv6: fix IPSTATS_MIB_OUTOCTETS increment duplicated
authorHeng Guo <heng.guo@windriver.com>
Fri, 25 Aug 2023 07:55:05 +0000 (15:55 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 30 Aug 2023 08:44:09 +0000 (09:44 +0100)
commite4da8c78973c1e307c0431e0b99a969ffb8aa3f1
tree9858c454a8dc159ef4db96143460b2af286c86e4
parentbd6c11bc43c496cddfc6cf603b5d45365606dbd5
net: ipv4, ipv6: fix IPSTATS_MIB_OUTOCTETS increment duplicated

commit edf391ff1723 ("snmp: add missing counters for RFC 4293") had
already added OutOctets for RFC 4293. In commit 2d8dbb04c63e ("snmp: fix
OutOctets counter to include forwarded datagrams"), OutOctets was
counted again, but not removed from ip_output().

According to RFC 4293 "3.2.3. IP Statistics Tables",
ipipIfStatsOutTransmits is not equal to ipIfStatsOutForwDatagrams. So
"IPSTATS_MIB_OUTOCTETS must be incremented when incrementing" is not
accurate. And IPSTATS_MIB_OUTOCTETS should be counted after fragment.

This patch reverts commit 2d8dbb04c63e ("snmp: fix OutOctets counter to
include forwarded datagrams") and move IPSTATS_MIB_OUTOCTETS to
ip_finish_output2 for ipv4.

Reviewed-by: Filip Pudak <filip.pudak@windriver.com>
Signed-off-by: Heng Guo <heng.guo@windriver.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/ip_forward.c
net/ipv4/ip_output.c
net/ipv4/ipmr.c
net/ipv6/ip6_output.c
net/ipv6/ip6mr.c