mkdir -p %{buildroot}%{_sysconfdir}/opnfv-apex/
 install config/deploy/os-nosdn-nofeature-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
+install config/deploy/os-nosdn-ovs-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml
 install config/deploy/os-nosdn-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
 install config/deploy/os-nosdn-performance-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
+install config/deploy/os-nosdn-ovs-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-ha.yaml
 install config/deploy/os-odl_l2-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-nofeature-ha.yaml
 install config/deploy/os-odl_l2-sfc-noha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l2-sfc-noha.yaml
 install config/deploy/os-odl_l3-nofeature-ha.yaml %{buildroot}%{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-ha.yaml
 %{python3_sitelib}/apex/
 %{_var}/opt/opnfv/lib/installer/onos/onos_gw_mac_update.sh
 %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-noha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-noha.yaml
 %{_sysconfdir}/opnfv-apex/os-nosdn-nofeature-ha.yaml
 %{_sysconfdir}/opnfv-apex/os-nosdn-performance-ha.yaml
+%{_sysconfdir}/opnfv-apex/os-nosdn-ovs-ha.yaml
 %{_sysconfdir}/opnfv-apex/os-odl_l2-nofeature-ha.yaml
 %{_sysconfdir}/opnfv-apex/os-odl_l2-sfc-noha.yaml
 %{_sysconfdir}/opnfv-apex/os-odl_l3-nofeature-ha.yaml
 
     exit 1
   fi
 
+  # Handle different dataplanes
+  if [ "${deploy_options_array['dataplane']}" != 'ovs']; then
+    echo "${red}ovs is the only currently available dataplane. ${deploy_options_array['dataplane']} not implemented${reset}"
+    exit 1
+  fi
+
   # Make sure the correct overcloud image is available
   if [ ! -f $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 ]; then
       echo "${red} $RESOURCES/overcloud-full-${SDN_IMAGE}.qcow2 is required to execute your deployment."
 
                        'sdn_l3',
                        'tacker',
                        'congress',
+                       'dataplane',
                        'sfc',
                        'vpn']
 
 
 VALID_ROLES = ['Controller', 'Compute', 'ObjectStorage']
 VALID_PERF_OPTS = ['kernel','nova']
+VALID_DATAPLANES = ['ovs','ovs_dpdk','fdio']
 
 class DeploySettings:
     """
         if not isinstance(deploy_options, dict):
             raise DeploySettingsException("deploy_options should be a list")
 
-        for option in deploy_options:
-            if option not in REQ_DEPLOY_SETTINGS + OPT_DEPLOY_SETTINGS:
+        for setting, value in deploy_options.items():
+            if setting not in REQ_DEPLOY_SETTINGS + OPT_DEPLOY_SETTINGS:
                 raise DeploySettingsException("Invalid deploy_option {} "
-                                              "specified".format(option))
-
-        for required_setting in REQ_DEPLOY_SETTINGS:
-            if required_setting not in deploy_options:
-                self.deploy_settings['deploy_options']['required'] = False
+                                              "specified".format(setting))
+            if setting == 'dataplane':
+                if value not in VALID_DATAPLANES:
+                    planes = ' '.join(VALID_DATAPLANES)
+                    raise DeploySettingsException("Invalid dataplane {} "
+                                                  "specified. Valid dataplanes:"
+                                                  " {}".format(value,planes))
+
+
+        for req_set in REQ_DEPLOY_SETTINGS:
+            if req_set not in deploy_options:
+                if req_set == 'dataplane':
+                    self.deploy_settings['deploy_options'][req_set] = 'ovs'
+                else:
+                    self.deploy_settings['deploy_options'][req_set] = False
 
         if 'performance' in deploy_options:
             if not isinstance(deploy_options['performance'], dict):