- XBT_DEBUG("Load ASroute from %s@%s to %s@%s", src, route->gw_src->name(), dst, route->gw_dst->name());
- xbt_assert(src_net_elm, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
- src,route->gw_src->name(), dst,route->gw_dst->name(), src);
- xbt_assert(dst_net_elm, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
- src,route->gw_src->name(), dst,route->gw_dst->name(), dst);
+ XBT_DEBUG("Load ASroute from %s@%s to %s@%s", srcName, route->gw_src->name(), dstName, route->gw_dst->name());
+ xbt_assert(src->getRcType()==SURF_NETWORK_ELEMENT_AS,
+ "When defining an ASroute, src must be an AS but '%s' is not", srcName);
+ xbt_assert(dst->getRcType()==SURF_NETWORK_ELEMENT_AS,
+ "When defining an ASroute, dst must be an AS but '%s' is not", dstName);
+
+ xbt_assert(route->gw_src->getRcType()==SURF_NETWORK_ELEMENT_HOST || route->gw_src->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+ "When defining an ASroute, gw_src must be an host or a router but '%s' is not.", srcName);
+ xbt_assert(route->gw_dst->getRcType()==SURF_NETWORK_ELEMENT_HOST || route->gw_dst->getRcType()==SURF_NETWORK_ELEMENT_ROUTER,
+ "When defining an ASroute, gw_dst must be an host or a router but '%s' is not.", dstName);
+
+ xbt_assert(route->gw_src != route->gw_dst, "Cannot define an ASroute from '%s' to itself", route->gw_src->name());
+
+ xbt_assert(src, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+ srcName,route->gw_src->name(), dstName,route->gw_dst->name(), srcName);
+ xbt_assert(dst, "Cannot add a route from %s@%s to %s@%s: %s does not exist.",
+ srcName,route->gw_src->name(), dstName,route->gw_dst->name(), dstName);