Index: /tools/gformat.py
===================================================================
--- /tools/gformat.py	(revision 9957)
+++ /tools/gformat.py	(revision 9958)
@@ -621,5 +621,5 @@
 
   #  WL uses an /29 to configure an interface. IP's are ordered like this: 
-  #     MasterA (.1) -- DeviceA (.2) <<>> DeviceB (.5) --- SlaveB (.6) 
+  #     MasterA (.1) -- DeviceA (.2) <<>> DeviceB (.3) --- SlaveB (.4) 
     
   sn = lambda x: re.sub(r'(?i)^cnode','',x)
@@ -627,4 +627,7 @@
   # Automatic naming convention of interlinks namely 2 + remote.lower()
   for (key,value) in pool.iteritems():
+    # Make sure they are sorted from low-ip to high-ip
+    value = sorted(value, key=lambda x: parseaddr(x[2]))
+
     if len(value) == 1:
       (iface_name, fqdn, ip) = value[0]
@@ -640,5 +643,4 @@
       (b_iface_name, b_fqdn, b_ip) = value[1]
       wleiden_zone["2%s.%s" % (b_fqdn,a_fqdn)] = a_ip
-      # Slave interface
       wleiden_zone["2%s.%s" % (a_fqdn,b_fqdn)] = b_ip
 
@@ -646,5 +648,5 @@
       if 'cnode' in a_fqdn.lower() and 'cnode' in b_fqdn.lower():
         wleiden_zone["d-at-%s.%s" % (a_iface_name, a_fqdn)] = showaddr(parseaddr(a_ip) + 1)
-        wleiden_zone["d-at-%s.%s" % (b_iface_name, b_fqdn)] = showaddr(parseaddr(a_ip) - 1)
+        wleiden_zone["d-at-%s.%s" % (b_iface_name, b_fqdn)] = showaddr(parseaddr(b_ip) - 1)
         wleiden_cname["d-at-%s.%s" % (a_iface_name,sn(a_fqdn))] = "d-at-%s.%s" % (a_iface_name, a_fqdn)
         wleiden_cname["d-at-%s.%s" % (b_iface_name,sn(b_fqdn))] = "d-at-%s.%s" % (b_iface_name, b_fqdn)
