Page MenuHomeFreeBSD

D54288.id168390.diff
No OneTemporary

D54288.id168390.diff

diff --git a/share/man/man4/vtnet.4 b/share/man/man4/vtnet.4
--- 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 December 18, 2025
+.Dd December 19, 2025
.Dt VTNET 4
.Os
.Sh NAME
@@ -274,6 +274,8 @@
.It Va dev.vtnet. Ns Ar X Ns Va .flags
The flags of the interface.
Mostly for debugging purposes.
+.It Va dev.vtnet. Ns Ar X Ns Va .features
+The features of the interface as defined by the virtio specification.
.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
--- a/sys/dev/virtio/network/if_vtnet.c
+++ b/sys/dev/virtio/network/if_vtnet.c
@@ -4399,6 +4399,21 @@
"Times the transmit interrupt task rescheduled itself");
}
+static int
+vtnet_sysctl_features(SYSCTL_HANDLER_ARGS)
+{
+ struct sbuf sb;
+ struct vtnet_softc *sc = (struct vtnet_softc *)arg1;
+ int error;
+
+ sbuf_new_for_sysctl(&sb, NULL, 0, req);
+ sbuf_printf(&sb, "%b", (uint32_t)sc->vtnet_features,
+ VIRTIO_NET_FEATURE_BITS);
+ error = sbuf_finish(&sb);
+ sbuf_delete(&sb);
+ return (error);
+}
+
static int
vtnet_sysctl_flags(SYSCTL_HANDLER_ARGS)
{
@@ -4437,6 +4452,9 @@
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, "features",
+ CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, sc, 0,
+ vtnet_sysctl_features, "A", "Features");
SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "flags",
CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, sc, 0,
vtnet_sysctl_flags, "A", "Flags");
diff --git a/sys/dev/virtio/network/virtio_net.h b/sys/dev/virtio/network/virtio_net.h
--- a/sys/dev/virtio/network/virtio_net.h
+++ b/sys/dev/virtio/network/virtio_net.h
@@ -57,6 +57,14 @@
#define VIRTIO_NET_F_CTRL_MAC_ADDR (1ULL << 23) /* Set MAC address */
#define VIRTIO_NET_F_SPEED_DUPLEX (1ULL << 63) /* Device set linkspeed and duplex */
+/* virtio net feature flag descriptions for use with printf(9) %b identifier. */
+#define VIRTIO_NET_FEATURE_BITS \
+ "\20\200CSUM\201GUEST_CSUM\202CTRL_GUEST_OFFLOADS\203MTU\205MAC\206GSO" \
+ "\207GUEST_TSO4\210GUEST_TSO6\211GUEST_ECN\212GUEST_UFO\213HOST_TSO4" \
+ "\214HOST_TSO6\215HOST_ECN\216HOST_UFO\217MRG_RXBUF\220STATUS\221CTRL_VQ" \
+ "\222CTRL_RX\223CTRL_VLAN\224CTRL_RX_EXTRA\225GUEST_ANNOUNCE\226MQ" \
+ "\227CTRL_MAC_ADDR\277SPEED_DUPLEX"
+
#define VIRTIO_NET_S_LINK_UP 1 /* Link is up */
#define VIRTIO_NET_S_ANNOUNCE 2 /* Announcement is needed */

File Metadata

Mime Type
text/plain
Expires
Sun, Dec 21, 7:42 PM (5 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27120407
Default Alt Text
D54288.id168390.diff (2 KB)

Event Timeline