Page MenuHomeFreeBSD

D54288.id168328.diff
No OneTemporary

D54288.id168328.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
@@ -273,6 +273,8 @@
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.
+.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,23 @@
"Times the transmit interrupt task rescheduled itself");
}
+static int
+vtnet_sysctl_features(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", (uint32_t)sc->vtnet_features,
+ VIRTIO_NET_FEATURE_BITS);
+ sbuf_finish(sb);
+ error = SYSCTL_OUT(req, sbuf_data(sb), sbuf_len(sb) + 1);
+ sbuf_delete(sb);
+ return (error);
+}
+
static int
vtnet_sysctl_flags(SYSCTL_HANDLER_ARGS)
{
@@ -4437,6 +4454,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
Fri, Dec 19, 9:59 PM (9 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27087895
Default Alt Text
D54288.id168328.diff (2 KB)

Event Timeline