Hi!

I would like to know what the plans are for going forward with vhost server 
ports. Judging from the documentation, it seems they will be deprecated and 
removed at a future point in time.

This presents a problem for container networking today. The container 
networking solution suggested by DPDK leverages VIRTIO PMD Virtual Devices 
linking up on a socket being hosted by the vhost server. This is the vhost-user 
port we have today in OVS. The vhost-user-client relies on QEMU or an external 
process to create the socket and then a VIRTIO PMD to link up with it for 
communications. This is not ideal for container networking where it is better 
to have OVS start this server as we've seen so far. This also unifies the 
socket creation mechanism to OVS rather than having it be distribution specific.

The vhost-user-client does not directly interact with DPDK's vhost-server 
option (beyond registration of its existence). It registers with the socket and 
the two acknowledge each other, but no initialization is done to bring the link 
up. This requires a virtio PMD vdev to initialize the vhost socket correctly 
(only function to actually send messages during initialization-vhost-client 
does not do this) as we've seen so far.
For more info on this, check drivers/net/virtio/virtio_user_ethdev.c for 
virtio_user_dev_init()
Or virtio_user_dev_init definition at 
drivers/net/virtio/virtio_user/virtio_user_dev.c
The above is the actual interaction between a VIRTIO PMD and Vhost server, this 
is the only location I see this invoked where everything is set and the 
'add_device' callback is actually setup on the vhost side.

IPC use cases are not addressed with the current plans going forward for vhost 
(from what we have seen), how does OVS team plan to maintain support for IPC 
and container networking?

We use vhost-server ovs ports with virtio vdevs on the containers. If the 
current plan is still to deprecate this method, then our next plan will be to 
use Virtio PMD Vdev ports on OVS with an external listener to reset/add/delete 
the vdev port when the socket goes down and when it is created again. This 
method is in fact better for keeping up time on the containers if OVS goes down 
for the same reason vhost-user-client is better than vhost-user for QEMU 
environments.



In short, vhost-user-client does not work with vhost-user server on DPDK for 
IPC applications as things stand now.  Vhost-user server is still the 
predominant choice for container networking with Virtio Vdevs. Any feedback or 
suggestions are welcome!

If there are other (better) methods to support IPC/container networking with 
OVS, please let us know. (Looks like DPDK Rings were removed some time back as 
well)

Thanks for your time and help!
Regards,
Marc Magnuson
_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to