Switch to side-by-side view

--- 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