diff --git a/defaults/main.yml b/defaults/main.yml
index 09e68a75cab23560997d5e10d3781921a1815035..74dfedc2094e37e8ee10b7441141a97af3291220 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -12,3 +12,13 @@ interface_file: '
 interface_clean: True
 interface_mtu: 1442
 
+interface_mac:
+interface_default_gateway:
+interface_routes: []
+# - gateway:
+#   network:
+#   mask:
+
+interface_required_variables:
+    interface_mac: '{{ interface_mac }}'
+
diff --git a/tasks/main.yml b/tasks/main.yml
index c3551dfd26c6b6cbfd8596d144437ade9fbdefd7..88b438c0d5649ffb589af9281687cc13497ca60d 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -1,7 +1,9 @@
+
 - name: check existence of required variables
   fail:
-      msg: interface_mac is not defined
-  when: not interface_mac
+      msg: required variable '{{ item.key }}' is undefined
+  when: item.value is undefined or not item.value
+  loop: '{{ interface_required_variables }}'
 
 - set_fact:
       interface_device: '{%- from "roles/common/templates/network.j2" import mac_to_interface with context -%}
@@ -11,3 +13,4 @@
   when: interface_clean is defined and interface_clean
 
 - include: interface.yml
+