- std::vector<simgrid::s4u::Link*> links_up{limiter, link_up, backbone};
- links_up.erase(std::remove(links_up.begin(), links_up.end(), nullptr), links_up.end());
- std::vector<simgrid::s4u::Link*> links_down{backbone, link_down, limiter};
- links_down.erase(std::remove(links_down.begin(), links_down.end(), nullptr), links_down.end());
-
- zone->add_route(host->get_netpoint(), nullptr, nullptr, nullptr, links_up, false);
- zone->add_route(nullptr, host->get_netpoint(), nullptr, nullptr, links_down, false);
+ std::vector<simgrid::s4u::LinkInRoute> links;
+ if (limiter)
+ links.emplace_back(limiter);
+ links.emplace_back(link, simgrid::s4u::LinkInRoute::Direction::UP);
+ if (backbone)
+ links.emplace_back(backbone);
+
+ zone->add_route(host->get_netpoint(), nullptr, nullptr, nullptr, links, true);