Index: /nodes/GHR/wleiden.yaml
===================================================================
--- /nodes/GHR/wleiden.yaml	(revision 13597)
+++ /nodes/GHR/wleiden.yaml	(revision 13598)
@@ -38,4 +38,5 @@
 iface_ue0:
   comment    : "Link naar Kaag2"
+  ether      : "02:00:ac:10:07:44"
   ip         : "172.16.7.68/29"
   sdesc      : "2kaag2"
Index: /tools/gformat.py
===================================================================
--- /tools/gformat.py	(revision 13597)
+++ /tools/gformat.py	(revision 13598)
@@ -615,4 +615,13 @@
 
 
+class AutoVivification(dict):
+    """Implementation of perl's autovivification feature."""
+    def __getitem__(self, item):
+        try:
+            return dict.__getitem__(self, item)
+        except KeyError:
+            value = self[item] = type(self)()
+            return value
+
 def make_interface_list(datadump):
   if interface_list_cache.has_key(datadump['autogen_item']):
@@ -624,4 +633,5 @@
   addrs_list = { 'lo0' : [("127.0.0.1/8", "LocalHost"), ("172.31.255.1/32","Proxy IP")] }
   vlan_list = defaultdict(list)
+  flags_if = AutoVivification()
   dhclient_if = {'lo0' : False}
 
@@ -648,4 +658,8 @@
     if not dhclient_if.has_key(ifname) or dhclient_if[ifname] == False:
       dhclient_if[ifname] = dhcp_type(ifacedump) == DHCP_CLIENT
+
+    # Ethernet address
+    if ifacedump.has_key('ether'):
+        flags_if[ifname]['ether'] = ifacedump['ether']
 
     # DHCP interfaces are to be added to bridge0
@@ -705,5 +719,5 @@
       assert False, "Unknown type " + ifacedump['type']
 
-  store = (addrs_list, vlan_list, dhclient_if, output)
+  store = (addrs_list, vlan_list, dhclient_if, flags_if, output)
   interface_list_cache[datadump['autogen_item']] = store
   return(store)
@@ -887,5 +901,5 @@
 """)
 
-  (addrs_list, vlan_list, dhclient_if, extra_ouput) = make_interface_list(datadump)
+  (addrs_list, vlan_list, dhclient_if, flags_if, extra_ouput) = make_interface_list(datadump)
   for iface, vlans in vlan_list.items():
     output += 'vlans_%s="%s"\n' % (iface, ' '.join(vlans))
@@ -927,5 +941,8 @@
       output += "ifconfig_bridge0='%s up'\n" % addrs[0][0]
     else:
-      output += "ifconfig_%s='inet %s'\n" % (iface, addrs[0][0])
+      if flags_if[iface].has_key('ether'):
+        output += "ifconfig_%s='ether %s inet %s'\n" % (iface, flags_if[iface]['ether'], addrs[0][0])
+      else:
+        output += "ifconfig_%s='inet %s'\n" % (iface, addrs[0][0])
     for idx, addr in enumerate(addrs[1:]):
       output += "ifconfig_%s_alias%s='inet %s'\n" % (iface, idx, addr[0]) 
@@ -988,5 +1005,5 @@
 
 def get_neighbours(datadump):
-  (addrs_list, _, dhclient_if, extra_ouput) = make_interface_list(datadump)
+  (addrs_list, _, dhclient_if, _, extra_ouput) = make_interface_list(datadump)
 
   (poel, errors) = make_relations()
@@ -1153,5 +1170,5 @@
         return lines
 
-  (addrs_list, vlan_list, dhclient_if, extra_ouput) = make_interface_list(datadump)
+  (addrs_list, vlan_list, dhclient_if, flags_if, extra_ouput) = make_interface_list(datadump)
   table = []
   for iface,addrs in sorted(addrs_list.iteritems()):
