diff --git a/neutron/upgrade/pkgs_latest.sls b/neutron/upgrade/pkgs_latest.sls
index 6023128..f7d7723 100644
--- a/neutron/upgrade/pkgs_latest.sls
+++ b/neutron/upgrade/pkgs_latest.sls
@@ -35,12 +35,18 @@
   {% if server.get('bgp_vpn', {}).get('enabled', False) %}
     {%- do npkgs.extend(server.pkgs_bagpipe) %}
   {%- endif %}
+  {% if server.get('l2gw', {}).get('enabled', False) %}
+    {%- do npkgs.extend(server.pkgs_l2gw) %}
+  {%- endif %}
   {%- if fwaas.get('enabled', False) %}
     {%- do npkgs.extend(fwaas.pkgs) %}
   {%- endif %}
 {%- endif %}
 {%- if gateway.enabled is defined and gateway.enabled %}
   {%- do npkgs.extend(gateway.pkgs) %}
+  {% if gateway.get('l2gw', {}).get('enabled', False) %}
+    {%- do npkgs.extend(gateway.pkgs_l2gw_agent) %}
+  {%- endif %}
 {%- endif %}
 {%- if compute.enabled is defined and compute.enabled %}
   {%- do npkgs.extend(compute.pkgs) %}
diff --git a/neutron/upgrade/render_config.sls b/neutron/upgrade/render_config.sls
index 1f5acaa..77bc673 100644
--- a/neutron/upgrade/render_config.sls
+++ b/neutron/upgrade/render_config.sls
@@ -34,6 +34,9 @@
                              ['/etc/neutron/plugins/ml2/openvswitch_agent.ini', "salt://neutron/files/" + gateway.version + "/openvswitch_agent.ini"],
                              ['/etc/neutron/dhcp_agent.ini', "salt://neutron/files/" + gateway.version + "/dhcp_agent.ini"],
                              ['/etc/neutron/metadata_agent.ini',"salt://neutron/files/" + gateway.version + "/metadata_agent.ini"]]) %}
+  {%- if gateway.get('l2gw', {}).get('enabled', False) %}
+    {%- do conf_mapping.append(['/etc/neutron/l2gateway_agent.ini', "salt://neutron/files/" + gateway.version + "/l2gw/l2gateway_agent.ini"]) %}
+  {%- endif %}
 {%- elif compute.enabled %}
   {% if compute.get('bgp_vpn', {}).get('enabled', False) and server.bgp_vpn.driver == "bagpipe" %}
     {%- do conf_mapping.append(['/etc/bagpipe-bgp/bgp.conf', "salt://neutron/files/" + compute.version + "/bagpipe-bgp.conf"]) %}
diff --git a/neutron/upgrade/service_running.sls b/neutron/upgrade/service_running.sls
index d2ac334..c1289ab 100644
--- a/neutron/upgrade/service_running.sls
+++ b/neutron/upgrade/service_running.sls
@@ -14,6 +14,9 @@
 {%- endif %}
 {%- if gateway.enabled is defined and gateway.enabled%}
   {%- do nservices.extend(gateway.services) %}
+  {% if gateway.get('l2gw', {}).get('enabled', False) %}
+    {%- do nservices.append('neutron-l2gateway-agent') %}
+  {%- endif %}
 {%- endif %}
 {%- if compute.enabled is defined and compute.enabled%}
   {%- do nservices.extend(compute.services) %}
diff --git a/neutron/upgrade/service_stopped.sls b/neutron/upgrade/service_stopped.sls
index 6e33e5c..5c0435e 100644
--- a/neutron/upgrade/service_stopped.sls
+++ b/neutron/upgrade/service_stopped.sls
@@ -14,6 +14,9 @@
 {%- endif %}
 {%- if gateway.enabled is defined and gateway.enabled %}
   {%- do nservices.extend(gateway.services) %}
+  {% if gateway.get('l2gw', {}).get('enabled', False) %}
+    {%- do nservices.append('neutron-l2gateway-agent') %}
+  {%- endif %}
 {%- endif %}
 {%- if compute.enabled is defined and compute.enabled %}
   {%- do nservices.extend(compute.services) %}
