Date: Thu, 18 Dec 2025 14:45:10 +0000 From: Michael Tuexen <tuexen@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: e3a0571ad74d - main - vtnet: expose flags via sysctl tree Message-ID: <69441376.39916.119146bf@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by tuexen: URL: https://cgit.FreeBSD.org/src/commit/?id=e3a0571ad74d8429a95fcae9efc1d91cc109a337 commit e3a0571ad74d8429a95fcae9efc1d91cc109a337 Author: Michael Tuexen <tuexen@FreeBSD.org> AuthorDate: 2025-12-18 14:42:13 +0000 Commit: Michael Tuexen <tuexen@FreeBSD.org> CommitDate: 2025-12-18 14:42:13 +0000 vtnet: expose flags via sysctl tree Provide the flags used for a vtnet interface via the sysctl tree. This is mostly used for debugging purposes. Reviewed by: Timo Völker MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D54283 --- share/man/man4/vtnet.4 | 4 +++- sys/dev/virtio/network/if_vtnet.c | 20 ++++++++++++++++++++ sys/dev/virtio/network/if_vtnetvar.h | 5 +++++ 3 files changed, 28 insertions(+), 1 deletion(-) diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4 index fd41b36882a6..92f72030fc31 100644 --- a/share/man/man4/vtnet.4 +++ b/share/man/man4/vtnet.4 @@ -22,7 +22,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.Dd September 30, 2025 +.Dd December 18, 2025 .Dt VTNET 4 .Os .Sh NAME @@ -271,6 +271,8 @@ The number of active virtqueue pairs. The number of requested virtqueue pairs. .It Va dev.vtnet. Ns Ar X Ns Va .max_vq_pairs The maximum number of supported virtqueue pairs. +.It Va dev.vtnet. Ns Ar X Ns Va .flags +The flags of the interface. Mostly for debugging purposes. .El .Sh SEE ALSO .Xr arp 4 , diff --git a/sys/dev/virtio/network/if_vtnet.c b/sys/dev/virtio/network/if_vtnet.c index d9daa5bfd70a..58cef9b34449 100644 --- a/sys/dev/virtio/network/if_vtnet.c +++ b/sys/dev/virtio/network/if_vtnet.c @@ -40,6 +40,7 @@ #include <sys/mbuf.h> #include <sys/module.h> #include <sys/msan.h> +#include <sys/sbuf.h> #include <sys/socket.h> #include <sys/sysctl.h> #include <sys/random.h> @@ -4398,6 +4399,22 @@ vtnet_setup_stat_sysctl(struct sysctl_ctx_list *ctx, "Times the transmit interrupt task rescheduled itself"); } +static int +vtnet_sysctl_flags(SYSCTL_HANDLER_ARGS) +{ + struct vtnet_softc *sc; + struct sbuf *sb; + int error; + + sb = sbuf_new_auto(); + sc = (struct vtnet_softc *)arg1; + sbuf_printf(sb, "%b", sc->vtnet_flags, VTNET_FLAGS_BITS); + sbuf_finish(sb); + error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1); + sbuf_delete(sb); + return (error); +} + static void vtnet_setup_sysctl(struct vtnet_softc *sc) { @@ -4420,6 +4437,9 @@ vtnet_setup_sysctl(struct vtnet_softc *sc) SYSCTL_ADD_INT(ctx, child, OID_AUTO, "act_vq_pairs", CTLFLAG_RD, &sc->vtnet_act_vq_pairs, 0, "Number of active virtqueue pairs"); + SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "flags", + CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, sc, 0, + vtnet_sysctl_flags, "A", "Flags"); vtnet_setup_stat_sysctl(ctx, child, sc); } diff --git a/sys/dev/virtio/network/if_vtnetvar.h b/sys/dev/virtio/network/if_vtnetvar.h index cab7ced639a7..eb5e6784b07f 100644 --- a/sys/dev/virtio/network/if_vtnetvar.h +++ b/sys/dev/virtio/network/if_vtnetvar.h @@ -191,6 +191,11 @@ struct vtnet_softc { char vtnet_mtx_name[16]; uint8_t vtnet_hwaddr[ETHER_ADDR_LEN]; }; +/* vtnet flag descriptions for use with printf(9) %b identifier. */ +#define VTNET_FLAGS_BITS \ + "\20\1MODERN\2MAC\3CTRL_VQ\4CTRL_RX\5CTRL_MAC\6VLAN_FILTER\7TSO_ECN" \ + "\10MRG_RXBUFS\11LRO_NOMRG\12MQ\13INDIRECT\14EVENT_IDX\15SUSPENDED" \ + "\16FIXUP_NEEDS_CSUM\17SW_LRO" static bool vtnet_modern(struct vtnet_softc *sc)help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69441376.39916.119146bf>
