diff -r 5c2ecad1a3c9 -r 97c7a8d9ea1e configs/ruby/Ruby.py --- a/configs/ruby/Ruby.py Wed Apr 09 16:01:58 2014 +0200 +++ b/configs/ruby/Ruby.py Thu Apr 10 12:19:50 2014 -0400 @@ -99,6 +99,9 @@ """ exec "import %s as Topo" % options.topology topology = eval("Topo.%s(controllers)" % options.topology) + if options.topology == "Cluster": + for cntrl in controllers: + topology.add(cntrl) return topology def create_system(options, system, piobus = None, dma_ports = []): diff -r 5c2ecad1a3c9 -r 97c7a8d9ea1e configs/topologies/Cluster.py --- a/configs/topologies/Cluster.py Wed Apr 09 16:01:58 2014 +0200 +++ b/configs/topologies/Cluster.py Thu Apr 10 12:19:50 2014 -0400 @@ -54,7 +54,7 @@ cls._num_routers += 1 return cls._num_routers - 1 - def __init__(self, intBW=0, extBW=0, intLatency=0, extLatency=0): + def __init__(self, controllers, intBW=0, extBW=0, intLatency=0, extLatency=0): """ internalBandwidth is bandwidth of all links within the cluster externalBandwidth is bandwidth from this cluster to any cluster connecting to it. diff -r 5c2ecad1a3c9 -r 97c7a8d9ea1e src/mem/ruby/slicc_interface/AbstractController.hh --- a/src/mem/ruby/slicc_interface/AbstractController.hh Wed Apr 09 16:01:58 2014 +0200 +++ b/src/mem/ruby/slicc_interface/AbstractController.hh Thu Apr 10 12:19:50 2014 -0400 @@ -100,6 +100,7 @@ public: MachineID getMachineID() const { return m_machineID; } + NodeID getClusterID() const { return m_clusterID; } Stats::Histogram& getDelayHist() { return m_delayHistogram; } Stats::Histogram& getDelayVCHist(uint32_t index)