From 98902509dba21a4817edab8fb2a8f69506a461a3 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 15 Nov 2016 23:35:16 +0100 Subject: [PATCH] empty RoutingPlatf: move the loopback link to the network_model(s) --- src/kernel/routing/AsDijkstra.cpp | 4 ++-- src/kernel/routing/AsFloyd.cpp | 4 ++-- src/kernel/routing/AsFull.cpp | 4 ++-- src/surf/network_cm02.cpp | 3 ++- src/surf/network_constant.cpp | 2 +- src/surf/network_interface.hpp | 2 ++ src/surf/network_ns3.cpp | 2 +- src/surf/ptask_L07.cpp | 3 ++- src/surf/surf_routing.cpp | 9 +++------ src/surf/surf_routing.hpp | 5 ++--- 10 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/kernel/routing/AsDijkstra.cpp b/src/kernel/routing/AsDijkstra.cpp index 02106e65e2..cf697f0b8a 100644 --- a/src/kernel/routing/AsDijkstra.cpp +++ b/src/kernel/routing/AsDijkstra.cpp @@ -51,7 +51,7 @@ void AsDijkstra::seal() graphNodeMap_ = xbt_dict_new_homogeneous(&graph_node_map_elem_free); /* Add the loopback if needed */ - if (routing_platf->loopback_ && hierarchy_ == RoutingMode::base) { + if (surf_network_model->loopback_ && hierarchy_ == RoutingMode::base) { xbt_dynar_foreach(xbt_graph_get_nodes(routeGraph_), cursor, node) { xbt_edge_t edge = nullptr; @@ -66,7 +66,7 @@ void AsDijkstra::seal() if (!found) { sg_platf_route_cbarg_t e_route = xbt_new0(s_sg_platf_route_cbarg_t, 1); e_route->link_list = new std::vector(); - e_route->link_list->push_back(routing_platf->loopback_); + e_route->link_list->push_back(surf_network_model->loopback_); xbt_graph_new_edge(routeGraph_, node, node, e_route); } } diff --git a/src/kernel/routing/AsFloyd.cpp b/src/kernel/routing/AsFloyd.cpp index 2b5d92106a..6aa1816f70 100644 --- a/src/kernel/routing/AsFloyd.cpp +++ b/src/kernel/routing/AsFloyd.cpp @@ -170,7 +170,7 @@ void AsFloyd::seal(){ } /* Add the loopback if needed */ - if (routing_platf->loopback_ && hierarchy_ == RoutingMode::base) { + if (surf_network_model->loopback_ && hierarchy_ == RoutingMode::base) { for (unsigned int i = 0; i < table_size; i++) { sg_platf_route_cbarg_t e_route = TO_FLOYD_LINK(i, i); if (!e_route) { @@ -178,7 +178,7 @@ void AsFloyd::seal(){ e_route->gw_src = nullptr; e_route->gw_dst = nullptr; e_route->link_list = new std::vector(); - e_route->link_list->push_back(routing_platf->loopback_); + e_route->link_list->push_back(surf_network_model->loopback_); TO_FLOYD_LINK(i, i) = e_route; TO_FLOYD_PRED(i, i) = i; TO_FLOYD_COST(i, i) = 1; diff --git a/src/kernel/routing/AsFull.cpp b/src/kernel/routing/AsFull.cpp index 24960df991..62df1a6b42 100644 --- a/src/kernel/routing/AsFull.cpp +++ b/src/kernel/routing/AsFull.cpp @@ -29,7 +29,7 @@ void AsFull::seal() { routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size); /* Add the loopback if needed */ - if (routing_platf->loopback_ && hierarchy_ == RoutingMode::base) { + if (surf_network_model->loopback_ && hierarchy_ == RoutingMode::base) { for (i = 0; i < table_size; i++) { e_route = TO_ROUTE_FULL(i, i); if (!e_route) { @@ -37,7 +37,7 @@ void AsFull::seal() { e_route->gw_src = nullptr; e_route->gw_dst = nullptr; e_route->link_list = new std::vector(); - e_route->link_list->push_back(routing_platf->loopback_); + e_route->link_list->push_back(surf_network_model->loopback_); TO_ROUTE_FULL(i, i) = e_route; } } diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index 3a27f59086..96c31e07ca 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -152,8 +152,9 @@ NetworkCm02Model::NetworkCm02Model() } maxminSystem_ = lmm_system_new(selectiveUpdate_); + loopback_ = createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE); - routing_model_create(createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE)); + routing_model_create(); if (updateMechanism_ == UM_LAZY) { actionHeap_ = xbt_heap_new(8, nullptr); diff --git a/src/surf/network_constant.cpp b/src/surf/network_constant.cpp index f349fbdf18..bbf16a8372 100644 --- a/src/surf/network_constant.cpp +++ b/src/surf/network_constant.cpp @@ -17,7 +17,7 @@ void surf_network_model_init_Constant() surf_network_model = new simgrid::surf::NetworkConstantModel(); all_existing_models->push_back(surf_network_model); - routing_model_create(nullptr); + routing_model_create(); } namespace simgrid { diff --git a/src/surf/network_interface.hpp b/src/surf/network_interface.hpp index afeadcb6c3..c5522a8dcc 100644 --- a/src/surf/network_interface.hpp +++ b/src/surf/network_interface.hpp @@ -119,6 +119,8 @@ namespace simgrid { */ virtual double bandwidthConstraint(double rate, double bound, double size); double nextOccuringEventFull(double now) override; + + Link* loopback_ = nullptr; }; /************ diff --git a/src/surf/network_ns3.cpp b/src/surf/network_ns3.cpp index 267b726d18..bf5d0f7ca4 100644 --- a/src/surf/network_ns3.cpp +++ b/src/surf/network_ns3.cpp @@ -174,7 +174,7 @@ namespace surf { NetworkNS3Model::NetworkNS3Model() : NetworkModel() { ns3_initialize(ns3_tcp_model.get().c_str()); - routing_model_create(nullptr); + routing_model_create(); simgrid::s4u::Host::onCreation.connect(ns3_add_host); simgrid::kernel::routing::netcardCreatedCallbacks.connect(ns3_add_netcard); simgrid::surf::on_cluster.connect (&parse_ns3_add_cluster); diff --git a/src/surf/ptask_L07.cpp b/src/surf/ptask_L07.cpp index caee551396..a986926012 100644 --- a/src/surf/ptask_L07.cpp +++ b/src/surf/ptask_L07.cpp @@ -41,7 +41,7 @@ HostL07Model::HostL07Model() : HostModel() { surf_network_model = new NetworkL07Model(this,maxminSystem_); surf_cpu_model_pm = new CpuL07Model(this,maxminSystem_); - routing_model_create(surf_network_model->createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE)); + routing_model_create(); } HostL07Model::~HostL07Model() = default; @@ -61,6 +61,7 @@ NetworkL07Model::NetworkL07Model(HostL07Model *hmodel, lmm_system_t sys) , hostModel_(hmodel) { maxminSystem_ = sys; + loopback_ = createLink("__loopback__", 498000000, 0.000015, SURF_LINK_FATPIPE); } NetworkL07Model::~NetworkL07Model() { diff --git a/src/surf/surf_routing.cpp b/src/surf/surf_routing.cpp index 3dee138b2b..7f18490ead 100644 --- a/src/surf/surf_routing.cpp +++ b/src/surf/surf_routing.cpp @@ -129,9 +129,9 @@ xbt_dynar_t RoutingPlatf::getOneLinkRoutes(){ }}} /** @brief create the root AS */ -void routing_model_create(Link *loopback) +void routing_model_create() { - routing_platf = new simgrid::kernel::routing::RoutingPlatf(loopback); + routing_platf = new simgrid::kernel::routing::RoutingPlatf(); } /* ************************************************************************** */ @@ -165,10 +165,7 @@ void routing_exit() { delete routing_platf; } -simgrid::kernel::routing::RoutingPlatf::RoutingPlatf(simgrid::surf::Link *loopback) -: loopback_(loopback) -{ -} +simgrid::kernel::routing::RoutingPlatf::RoutingPlatf() = default; simgrid::kernel::routing::RoutingPlatf::~RoutingPlatf() { delete root_; diff --git a/src/surf/surf_routing.hpp b/src/surf/surf_routing.hpp index d11b9ca37c..71d0d14fc8 100644 --- a/src/surf/surf_routing.hpp +++ b/src/surf/surf_routing.hpp @@ -18,7 +18,7 @@ #include SG_BEGIN_DECL() -XBT_PUBLIC(void) routing_model_create(Link *loopback); +XBT_PUBLIC(void) routing_model_create(); XBT_PRIVATE xbt_node_t new_xbt_graph_node (xbt_graph_t graph, const char *name, xbt_dict_t nodes); XBT_PRIVATE xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_node_t d, xbt_dict_t edges); SG_END_DECL() @@ -107,10 +107,9 @@ public: */ XBT_PUBLIC_CLASS RoutingPlatf { public: - explicit RoutingPlatf(Link *loopback); + explicit RoutingPlatf(); ~RoutingPlatf(); AsImpl *root_ = nullptr; - Link *loopback_; xbt_dynar_t getOneLinkRoutes(); void getRouteAndLatency(NetCard *src, NetCard *dst, std::vector * links, double *latency); }; -- 2.20.1