--- a
+++ b/examples/FatTreeTopology/omnetpp.ini
@@ -0,0 +1,171 @@
+[General]
+network = FatTreeTopology
+sim-time-limit = 5min
+seed-set = ${runnumber}
+sim-time-limit = 5min
+seed-set = ${runnumber}
+debug-on-errors = true
+#
+# Appliction entities naming:
+#
+**.Server1.applicationProcess1.apName = "App1"
+**.Server2.applicationProcess1.apName = "App2"
+**.Server3.applicationProcess1.apName = "App3"
+**.Server4.applicationProcess1.apName = "App4"
+**.applicationEntity.aeType = "AEPing"
+**.iae.aeName = "Ping"
+
+#
+# Server instances addressing:
+#
+# Shims:
+**.Server1.ipcProcess0.difName = "T1S1"
+**.Server1.ipcProcess0.ipcAddress = "2"
+# DataCenter wide DIF.
+**.Server1.ipcProcess1.difName = "DC"
+**.Server1.ipcProcess1.ipcAddress = "S1"
+
+# Shims:
+**.Server2.ipcProcess0.difName = "T1S2"
+**.Server2.ipcProcess0.ipcAddress = "2"
+# DataCenter wide DIF.
+**.Server2.ipcProcess1.difName = "DC"
+**.Server2.ipcProcess1.ipcAddress = "S2"
+
+# Shims:
+**.Server3.ipcProcess0.difName = "T2S3"
+**.Server3.ipcProcess0.ipcAddress = "2"
+# DataCenter wide DIF.
+**.Server3.ipcProcess1.difName = "DC"
+**.Server3.ipcProcess1.ipcAddress = "S3"
+
+# Shims:
+**.Server4.ipcProcess0.difName = "T2S4"
+**.Server4.ipcProcess0.ipcAddress = "2"
+# DataCenter wide DIF.
+**.Server4.ipcProcess1.difName = "DC"
+**.Server4.ipcProcess1.ipcAddress = "S4"
+
+#
+# TOR instances addressing:
+#
+# Shims to aggregators:
+**.TOR1.ipcProcess0.difName = "A1T1"
+**.TOR1.ipcProcess0.ipcAddress = "2"
+**.TOR1.ipcProcess1.difName = "A2T1"
+**.TOR1.ipcProcess1.ipcAddress = "2"
+# Shims to servers:
+**.TOR1.ipcProcess2.difName = "T1S1"
+**.TOR1.ipcProcess2.ipcAddress = "1"
+**.TOR1.ipcProcess3.difName = "T1S2"
+**.TOR1.ipcProcess3.ipcAddress = "1"
+# DataCenter wide DIF.
+**.TOR1.relayIpc.difName = "DC"
+**.TOR1.relayIpc.ipcAddress = "TOR1"
+
+# Shims to aggregators:
+**.TOR2.ipcProcess0.difName = "A1T2"
+**.TOR2.ipcProcess0.ipcAddress = "2"
+**.TOR2.ipcProcess1.difName = "A2T2"
+**.TOR2.ipcProcess1.ipcAddress = "2"
+# Shims to servers:
+**.TOR2.ipcProcess2.difName = "T2S3"
+**.TOR2.ipcProcess2.ipcAddress = "1"
+**.TOR2.ipcProcess3.difName = "T2S4"
+**.TOR2.ipcProcess3.ipcAddress = "1"
+# DataCenter wide DIF.
+**.TOR2.relayIpc.difName = "DC"
+**.TOR2.relayIpc.ipcAddress = "TOR2"
+
+#
+# Aggregators instances addressing:
+#
+# Shims:
+**.AS1.ipcProcess0.difName = "A1T1"
+**.AS1.ipcProcess0.ipcAddress = "1"
+**.AS1.ipcProcess1.difName = "A1T2"
+**.AS1.ipcProcess1.ipcAddress = "1"
+# DataCenter wide DIF.
+**.AS1.relayIpc.difName = "DC"
+**.AS1.relayIpc.ipcAddress = "AS1"
+
+# Shims:
+**.AS2.ipcProcess0.difName = "A2T1"
+**.AS2.ipcProcess0.ipcAddress = "1"
+**.AS2.ipcProcess1.difName = "A2T2"
+**.AS2.ipcProcess1.ipcAddress = "1"
+# DataCenter wide DIF.
+**.AS2.relayIpc.difName = "DC"
+**.AS2.relayIpc.ipcAddress = "AS2"
+
+#
+# Policy selection for DC Dif.
+#
+**.Server*.ipcProcess1.resourceAllocator.pduftgPolicyName = "DistanceVectorPolicy"
+**.Server*.ipcProcess1.resourceAllocator.pduFwdTabGenerator.netStateVisible = true
+**.Server*.ipcProcess1.resourceAllocator.pduFwdTabGenerator.netStateMod = "^.^.^"
+
+**.TOR*.relayIpc.resourceAllocator.pduftgPolicyName = "DistanceVectorPolicy"
+**.TOR*.relayIpc.resourceAllocator.pduFwdTabGenerator.netStateVisible = true
+**.TOR*.relayIpc.resourceAllocator.pduFwdTabGenerator.netStateMod = "^.^.^"
+
+**.AS*.relayIpc.resourceAllocator.pduftgPolicyName = "DistanceVectorPolicy"
+**.AS*.relayIpc.resourceAllocator.pduFwdTabGenerator.netStateVisible = true
+**.AS*.relayIpc.resourceAllocator.pduFwdTabGenerator.netStateMod = "^.^.^"
+
+#
+# DIF Allocator settings
+#
+**.Server1.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server2.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server3.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server4.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+**.TOR1.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.TOR2.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+**.AS1.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.AS2.difAllocator.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+#
+# Directory settings
+#
+**.Server1.difAllocator.directory.configData= xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server2.difAllocator.directory.configData= xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server3.difAllocator.directory.configData= xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.Server4.difAllocator.directory.configData= xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+**.TOR1.difAllocator.directory.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.TOR2.difAllocator.directory.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+**.AS1.difAllocator.directory.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+**.AS2.difAllocator.directory.configData = xmldoc("config.xml", "Configuration/Switch[@id='AS1']/DA")
+
+#
+# QoS Cube sets.
+#
+**.ra.qoscubesData = xmldoc("config.xml", "Configuration/QoSCubesSet")
+
+#
+# Preallocated flow on hosts:
+#
+**.Server1.ipcProcess1.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Server[@id='Server1']/IPC[@id='ipcProcess1']/RA/Flows")
+**.Server2.ipcProcess1.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Server[@id='Server2']/IPC[@id='ipcProcess1']/RA/Flows")
+**.Server3.ipcProcess1.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Server[@id='Server3']/IPC[@id='ipcProcess1']/RA/Flows")
+**.Server4.ipcProcess1.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Server[@id='Server4']/IPC[@id='ipcProcess1']/RA/Flows")
+
+**.TOR1.relayIpc.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Switch[@id='TOR1']/IPC[@id='relayIpc']/RA/Flows")
+**.TOR2.relayIpc.resourceAllocator.ra.flows = xmldoc("config.xml", "Configuration/Switch[@id='TOR2']/IPC[@id='relayIpc']/RA/Flows")
+
+[Config FatTreeTopology]
+
+#
+# AEs don't do anything. We're only evaluating the routing table now.
+#
+
+**.Server1.applicationProcess1.applicationEntity.iae.dstApName = "App3"
+**.Server1.applicationProcess1.applicationEntity.iae.dstAeName = "Ping"
+**.Server1.applicationProcess1.applicationEntity.iae.startAt = 130s
+**.Server1.applicationProcess1.applicationEntity.iae.pingAt = 140s
+**.Server1.applicationProcess1.applicationEntity.iae.rate = 5
+**.Server1.applicationProcess1.applicationEntity.iae.stopAt = 200s