+/**
+ * \brief Find a route between two hosts
+ *
+ * \param from where from
+ * \param to where to
+ * \param links [OUT] where to store the list of links (must exist, cannot be nullptr).
+ */
+void sg_host_route(sg_host_t from, sg_host_t to, xbt_dynar_t links)
+{
+ std::vector<simgrid::s4u::Link*> vlinks;
+ from->routeTo(to, vlinks, nullptr);
+ for (auto const& link : vlinks)
+ xbt_dynar_push(links, &link);
+}
+/**
+ * \brief Find the latency of the route between two hosts
+ *
+ * \param from where from
+ * \param to where to
+ */
+double sg_host_route_latency(sg_host_t from, sg_host_t to)
+{
+ std::vector<simgrid::s4u::Link*> vlinks;
+ double res = 0;
+ from->routeTo(to, vlinks, &res);
+ return res;
+}
+/**
+ * \brief Find the bandwitdh of the route between two hosts
+ *
+ * \param from where from
+ * \param to where to
+ */
+double sg_host_route_bandwidth(sg_host_t from, sg_host_t to)
+{
+ double min_bandwidth = -1.0;
+
+ std::vector<simgrid::s4u::Link*> vlinks;
+ from->routeTo(to, vlinks, nullptr);
+ for (auto const& link : vlinks) {
+ double bandwidth = link->bandwidth();
+ if (bandwidth < min_bandwidth || min_bandwidth < 0.0)
+ min_bandwidth = bandwidth;
+ }
+ return min_bandwidth;
+}
+
+/** @brief Displays debugging information about a host */
+void sg_host_dump(sg_host_t host)
+{
+ XBT_INFO("Displaying host %s", host->get_cname());
+ XBT_INFO(" - speed: %.0f", host->getSpeed());