diff --git a/_modules/maasng.py b/_modules/maasng.py
index c2676c1..4002e05 100644
--- a/_modules/maasng.py
+++ b/_modules/maasng.py
@@ -1416,7 +1416,7 @@
 
 
 def create_vlan_in_fabric(name, fabric, vlan, description, primary_rack, mtu=1500,
-                          dhcp_on=False, update=False, vlan_id=""):
+                          dhcp_on=False, update=False, vlan_id="", relay_vlan=None):
     """
     Update vlan
     CLI Example:
@@ -1433,6 +1433,8 @@
     }
     if mtu:
         data['mtu'] = str(mtu)
+    if relay_vlan:
+        data['relay_vlan'] = str(relay_vlan)
     vlan = str(vlan)
     maas = _create_maas_client()
     fabric_id = get_fabricid(fabric)
diff --git a/_states/maasng.py b/_states/maasng.py
index 96fe529..5c68652 100644
--- a/_states/maasng.py
+++ b/_states/maasng.py
@@ -372,7 +372,7 @@
     return ret
 
 
-def vlan_present_in_fabric(name, fabric, vlan, primary_rack, description='', dhcp_on=False, mtu=1500):
+def vlan_present_in_fabric(name, fabric, vlan, primary_rack, description='', dhcp_on=False, mtu=1500, relay_vlan=None):
     """
 
     :param name: Name of vlan
@@ -405,7 +405,8 @@
                                                            mtu=mtu,
                                                            description=description,
                                                            primary_rack=primary_rack,
-                                                           dhcp_on=dhcp_on)
+                                                           dhcp_on=dhcp_on,
+                                                           relay_vlan=relay_vlan)
         ret['comment'] = 'Vlan {0} has ' \
                          'been created for {1}'.format(name, fabric)
     elif _rez == 'update':
@@ -418,7 +419,8 @@
                                                            primary_rack=primary_rack,
                                                            dhcp_on=dhcp_on,
                                                            update=True,
-                                                           vlan_id=_id)
+                                                           vlan_id=_id,
+                                                           relay_vlan=relay_vlan)
         ret['comment'] = 'Vlan {0} has been ' \
                          'updated for {1}'.format(name, fabric)
     ret['changes'] = changes
diff --git a/maas/region.sls b/maas/region.sls
index 06d1970..404b42a 100644
--- a/maas/region.sls
+++ b/maas/region.sls
@@ -310,7 +310,8 @@
   - fabric: {{ fabric_name }}
   - name: {{ data.get('name','') }}
   - description: {{ data.description }}
-  - primary_rack: {{ data.get('primary_rack', '')  }}
+  - primary_rack: {{ data.get('primary_rack', '') }}
+  - relay_vlan: {{ data.get('relay_vlan', '') }}
     {%- endfor %}
   {%- endfor %}
 {%- endif %}
@@ -358,8 +359,9 @@
   - fabric: {{ fabric_name }}
   - name: {{ data.get('name','') }}
   - description: {{ data.description }}
-  - primary_rack: {{ data.get('primary_rack', '')  }}
+  - primary_rack: {{ data.get('primary_rack', '') }}
   - dhcp_on: {{ data.get('dhcp','False') }}
+  - relay_vlan: {{ data.get('relay_vlan', '') }}
     {%- endfor %}
   {%- endfor %}
 {%- endif %}
