[ovs-dev] Issue with OVS 2.9.0, DPDK 18.02 and vhost-user
rkerur at gmail.com
Thu Jun 14 11:45:21 UTC 2018
On Wed, Jun 13, 2018 at 9:50 AM Ian Stokes <ian.stokes at intel.com> wrote:
> On 6/12/2018 9:50 PM, Ravi Kerur wrote:
> > On Tue, Jun 12, 2018 at 3:31 AM, Stokes, Ian <ian.stokes at intel.com
> > <mailto:ian.stokes at intel.com>> wrote:
> > > Hi,
> > >
> > > I have used first link to install, compile and run OVS 2.9.0 and
> > > 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/intro/install/dpdk/>
> > >
> > > http://docs.openvswitch.org/en/latest/topics/dpdk/vhost-user/
> > <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.
> > http://docs.openvswitch.org/en/latest/faq/releases/
> > <http://docs.openvswitch.org/en/latest/faq/releases/>
> > 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?
Thanks for the pointers. Since the message says 'deprecated' I wasn't sure
functionality will be available in future releases.
> 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
> Note this isn't available in DPDK 17.11.
Container dpdk version is 18.02. I will try with 18.05 soon. Thanks again
for your help.
More information about the dev