* [Qemu-devel] [PATCH v3 0/3] Vhost-user Spec: extension for vhost-pci
@ 2016-12-19 11:05 Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 1/3] spec/vhost-user: extend vhost-user to support the vhost-pci based inter-vm communiaction Wei Wang
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Wei Wang @ 2016-12-19 11:05 UTC (permalink / raw)
To: marcandre.lureau, mst, stefanha, pbonzini, qemu-devel, virtio-comment
Cc: Wei Wang
This spec patch series extends the vhost-user protocol to support the vhost-pci
based inter-VM communiaction.
v2->v3 changes:
1) replace VHOST_USER_SET_DEV_INFO with VHOST_USER_SET_DEVICE_ID
2) replace VHOST_USER_SET_PEER_CONNECTION with VHOST_USER_SET_VHOST_PCI
v1->v2 changes:
1) start from the simpler case - change "1-slave-N-master" to "1-slave-1-master"
configuration plane. Accordingly, the previous "uuid", "conn_id" are removed;
2) add the _CREATE_ and _DESTROY_ comands to the VHOST_USER_SET_PEER_CONNECTION
message; and
3) fix the VHOST_USER prefix.
Wei Wang (3):
spec/vhost-user: extend vhost-user to support the vhost-pci based
inter-vm communiaction
spec/vhost-user: add VHOST_USER_PROTOCOL_F_SET_DEVICE_ID
spec/vhost-user: add the VHOST_USER_SET_VHOST_PCI message
docs/specs/vhost-user.txt | 44 ++++++++++++++++++++++++++++++++++++++------
1 file changed, 38 insertions(+), 6 deletions(-)
--
2.7.4
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v3 1/3] spec/vhost-user: extend vhost-user to support the vhost-pci based inter-vm communiaction
2016-12-19 11:05 [Qemu-devel] [PATCH v3 0/3] Vhost-user Spec: extension for vhost-pci Wei Wang
@ 2016-12-19 11:05 ` Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 2/3] spec/vhost-user: add VHOST_USER_PROTOCOL_F_SET_DEVICE_ID Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 3/3] spec/vhost-user: add the VHOST_USER_SET_VHOST_PCI message Wei Wang
2 siblings, 0 replies; 4+ messages in thread
From: Wei Wang @ 2016-12-19 11:05 UTC (permalink / raw)
To: marcandre.lureau, mst, stefanha, pbonzini, qemu-devel, virtio-comment
Cc: Wei Wang
The protocol feature, VHOST_USER_PROTOCOL_F_VHOST_PCI, indicates the
support of vhost-pci. The vhost-pci extension requires the master side
implementation to support an asynchronous socket read method. This is
used when the slave side vhost-pci device and driver finishes the
feature bits negotiation. The negotiated feature bits are sent to the
master. If the feature bits sent by the slave are a subset of the ones
that were sent by the master, the master should perform a reset of the
master device (e.g. virtio_net), to re-negotiate the feature bits using
the ones sent by the slave.
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
---
docs/specs/vhost-user.txt | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt
index d70bd83..18e49d0 100644
--- a/docs/specs/vhost-user.txt
+++ b/docs/specs/vhost-user.txt
@@ -17,12 +17,15 @@ The protocol defines 2 sides of the communication, master and slave. Master is
the application that shares its virtqueues, in our case QEMU. Slave is the
consumer of the virtqueues.
-In the current implementation QEMU is the Master, and the Slave is intended to
+In the traditional implementation QEMU is the master, and the slave is intended to
be a software Ethernet switch running in user space, such as Snabbswitch.
Master and slave can be either a client (i.e. connecting) or server (listening)
in the socket communication.
+The current vhost-user protocol is extended to support the vhost-pci based inter-VM
+communication. In this case, both the slave and master are QEMU instances.
+
Message Specification
---------------------
@@ -36,7 +39,7 @@ consists of 3 header fields and a payload:
* Request: 32-bit type of the request
* Flags: 32-bit bit field:
- Lower 2 bits are the version (currently 0x01)
- - Bit 2 is the reply flag - needs to be sent on each reply from the slave
+ - Bit 2 is the reply flag - needs to be sent on each reply
- Bit 3 is the need_reply flag - see VHOST_USER_PROTOCOL_F_REPLY_ACK for
details.
* Size - 32-bit size of the payload
@@ -119,9 +122,9 @@ The protocol for vhost-user is based on the existing implementation of vhost
for the Linux Kernel. Most messages that can be sent via the Unix domain socket
implementing vhost-user have an equivalent ioctl to the kernel implementation.
-The communication consists of master sending message requests and slave sending
-message replies. Most of the requests don't require replies. Here is a list of
-the ones that do:
+Traditionally, the communication consists of master sending message requests and
+slave sending message replies. Most of the requests don't require replies. Here
+is a list of the ones that do:
* VHOST_USER_GET_FEATURES
* VHOST_USER_GET_PROTOCOL_FEATURES
@@ -130,6 +133,10 @@ the ones that do:
[ Also see the section on REPLY_ACK protocol extension. ]
+Currently, the communication also supports the slave actively sending messages
+to the master. Here is a list of them:
+ * VHOST_USER_SET_FEATURES
+
There are several messages that the master sends with file descriptors passed
in the ancillary data:
@@ -259,6 +266,7 @@ Protocol features
#define VHOST_USER_PROTOCOL_F_LOG_SHMFD 1
#define VHOST_USER_PROTOCOL_F_RARP 2
#define VHOST_USER_PROTOCOL_F_REPLY_ACK 3
+#define VHOST_USER_PROTOCOL_F_VHOST_PCI 4
Message types
-------------
@@ -279,8 +287,9 @@ Message types
Id: 2
Ioctl: VHOST_SET_FEATURES
Master payload: u64
+ Slave payload: u64
- Enable features in the underlying vhost implementation using a bitmask.
+ Feature bits negotiation between the master and slave using a bitmask.
Feature bit VHOST_USER_F_PROTOCOL_FEATURES signals slave support for
VHOST_USER_GET_PROTOCOL_FEATURES and VHOST_USER_SET_PROTOCOL_FEATURES.
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v3 2/3] spec/vhost-user: add VHOST_USER_PROTOCOL_F_SET_DEVICE_ID
2016-12-19 11:05 [Qemu-devel] [PATCH v3 0/3] Vhost-user Spec: extension for vhost-pci Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 1/3] spec/vhost-user: extend vhost-user to support the vhost-pci based inter-vm communiaction Wei Wang
@ 2016-12-19 11:05 ` Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 3/3] spec/vhost-user: add the VHOST_USER_SET_VHOST_PCI message Wei Wang
2 siblings, 0 replies; 4+ messages in thread
From: Wei Wang @ 2016-12-19 11:05 UTC (permalink / raw)
To: marcandre.lureau, mst, stefanha, pbonzini, qemu-devel, virtio-comment
Cc: Wei Wang
The VHOST_USER_PROTOCOL_F_SET_DEVICE_ID protocol feature indicates
that the slave side implementation supports different types of devices.
The master tells the slave what type of device to create by sending
a VHOST_USER_SET_DEVICE_ID message.
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
---
docs/specs/vhost-user.txt | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt
index 18e49d0..80dcfc1 100644
--- a/docs/specs/vhost-user.txt
+++ b/docs/specs/vhost-user.txt
@@ -267,6 +267,7 @@ Protocol features
#define VHOST_USER_PROTOCOL_F_RARP 2
#define VHOST_USER_PROTOCOL_F_REPLY_ACK 3
#define VHOST_USER_PROTOCOL_F_VHOST_PCI 4
+#define VHOST_USER_PROTOCOL_F_SET_DEVICE_ID 5
Message types
-------------
@@ -479,6 +480,16 @@ Message types
The first 6 bytes of the payload contain the mac address of the guest to
allow the vhost user backend to construct and broadcast the fake RARP.
+ * VHOST_USER_SET_DEVICE_ID
+ Id: 20
+ Equivalent ioctl: N/A
+ Master payload: u64
+
+ The master sends the virtio device id to the slave. The virtio device id
+ indicates the device type of the master device.
+ This request should be sent only when VHOST_USER_PROTOCOL_F_SET_DEVICE_ID
+ has been negotiated.
+
VHOST_USER_PROTOCOL_F_REPLY_ACK:
-------------------------------
The original vhost-user specification only demands replies for certain
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Qemu-devel] [PATCH v3 3/3] spec/vhost-user: add the VHOST_USER_SET_VHOST_PCI message
2016-12-19 11:05 [Qemu-devel] [PATCH v3 0/3] Vhost-user Spec: extension for vhost-pci Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 1/3] spec/vhost-user: extend vhost-user to support the vhost-pci based inter-vm communiaction Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 2/3] spec/vhost-user: add VHOST_USER_PROTOCOL_F_SET_DEVICE_ID Wei Wang
@ 2016-12-19 11:05 ` Wei Wang
2 siblings, 0 replies; 4+ messages in thread
From: Wei Wang @ 2016-12-19 11:05 UTC (permalink / raw)
To: marcandre.lureau, mst, stefanha, pbonzini, qemu-devel, virtio-comment
Cc: Wei Wang
The VHOST_USER_SET_VHOST_PCI message is introduced to start/stop
the vhost-pci based inter-VM communiaction by the master.
Signed-off-by: Wei Wang <wei.w.wang@intel.com>
---
docs/specs/vhost-user.txt | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/docs/specs/vhost-user.txt b/docs/specs/vhost-user.txt
index 80dcfc1..4e2ce60 100644
--- a/docs/specs/vhost-user.txt
+++ b/docs/specs/vhost-user.txt
@@ -490,6 +490,18 @@ Message types
This request should be sent only when VHOST_USER_PROTOCOL_F_SET_DEVICE_ID
has been negotiated.
+ * VHOST_USER_SET_VHOST_PCI
+
+ Id: 21
+ Equivalent ioctl: N/A
+ Master payload: u64
+
+ The master requests the slave to start or stop the vhost-pci device for
+ the inter-VM communication.
+ This request should be sent only when VHOST_USER_PROTOCOL_F_VHOST_PCI has
+ been negotiated.
+
+
VHOST_USER_PROTOCOL_F_REPLY_ACK:
-------------------------------
The original vhost-user specification only demands replies for certain
--
2.7.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-12-19 11:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-19 11:05 [Qemu-devel] [PATCH v3 0/3] Vhost-user Spec: extension for vhost-pci Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 1/3] spec/vhost-user: extend vhost-user to support the vhost-pci based inter-vm communiaction Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 2/3] spec/vhost-user: add VHOST_USER_PROTOCOL_F_SET_DEVICE_ID Wei Wang
2016-12-19 11:05 ` [Qemu-devel] [PATCH v3 3/3] spec/vhost-user: add the VHOST_USER_SET_VHOST_PCI message Wei Wang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.