* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/kernel/routing/AsFull.hpp"
* under the terms of the license (GNU LGPL) which comes with this package. */
#include "src/kernel/routing/AsFull.hpp"
#include "src/surf/network_interface.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf");
#include "src/surf/network_interface.hpp"
XBT_LOG_NEW_DEFAULT_SUBCATEGORY(surf_route_full, surf, "Routing part of surf");
routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
/* Add the loopback if needed */
routingTable_ = xbt_new0(sg_platf_route_cbarg_t, table_size * table_size);
/* Add the loopback if needed */
for (i = 0; i < table_size; i++) {
e_route = TO_ROUTE_FULL(i, i);
if (!e_route) {
for (i = 0; i < table_size; i++) {
e_route = TO_ROUTE_FULL(i, i);
if (!e_route) {
e_route->gw_src = nullptr;
e_route->gw_dst = nullptr;
e_route->link_list = new std::vector<Link*>();
e_route->gw_src = nullptr;
e_route->gw_dst = nullptr;
e_route->link_list = new std::vector<Link*>();
-void AsFull::getRouteAndLatency(NetCard *src, NetCard *dst, sg_platf_route_cbarg_t res, double *lat)
+void AsFull::getLocalRoute(NetCard* src, NetCard* dst, sg_platf_route_cbarg_t res, double* lat)
- XBT_DEBUG("full_get_route_and_latency from %s[%d] to %s[%d]", src->name().c_str(), src->id(), dst->name().c_str(),
- dst->id());
+ XBT_DEBUG("full getLocalRoute from %s[%d] to %s[%d]", src->cname(), src->id(), dst->cname(), dst->id());
res->gw_src = e_route->gw_src;
res->gw_dst = e_route->gw_dst;
for (auto link : *e_route->link_list) {
res->link_list->push_back(link);
if (lat)
res->gw_src = e_route->gw_src;
res->gw_dst = e_route->gw_dst;
for (auto link : *e_route->link_list) {
res->link_list->push_back(link);
if (lat)
/* Check that the route does not already exist */
if (route->gw_dst) // AS route (to adapt the error message, if any)
xbt_assert(nullptr == TO_ROUTE_FULL(src->id(), dst->id()),
/* Check that the route does not already exist */
if (route->gw_dst) // AS route (to adapt the error message, if any)
xbt_assert(nullptr == TO_ROUTE_FULL(src->id(), dst->id()),
- "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).", srcName,
- route->gw_src->name().c_str(), dstName, route->gw_dst->name().c_str());
+ "The route between %s@%s and %s@%s already exists (Rq: routes are symmetrical by default).",
+ src->cname(), route->gw_src->cname(), dst->cname(), route->gw_dst->cname());
- "The route between %s and %s already exists (Rq: routes are symmetrical by default).", srcName, dstName);
+ "The route between %s and %s already exists (Rq: routes are symmetrical by default).", src->cname(),
+ dst->cname());
/* Add the route to the base */
TO_ROUTE_FULL(src->id(), dst->id()) = newExtendedRoute(hierarchy_, route, 1);
/* Add the route to the base */
TO_ROUTE_FULL(src->id(), dst->id()) = newExtendedRoute(hierarchy_, route, 1);
xbt_assert(
nullptr == TO_ROUTE_FULL(dst->id(), src->id()),
"The route between %s@%s and %s@%s already exists. You should not declare the reverse path as symmetrical.",
xbt_assert(
nullptr == TO_ROUTE_FULL(dst->id(), src->id()),
"The route between %s@%s and %s@%s already exists. You should not declare the reverse path as symmetrical.",
- dstName, route->gw_dst->name().c_str(), srcName, route->gw_src->name().c_str());
+ dst->cname(), route->gw_dst->cname(), src->cname(), route->gw_src->cname());
else
xbt_assert(nullptr == TO_ROUTE_FULL(dst->id(), src->id()),
"The route between %s and %s already exists. You should not declare the reverse path as symmetrical.",
else
xbt_assert(nullptr == TO_ROUTE_FULL(dst->id(), src->id()),
"The route between %s and %s already exists. You should not declare the reverse path as symmetrical.",
TO_ROUTE_FULL(dst->id(), src->id()) = newExtendedRoute(hierarchy_, route, 0);
TO_ROUTE_FULL(dst->id(), src->id())->link_list->shrink_to_fit();
TO_ROUTE_FULL(dst->id(), src->id()) = newExtendedRoute(hierarchy_, route, 0);
TO_ROUTE_FULL(dst->id(), src->id())->link_list->shrink_to_fit();