Merge "[opendaylight] Handle dpdk mode on compute nodes"
diff --git a/README.rst b/README.rst
index c1bb7c2..3e01825 100644
--- a/README.rst
+++ b/README.rst
@@ -694,6 +694,7 @@
compute:
version: mitaka
dpdk: True
+ vhost_mode: client # options: client|server (default)
vhost_socket_dir: /var/run/openvswitch
backend:
engine: ml2
diff --git a/neutron/opendaylight/client.sls b/neutron/opendaylight/client.sls
index 3c4a6a4..fb5829f 100644
--- a/neutron/opendaylight/client.sls
+++ b/neutron/opendaylight/client.sls
@@ -17,7 +17,13 @@
- name: 'ovs-vsctl set-manager {{ ovs_manager|join(' ') }}'
- unless: 'ovs-vsctl get-manager | fgrep -qx {{ neutron.opendaylight.ovsdb_odl_iface }}'
+{%- if neutron.dpdk|default(False) %}
+{%- set ovs_hostconfig = ['--ovs_dpdk --vhostuser_mode=' ~ neutron.vhost_mode|default('server')] %}
+{%- do ovs_hostconfig.append('--vhostuser_socket_dir=' ~ neutron.vhost_socket_dir) if neutron.vhost_socket_dir is defined %}
+{%- else %}
{%- set ovs_hostconfig = ['--noovs_dpdk'] %}
+{%- endif %}
+
{%- do ovs_hostconfig.append('--local_ip=' ~ neutron.opendaylight.tunnel_ip) if neutron.opendaylight.tunnel_ip is defined %}
{%- do ovs_hostconfig.append('--bridge_mapping=' ~ neutron.opendaylight.provider_mappings) if neutron.opendaylight.provider_mappings is defined %}