diff --git a/ansible/roles/neutron/defaults/main.yml b/ansible/roles/neutron/defaults/main.yml
index a17007f4845041e5b43d8a35f9f9cb2a07d71e8a..c4bfa1a1c881d71f36c2228ab93c1d7199a61548 100644
--- a/ansible/roles/neutron/defaults/main.yml
+++ b/ansible/roles/neutron/defaults/main.yml
@@ -268,7 +268,7 @@ service_plugins:
     enabled: "{{ neutron_plugin_agent == 'sfc' }}"
   - name: "lbaasv2"
     enabled: "{{ enable_neutron_lbaas | bool }}"
-  - name: "neutron_fwaas.services.firewall.fwaas_plugin.FirewallPlugin"
+  - name: "firewall"
     enabled: "{{ enable_neutron_fwaas | bool }}"
   - name: "vpnaas"
     enabled: "{{ enable_neutron_vpnaas | bool }}"
diff --git a/ansible/roles/neutron/tasks/config.yml b/ansible/roles/neutron/tasks/config.yml
index bbb70b39f8ee193ca0a8c8eb841121692207f896..5d0a2cc46f1ccaf03c17d1854a2e5936b4f2323f 100644
--- a/ansible/roles/neutron/tasks/config.yml
+++ b/ansible/roles/neutron/tasks/config.yml
@@ -183,6 +183,7 @@
   vars:
     service_name: "{{ item.key }}"
     services_need_fwaas_driver_ini:
+      - "neutron-server"
       - "neutron-l3-agent"
       - "neutron-vpnaas-agent"
   merge_configs:
diff --git a/ansible/roles/neutron/templates/fwaas_driver.ini.j2 b/ansible/roles/neutron/templates/fwaas_driver.ini.j2
index b020e6bbd8205c5b334fe3a17b4d3260d2411f68..3fa7953415ba8bef2a6de5ab3c68372d1b1dd955 100644
--- a/ansible/roles/neutron/templates/fwaas_driver.ini.j2
+++ b/ansible/roles/neutron/templates/fwaas_driver.ini.j2
@@ -1 +1,8 @@
+{% if enable_neutron_fwaas | bool %}
+[service_providers]
+service_provider = FIREWALL:Iptables:neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver:default
+
 [fwaas]
+driver = iptables
+enabled = True
+{% endif %}
diff --git a/ansible/roles/neutron/templates/l3_agent.ini.j2 b/ansible/roles/neutron/templates/l3_agent.ini.j2
index 8b98a5744fdaea5d2b29a92d05d6427ecb000a77..30dc29fcae2e0f7ee1931410b12c97c0c196fd38 100644
--- a/ansible/roles/neutron/templates/l3_agent.ini.j2
+++ b/ansible/roles/neutron/templates/l3_agent.ini.j2
@@ -13,10 +13,6 @@ agent_mode = legacy
 ha_vrrp_health_check_interval = 5
 {% endif %}
 {% if enable_neutron_fwaas | bool %}
-[fwaas]
-driver = neutron_fwaas.services.firewall.drivers.linux.iptables_fwaas.IptablesFwaasDriver
-enabled = True
-
 [agent]
 extensions = fwaas
 {% endif %}
diff --git a/ansible/roles/neutron/templates/neutron-server.json.j2 b/ansible/roles/neutron/templates/neutron-server.json.j2
index 90efa531b0c1fefc380dcc0b8a8a5b950d832f29..15182dada948186625f87d39a7222780811eda69 100644
--- a/ansible/roles/neutron/templates/neutron-server.json.j2
+++ b/ansible/roles/neutron/templates/neutron-server.json.j2
@@ -1,5 +1,5 @@
 {
-    "command": "neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_lbaas.conf --config-file /etc/neutron/neutron_vpnaas.conf {% if neutron_plugin_agent == 'vmware_nsxv' %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %}",
+    "command": "neutron-server --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini --config-file /etc/neutron/neutron_lbaas.conf --config-file /etc/neutron/neutron_vpnaas.conf --config-file /etc/neutron/fwaas_driver.ini {% if neutron_plugin_agent == 'vmware_nsxv' %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %}",
     "config_files": [
         {
             "source": "{{ container_config_directory }}/neutron.conf",
@@ -7,6 +7,12 @@
             "owner": "neutron",
             "perm": "0600"
         },
+        {
+            "source": "{{ container_config_directory }}/fwaas_driver.ini",
+            "dest": "/etc/neutron/fwaas_driver.ini",
+            "owner": "neutron",
+            "perm": "0600"
+        },
         {
             "source": "{{ container_config_directory }}/neutron_lbaas.conf",
             "dest": "/etc/neutron/neutron_lbaas.conf",