Hi Dariusz,
On Mon, Aug 21, 2017 at 11:34:42AM +0200, Dariusz Stojaczyk wrote:
When user receives destroy_device signal, he does not know *why* that
event happened. He does not differ between socket shutdown and virtio
processing pause. User could completely delete device during transition
from BIOS to kernel, causing freeze or possibly kernel panic. Instead
of changing new_device/destroy_device callbacks and breaking the ABI,
a set of new functions new_connection/destroy_connection has been added.
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojac...@intel.com>
---
lib/librte_vhost/rte_vhost.h | 5 ++++-
lib/librte_vhost/socket.c | 23 +++++++++++++++++++----
2 files changed, 23 insertions(+), 5 deletions(-)
diff --git a/lib/librte_vhost/rte_vhost.h b/lib/librte_vhost/rte_vhost.h
index 8c974eb..8f86167 100644
--- a/lib/librte_vhost/rte_vhost.h
+++ b/lib/librte_vhost/rte_vhost.h
@@ -107,7 +107,10 @@ struct vhost_device_ops {
*/
int (*features_changed)(int vid, uint64_t features);
- void *reserved[4]; /**< Reserved for future extension */
+ int (*new_connection)(int vid); /**< Connect to socket. */
+ void (*destroy_connection)(int vid); /**< Disconnect from socket */
I'm a little uncertain but my gut feeling is that in this context a connection
is
something between two sockets, not between devices. I would probably
add these callbacks to struct vhost_user_socket. This is also where we
keep the list of connections.
regards,
Jens