summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsf <sf@openbsd.org>2019-03-24 18:22:36 +0000
committersf <sf@openbsd.org>2019-03-24 18:22:36 +0000
commitb3dbd5f2ca08c6605873f66f80eb0045b3d69c0f (patch)
treea6c030c4f0c6b145a989213924224275ae8cbfae
parentvirtio: Prepare for 64 feature bits (diff)
downloadwireguard-openbsd-b3dbd5f2ca08c6605873f66f80eb0045b3d69c0f.tar.xz
wireguard-openbsd-b3dbd5f2ca08c6605873f66f80eb0045b3d69c0f.zip
virtio: Add a few feature bit defines and names
ok mlarkin@
-rw-r--r--sys/dev/pv/if_vio.c86
-rw-r--r--sys/dev/pv/vioblk.c5
-rw-r--r--sys/dev/pv/vioblkreg.h23
-rw-r--r--sys/dev/pv/virtio.c3
4 files changed, 66 insertions, 51 deletions
diff --git a/sys/dev/pv/if_vio.c b/sys/dev/pv/if_vio.c
index a2ff1a81391..8a7a2564650 100644
--- a/sys/dev/pv/if_vio.c
+++ b/sys/dev/pv/if_vio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_vio.c,v 1.9 2019/03/24 18:21:12 sf Exp $ */
+/* $OpenBSD: if_vio.c,v 1.10 2019/03/24 18:22:36 sf Exp $ */
/*
* Copyright (c) 2012 Stefan Fritsch, Alexander Fiveg.
@@ -68,25 +68,29 @@
#define VIRTIO_NET_CONFIG_STATUS 6 /* 16bit */
/* Feature bits */
-#define VIRTIO_NET_F_CSUM (1ULL<<0)
-#define VIRTIO_NET_F_GUEST_CSUM (1ULL<<1)
-#define VIRTIO_NET_F_MAC (1ULL<<5)
-#define VIRTIO_NET_F_GSO (1ULL<<6)
-#define VIRTIO_NET_F_GUEST_TSO4 (1ULL<<7)
-#define VIRTIO_NET_F_GUEST_TSO6 (1ULL<<8)
-#define VIRTIO_NET_F_GUEST_ECN (1ULL<<9)
-#define VIRTIO_NET_F_GUEST_UFO (1ULL<<10)
-#define VIRTIO_NET_F_HOST_TSO4 (1ULL<<11)
-#define VIRTIO_NET_F_HOST_TSO6 (1ULL<<12)
-#define VIRTIO_NET_F_HOST_ECN (1ULL<<13)
-#define VIRTIO_NET_F_HOST_UFO (1ULL<<14)
-#define VIRTIO_NET_F_MRG_RXBUF (1ULL<<15)
-#define VIRTIO_NET_F_STATUS (1ULL<<16)
-#define VIRTIO_NET_F_CTRL_VQ (1ULL<<17)
-#define VIRTIO_NET_F_CTRL_RX (1ULL<<18)
-#define VIRTIO_NET_F_CTRL_VLAN (1ULL<<19)
-#define VIRTIO_NET_F_CTRL_RX_EXTRA (1ULL<<20)
-#define VIRTIO_NET_F_GUEST_ANNOUNCE (1ULL<<21)
+#define VIRTIO_NET_F_CSUM (1ULL<<0)
+#define VIRTIO_NET_F_GUEST_CSUM (1ULL<<1)
+#define VIRTIO_NET_F_CTRL_GUEST_OFFLOADS (1ULL<<2)
+#define VIRTIO_NET_F_MTU (1ULL<<3)
+#define VIRTIO_NET_F_MAC (1ULL<<5)
+#define VIRTIO_NET_F_GSO (1ULL<<6)
+#define VIRTIO_NET_F_GUEST_TSO4 (1ULL<<7)
+#define VIRTIO_NET_F_GUEST_TSO6 (1ULL<<8)
+#define VIRTIO_NET_F_GUEST_ECN (1ULL<<9)
+#define VIRTIO_NET_F_GUEST_UFO (1ULL<<10)
+#define VIRTIO_NET_F_HOST_TSO4 (1ULL<<11)
+#define VIRTIO_NET_F_HOST_TSO6 (1ULL<<12)
+#define VIRTIO_NET_F_HOST_ECN (1ULL<<13)
+#define VIRTIO_NET_F_HOST_UFO (1ULL<<14)
+#define VIRTIO_NET_F_MRG_RXBUF (1ULL<<15)
+#define VIRTIO_NET_F_STATUS (1ULL<<16)
+#define VIRTIO_NET_F_CTRL_VQ (1ULL<<17)
+#define VIRTIO_NET_F_CTRL_RX (1ULL<<18)
+#define VIRTIO_NET_F_CTRL_VLAN (1ULL<<19)
+#define VIRTIO_NET_F_CTRL_RX_EXTRA (1ULL<<20)
+#define VIRTIO_NET_F_GUEST_ANNOUNCE (1ULL<<21)
+#define VIRTIO_NET_F_MQ (1ULL<<22)
+#define VIRTIO_NET_F_CTRL_MAC_ADDR (1ULL<<23)
/*
* Config(8) flags. The lowest byte is reserved for generic virtio stuff.
@@ -97,25 +101,29 @@
static const struct virtio_feature_name virtio_net_feature_names[] = {
#if VIRTIO_DEBUG
- { VIRTIO_NET_F_CSUM, "CSum" },
- { VIRTIO_NET_F_GUEST_CSUM, "GuestCSum" },
- { VIRTIO_NET_F_MAC, "MAC" },
- { VIRTIO_NET_F_GSO, "GSO" },
- { VIRTIO_NET_F_GUEST_TSO4, "GuestTSO4" },
- { VIRTIO_NET_F_GUEST_TSO6, "GuestTSO6" },
- { VIRTIO_NET_F_GUEST_ECN, "GuestECN" },
- { VIRTIO_NET_F_GUEST_UFO, "GuestUFO" },
- { VIRTIO_NET_F_HOST_TSO4, "HostTSO4" },
- { VIRTIO_NET_F_HOST_TSO6, "HostTSO6" },
- { VIRTIO_NET_F_HOST_ECN, "HostECN" },
- { VIRTIO_NET_F_HOST_UFO, "HostUFO" },
- { VIRTIO_NET_F_MRG_RXBUF, "MrgRXBuf" },
- { VIRTIO_NET_F_STATUS, "Status" },
- { VIRTIO_NET_F_CTRL_VQ, "CtrlVQ" },
- { VIRTIO_NET_F_CTRL_RX, "CtrlRX" },
- { VIRTIO_NET_F_CTRL_VLAN, "CtrlVLAN" },
- { VIRTIO_NET_F_CTRL_RX_EXTRA, "CtrlRXExtra" },
- { VIRTIO_NET_F_GUEST_ANNOUNCE, "GuestAnnounce" },
+ { VIRTIO_NET_F_CSUM, "CSum" },
+ { VIRTIO_NET_F_GUEST_CSUM, "GuestCSum" },
+ { VIRTIO_NET_F_CTRL_GUEST_OFFLOADS, "CtrlGuestOffl" },
+ { VIRTIO_NET_F_MTU, "MTU", },
+ { VIRTIO_NET_F_MAC, "MAC" },
+ { VIRTIO_NET_F_GSO, "GSO" },
+ { VIRTIO_NET_F_GUEST_TSO4, "GuestTSO4" },
+ { VIRTIO_NET_F_GUEST_TSO6, "GuestTSO6" },
+ { VIRTIO_NET_F_GUEST_ECN, "GuestECN" },
+ { VIRTIO_NET_F_GUEST_UFO, "GuestUFO" },
+ { VIRTIO_NET_F_HOST_TSO4, "HostTSO4" },
+ { VIRTIO_NET_F_HOST_TSO6, "HostTSO6" },
+ { VIRTIO_NET_F_HOST_ECN, "HostECN" },
+ { VIRTIO_NET_F_HOST_UFO, "HostUFO" },
+ { VIRTIO_NET_F_MRG_RXBUF, "MrgRXBuf" },
+ { VIRTIO_NET_F_STATUS, "Status" },
+ { VIRTIO_NET_F_CTRL_VQ, "CtrlVQ" },
+ { VIRTIO_NET_F_CTRL_RX, "CtrlRX" },
+ { VIRTIO_NET_F_CTRL_VLAN, "CtrlVLAN" },
+ { VIRTIO_NET_F_CTRL_RX_EXTRA, "CtrlRXExtra" },
+ { VIRTIO_NET_F_GUEST_ANNOUNCE, "GuestAnnounce" },
+ { VIRTIO_NET_F_MQ, "MQ" },
+ { VIRTIO_NET_F_CTRL_MAC_ADDR, "CtrlMAC" },
#endif
{ 0, NULL }
};
diff --git a/sys/dev/pv/vioblk.c b/sys/dev/pv/vioblk.c
index b3f820dc210..aeb7852d69f 100644
--- a/sys/dev/pv/vioblk.c
+++ b/sys/dev/pv/vioblk.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vioblk.c,v 1.11 2019/03/24 18:21:12 sf Exp $ */
+/* $OpenBSD: vioblk.c,v 1.12 2019/03/24 18:22:36 sf Exp $ */
/*
* Copyright (c) 2012 Stefan Fritsch.
@@ -82,6 +82,9 @@ struct virtio_feature_name vioblk_feature_names[] = {
{ VIRTIO_BLK_F_SCSI, "SCSI" },
{ VIRTIO_BLK_F_FLUSH, "Flush" },
{ VIRTIO_BLK_F_TOPOLOGY, "Topology" },
+ { VIRTIO_BLK_F_CONFIG_WCE, "ConfigWCE" },
+ { VIRTIO_BLK_F_DISCARD, "Discard" },
+ { VIRTIO_BLK_F_WRITE_ZEROES, "Write0s" },
#endif
{ 0, NULL }
};
diff --git a/sys/dev/pv/vioblkreg.h b/sys/dev/pv/vioblkreg.h
index d78eaf97b21..f444261a5cf 100644
--- a/sys/dev/pv/vioblkreg.h
+++ b/sys/dev/pv/vioblkreg.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: vioblkreg.h,v 1.3 2019/03/24 18:21:12 sf Exp $ */
+/* $OpenBSD: vioblkreg.h,v 1.4 2019/03/24 18:22:36 sf Exp $ */
/*
* Copyright (c) 2012 Stefan Fritsch.
@@ -40,15 +40,18 @@
#define VIRTIO_BLK_CONFIG_BLK_SIZE 20 /* 32bit */
/* Feature bits */
-#define VIRTIO_BLK_F_BARRIER (1ULL<<0)
-#define VIRTIO_BLK_F_SIZE_MAX (1ULL<<1)
-#define VIRTIO_BLK_F_SEG_MAX (1ULL<<2)
-#define VIRTIO_BLK_F_GEOMETRY (1ULL<<4)
-#define VIRTIO_BLK_F_RO (1ULL<<5)
-#define VIRTIO_BLK_F_BLK_SIZE (1ULL<<6)
-#define VIRTIO_BLK_F_SCSI (1ULL<<7)
-#define VIRTIO_BLK_F_FLUSH (1ULL<<9)
-#define VIRTIO_BLK_F_TOPOLOGY (1ULL<<10)
+#define VIRTIO_BLK_F_BARRIER (1ULL<<0)
+#define VIRTIO_BLK_F_SIZE_MAX (1ULL<<1)
+#define VIRTIO_BLK_F_SEG_MAX (1ULL<<2)
+#define VIRTIO_BLK_F_GEOMETRY (1ULL<<4)
+#define VIRTIO_BLK_F_RO (1ULL<<5)
+#define VIRTIO_BLK_F_BLK_SIZE (1ULL<<6)
+#define VIRTIO_BLK_F_SCSI (1ULL<<7)
+#define VIRTIO_BLK_F_FLUSH (1ULL<<9)
+#define VIRTIO_BLK_F_TOPOLOGY (1ULL<<10)
+#define VIRTIO_BLK_F_CONFIG_WCE (1ULL<<11)
+#define VIRTIO_BLK_F_DISCARD (1ULL<<12)
+#define VIRTIO_BLK_F_WRITE_ZEROES (1ULL<<13)
/* Command */
#define VIRTIO_BLK_T_IN 0
diff --git a/sys/dev/pv/virtio.c b/sys/dev/pv/virtio.c
index 27bca1a5506..3abbc072077 100644
--- a/sys/dev/pv/virtio.c
+++ b/sys/dev/pv/virtio.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: virtio.c,v 1.15 2019/03/24 18:21:12 sf Exp $ */
+/* $OpenBSD: virtio.c,v 1.16 2019/03/24 18:22:36 sf Exp $ */
/* $NetBSD: virtio.c,v 1.3 2011/11/02 23:05:52 njoly Exp $ */
/*
@@ -80,6 +80,7 @@ static const struct virtio_feature_name transport_feature_names[] = {
{ VIRTIO_F_RING_INDIRECT_DESC, "RingIndirectDesc"},
{ VIRTIO_F_RING_EVENT_IDX, "RingEventIdx"},
{ VIRTIO_F_BAD_FEATURE, "BadFeature"},
+ { VIRTIO_F_VERSION_1, "Version1"},
{ 0, NULL}
};