diff --git a/nova-compute-config.yaml b/nova-compute-config.yaml
index 63685df68f..8ba778bcd7 100644
--- a/nova-compute-config.yaml
+++ b/nova-compute-config.yaml
@@ -34,7 +34,12 @@ resources:
           debug: {get_param: Debug}
           flat-networks: {get_input: neutron_flat_networks}
           host: {get_input: neutron_host}
+          router_distributed: {get_input: neutron_router_distributed}
+          agent_mode: {get_input: neutron_agent_mode}
           ovs_db: {get_input: neutron_dsn}
+          metadata_proxy_shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
+          mechanism_drivers: {get_input: neutron_mechanism_drivers}
+          allow_automatic_l3agent_failover: {get_input: neutron_allow_l3agent_failover}
           ovs:
             local_ip: {get_input: neutron_local_ip}
             tenant_network_type: {get_input: neutron_tenant_network_type}
@@ -44,6 +49,7 @@ resources:
             enable_tunneling: {get_input: neutron_enable_tunneling}
             physical_bridge: {get_input: neutron_physical_bridge}
             public_interface: {get_input: neutron_public_interface}
+            public_interface_raw_device: {get_input: neutron_public_interface_raw_device}
           service-password: {get_input: neutron_password}
         admin-password: {get_input: admin_password}
         rabbit:
diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml
index ab958b77b4..180657a6d4 100644
--- a/nova-compute-instance.yaml
+++ b/nova-compute-instance.yaml
@@ -144,6 +144,22 @@ parameters:
         The tunnel types for the Neutron tenant network. To specify multiple
         values, use a comma separated string, like so: 'gre,vxlan'
     type: string
+  NeutronPublicInterfaceRawDevice:
+    default: ''
+    type: string
+  NeutronDVR:
+    default: 'False'
+    type: string
+  NeutronMechanismDrivers:
+    default: 'openvswitch'
+    description: |
+        The mechanism drivers for the Neutron tenant network. To specify multiple
+        values, use a comma separated string, like so: 'openvswitch,l2_population'
+    type: string
+  NeutronAllowL3AgentFailover:
+    default: 'True'
+    description: Allow automatic l3-agent failover
+    type: string
   NovaApiHost:
     type: string
   NovaComputeDriver:
@@ -240,7 +256,13 @@ resources:
         neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
         neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
         neutron_public_interface: {get_param: NeutronPublicInterface}
+        neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
         neutron_password: {get_param: NeutronPassword}
+        neutron_agent_mode: {get_param: NeutronComputeAgentMode}
+        neutron_router_distributed: {get_param: NeutronDVR}
+        neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
+        neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
+        neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
         admin_password: {get_param: AdminPassword}
         rabbit_host: {get_param: RabbitHost}
         rabbit_username: {get_param: RabbitUserName}
diff --git a/overcloud-source.yaml b/overcloud-source.yaml
index 553000624c..fdabde97ae 100644
--- a/overcloud-source.yaml
+++ b/overcloud-source.yaml
@@ -267,12 +267,46 @@ parameters:
       overcloud.yaml to include the deployment of VLAN ports to the control
       plane.
     type: string
+  NeutronPublicInterfaceRawDevice:
+    default: ''
+    description: If set, the public interface is a vlan with this device as the raw device.
+    type: string
+  NeutronComputeAgentMode:
+    default: 'dvr'
+    description: Agent mode for the neutron-l3-agent on the compute hosts
+    type: string
+  NeutronAgentMode:
+    default: 'dvr_snat'
+    description: Agent mode for the neutron-l3-agent on the controller hosts
+    type: string
+  NeutronDVR:
+    default: 'False'
+    description: Whether to configure Neutron Distributed Virtual Routers
+    type: string
+  NeutronMetadataProxySharedSecret:
+    default: 'unset'
+    description: Shared secret to prevent spoofing
+    type: string
+  NeutronNetworkType:
+    default: 'gre'
+    description: The tenant network type for Neutron, either gre or vxlan.
+    type: string
   NeutronTunnelTypes:
     default: 'gre'
     description: |
         The tunnel types for the Neutron tenant network. To specify multiple
         values, use a comma separated string, like so: 'gre,vxlan'
     type: string
+  NeutronMechanismDrivers:
+    default: 'openvswitch'
+    description: |
+        The mechanism drivers for the Neutron tenant network. To specify multiple
+        values, use a comma separated string, like so: 'openvswitch,l2_population'
+    type: string
+  NeutronAllowL3AgentFailover:
+    default: 'True'
+    description: Allow automatic l3-agent failover
+    type: string
   NovaComputeDriver:
     default: libvirt.LibvirtDriver
     type: string
@@ -418,6 +452,16 @@ resources:
             get_param: HypervisorNeutronPublicInterface
         NeutronBridgeMappings:
             get_param: NeutronBridgeMappings
+        NeutronDVR:
+            get_param: NeutronDVR
+        NeutronAgentMode:
+            get_param: NeutronComputeAgentMode
+        NeutronPublicInterfaceRawDevice:
+            get_param: NeutronPublicInterfaceRawDevice
+        NeutronMechanismDrivers:
+            get_param: NeutronMechanismDrivers
+        NeutronAllowL3AgentFailover:
+            get_param: NeutronAllowL3AgentFailover
   NovaCompute0AllNodesDeployment:
     type: FileInclude
     Path: nova-compute-instance.yaml
@@ -575,7 +619,11 @@ resources:
           debug: {get_param: Debug}
           flat-networks: {get_param: NeutronFlatNetworks}
           host: {get_input: controller_virtual_ip}
-          metadata_proxy_shared_secret: unset
+          metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
+          agent_mode: {get_param: NeutronAgentMode}
+          router_distributed: {get_param: NeutronDVR}
+          mechanism_drivers: {get_param: NeutronMechanismDrivers}
+          allow_automatic_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
           ovs:
             enable_tunneling: 'True'
             local_ip:
diff --git a/undercloud-source.yaml b/undercloud-source.yaml
index 94795934b8..b7e230db87 100644
--- a/undercloud-source.yaml
+++ b/undercloud-source.yaml
@@ -170,6 +170,9 @@ parameters:
     description: The password for the nova service account, used by nova-api.
     type: string
     hidden: true
+  NeutronDVR:
+    default: 'False'
+    type: string
   NtpServer:
     type: string
     default: ''