diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml
index d68a775fa444c78a429a4f41f86cd02bbfdf9f0e..bc4b272655362b02663e94d8f5e1a723e11c0ffb 100644
--- a/ansible/roles/neutron/defaults/main.yml
+++ b/ansible/roles/neutron/defaults/main.yml
@@ -59,3 +59,5 @@ neutron_logging_verbose: "{{ openstack_logging_verbose }}"
 neutron_logging_debug: "{{ openstack_logging_debug }}"
 
 neutron_keystone_user: "neutron"
+
+neutron_bridge_name: "br-ex"
diff --git a/ansible/roles/neutron/tasks/start.yml b/ansible/roles/neutron/tasks/start.yml
index 4cecfc35b6b981dbb8ae8d3ef9c1069c73cef55d..daa21dd7d55ec168d98e7d220ad06b37bf263795 100644
--- a/ansible/roles/neutron/tasks/start.yml
+++ b/ansible/roles/neutron/tasks/start.yml
@@ -23,6 +23,11 @@
   when: inventory_hostname in groups['compute'] or
         inventory_hostname in groups['neutron-agents']
 
+- name: Ensuring OVS bridge is properly setup
+  command: docker exec openvswitch_vswitchd /opt/kolla/ovs_ensure_configured.sh {{ neutron_bridge_name }} {{ neutron_interface }}
+  register: status
+  changed_when: status.stdout.find('changed') != -1
+
 - include: ../../start.yml
   vars:
     container_environment:
diff --git a/ansible/roles/neutron/templates/ml2_conf.ini.j2 b/ansible/roles/neutron/templates/ml2_conf.ini.j2
index f994ba1a15fe449ec8ab64ccf16235f2983c3692..772e8fd9d21876be8be4d38a7544c6cb127fb7e7 100644
--- a/ansible/roles/neutron/templates/ml2_conf.ini.j2
+++ b/ansible/roles/neutron/templates/ml2_conf.ini.j2
@@ -31,5 +31,5 @@ arp_responder = true
 #enable_distributed_routing = true
 
 [ovs]
-local_ip = {{ hostvars[inventory_hostname]['ansible_' + api_interface]['ipv4']['address'] }}
-bridge_mappings = external:{{ neutron_interface }}
+local_ip = {{ hostvars[inventory_hostname]['ansible_' + tunnel_interface]['ipv4']['address'] }}
+bridge_mappings = external:{{ neutron_bridge_name }}
diff --git a/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile b/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile
index c34d72302b5506455ba025b6ccf59222002f13df..60989c846c6704092ef0cabe95654a0ab222610b 100644
--- a/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile
+++ b/docker/centos/binary/openvswitch/ovs-vswitchd/Dockerfile
@@ -3,6 +3,6 @@ MAINTAINER Kolla Project (https://launchpad.net/kolla)
 
 COPY ./start.sh /start.sh
 
-COPY config-internal.sh config-external.sh /opt/kolla/
+COPY ovs_ensure_configured.sh config-internal.sh config-external.sh /opt/kolla/
 
 CMD ["/start.sh"]
diff --git a/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh b/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
new file mode 120000
index 0000000000000000000000000000000000000000..19efaf06a1521d3534198d185d82fef6ffbfab69
--- /dev/null
+++ b/docker/centos/binary/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
@@ -0,0 +1 @@
+../../../../common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
\ No newline at end of file
diff --git a/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh b/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c39d64ff7ae9003619981d9951f65c16cbd9d68a
--- /dev/null
+++ b/docker/common/openvswitch/ovs-vswitchd/ovs_ensure_configured.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+bridge=$1
+port=$2
+
+ovs-vsctl br-exists $bridge; rc=$?
+if [[ $rc == 2 ]]; then
+    changed=changed
+    ovs-vsctl add-br $bridge
+fi
+
+if [[ ! $(ovs-vsctl list-ports $bridge) =~ $(echo "\<$port\>") ]]; then
+    changed=changed
+    ovs-vsctl add-port $bridge $port
+fi
+
+echo $changed
diff --git a/etc/kolla/globals.yml b/etc/kolla/globals.yml
index 63bf15f5f423d9f502c072c5d0129299f34f8b98..adfa1c347733c79f3fb085f0a460262bc9042ef8 100644
--- a/etc/kolla/globals.yml
+++ b/etc/kolla/globals.yml
@@ -54,12 +54,12 @@ docker_restart_policy_retry: "10"
 ####################
 # The interface to use for various services types
 network_interface: "eth0"
+neutron_interface: "eth1"
 
 # These can be adjusted for even more customization
 api_interface: "{{ network_interface }}"
 storage_interface: "{{ network_interface }}"
-neutron_interface: "{{ network_interface }}"
-
+tunnel_interface: "{{ network_interface }}"
 
 ####################
 # Openstack options