On 6/12/2018 9:50 PM, Ravi Kerur wrote:

On Tue, Jun 12, 2018 at 3:31 AM, Stokes, Ian <ian.sto...@intel.com <mailto:ian.sto...@intel.com>> wrote:

    > Hi,
> > I have used first link to install, compile and run OVS 2.9.0 and DPDK
    > 18.02, second link to configure vhost-client ports. However, facing
    > several issues when configured as per the documentation. Inputs
    > appreciated.
> > http://docs.openvswitch.org/en/latest/intro/install/dpdk/
> > http://docs.openvswitch.org/en/latest/topics/dpdk/vhost-user/
    Is there a specific reason you require DPDK 18.02?

    DPDK 17.11 is the latest officially support DPDK for OVS, I'd
    recommend testing with this as I'm not sure how well validated DPDK
    18.02 is.

    In testing I also found that OVS will fail to compile with 18.02 due
    to 'rte_eth_find_next_owned_by' not being part of the stable ABI.

    The list of supported DPDK to OVS mappings can be found in the
    release doc below.


Thanks Ian. I am currently using OVS 2.9 and DPDK 18.02 seperately for different things, hence thought of trying with that first. I was able to compile and run as shown in the logs.  Issue was I didn't specify 'datapath_type=netdev' when adding the bridge. Deleting and adding the bridge with 'datapath_type', I was able to add dpdkvhostclient ports on the bridge.

Having said that, I decided to try 'ovs-master' + dpdk-17.11 as mentioned in the link and was able to run everything with Tx/Rx packets. Some clarifications I need. My testbed has physical host + containers.

(1) tried with dpdkvhostuser (server port on OVS on host) and virtio-user-client (testpmd/dpdk on containers). Was able to configure and run traffic. I do see following messages in log file

2018-06-12T15:51:39.152Z|00080|netdev_dpdk|WARN|dpdkvhostuser ports are considered deprecated;  please migrate to dpdkvhostuserclient ports.

Any reason why dpdkvhostuser is not recommended or being deprecated?

Sure, the documentation explains it best:

"vHost User uses a client-server model. The server creates/manages/destroys the vHost User sockets, and the client connects to the server. Depending on which port type you use, dpdkvhostuser or dpdkvhostuserclient, a different configuration of the client-server model is used.

For vhost-user ports, Open vSwitch acts as the server and QEMU the client. This means if OVS dies, all VMs must be restarted. On the other hand, for vhost-user-client ports, OVS acts as the client and QEMU the server. This means OVS can die and be restarted without issue, and it is also possible to restart an instance itself. For this reason, vhost-user-client ports are the preferred type for all known use cases; the only limitation is that vhost-user client mode ports require QEMU version 2.7. Ports of type vhost-user are currently deprecated and will be removed in a future release."


(2) tried with dpdkvhostuserclient (client port OVS on host) and virtio-user-server (testpmd/dpdk on containers). Was unable to configure. Any examples available for this?

I haven't tried this setup myself to date.

Are you running DPDK 18.05 in the container? Just looking for references to virtio-server-mode and I only spotted it in the 18.05 release notes.

From the DPDK 18.05 release notes:

Added support for virtio-user server mode.

In a container environment if the vhost-user backend restarts, there’s no way for it to reconnect to virtio-user. To address this, support for server mode has been added. In this mode the socket file is created by virtio-user, which the backend connects to. This means that if the backend restarts, it can reconnect to virtio-user and continue communications.


Note this isn't available in DPDK 17.11.

dev mailing list

Reply via email to