ruby: network: move routers from topology to network
This commit is contained in:
parent
2ca42cd626
commit
2d50127642
6 changed files with 14 additions and 20 deletions
|
@ -149,18 +149,17 @@ def create_system(options, system, piobus = None, dma_ports = []):
|
||||||
routers, int_links, ext_links = topology.makeTopology(options,
|
routers, int_links, ext_links = topology.makeTopology(options,
|
||||||
IntLinkClass, ExtLinkClass, RouterClass)
|
IntLinkClass, ExtLinkClass, RouterClass)
|
||||||
|
|
||||||
net_topology.routers = routers
|
net_topology.num_routers = len(routers)
|
||||||
net_topology.int_links = int_links
|
net_topology.int_links = int_links
|
||||||
net_topology.ext_links = ext_links
|
net_topology.ext_links = ext_links
|
||||||
|
|
||||||
|
network = NetworkClass(ruby_system = ruby, topology = net_topology,
|
||||||
|
routers = routers)
|
||||||
|
|
||||||
if options.network_fault_model:
|
if options.network_fault_model:
|
||||||
assert(options.garnet_network == "fixed")
|
assert(options.garnet_network == "fixed")
|
||||||
fault_model = FaultModel()
|
network.enable_fault_model = True
|
||||||
network = NetworkClass(ruby_system = ruby, topology = net_topology,\
|
network.fault_model = FaultModel()
|
||||||
enable_fault_model=True, fault_model = fault_model)
|
|
||||||
else:
|
|
||||||
network = NetworkClass(ruby_system = ruby, topology = net_topology)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Loop through the directory controlers.
|
# Loop through the directory controlers.
|
||||||
|
|
|
@ -37,11 +37,9 @@ class Topology(SimObject):
|
||||||
cxx_header = "mem/ruby/network/Topology.hh"
|
cxx_header = "mem/ruby/network/Topology.hh"
|
||||||
description = Param.String("Not Specified",
|
description = Param.String("Not Specified",
|
||||||
"the name of the imported topology module")
|
"the name of the imported topology module")
|
||||||
|
num_routers = Param.UInt32("Number of routers in the network")
|
||||||
ext_links = VectorParam.BasicExtLink("Links to external nodes")
|
ext_links = VectorParam.BasicExtLink("Links to external nodes")
|
||||||
int_links = VectorParam.BasicIntLink("Links between internal nodes")
|
int_links = VectorParam.BasicIntLink("Links between internal nodes")
|
||||||
routers = VectorParam.BasicRouter("Network routers")
|
|
||||||
print_config = Param.Bool(False,
|
|
||||||
"display topology config in the stats file")
|
|
||||||
|
|
||||||
class RubyNetwork(ClockedObject):
|
class RubyNetwork(ClockedObject):
|
||||||
type = 'RubyNetwork'
|
type = 'RubyNetwork'
|
||||||
|
@ -52,3 +50,4 @@ class RubyNetwork(ClockedObject):
|
||||||
topology = Param.Topology("");
|
topology = Param.Topology("");
|
||||||
control_msg_size = Param.Int(8, "");
|
control_msg_size = Param.Int(8, "");
|
||||||
ruby_system = Param.RubySystem("");
|
ruby_system = Param.RubySystem("");
|
||||||
|
routers = VectorParam.BasicRouter("Network routers")
|
||||||
|
|
|
@ -61,7 +61,7 @@ NetDest shortest_path_to_node(SwitchID src, SwitchID next,
|
||||||
Topology::Topology(const Params *p)
|
Topology::Topology(const Params *p)
|
||||||
: SimObject(p)
|
: SimObject(p)
|
||||||
{
|
{
|
||||||
m_number_of_switches = p->routers.size();
|
m_number_of_switches = p->num_routers;
|
||||||
|
|
||||||
// initialize component latencies record
|
// initialize component latencies record
|
||||||
m_component_latencies.resize(0);
|
m_component_latencies.resize(0);
|
||||||
|
|
|
@ -59,9 +59,8 @@ GarnetNetwork_d::GarnetNetwork_d(const Params *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// record the routers
|
// record the routers
|
||||||
for (vector<BasicRouter*>::const_iterator i =
|
for (vector<BasicRouter*>::const_iterator i = p->routers.begin();
|
||||||
m_topology_ptr->params()->routers.begin();
|
i != p->routers.end(); ++i) {
|
||||||
i != m_topology_ptr->params()->routers.end(); ++i) {
|
|
||||||
Router_d* router = safe_cast<Router_d*>(*i);
|
Router_d* router = safe_cast<Router_d*>(*i);
|
||||||
m_router_ptr_vector.push_back(router);
|
m_router_ptr_vector.push_back(router);
|
||||||
}
|
}
|
||||||
|
@ -115,7 +114,6 @@ GarnetNetwork_d::init()
|
||||||
router->printFaultVector(cout);
|
router->printFaultVector(cout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GarnetNetwork_d::~GarnetNetwork_d()
|
GarnetNetwork_d::~GarnetNetwork_d()
|
||||||
|
|
|
@ -53,9 +53,8 @@ GarnetNetwork::GarnetNetwork(const Params *p)
|
||||||
m_number_of_pipe_stages = p->number_of_pipe_stages;
|
m_number_of_pipe_stages = p->number_of_pipe_stages;
|
||||||
|
|
||||||
// record the routers
|
// record the routers
|
||||||
for (vector<BasicRouter*>::const_iterator i =
|
for (vector<BasicRouter*>::const_iterator i = p->routers.begin();
|
||||||
m_topology_ptr->params()->routers.begin();
|
i != p->routers.end(); ++i) {
|
||||||
i != m_topology_ptr->params()->routers.end(); ++i) {
|
|
||||||
Router* router = safe_cast<Router*>(*i);
|
Router* router = safe_cast<Router*>(*i);
|
||||||
m_router_ptr_vector.push_back(router);
|
m_router_ptr_vector.push_back(router);
|
||||||
}
|
}
|
||||||
|
|
|
@ -80,9 +80,8 @@ SimpleNetwork::SimpleNetwork(const Params *p)
|
||||||
}
|
}
|
||||||
|
|
||||||
// record the routers
|
// record the routers
|
||||||
for (vector<BasicRouter*>::const_iterator i =
|
for (vector<BasicRouter*>::const_iterator i = p->routers.begin();
|
||||||
m_topology_ptr->params()->routers.begin();
|
i != p->routers.end(); ++i) {
|
||||||
i != m_topology_ptr->params()->routers.end(); ++i) {
|
|
||||||
Switch* s = safe_cast<Switch*>(*i);
|
Switch* s = safe_cast<Switch*>(*i);
|
||||||
m_switch_ptr_vector.push_back(s);
|
m_switch_ptr_vector.push_back(s);
|
||||||
s->init_net_ptr(this);
|
s->init_net_ptr(this);
|
||||||
|
|
Loading…
Reference in a new issue