aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoyu Liao <joyul@juniper.net>2025-09-04 20:00:27 +0000
committerZhenlei Huang <zlei@FreeBSD.org>2025-09-04 20:00:27 +0000
commita14d561e58529c9686a2efc47f4828ad82026e63 (patch)
treebce92ad036ce763d023854d279c96874c37b1297
parentd5dd6ad6baa6753a1f2040c41702e71a91de8ce4 (diff)
vtnet: Do "hardware" accounting for the total number of received octets
While here, advertise the IFCAP_HWSTATS capability to avoid the net stack from double counting it. Co-authored-by: zlei Reviewed by: zlei MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D44816
-rw-r--r--sys/dev/virtio/network/if_vtnet.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c
index 4f19af6281a3..ec4282e0741a 100644
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -1178,6 +1178,7 @@ vtnet_setup_interface(struct vtnet_softc *sc)
if (sc->vtnet_max_mtu >= ETHERMTU_JUMBO)
if_setcapabilitiesbit(ifp, IFCAP_JUMBO_MTU, 0);
if_setcapabilitiesbit(ifp, IFCAP_VLAN_MTU, 0);
+ if_setcapabilitiesbit(ifp, IFCAP_HWSTATS, 0);
/*
* Capabilities after here are not enabled by default.
@@ -3036,6 +3037,8 @@ vtnet_get_counter(if_t ifp, ift_counter cnt)
return (rxaccum.vrxs_iqdrops);
case IFCOUNTER_IERRORS:
return (rxaccum.vrxs_ierrors);
+ case IFCOUNTER_IBYTES:
+ return (rxaccum.vrxs_ibytes);
case IFCOUNTER_OPACKETS:
return (txaccum.vtxs_opackets);
case IFCOUNTER_OBYTES: