+Vhost user implementation
+~~~~~~~~~~~~~~~~~~~~~~~~~
+When vSwitch registers a vhost driver, it will create a Unix domain socket server
+into the system. This server will listen for a connection and process the vhost message from
+QEMU simulator.
+
+When there is a new socket connection, it means a new virtio device has been created in
+the guest virtual machine, and the vhost driver will create a vhost device for this virtio device.
+
+For messages with a file descriptor, the file descriptor could be directly used in the vhost
+process as it is already installed by Unix domain socket.
+
+ * VHOST_SET_MEM_TABLE
+ * VHOST_SET_VRING_KICK
+ * VHOST_SET_VRING_CALL
+ * VHOST_SET_LOG_FD
+ * VHOST_SET_VRING_ERR
+
+For VHOST_SET_MEM_TABLE message, QEMU will send us information for each memory region and its
+file descriptor in the ancillary data of the message. The fd is used to map that region.
+
+There is no VHOST_NET_SET_BACKEND message as in vhost cuse to signal us whether virtio device
+is ready or should be stopped.
+VHOST_SET_VRING_KICK is used as the signal to put the vhost device onto data plane.
+VHOST_GET_VRING_BASE is used as the signal to remove vhost device from data plane.
+
+When the socket connection is closed, vhost will destroy the device.
+